|
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
|
|||