Camelia, the Perl 6 bug

IRC log for #parrot, 2011-03-14

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:03 dalek nqp/ctmo: f35478c | jonathan++ | src/NQP/Actions.pm:
00:03 dalek nqp/ctmo: Oops, forgot to pass args along to MAIN.
00:03 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/f35478c968
00:03 dalek nqp/ctmo: 42e8507 | jonathan++ | src/stage0/ (6 files):
00:03 dalek nqp/ctmo: Bootstrap with fixed @ARGS; need that for the compiler itself.
00:03 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/42e850785b
00:03 kid51 joined #parrot
00:10 dalek nqp/ctmo: 9179b83 | jonathan++ | src/NQP/Compiler.p (2 files):
00:10 dalek nqp/ctmo: Final switch over to having everything in Compiler.pm; toss Compiler.pir. For the first time, this means you can now write a compiler totally in NQP, without needing to write any PIR.
00:10 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/9179b83bf8
00:25 dalek nqp/ctmo: ca5da70 | jonathan++ | build/Makefile.in:
00:25 dalek nqp/ctmo: Fix make bootstrap-files.
00:25 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/ca5da70d13
00:25 dalek nqp/ctmo: 162e287 | jonathan++ | src/stage0/ (6 files):
00:25 dalek nqp/ctmo: Update bootstrap with fully-NQP NQP.pbc (mostly just to make sure it works ;-)).
00:25 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/162e287a98
00:49 woosley joined #parrot
01:14 dukeleto cotto: did you have a question for me last night?
01:47 dalek tracwiki: v33 | bacek++ | GSoc2011
01:47 dalek tracwiki: http://trac.parrot.org/parrot/wiki/​GSoc2011?version=33&action=diff
01:52 dukeleto bacek_at_work++
02:01 bubaflub hey dukeleto, i'm thinking more about the GMP wrappers for GSoC
02:01 bubaflub and reading up on NCI stuff
02:02 whiteknight left #parrot
02:18 cotto dukeleto, still around?
02:19 kid51 left #parrot
02:25 cotto dukeleto, for ffi, I'm thinking about three primitive ops: one to set the return type and location, one to set a single argument type and location and one to call a C function after everything's set up.
02:25 cotto libffi has a list of 20 types that looks like it'd be a good basis for those ops.
02:26 cotto using that, here's what I'm thinking:
02:26 nopaste "cotto" at 192.168.1.3 pasted "M0 ffi with args" (10 lines) at http://nopaste.snit.ch/37370
02:29 dukeleto cotto: yep
02:29 dukeleto bubaflub: mmmm, GMP wrappers
02:29 cotto I'd link to libffi's docs, but they don't seem to have them online
02:30 dukeleto !!!
02:30 dukeleto bad form
02:30 cotto https://github.com/atgreen/libf​fi/blob/master/doc/libffi.info <- is the closes
02:30 cotto t
02:30 dukeleto bubaflub: another idea that i have is Parrot binding to OpenCL
02:30 dukeleto bubaflub: i just got a fancy GPU and of course I need to do math with it instead of using it what it is actually for
02:31 dukeleto cotto: that looks reasonable. i like it
02:31 bubaflub dukeleto: i hear OpenCL stuff is tough (regardless of wrappers)
02:32 bubaflub dukeleto: but we could throw it up on the ideas wiki page
02:33 dukeleto bubaflub: tough in what way?
02:33 cotto dukeleto, actually, I think those ops wouldn't be great for generating thunks.  A better interface would allow separation between thunk generation and usage.
02:33 bubaflub dukeleto: not so easy to write code that always gets a good speed boost
02:33 bubaflub dukeleto: what i know is mostly hearsay
02:34 cotto maybe it'd be better to have a thunk handle or memory address as an additional arg.
02:35 dukeleto bubaflub: don't put the cart before the horse
02:35 dukeleto bubaflub: having opencl bindings to parrot will open up huge possibilities
02:36 dukeleto bubaflub: but yes, doing anything worthwhile is usually not trivial
02:36 dukeleto bubaflub: but some things are "embarrallel", i.e. "embarrassingly parrallel"
02:36 dukeleto bubaflub: and new graphics cards have like 128 GPUs on them, so doing crypto/number theory stuff just screams
02:38 dukeleto cotto: i dont' fully understand the intricacies of thunk generation
02:38 dukeleto cotto: but i would say, let's start simple and iterate towards greatness
02:39 dukeleto cotto: we should plan an IRL M0 hackathon
02:39 bubaflub dukeleto: true to all the above
02:39 bubaflub dukeleto: beyond the basics, i don't know a whole lot about OpenCL
02:39 dukeleto cotto: i would be willing to take the train up to Seattle
02:39 cotto dukeleto, cool
02:39 dukeleto bubaflub: nor do I, but I am still excited about it
02:39 cotto dukeleto, no car?
02:40 dukeleto cotto: car-free by choice
02:40 cotto dukeleto, interesting.
02:41 dukeleto cotto: have never been happier ever since I sold my truck. Portland is the bike Mecca of the US
02:41 cotto dukeleto, indeed.  I wish this area were better (and drier)
02:41 dukeleto cotto: perhaps we could wrangle a meeting with particle when we meet up in Seattle
02:41 dukeleto cotto: there is no bad weather, only insufficient gear
02:42 dukeleto cotto: just about everything I own now is waterproof :)
02:42 cotto dukeleto, by "thunk generation", I mean that we have a good way to call a thunk that's already been set up
02:42 dukeleto cotto: i will play devil's advocate for a bit
02:42 cotto as opposed to setting one up each time we need an ffi call
02:42 dukeleto cotto: what is the minimum amount of FFI that M0 needs to know about?
02:42 dukeleto cotto: can we worry about that junk at the M1 level?
02:43 cotto dukeleto, If set_args and set_returns immediately execute the code to setup the call, I don't think so
02:44 cotto (meaning that M0 does need to know how to provide ffi thunk caching)
02:45 dukeleto ok, that is something that should be written down in the spec, since it seems important yet not immediately obvious
02:46 cotto deal
02:46 dukeleto cotto: A = { all FFI functionality }, B = { FFI functionality of M0 }, what is in A - B ?
02:46 dukeleto cotto: where A - B denotes set difference
02:46 * dukeleto loves being nerdy
02:47 dukeleto cotto: i am trying to tease things out of you, because I really have no clue
02:48 cotto dukeleto, let me write it up and see if I can be understandable
02:52 dukeleto cotto: works for me
02:58 bubaflub dukeleto or cotto: if i'm fixin' to do a GSoC project for writing GMP bindings in PIR should i worry about M0/Lorito stuff?
02:59 cotto bubaflub, not now.  Our stated goal it to preserve pir-level compatibility, so you should be fine if you use PIR.
03:00 dalek tracwiki: v34 | dukeleto++ | GSoc2011
03:00 dalek tracwiki: http://trac.parrot.org/parrot/wiki/​GSoc2011?version=34&amp;action=diff
03:00 bubaflub cotto: roger that.
03:01 dukeleto bubaflub: yes, you can just blissfully ignore M0 for now
03:01 bubaflub *whistles innocently*
03:02 atrodo cotto> I'm curious to know how you feel we are doing towards the m0 goal in april
03:02 dukeleto bubaflub: me and cotto are trying to redo the foundation without anyone in the top floor noticing, basically
03:02 bubaflub haha.  tricky remodeling.
03:03 dukeleto bubaflub: yeah. but never-the-less, fun
03:03 dukeleto atrodo: for the 3.3 release ?
03:03 dukeleto atrodo: i would say, if me and cotto have a real-life hackathon one weekend, we might just be able to have some kind of prototype then
03:03 atrodo dukeleto> That time area.  I can't remember if the deadline was 3.3 or pds
03:04 dukeleto atrodo: but if we interpolate from our current pace, it doesn't look good
03:04 dukeleto atrodo: i haven't had time in the last few weeks due to various lifey things getting in the way
03:05 atrodo dukeleto: understandable, I've been trying to squeeze time as I've gotten it as well
03:05 dukeleto atrodo: i would say, that in terms of the spec, we have been progressing nicely
03:05 dukeleto atrodo: in terms of the prototype, not so much. But I would rather have a really good spec than a decent spec and a half-ass prototype
03:06 atrodo dukeleto: I agree
03:11 dukeleto msg whiteknight i added a gsoc task about porting PL/Parrot to the new embed API. Could you fill in some details and add some appropriate links?
03:11 aloha OK. I'll deliver the message.
03:12 dalek parrot/m0-spec: 2489a7a | cotto++ | docs/pdds/draft/pdd32_m0.pod:
03:12 dalek parrot/m0-spec: add initial draft of m0 ffi
03:12 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/2489a7a6d1
03:14 cotto atrodo, It's a little behind where I hoped it'd be, but it's not in jeopardy.  Having an idea for ffi and concurrency makes me feel like an initial M0 interp by the April release is reasonable.
03:15 cotto dukeleto, +5 on the priorities of a spec and a prototype.
03:16 dalek tracwiki: v35 | dukeleto++ | GSoc2011
03:16 dalek tracwiki: http://trac.parrot.org/parrot/wiki/​GSoc2011?version=35&amp;action=diff
03:17 atrodo cotto> it looks like arg_type and arg_src are reversed between definition and examples
03:19 dalek parrot/m0-spec: 838cdc9 | cotto++ | docs/pdds/draft/pdd32_m0.pod:
03:19 dalek parrot/m0-spec: fix example code, atrodo++ for noticing
03:19 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/838cdc970f
03:19 cotto I don't see any silly mistakes.
03:20 atrodo these are not the droids we are looking for
03:31 bacek_at_work cotto, (http://nopaste.snit.ch/37370) you need something to hold "ffi call being generated"
03:32 bacek_at_work e.g. 'chunk of memory'
03:32 cotto bacek_at_work, indeed I do
03:32 cotto I also don't seem to define either dlopen or dlfunc
03:35 bacek_at_work something like "gen_call $P0, [INT32, INT32, $I0, INT32, $I1]" and than "callc 'multiple_int32', $P0"
03:36 plobsing I like what bacek_at_work describes but am concerned it might not work with fixed-width ops
03:36 cotto I like where you're going with that.
03:37 bacek_at_work plobsing, "gen_call" has 2 args, "callc" 2 args alos
03:37 bacek_at_work also
03:37 plobsing what is [...] and where does that live?
03:38 atrodo bacek_at_work: I assume the first INT32 is the return type?
03:38 bacek_at_work atrodo, yes
03:40 plobsing and if you can get away with that, why not "$P0 = <funcptr>; callc $P0, [INT32, INT32, $I0, INT32, $I1]", avoiding the need to explicitly pass thunks around
03:40 bacek_at_work plobsing, +1
03:43 cotto plobsing, is that minimally magical though?
03:43 plobsing no more or less magical than a thunk generator
03:43 atrodo So, i just noticed something and it might be from my limited exposure to nci, but does the thunk need the types every time it's called?
03:44 cotto atrodo, that's my question too
03:44 plobsing an explicit thunk generation op enforces thunks on any Lorito impl. Combining the signature and the call give more freedom to impls to do better than thunks.
03:46 plobsing for example, compiling M0 to C, there is no need to be passing around thunks
03:46 plobsing so an op that creates thunks would add complexity and pessimization to such an implementation
03:46 cotto I see where you're going with that.
03:47 atrodo plobsing> The using only one call instead of a gen/call I can understand.  But wouldn't combining the signature with the call be inefficient?
03:47 plobsing atrodo: how so?
03:48 plobsing if you are using thunks under the hood, you can cache them based on signature. If we had reified thunks, users would wind up doing that anyways.
03:49 atrodo plobsing> You have more opportunities to optimize the thunk if you know the signature ahead of time, don't you?
03:49 atrodo Plus, you have the added code of verifying the signature at every call
03:49 atrodo or am I being naive?
03:50 plobsing atrodo: I don't understand either of your points
03:51 atrodo well, when you receive the types, you have to verify that they are correct and that you have something to call with that signature with every invocation, right?
03:51 plobsing IF an implementation chooses to use thunks (and without reified thunks, they don't need to be doing so) they will build thunks either at gen-time or call-time. In either case they create a thunk, the resulting thunk will be the same, so I fail to see the opportunity for optimization.
03:52 dukeleto plobsing: can you define "reified thunks" ?
03:56 plobsing dukeleto: thunks being an explicit thing you can see, touch, and pass around
03:56 plobsing similar to "reified continuations"
03:57 dukeleto plobsing: interesting. if they aren't "reified", then what are they? mythical ?
03:58 plobsing atrodo: how would you know a signature was correct or not? would you parse header files? manually maintain a database of type info? or just let it be and assume users are calling with the correct signature?
03:59 cotto you have to assume that users know what they're doing
03:59 atrodo Oh, so it's like the rest of C and trust that the user knows that they're doing.  I always hated that about C
03:59 bubaflub left #parrot
03:59 cotto lta, but hard to avoid
03:59 atrodo Then my concerns about efficiency disappears
04:00 plobsing dukeleto: I lack a good word for discussing the absence of reification. It is difficult to separate from the absence of the thing itself.
04:01 plobsing using thunks as an example, if the thunks were not reified, would you be able to tell there were thunks?
04:01 plobsing non-reified-thunks implementation cannot be differentiated from thunk-less implementation
04:03 dukeleto i feel a Zen koan coming
04:05 plobsing dukeleto: reify your enlightenment!
04:07 sorear this enlightenment was formalized, by C I think, it's the "as if" principle
04:08 sorear an implementation can do whatever it wants, as long as the user can't detect violations of the rest of the standard
04:18 * dukeleto observes a single unreified thunk clapping and is enlightened
04:48 theory left #parrot
05:13 cotto does anyone know what all the splint*.log files in andy's splint-quiet branch are?
05:14 cotto nm.  they went away
05:27 cotto trac's wiki needs a blame
05:32 * dukeleto submitted 4 talks to YAPC::NA tonight. I hope at least one is accepted.
05:42 ShaneC left #parrot
05:46 ShaneC joined #parrot
06:24 davidfetter joined #parrot
06:30 davidfetter left #parrot
07:01 rurban_ joined #parrot
07:03 rurban left #parrot
07:03 rurban_ is now known as rurban
07:26 fperrad joined #parrot
07:26 jsut_ joined #parrot
07:30 dalek parrot/m0-spec: 864c16d | cotto++ | docs/pdds/draft/pdd32_m0.pod:
07:30 dalek parrot/m0-spec: add some considerations for ffi, note a hole in the current proposal
07:30 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/864c16da31
07:30 dalek parrot/m0-spec: 1bd7d6c | cotto++ | docs/pdds/draft/pdd32_m0.pod:
07:30 dalek parrot/m0-spec: add altneratives suggested by bacek++ and plobsing++
07:30 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/1bd7d6ca9f
07:31 jsut left #parrot
07:31 cotto I feel good about the possibility of hammering that section into something sensible by the middle of the week.
07:34 mtk left #parrot
07:41 mtk joined #parrot
08:18 moritz "Parrot VM: Can't stat , code 2."
08:18 moritz what does that mean?
08:18 moritz nqp: pir::stat('')
08:18 p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P16')␤   in file 'EVAL_1' line 35169735␤syntax error ... somewhere␤current instr.: 'nqp;HLL;Compiler;evalpmc' pc 30577 (gen/hllgrammar-grammar.pir:2153)␤»
08:19 moritz nqp: pir::stat__isi('', 0)
08:19 p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected IREG, expecting '(' ('$I16')␤   in file 'EVAL_1' line 22␤syntax error ... somewhere␤current instr.: 'nqp;HLL;Compiler;evalpmc' pc 30577 (gen/hllgrammar-grammar.pir:2153)␤»
08:30 dalek nqp/ctmo: 1308785 | moritz++ | src/HLL/Actions.pm:
08:30 dalek nqp/ctmo: get rid of a Q:PIR block that is available as a pir:: primitive
08:30 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/1308785fa6
08:30 dalek nqp/ctmo: 43a41af | moritz++ | src/HLL/Actions.pm:
08:30 dalek nqp/ctmo: convert string_to_int to nqp
08:30 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/43a41afca8
08:30 dalek nqp/ctmo: ea95252 | moritz++ | src/HLL/Actions.pm:
08:30 dalek nqp/ctmo: rewrite ints_to_string in nqp
08:30 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/ea95252daf
08:30 dalek nqp/ctmo: 7046f2c | moritz++ | src/stage0/ (6 files):
08:30 dalek nqp/ctmo: update bootstrap, just to show that it still works :-)
08:30 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/7046f2cfaa
08:31 mj41_nb joined #parrot
08:32 dalek nqp/ctmo: 9e6576b | moritz++ | src/HLL/Actions.pm:
08:32 dalek nqp/ctmo: remove the last Q:PIR from HLL::Actions
08:32 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/9e6576b255
09:19 Drossel left #parrot
09:20 contingencyplan left #parrot
09:27 dalek nqp/ctmo-no-p6regex.pir: b33dc05 | moritz++ | / (3 files):
09:27 dalek nqp/ctmo-no-p6regex.pir: first shot at removing P6Regex.pir. Diws with "Can only use get_how on a RakudoObject"
09:27 dalek nqp/ctmo-no-p6regex.pir: review: https://github.com/perl6/nqp/commit/b33dc053e9
09:27 jsut joined #parrot
09:27 Kulag joined #parrot
09:31 lucian joined #parrot
09:31 alin joined #parrot
09:32 jsut_ left #parrot
09:45 lucian_ joined #parrot
09:48 lucian left #parrot
09:51 lucian_ left #parrot
09:53 lucian joined #parrot
09:54 Kulag left #parrot
09:55 woosley left #parrot
09:59 lucian left #parrot
10:03 jsut_ joined #parrot
10:07 jsut left #parrot
10:12 particle1 joined #parrot
10:15 particle left #parrot
10:16 ShaneC left #parrot
10:30 Kulag joined #parrot
10:51 ambs joined #parrot
12:05 Coke .
12:07 novabyte joined #parrot
12:10 novabyte is there any news on the development status of Lorito? is there any codebase for the project?
12:19 atrodo novabyte> Besides my prototype side project, the only development has been on the m0-spec https://github.com/parrot/parrot/blob​/m0-spec/docs/pdds/draft/pdd32_m0.pod
12:20 novabyte atrodo: is your prototype available to look at?
12:21 atrodo novabyte> http://github.com/atrodo/lorito
12:22 novabyte atrodo: the M0 spec describes the VM as something different to Lorito? why two different names?
12:22 atrodo but it does predate the spec, so it's not aligned with the spec
12:23 atrodo novabyte> Mostly because the term lorito gets tossed around for a lot of different things. M0 is a part of the Lorito group and has a narrow, specific definition
12:25 novabyte atrodo: thx. I wanted to do some work on Lorito for my master's thesis, after remembering it while researching projects. Everything seems very heavily scattered around...
12:25 bluescreen joined #parrot
12:25 atrodo novabyte> It's getting better the more people work on it
12:26 lucian joined #parrot
12:26 novabyte atrodo: of course, but adoption should be as easy as possible IMHO :)
12:27 atrodo novabyte> I agree, certainly
12:28 novabyte atrodo: I'm got 4 months focused time to work, I'm not sure whether I'd be spending a lot of that time (too much) gathering a formal specification for the development.
12:30 atrodo novabyte> gathering a formal spec for lorito?
12:30 whiteknight joined #parrot
12:30 novabyte atrodo: or a subset of it that I could use to develop the VM.
12:31 novabyte * or a subset of the VM* (more likely)
12:31 moritz novabyte: I guess it's more productive to spend more time prototyping and less speccing
12:31 atrodo novabyte> Interesting.  So mind if I ask what the thesis is on?
12:32 whiteknight good morning, #parrot
12:32 novabyte moritz: the problem is at the end I have to conclude on how "successful" the research/development was... very difficult without goals
12:33 novabyte morning
12:33 moritz novabyte: there are ways to set goals that allow such prototyping
12:34 moritz novabyte: there is already a rough consensus about what ops should be supported (around 20, iirc)
12:34 whiteknight novabyte: What level is this research project of yours? Bachelors? Masters?
12:34 moritz novabyte: so your goal could be "a prototype that can run those 20 ops, at least as fast as parrot can execute comparable ops now"
12:34 novabyte atrodo: the thesis topic is open at the moment. my supervisor (and I) are interested in VM, compiler optimisations, superoptimisers...
12:35 atrodo novabyte> neat, sounds fun
12:35 novabyte whiteknight: it's masters (not enough time to do a lot :()
12:35 whiteknight okay
12:35 novabyte whiteknight: got to earn some money after that ;)
12:35 moritz novabyte: jnthn_ has a proposal for speeding up multi dispatch in rakudo - maybe you'd be also interested in that kind of optimization :-)
12:36 moritz it was for GSOC, but could probably be "stolen"
12:36 whiteknight novabyte: In preparation for GSoC this year, we're putting together a list of potential projects here: http://trac.parrot.org/parrot/wiki/GSoc2011
12:36 whiteknight novabyte: Many of those projects could be "scaled up" to fill 4 months of work
12:36 moritz novabyte: https://gist.github.com/866304
12:36 novabyte moritz & whiteknight: thx I'll have a look
12:36 whiteknight doing something lorito-related would be nice too. You'll probably want to talk to cotto and dukeleto about that
12:38 novabyte whiteknight: I read about lorito a while ago (from proggit) seemed very interesting, thus the research into its progress :)
12:38 whiteknight novabyte: yeah, it is very interesting stuff. When do you have to have your project idea submitteD?
12:39 novabyte whiteknight: technically by the end of the week, but the dept are loose enough about it as long as I give info on what I've been researching
12:40 whiteknight novabyte: Okay. Definitely hang around in the channel, especially when cotto and dukeleto come online. They're on the west coast, so they usually meander in after a few hours
12:41 whiteknight we'll definitely work with you to try and find a suitable project
12:41 novabyte whiteknight: sounds great, I can't be online too long now but I'll drop in again later
12:41 whiteknight okay, awesome
12:43 novabyte the other idea I've toyed with (very straightforward) is to write a Oberon-2 compiler using the LLVM. one of my lecturers in the dept writes a lot of Oberon-2 code and is really hopeful I'll work on it
12:44 whiteknight interested in writing an Oberon-2 compiler for Parrot?
12:44 novabyte whiteknight: lol hadn't even thought about it
12:45 novabyte I was planning on writing the compiler in D or Go.
12:46 whiteknight oh, we don't have either of those languages on Parrot (yet)
12:48 novabyte whiteknight: I thought Parrot was targeted at dynamic languages?
12:49 NotFound_b joined #parrot
12:49 lucian novabyte: not strictly
12:50 lucian novabyte: a static-lang vm is usually a subset of a dynamic-lang vm, from an expresiveness p.o.v
12:51 atrodo novabyte> I've done some research into doing static languages on parrot.  Seemed feasible, albeit with a couple adjustments
12:52 novabyte lucian: agreed, isn't it usually performance that's the defining factor in languages like D and Go?
12:53 lucian novabyte: well, are they really fast? i'd say go is rather slow
12:53 lucian the benchmarks game agrees http://shootout.alioth.debian.org/u32​/benchmark.php?test=all&amp;lang=all
12:53 dalek tracwiki: v36 | whiteknight++ | GSoc2011
12:53 dalek tracwiki: +some links to the embed API code and in-repo docs
12:53 dalek tracwiki: http://trac.parrot.org/parrot/wiki/​GSoc2011?version=36&amp;action=diff
12:53 dalek tracwiki: v37 | whiteknight++ | GSoc2011
12:53 dalek tracwiki: also, I can help mentor this.
12:53 dalek tracwiki: http://trac.parrot.org/parrot/wiki/​GSoc2011?version=37&amp;action=diff
12:55 novabyte lucian: benchmarks are usually good at showing benchmarks ;) real world code tends to work differently (arguably programmer skill is usually the most limiting factor)
12:56 lucian novabyte: sure, benchmarks only model number crunching usually
12:56 atrodo lucian> That graph is rather fascinating
12:56 lucian novabyte: but my point is, performance isn't very relevant
12:57 novabyte lucian: agreed
12:58 lucian novabyte: so if Java on Parrot is slow at first, so what?
12:58 lucian same for oberon-2
12:58 lucian or w/e
12:58 whiteknight what's most interesting from our perspective is gaining the ability to interface existing javascript code with libraries written in other languages which previously have not been compatible with the JVM
12:58 lucian s/javascript/java/ ?
12:59 whiteknight ah yes, java
12:59 lucian there is a ton of java code out there, yes
12:59 lucian it's very tedious, though
13:00 novabyte lucian: aren't language bindings doing that? e.g. python->C bindings ...etc.
13:00 lucian novabyte: python-java bindings?
13:00 novabyte lucian: no idea
13:00 lucian novabyte: pylucene is horrible
13:01 lucian it embeds the jvm in cpython
13:01 lucian java-erlang bindings?
13:01 lucian ruby-python bindings?
13:01 lucian it's nowhere near close to actually working on parrot, but it's the only vm with any hope of getting there, afaik
13:02 novabyte lucian: ok, I see.
13:02 lucian novabyte: so you'd still have an ffi of sorts between parrot languages, but the common denominator would be much more expressive than C
13:03 novabyte lucian: yep
13:09 novabyte ok I have to go. thank you to everyone for all the help. I've got a lot to think about. :)
13:10 atrodo goodluck novabyte
13:10 novabyte atrodo: thx.
13:10 novabyte left #parrot
13:23 particle1 left #parrot
13:25 dalek tracwiki: v38 | whiteknight++ | GSoc2011
13:25 dalek tracwiki: Add in a proposal about writing a bootstrapped JavaScript compiler for Parrot.
13:25 dalek tracwiki: http://trac.parrot.org/parrot/wiki/​GSoc2011?version=38&amp;action=diff
13:25 particle joined #parrot
13:26 mtk left #parrot
13:31 mtk joined #parrot
13:33 dmalcolm joined #parrot
13:35 NotFound_b left #parrot
13:35 NotFound_b joined #parrot
13:40 Coke NotFound: when you wrote winxed, what were your bootstrapping steps?
13:43 NotFound_b left #parrot
13:44 NotFound_b joined #parrot
13:44 whiteknight NotFound wrote the first compiler for Wixned in c++
13:44 whiteknight the stage1 compiler is written in winxed itself
13:45 NotFound_b Coke: write the stage 0 compiler in c++, start writing a parser in winxed, improve both until the winxed parser becomes a full compiler.
13:49 NotFound_b This is a post about the process written before it was completed: http://notfound.posterous.com/​self-hosted-winxed-why-and-how
13:51 mj41_nb left #parrot
13:51 jnthn_ nqp-rx was bootstrapped by first using PGE, iirc.
13:51 jnthn_ Same pattern. Piggy-back on an existing compiler until yours is good enough to compile itself.
13:51 atrodo It's an aged old problem
13:55 whiteknight tale as old as time, song as old as rhyme, winxed and the beast
13:55 atrodo whiteknight++
13:56 dukeleto ~~
14:06 Coke amusingly, that link is... notfound.
14:06 * Coke digs for it on the full list.
14:07 Andy joined #parrot
14:09 NotFound_b Coke: it works for me cliking on it in konversation.
14:09 atrodo I could open it as well
14:15 dd070 joined #parrot
14:16 dukeleto dd070: welcome to this fine corner of the interwebs
14:16 dd070 :)
14:16 dd070 tx
14:16 dd070 m back after long time
14:16 dukeleto dd070: what brings you back?
14:17 cotto ~~
14:18 particle left #parrot
14:19 dd070 suddenly parrot came in mind again. my hand clicked the link.
14:19 particle joined #parrot
14:20 dukeleto dd070: well, we must be doing something right. which link?
14:21 dd070 link to enter this channel. :)
14:22 dd070 I had got overview of parrot and perl6 some times back.
14:23 dd070 I read somewhere that Perl5 and Perl6 is to co-exists.
14:24 dukeleto dd070: we consider them "sister languges" these days
14:24 dukeleto dd070: lots of features in perl 6 have trickled sideways to perl 5
14:24 dukeleto dd070: Moose is basically the perl 6 object system in perl 5
14:24 mj41_nb joined #parrot
14:29 dd070 Yes. I am familiar with Moose (and Catalyst). little bit curious to know when so many people will started using Perl6 for new projects.
14:29 contingencyplan joined #parrot
14:31 lucian dd070: when it'll actually work, is my guess
14:34 dalek winxed: r857 | NotFound++ | trunk/winxedst1.winxed:
14:34 dalek winxed: codingstd fixes
14:34 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=857
14:37 dukeleto dd070: rakudo perl 6 works pretty well
14:37 dukeleto dd070: speed is still a concern, but there are lots of smart people making both rakudo and parrot faster, as we speak
14:38 lucian dukeleto: dd070: what i meant was, when it actually works for practical things. no GUI binding, even
14:38 moritz dukeleto: and many non-smart people too :-)
14:39 dukeleto moritz: do you know the current status of GUI bindings for rakudo?
14:40 moritz dukeleto: I was replying to your "lots of smart people making both rakudo and parrot faster, as we speak" :-)
14:40 dukeleto moritz: yes, and I was asking you a new question :)
14:41 dukeleto moritz: i would put myself in the (smart + non-smart)/2 camp
14:41 NotFound_b You can do a sort of gui binding by using a perl5 gui lib via blizkost.
14:41 dukeleto lucian: parrot has basic X, OpenGL and SDL binding, i thought, but they definitely need some love
14:41 moritz ah
14:41 moritz sorry, can't read today
14:42 moritz dukeleto: TK via blizkost was basically usable, last someone tried
14:42 moritz there was also some binding for the toolkit that comes with e17 - Tene made that
14:42 moritz not sure what the status is though
14:43 NotFound_b There is a also a library that embeds tcl/tk
14:44 dd070 left #parrot
14:44 lucian i see
14:45 lucian ttk is ok, i guess
14:45 NotFound_b gtk2 via blizkost also works. I've half-done a winxed binding for it.
14:46 lucian isn't that embedding perl5?
14:46 NotFound_b lucian: yes
14:46 * lucian shudders
14:47 whiteknight isn't that the whole point of Parrot, to be able to use libraries between multiple dynamic languages transparently?
14:49 NotFound_b Also, if we use a Parrot binding for something via X, using X is an implementation detail that may be changed later.
14:49 lucian whiteknight: yes, but embedding an existing C runtime seems .. weird
14:49 * lucian prefers FFIs
14:50 lucian NotFound_b: true
14:50 NotFound_b lucian: being able to use the full CPAN isn't weird at all to me.
14:51 lucian i guess i just hate perl5 too much
14:51 lucian using perl5 libs, you'd still have to deal with the language, if nothing else in corner cases
14:51 NotFound_b lucian: I'm not a big fan of perl5, but I've done things like embedding perl in a C++ progran just to use the Telnet module.
14:52 lucian NotFound_b: then why not just use perl/other language nicer than C++ in the first place?
14:52 NotFound_b lucian: because C++ is nice to me.
14:54 lucian left #parrot
14:54 lucian joined #parrot
14:54 NotFound_b lucian: because C++ is nice to me.
14:55 lucian i think i have an old empathy
14:55 lucian NotFound_b: i see. i guess
14:56 NotFound_b If not, probably winxed stage 0 had been written in perl, python, ruby...
14:56 cotto_work ~~
14:57 NotFound_b Or haven't been written at all.
15:01 rurban_ joined #parrot
15:01 dip joined #parrot
15:03 rurban left #parrot
15:03 rurban_ is now known as rurban
15:03 PacoLinux joined #parrot
15:07 * lucian is off. bye!
15:07 lucian left #parrot
15:09 dalek Rosella/gh-pages: 354721a | Whiteknight++ | index.html:
15:09 dalek Rosella/gh-pages: github generated gh-pages branch
15:09 dalek Rosella/gh-pages: review: https://github.com/Whiteknig​ht/Rosella/commit/354721aa82
15:10 dukeleto it must be Monday because my first cup of coffee had absolutely no effect on me
15:14 cotto_work As an added bonus, #ps is now at a different time.
15:14 dukeleto cotto_work: i put #ps on UTC on our google calendar, so I never have to remember that :)
15:15 dukeleto cotto_work: i just set up some SMS/email reminders and google figures that junk out
15:15 dmalcolm left #parrot
15:16 dalek Rosella/gh-pages: 23a459f | Whiteknight++ | index.html:
15:16 dalek Rosella/gh-pages: quick html cleanup
15:16 dalek Rosella/gh-pages: review: https://github.com/Whiteknig​ht/Rosella/commit/23a459fc3e
15:16 atrodo As an even added bonus, I won't miss it because I'll be there an hour early if I forget
15:16 atrodo it == #ps
15:16 janus left #parrot
15:16 janus` joined #parrot
15:20 cotto_work Happy π day!
15:28 mikehh_ joined #parrot
15:28 dmalcolm joined #parrot
15:32 mikehh left #parrot
15:36 mikehh_ is now known as mikehh
15:37 mikehh opbots, names
15:43 * Coke wonders what advantage using PCT gives him.
15:47 whiteknight great. #ps is moved again? I hate daylight savings time
15:47 whiteknight it looks like I wont be attending #ps again for another 6 months
15:47 dukeleto whiteknight: that really sucks
15:47 dukeleto whiteknight: #ps didn't move, just our collection perception of time
15:47 cotto_work whiteknight: blech
15:47 NotFound_b #ps time doesn't move at all, that's the whole point.
15:48 whiteknight it moves relative to the rest of my schedule
15:48 atrodo Perhaps it is not #ps that moves, but you that moves.  Meditate on that
15:48 NotFound_b whiteknight: your schedule moves relative to Earth's time.
15:49 cotto_work What is the sound of one parrot clapping?
15:51 dukeleto whiteknight: is your $job inflexible about taking off for #ps ?
15:54 Coke Certainly around DST is a good time to ask folks if we need to reschedule PS. (Keeping in mind that we have to go through it again in a few weeks for the EU)
15:55 whiteknight dukeleto: #ps now happens during my commute
15:56 dukeleto whiteknight: ah. sadface.
15:56 whiteknight previously, when it was happening during work hours, I was able to attend
15:58 cotto_work whiteknight: when does your commute typically happen?
16:02 whiteknight 4:30-5:30 EST
16:16 * Coke wonders if there is a timezone that means "eastern, with whatever DST rules are currently in effect."
16:17 Coke (as opposed to EST vs. EDT)
16:17 atrodo Generally, I will just say "Eastern" and hope the other person understands that it implies the current DST rules
16:18 theory joined #parrot
16:18 Coke atrodo: same here.
16:19 Psyche^ joined #parrot
16:19 Patterner left #parrot
16:19 Psyche^ is now known as Patterner
16:22 plobsing left #parrot
16:27 bluescreen left #parrot
16:32 kthakore dukeleto: yes yes they do!
16:34 sorear Coke: TZ='America/New York' should do it
16:34 mj41_nb left #parrot
16:41 Coke sorear: I was referring to english: like whiteknight's send, where he added "EST".
16:42 dmalcolm left #parrot
16:42 Coke Where the natural thing might be to say "Eastern".
16:42 bluescreen joined #parrot
16:53 dmalcolm joined #parrot
16:58 plobsing joined #parrot
17:27 alin left #parrot
17:30 ShaneC joined #parrot
17:42 dmalcolm left #parrot
17:45 lucian joined #parrot
17:57 dd070 joined #parrot
18:15 dd070 left #parrot
18:16 plobsing left #parrot
18:28 plobsing joined #parrot
18:28 bluescreen left #parrot
18:29 lucian_ joined #parrot
18:33 lucian left #parrot
18:33 dalek Rosella/gh-pages: b8a5d7d | Whiteknight++ | index.html:
18:33 dalek Rosella/gh-pages: add links to the dependencies section
18:33 dalek Rosella/gh-pages: review: https://github.com/Whiteknig​ht/Rosella/commit/b8a5d7da4c
18:34 dalek Rosella/gh-pages: f68dac3 | Whiteknight++ | index.html:
18:34 dalek Rosella/gh-pages: fill out index.html with information about the various component libraries
18:34 dalek Rosella/gh-pages: review: https://github.com/Whiteknig​ht/Rosella/commit/f68dac3af0
18:35 dalek winxed: r858 | NotFound++ | trunk/winxedst1.winxed:
18:35 dalek winxed: fix null non-var arguments to predefs
18:35 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=858
18:41 sigue left #parrot
18:41 sigue joined #parrot
18:45 mj41_nb joined #parrot
18:47 bluescreen joined #parrot
19:07 zby_home joined #parrot
19:08 GodFather joined #parrot
19:11 GodFather left #parrot
19:12 GodFather joined #parrot
19:13 cogno joined #parrot
19:15 lucian joined #parrot
19:16 lucian_ left #parrot
19:19 dalek winxed: r859 | NotFound++ | trunk/winxedst (2 files):
19:19 dalek winxed: generate die opcode for throw with string argument, diagnose error when is not
19:19 dalek winxed: var or string
19:19 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=859
19:19 dalek winxed: r860 | NotFound++ | trunk/pir/winxed_compiler.pir:
19:19 dalek winxed: update installable compiler
19:19 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=860
19:28 GodFather left #parrot
19:33 alin joined #parrot
19:39 hercynium joined #parrot
19:45 lucian_ joined #parrot
19:48 lucian left #parrot
19:48 plobsing left #parrot
19:49 cogno left #parrot
19:52 cogno joined #parrot
19:56 twinshadow joined #parrot
19:56 twinshadow left #parrot
20:07 cotto_work seen novabyte
20:07 aloha novabyte was last seen in #parrot 6 hours 57 mins ago leaving the channel.
20:16 plobsing joined #parrot
20:21 cotto_work hi plobsing
20:25 plobsing cotto_work: hi
20:30 whiteknight left #parrot
20:34 dodathome joined #parrot
20:36 perlite_ joined #parrot
20:40 perlite left #parrot
20:40 perlite_ is now known as perlite
20:56 ambs left #parrot
21:20 bacek_at_work ~~
21:25 kid51 joined #parrot
21:31 cotto_work hio bacek_at_work
21:31 bacek_at_work aloha, cotto_work
21:38 cogno left #parrot
21:39 bluescreen left #parrot
21:41 cotto_work bacek_at_work: when you suggested "gen_call $P0, [INT32, INT32, $I0, INT32, $I1]" for ffi, what did [...] represent?
21:42 lucian joined #parrot
21:43 bacek_at_work cotto_work, [ret_val_type, arg0_type, arg0, arg1_type, arg1]
21:46 lucian_ left #parrot
21:48 dodathome left #parrot
21:52 cotto_work bacek_at_work: right, but what does the [...] construct translate to in terms of M0 registers?
21:53 bacek_at_work cotto_work, no idea. "Key PMC"?
21:53 bacek_at_work "thunk"?
21:53 bacek_at_work "something to hold all this stuff"
21:54 cotto_work it sounds like the kind of thing that M1+ would be good for
21:55 bacek_at_work cotto_work, nope. Consider your example with multiple "set_arg". You need some intermediate storage for it.
21:55 bacek_at_work Same storage is used here. Slightly more explicitly
21:55 cotto_work bacek_at_work: sure
21:55 plobsing I interpret it as an array of ints constant. If you claim M0 doesn't have such things, they can be emulated by having the next op be a 'goto +10' and then using an in-line buffer.
21:56 cotto_work plobsing: that sounds reasonable
21:58 alin left #parrot
22:00 alin joined #parrot
22:08 novabyte joined #parrot
22:08 theory left #parrot
22:10 mtk left #parrot
22:15 whiteknight joined #parrot
22:17 mtk joined #parrot
22:19 zby_home left #parrot
22:21 kid51 ~~
22:21 whiteknight ++
22:24 tadzik %%
22:25 dalek Rosella/gh-pages: ec14085 | Whiteknight++ | i (2 files):
22:25 dalek Rosella/gh-pages: Add in the new logo image. Some cosmetic fixes to the page
22:25 dalek Rosella/gh-pages: review: https://github.com/Whiteknig​ht/Rosella/commit/ec14085669
22:28 dalek Rosella/gh-pages: 869882f | Whiteknight++ | index.html:
22:28 dalek Rosella/gh-pages: small cosmetic fixes
22:28 dalek Rosella/gh-pages: review: https://github.com/Whiteknig​ht/Rosella/commit/869882fe77
22:28 dalek Rosella: 4729323 | Whiteknight++ | LICENSE:
22:28 dalek Rosella: +LICENSE file
22:28 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/47293238e6
22:31 theory joined #parrot
22:33 mj41_nb left #parrot
22:35 hercynium left #parrot
22:37 lucian left #parrot
22:38 alin left #parrot
23:01 rurban_ joined #parrot
23:03 rurban left #parrot
23:03 rurban_ is now known as rurban
23:10 theory left #parrot
23:17 bacek_at_work left #parrot
23:22 cotto_work @@
23:41 aloha left #parrot
23:45 arnsholt left #parrot
23:48 * cotto_work decommutes
23:49 novabyte left #parrot
23:55 theory joined #parrot
23:58 dalek nqp/ctmo-no-p6regex.pir: aa87ead | jonathan++ | src/Regex/P6Regex/Grammar.pm:
23:58 dalek nqp/ctmo-no-p6regex.pir: Need to still use the HLL library; was missed when removing the P6Regex PIR file.
23:58 dalek nqp/ctmo-no-p6regex.pir: review: https://github.com/perl6/nqp/commit/aa87eadde6
23:58 dalek nqp/ctmo-no-p6regex.pir: 1eb4e1b | jonathan++ | build/Makefile.in:
23:58 dalek nqp/ctmo-no-p6regex.pir: Another round of Makefile changes to work towards getting things working again after removing P6Regex.pir.
23:58 dalek nqp/ctmo-no-p6regex.pir: review: https://github.com/perl6/nqp/commit/1eb4e1b4f3
23:58 dalek nqp/ctmo-no-p6regex.pir: 9ace6d6 | jonathan++ | src/Regex/P6Regex/ (2 files):
23:58 dalek nqp/ctmo-no-p6regex.pir: Need to use block form of packages when there's multiple in a file.
23:58 dalek nqp/ctmo-no-p6regex.pir: review: https://github.com/perl6/nqp/commit/9ace6d652d
23:58 dalek nqp/ctmo-no-p6regex.pir: d014f94 | jonathan++ | src/Regex/P6Regex/Compiler.pm:
23:58 dalek nqp/ctmo-no-p6regex.pir: Work around a MAIN bug.
23:58 dalek nqp/ctmo-no-p6regex.pir: review: https://github.com/perl6/nqp/commit/d014f94f99
23:58 dalek nqp/ctmo-no-p6regex.pir: 4460cea | jonathan++ | src/Regex/P6Regex/Compiler.pm:
23:58 dalek nqp/ctmo-no-p6regex.pir: Move regex compiler init to the right place; now all tests pass that pass in the ctmo branch.
23:58 dalek nqp/ctmo-no-p6regex.pir: review: https://github.com/perl6/nqp/commit/4460cea99f
23:58 bacek_at_work joined #parrot
23:58 dalek nqp/ctmo-no-p6regex.pir: 9cdb417 | jonathan++ | src/NQP/Actions.pm:
23:58 dalek nqp/ctmo-no-p6regex.pir: Fix MAIN bug.
23:58 dalek nqp/ctmo-no-p6regex.pir: review: https://github.com/perl6/nqp/commit/9cdb417836
23:58 dalek nqp/ctmo-no-p6regex.pir: e3036b0 | jonathan++ | src/stage0/ (6 files):
23:58 dalek nqp/ctmo-no-p6regex.pir: Update bootstrap with MAIN fix and P6Regex.pir gone.
23:58 dalek nqp/ctmo-no-p6regex.pir: review: https://github.com/perl6/nqp/commit/e3036b09d2
23:58 dalek nqp/ctmo-no-p6regex.pir: 749d34c | jonathan++ | src/Regex/P6Regex/Compiler.pm:
23:58 dalek nqp/ctmo-no-p6regex.pir: Toss workaround for MAIN bug.
23:58 dalek nqp/ctmo-no-p6regex.pir: review: https://github.com/perl6/nqp/commit/749d34cae2
23:59 aloha joined #parrot

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced