Parrot 5.7.0 "Azure-rumped Parrot" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 30 August 2013.
00:08 particle joined, perlite joined 00:12 Psyche^ joined 00:23 rurban joined 01:10 FROGGS_ joined 03:26 rurban joined 03:34 preflex_ joined 08:00 denisboyun joined 08:20 denisboyun joined 08:42 PacoAir joined 10:05 agre joined 10:21 agre___ joined 11:32 denis_boyun joined 12:42 mtk joined 12:59 benabik joined 13:54 PacoAir joined
dalek kudo/nom: 2d5abca | moritz++ | tools/build/NQP_REVISION:
bump NQP revision
14:10
14:48 agre joined 15:23 autark_ joined, PacoAir joined, particle1 joined 15:25 ilbot2 joined
moderator Parrot 5.7.0 "Azure-rumped Parrot" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
15:34 denis_boyun joined 16:16 agre_ joined 19:17 ilbot2 joined
moderator Parrot 5.7.0 "Azure-rumped Parrot" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
perlite_ joined, arnsholt_ joined, dalek joined, preflex_ joined, Liz joined, agre__ joined, drift_ joined, patspam_ joined, sa1_ joined 19:19 tokuhirom joined, Hunger joined, cxreg joined 19:21 jsut joined, knewt joined, TonyC joined, drift_ joined, preflex joined, dalek joined, arnsholt_ joined, particle1 joined, slavorg joined, allison_ joined, Timbus joined, dngor joined, pjcj joined, cotto joined, smash joined, davidfetter joined, d4l3k_ joined, rurban joined 19:23 perlite_ joined 19:24 cxreg2 joined 19:25 drift joined, allison joined 19:26 perlite joined, slavorg joined, particle joined, dngor_ joined, rurban joined 19:27 d4l3k_ joined, preflex joined 19:36 perlite joined, ingy joined, pjcj joined, patspam joined, Maddingue joined, rurban1 joined 19:45 ilbot2 joined
moderator Parrot 5.7.0 "Azure-rumped Parrot" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
dngor joined, patspam joined, rurban joined, kshannon joined, dalek joined, preflex joined, TonyC joined, Timbus joined, cotto joined, smash joined, knewt joined, perlite joined, pjcj joined, pmichaud joined, allison joined, wagle_ joined, tokuhirom joined, slavorg joined, agre__ joined, Liz joined, cosimo joined, Util joined 19:46 eternaleye joined, cooper joined, drift joined, davidfetter joined, silug_ joined, woolfy_ joined, Hunger joined, sa1 joined, Maddingue joined, PacoAir joined, autark_ joined, mtk joined, FROGGS_ joined, Patterner joined, atrodo joined, rurban_ joined, Tene_ joined, sorear joined, p6eval joined, particle joined 19:55 slavorg joined
agre__ Hi. Does anyone know how to run manually PIR code generated by perl6 --target=pir ... ? 20:28
20:30 benabik joined
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
might want to look at the mechanisms that create the "perl6" executable.
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:39
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? 20:58
FROGGS_ agre__: I guess both are slow 21:00
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
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:03
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
agre__ I think the runtime difference comes from parsing overhead
sorear "twice faster" is wrong, becuase you're comparing an additive factor (not having to run the bloody slow parser), not a multiplicative factor
agre__ Ok
sorear agre__: on speed: there are a few different aspects to this 21:06
for basic arithmetic and control flow and packed array access whatnot, parrot is actually quite fast, much faster than the p5vm
object-orientation and lexicals and subroutine calling are substantially slower in parrot 21:07
agre__ because these basic things are built in
sorear worse, there's a significant impedence mismatch between what parrot provides and what perl 6 wants for things like lexicals 21:08
so the perl 6 compiler has to generate fairly long-winded code to properly implement lexical access etc
and in perl 6, when you say $x + $y, that isn't just using the (fast) parrot add__nnn opcode
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:09
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
agre__ I see 21:11
But not for that 'see 1;' obviously :) 21:12
why these high-level features (OO etc) are slow? 21:14
aren't they implemented in C? 21:17
sorear I'll let someone else take that 21:18
agre__ :) 21:19
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
FROGGS_ because, 'OO etc' is pretty much
ahh 21:21
I think rakudo's and parrot's opinion of OO diverges 21:22
so, parts of it are implemented in C but most in NQP
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
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:26
FROGGS_ agre__: option -a ? 21:27
agre__ man page says: "Assume PASM input on "stdin"." I have PIR as input 21:29
FROGGS_ maybe the defaults have changed 21:30
agre__ looks like
looking into source
benabik PASM is largely archaic. IIRC, PIR added key features so there are things PASM can't even do. 21:31
I don't recall what these things are, mind you.
agre__ now I see why there are no 'PASM book' in docs. 21:34
21:42 ggherdov joined, agre_ joined
sorear agre_: pasm is essentially dead 21:54
pir and pasm were originally two syntaxes for writing parrot bytecode, in addition to the binary pbc files 21:55
we decided we didn't need three ways to do the exact same thing
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
(and yes, it limits you to 100. pir lets you use thousands of registers if you need them)
FROGGS_ wow, 100 is not much 21:57
22:00 rurban joined 22:17 davidfetter_ joined
dalek kudo/nom: 5d09997 | (Elizabeth Mattijsen)++ | src/core/Range.pm:
Ranges starting with @a.. and (1,2,3).. work (right hand side already worked)
23:18
kudo/nom: 1fca644 | (Elizabeth Mattijsen)++ | src/core/Range.pm:
Also allow Match objects as endpoints of a Range
23:40
23:50 rurban joined 23:54 benabik joined