Camelia, the Perl 6 bug

IRC log for #parrot, 2013-08-31

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:08 particle joined #parrot
00:08 perlite joined #parrot
00:12 Psyche^ joined #parrot
00:23 rurban joined #parrot
01:10 FROGGS_ joined #parrot
03:26 rurban joined #parrot
03:34 preflex_ joined #parrot
08:00 denisboyun joined #parrot
08:20 denisboyun joined #parrot
08:42 PacoAir joined #parrot
10:05 agre joined #parrot
10:21 agre___ joined #parrot
11:32 denis_boyun joined #parrot
12:42 mtk joined #parrot
12:59 benabik joined #parrot
13:54 PacoAir joined #parrot
14:10 dalek rakudo/nom: 2d5abca | moritz++ | tools/build/NQP_REVISION:
14:10 dalek rakudo/nom: bump NQP revision
14:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2d5abcaedb
14:48 agre joined #parrot
15:23 autark_ joined #parrot
15:23 PacoAir joined #parrot
15:23 particle1 joined #parrot
15:25 ilbot2 joined #parrot
15:25 Topic for #parrot is now Parrot 5.7.0 "Azure-rumped Parrot" | http://parrot.org/ | Log: http://irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
15:34 denis_boyun joined #parrot
16:16 agre_ joined #parrot
19:17 ilbot2 joined #parrot
19:17 Topic for #parrot is now Parrot 5.7.0 "Azure-rumped Parrot" | http://parrot.org/ | Log: http://irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
19:17 perlite_ joined #parrot
19:17 arnsholt_ joined #parrot
19:17 dalek joined #parrot
19:17 preflex_ joined #parrot
19:17 Liz joined #parrot
19:17 agre__ joined #parrot
19:17 drift_ joined #parrot
19:17 patspam_ joined #parrot
19:17 sa1_ joined #parrot
19:19 tokuhirom joined #parrot
19:19 Hunger joined #parrot
19:19 cxreg joined #parrot
19:21 jsut joined #parrot
19:21 knewt joined #parrot
19:21 TonyC joined #parrot
19:21 drift_ joined #parrot
19:21 preflex joined #parrot
19:21 dalek joined #parrot
19:21 arnsholt_ joined #parrot
19:21 particle1 joined #parrot
19:21 slavorg joined #parrot
19:21 allison_ joined #parrot
19:21 Timbus joined #parrot
19:21 dngor joined #parrot
19:21 pjcj joined #parrot
19:21 cotto joined #parrot
19:21 smash joined #parrot
19:21 davidfetter joined #parrot
19:21 d4l3k_ joined #parrot
19:21 rurban joined #parrot
19:23 perlite_ joined #parrot
19:24 cxreg2 joined #parrot
19:25 drift joined #parrot
19:25 allison joined #parrot
19:26 perlite joined #parrot
19:26 slavorg joined #parrot
19:26 particle joined #parrot
19:26 dngor_ joined #parrot
19:26 rurban joined #parrot
19:27 d4l3k_ joined #parrot
19:27 preflex joined #parrot
19:36 perlite joined #parrot
19:36 ingy joined #parrot
19:36 pjcj joined #parrot
19:36 patspam joined #parrot
19:36 Maddingue joined #parrot
19:36 rurban1 joined #parrot
19:45 ilbot2 joined #parrot
19:45 Topic for #parrot is now Parrot 5.7.0 "Azure-rumped Parrot" | http://parrot.org/ | Log: http://irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
19:45 dngor joined #parrot
19:45 patspam joined #parrot
19:45 rurban joined #parrot
19:45 kshannon joined #parrot
19:45 dalek joined #parrot
19:45 preflex joined #parrot
19:45 TonyC joined #parrot
19:45 Timbus joined #parrot
19:45 cotto joined #parrot
19:45 smash joined #parrot
19:45 knewt joined #parrot
19:45 perlite joined #parrot
19:45 pjcj joined #parrot
19:45 pmichaud joined #parrot
19:45 allison joined #parrot
19:45 wagle_ joined #parrot
19:45 tokuhirom joined #parrot
19:45 slavorg joined #parrot
19:45 agre__ joined #parrot
19:45 Liz joined #parrot
19:45 cosimo joined #parrot
19:45 Util joined #parrot
19:46 eternaleye joined #parrot
19:46 cooper joined #parrot
19:46 drift joined #parrot
19:46 davidfetter joined #parrot
19:46 silug_ joined #parrot
19:46 woolfy_ joined #parrot
19:46 Hunger joined #parrot
19:46 sa1 joined #parrot
19:46 Maddingue joined #parrot
19:46 PacoAir joined #parrot
19:46 autark_ joined #parrot
19:46 mtk joined #parrot
19:46 FROGGS_ joined #parrot
19:46 Patterner joined #parrot
19:46 atrodo joined #parrot
19:46 rurban_ joined #parrot
19:46 Tene_ joined #parrot
19:46 sorear joined #parrot
19:46 p6eval joined #parrot
19:46 particle joined #parrot
19:55 slavorg joined #parrot
20:28 agre__ Hi. Does anyone know how to run manually PIR code generated by perl6 --target=pir ... ?
20:30 benabik joined #parrot
20:38 sorear agre__: that's more of a #perl6 question; there are complicated interactions between setting initialization and program loading that make what you're trying to do 1. nontrivial 2. not officially supported
20:38 sorear might want to look at the mechanisms that create the "perl6" executable.
20:39 sorear the --target=pir is intended for precompiling library modules; if you put your code in a module, you can reduce the per-run compilation to one line
20:58 agre__ Yes, I already managed to load the .pir file as a module... It looks like code compiled into PIR runs about twice faster than .pl code, but still quite slow (comparing to perl5 or even python). Is is parrot that works slow or perl6 compiler that is slow/emits inefficient code? Or both?
21:00 FROGGS_ agre__: I guess both are slow
21:00 FROGGS_ and it is sort of unfair to compare Perl 5 to Perl 6, you would at least have to compare Perl5 + Moose to Perl 6
21:03 agre__ No, I'm not trying to compare perl5/6. They are different languages IMHO. I'm just trying to figure out the potential of parrot, is there a potential to speed things up in the future.
21:04 FROGGS_ agre__: if someone would work on it I'd say yes
21:04 sorear agre__: there's no runtime difference between the .pir and the .pl
21:04 agre__ I think the runtime difference comes from parsing overhead
21:04 sorear "twice faster" is wrong, becuase you're comparing an additive factor (not having to run the bloody slow parser), not a multiplicative factor
21:04 agre__ Ok
21:06 sorear agre__: on speed: there are a few different aspects to this
21:06 sorear for basic arithmetic and control flow and packed array access whatnot, parrot is actually quite fast, much faster than the p5vm
21:07 sorear object-orientation and lexicals and subroutine calling are substantially slower in parrot
21:07 agre__ because these basic things are built in
21:08 sorear worse, there's a significant impedence mismatch between what parrot provides and what perl 6 wants for things like lexicals
21:08 sorear so the perl 6 compiler has to generate fairly long-winded code to properly implement lexical access etc
21:08 sorear and in perl 6, when you say $x + $y, that isn't just using the (fast) parrot add__nnn opcode
21:09 sorear it's making a subroutine call to &infix:<+>, which uses the multimethod dispatcher to find an appropriate sub to call, which *then* runs add__nnn
21:10 agre__ at first glance I atributed it to a bad optimizer
21:10 sorear the code which is generated is about as good as it can be without usage information that's only available at runtime
21:11 agre__ I see
21:12 agre__ But not for that 'see 1;' obviously :)
21:14 agre__ why these high-level features (OO etc) are slow?
21:17 agre__ aren't they implemented in C?
21:18 sorear I'll let someone else take that
21:19 agre__ :)
21:20 FROGGS_ agre__: if rakudo's 'OO etc' was implemented in C, why would it need parrot at all?
21:20 agre__ I meant parrot's OO
21:20 FROGGS_ because, 'OO etc' is pretty much
21:21 FROGGS_ ahh
21:22 FROGGS_ I think rakudo's and parrot's opinion of OO diverges
21:22 FROGGS_ so, parts of it are implemented in C but most in NQP
21:23 agre__ I suspect that in parrot OO features compile into low-level PASM, which has no such notion as OO or subroutine call. Am I right?
21:23 FROGGS_ dunno
21:26 agre__ I tried to compile .pir into .pasm using `parrot -o prog.pasm prog.pir', but prog.pasm appeared to be PBC instead. Why is that?
21:27 FROGGS_ agre__: option -a ?
21:29 agre__ man page says: "Assume PASM input on "stdin"." I have PIR as input
21:30 FROGGS_ maybe the defaults have changed
21:30 agre__ looks like
21:30 agre__ looking into source
21:31 benabik PASM is largely archaic.  IIRC, PIR added key features so there are things PASM can't even do.
21:31 benabik I don't recall what these things are, mind you.
21:34 agre__ now I see why there are no 'PASM book' in docs.
21:42 ggherdov joined #parrot
21:42 agre_ joined #parrot
21:54 sorear agre_: pasm is essentially dead
21:55 sorear pir and pasm were originally two syntaxes for writing parrot bytecode, in addition to the binary pbc files
21:55 sorear we decided we didn't need three ways to do the exact same thing
21:56 sorear the biggest difference that ever existed between pir and pasm is that pir lets you assign names to registers, pasm forces you to use P00 - P99
21:56 sorear (and yes, it limits you to 100.  pir lets you use thousands of registers if you need them)
21:57 FROGGS_ wow, 100 is not much
22:00 rurban joined #parrot
22:17 davidfetter_ joined #parrot
23:18 dalek rakudo/nom: 5d09997 | (Elizabeth Mattijsen)++ | src/core/Range.pm:
23:18 dalek rakudo/nom: Ranges starting with @a..  and (1,2,3).. work (right hand side already worked)
23:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5d09997669
23:40 dalek rakudo/nom: 1fca644 | (Elizabeth Mattijsen)++ | src/core/Range.pm:
23:40 dalek rakudo/nom: Also allow Match objects as endpoints of a Range
23:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1fca6440b9
23:50 rurban joined #parrot
23:54 benabik joined #parrot

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

Parrot | source cross referenced