»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:00 cotto left
rafl it's ok if it's in a 3-way 00:01
there he is. all sorted. 00:05
00:10 benabik_ joined, benabik left, benabik_ is now known as benabik 00:25 kst left
crked Hi, 00:46
perl
00:46 wooden left
crked nom: class A{ method b{ say "b" } } A.b=method { say "c" }; my $a=A.new(); $a.b; 00:50
p6eval nom: OUTPUT«===SORRY!===␤Confused at line 1, near "class A{ m"␤»
crked nom: class A{ method b{ say "b" } }; A.b=method { say "c" }; my $a=A.new(); $a.b; 00:53
p6eval nom: OUTPUT«b␤Cannot assign to a non-container␤ in mu <anon> at /tmp/YuaPVFQpBW:1␤ in mu <anon> at /tmp/YuaPVFQpBW:1␤␤»
crked How to redefine a method? 00:54
00:55 Minimiscience joined
gfldex crked: perlcabal.org/syn/S12.html#Open_vs_...ed_Classes 00:57
01:01 LimitSupremum left 01:05 wamba left, LimitSupremum joined 01:15 LimitSupremum left, LimitSupremum joined 01:22 whiteknight left 01:29 tokuhirom joined 01:35 Minimiscience left 01:39 fbass joined 01:41 kst joined 01:44 benabik left 01:47 fbass left 01:53 woosley joined 01:54 woosley left 02:02 xinming left 02:07 jevin left 02:15 xinming joined 02:30 LimitSupremum left 02:31 LimitSupremum joined 02:38 LimitSupremum left 02:48 uniejo_in_riga joined 02:50 thou joined 02:54 LimitSupremum joined 02:58 uniejo_in_riga left 03:00 uniejo_in_riga joined 03:02 tokuhirom left
soh_cah_toa rakudo: constant FOO = 'bar' 03:07
p6eval rakudo 922500: OUTPUT«===SORRY!===␤Constant type declarator not yet implemented at line 22, near "= 'bar'"␤»
soh_cah_toa rakudo: our constant $FOO = 'bar' 03:08
p6eval rakudo 922500: OUTPUT«===SORRY!===␤Constant type declarator not yet implemented at line 22, near "= 'bar'"␤»
soh_cah_toa nom: our constant $FOO = 'bar'
p6eval nom: ( no output )
soh_cah_toa nom: our constant $FOO = 'bar'; say 'constant'
p6eval nom: OUTPUT«constant␤»
soh_cah_toa when is nom gonna be merged into master? it's soon, right? 03:09
sorear real soon 03:10
if nothing unexpected happenes, 11.08 will be nom-bases
soh_cah_toa good 03:12
and what the heck? why is Configure.pl (on nom branch) telling me that i don't have nqp? even if i use --with-nqp, i get an exception. nom doesn't build w/ parrot-nqp? 03:14
sorear correct
soh_cah_toa agh
03:14 kboga left
sorear nom requires nqp-nom 03:14
parrot-nqp is nqp-rx
soh_cah_toa oh, what's different in nqp-nom? 03:15
sorear more or less everything
nqp-rx is a thin layer over Parrot with Perl syntax; nqp-nom is a VM abstraction layer
nqp-nom has definite semantics for objects, primitive types, arithmetic, multiple dispatch, etc 03:16
nqp-rx delegates all that to Parrot
soh_cah_toa ah neat
can i create hashes w/o using hash() now? ;)
sorear probably now
not
soh_cah_toa egh 03:17
well anyway, where's the source for nqp-nom? i need to install it
sorear one thing that hasn't changed is that nqp wants simplified syntax
I think it's on github somewhere, too lazy to look, --gen-nqp will DTRT
03:18 woosley joined
soh_cah_toa well, i can't find it on github but i'll try --gen-nqp 03:18
sorear maybe perl6/nqp or parrot/nqp or nqp/nqp
soh_cah_toa oh yeah, right
03:37 kaare_ joined 03:38 uniejo_in_riga left 03:54 woosley left
pmichaud nqp is github.com/perl6/nqp 03:55
soh_cah_toa yup, i found it
pmichaud (good morning, #perl6)
in nqp (-nom), one can create hashes using nqp::hash(...) 03:56
so far it only understands key, value, pairs... but eventually it'll also support the named syntax.
soh_cah_toa ok
pmichaud as well as being able to interpolate arrays and other hashes
soh_cah_toa is it just me or does nom take *a lot* longer to build than master? 03:57
pmichaud it's currently taking a lot longer, yes.
I finally got a good benchmark on it yesterday, and jnthn and I aren't quite sure why it's so much longer
as soon as we get the features for nom->master in place I'll undoubtedly start looking for the reasons for the slowdown 03:58
soh_cah_toa great
pmichaud I think the current plan is that nom will become master on Tuesday. 03:59
soh_cah_toa :D
pmichaud and we'll issue the 2011.08 release of Rakudo (nom-based) on Wednesday.
soh_cah_toa very awesome
pmichaud (might do it on Tuesday... it will depend a bit on the timing of the Parrot release) 04:00
soh_cah_toa nom: our constant $FOO, $BAR; say 'done' 04:04
p6eval nom: OUTPUT«===SORRY!===␤Missing initializer on constant declaration at line 1, near ", $BAR; sa"␤»
soh_cah_toa nom: our constant $FOO = 1, $BAR = 2; say 'done'
p6eval nom: OUTPUT«===SORRY!===␤Symbol '$BAR' not predeclared in <anonymous> (/tmp/jBXFXEirjY:1)␤»
pmichaud declarators are lower precedence than ,
soh_cah_toa i can only declare one constant at a time?
pmichaud s/lower/tighter/ 04:05
TimToady it's usually better for readability to declare them one at a time
unless they're related 04:06
nom: our constant ($x,$y) = 1,2; say $y
p6eval nom: OUTPUT«===SORRY!===␤Malformed constant at line 1, near "($x,$y) = "␤»
TimToady that might be supported someday
pmichaud std: our constant ($x, $y) = 1,2; # curious
p6eval std 516268a: OUTPUT«===SORRY!===␤Malformed constant at /tmp/ESLfJi_dpt line 1:␤------> our constant ⏏($x, $y) = 1,2; # curious␤ expecting any of:␤ trait␤ type_declarator␤Parse failed␤FAILED 00:01 118m␤» 04:07
soh_cah_toa i suppose if they're related i should just use an enum anyway
TimToady I'm a bit biased against multiple declarations; I generally do separate 'my' decls too, even though my supports sigs
nom: my ($x,$y) = 1,2; say $y
p6eval nom: OUTPUT«2␤»
TimToady but I'd still write those separately 04:08
soh_cah_toa yeah, i usually do that too. just a habit, i guess
TimToady well, I think it's a good habit 04:09
nom: our constant @fib = 0, 1, *+* ... *; say @fib[10] 04:10
p6eval nom: OUTPUT«===SORRY!===␤Cannot handle constant @fib with non-literal value yet at line 1, near "= 0, 1, *+"␤»
04:10 drbean left
TimToady niecza: constant @fib = 0, 1, *+* ... *; say @fib[10] 04:10
p6eval niecza v8-51-g785e335: OUTPUT«55␤»
TimToady niecza: constant @fib = 0, 1, *+* ... *; @fib[10] = 42; say @fib[10] 04:11
p6eval niecza v8-51-g785e335: OUTPUT«42␤»
TimToady aha, niecza is cheating :
:)
nom: constant $x = 42; $x = 43; say $x 04:12
p6eval nom: OUTPUT«Cannot assign to a non-container␤ in mu <anon> at /tmp/5GkHwKYSSf:1␤ in mu <anon> at /tmp/5GkHwKYSSf:1␤␤»
04:18 crked left 04:24 uniejo_in_riga joined
pmichaud TimToady: Where did you get the Perl 6 shirt you were wearing yesterday? My wife saw it in the P6 hackathon video and wants one. :-) 04:37
dalek : 9dc0e54 | (Kolia Morev)++ | docs/Perl6/Perl5/Differences.pod:
fix typo: slice parameter should be **@
04:47
: 70e4f1f | (Kolia Morev)++ | docs/Perl6/Perl5/Differences.pod:
fix broken link

Obsolete section renamed to Obsolete Functions
: 2b57b00 | (Kolia Morev)++ | docs/Perl6/Perl5/Differences.pod:
fix code formatting
: c5b229c | moritz++ | docs/Perl6/Perl5/Differences.pod:
Merge pull request #1 from kolyuchiy/misc-doc-fixes

Misc doc fixes
moritz good morning
pmichaud awesome patches 04:48
04:48 JimmyZ_ joined 04:49 JimmyZ_ left, JimmyZ_ joined
JimmyZ_ pmichaud: is there a video online? 04:50
I saw the T-shirt here misc.yapceurope.lv/img/photo/perl6-curve.jpg but I can't see the front 04:51
pmichaud there are versions of the shirt available at cafepress.com/pugscode... but I'm not sure that's the source of TimToady++'s shirt. It seems to me that TimToady's shirt was a bit nicer than the ones on cafepress 04:53
04:54 uniejo_in_riga left
JimmyZ_ pmichaud: yeah, I want to buy one too 04:54
pmichaud video is at www.youtube.com/watch?v=OJwlCzW5O_Q 04:55
TimToady It was given to me by audreyt++ 04:56
JimmyZ_ sigh...
that may be a long time ago.. 04:59
moritz perl6: say 'a.' ~~ /a<.ws>/ 05:06
p6eval niecza v8-51-g785e335: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({}.hash)>␤»
..rakudo 922500: OUTPUT«a␤»
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped b…
05:10 soh_cah_toa left 05:16 sivoais left 05:21 cotto joined
mberends -> Erlangen o 05:24
pmichaud mberends: o/ 05:25
05:26 mberends left
pmichaud -> breakfast nom 05:26
05:27 JimmyZ_ left, benabik joined 05:28 JimmyZ_ joined 05:41 Trashlord left, masak joined
masak morning, #perl6 05:41
TimToady o/ 05:42
sorear hi
05:42 Trashlord joined
takadonet1 nom: my Rat $x; my $a;$a+=$x; 05:45
p6eval nom: OUTPUT«Cannot access attributes in a type object␤ in method denominator at src/gen/CORE.setting:1074␤ in sub infix:<+> at src/gen/CORE.setting:4779␤ in mu <anon> at /tmp/S5CEtQnydb:1␤ in mu <anon> at /tmp/S5CEtQnydb:1␤␤»
takadonet1 nom: my Rat $x=1.0; my $a;$a+=$x;
p6eval nom: ( no output )
05:50 wamba joined
dalek ast: d05edc5 | moritz++ | S05-substitution/subst.t:
unfudge ss/// test for rakudo
06:02
06:02 drbean joined
dalek kudo/nom: c3be2ce | moritz++ | src/core/Str.pm:
(cheated) Str.samespace
06:05
06:11 cotto left 06:21 JimmyZ_ left
rafl wonders where cotto is 06:27
tadzik good morning #perl6
there was a hackathon video?
moritz tadzik: see backlog, a youtube likn 06:28
06:55 < pmichaud> video is at www.youtube.com/watch?v=OJwlCzW5O_Q
tadzik oh, thanks
06:29 LimitSupremum left 06:31 envi joined
moritz nom: say <a b c>.elems 06:31
p6eval nom: OUTPUT«3␤»
masak morning, tadzik. 06:32
tadzik I is on the video :)
moritz where? which one are you? :-) 06:34
tadzik :) 0:10 or 0:11, next to Patrick
moritz ah 06:35
tadzik: do you know who the guy before you is?
tadzik I must have been working on formattingcode, looking at the facial expression ;)
it's baest, isn't he?
moritz thought so, but wasn't sure 06:36
tadzik next to rafl
moritz right
rafl yes, beast. 06:37
moritz nom: say 'FoO bar baz...'.subst(rx/\w+/, -> $_ { .str.lc.ucfirst } ) 06:38
p6eval nom: OUTPUT«Method 'str' not found for invocant of class 'Match'␤ in block <anon> at /tmp/3NX7eNTfzk:1␤ in method reify at src/gen/CORE.setting:3208␤ in method reify at src/gen/CORE.setting:3113␤ in method reify at src/gen/CORE.setting:3113␤ in method gimme at src/gen/CORE.setting:…
benabik .Str?
moritz nom: say 'FoO bar baz...'.subst(rx/\w+/, -> $_ { .Str.lc.ucfirst } )
tadzik off breakfasting
p6eval nom: OUTPUT«Foo bar baz...␤»
06:38 ZaphrodZenovka left
moritz nom: say 'FoO bar baz...'.subst(rx/\w+/, -> $_ { .Str.lc.ucfirst }, :g ) 06:38
p6eval nom: OUTPUT«Foo Bar Baz...␤»
masak .str ?
moritz native :-) 06:39
masak o.O
tadzik: did you harbour cotto tonight? if so, tadzik++ 06:41
moritz "native typo" :-)
06:44 uniejo_in_riga joined
dalek kudo/nom: 1a442ef | moritz++ | / (5 files):
cosec, acosec
06:45
06:47 Khisanth left, uniejo_in_riga left 06:48 uniejo_in_riga joined
masak delves into reams of C errors/warnings 06:53
moritz dreams? realms? 06:54
both have an edit distance of 1 to 'reams' :-)
masak moritz: dictionary.reference.com/browse/ream 06:55
TiMBuS if you think C spits out a lot of errors, you havent used enough C++
masak and I don't plan to, either.
I'm generally open towards new impressions and new languages, but C++ is where I draw the line.
yath heh 06:56
07:00 tokuhirom joined 07:01 Khisanth joined, tokuhirom left, tokuhirom joined
tadzik masak: yep :) And I just realized we missed a great Soviet Russia joke opportunity yesterday 07:04
07:06 uniejo__ joined, uniejo_in_riga left
masak in Soviet Russia restaurant, waiter orders YOU. 07:06
tadzik also, the dinner comes for you 07:07
jnthn o.O
tadzik :D
07:08 Khisanth left
moritz jnthn: if I add multi method Int(Parcel:D:) { self.flat.elems} to Parcel.pm, I get "Method 'instantiate_generic' not found for invocant of class 'Undef'" during compilation 07:11
07:12 Khisanth joined 07:15 cotto joined
masak cotto! \o/ 07:16
cotto hi masak
where are you at? 07:17
masak Konventa Seta.
jnthn and pmichaud and I are staying on top of the percelain museum. 07:18
cotto that's the same place as rafl and tadzik
jnthn No, they're elsewhere 07:19
moritz: hm, wtf.
moritz jnthn: just pushed a commit where I've added that method commented out, if you want to play with it
dalek kudo/nom: 0447cac | moritz++ | / (4 files):
implement capitalize
cotto jnthn, indeed. The similar name confused me. 07:20
Languages I don't speak tend to do that. ;)
07:20 sivoais joined 07:21 mj41 joined 07:22 uniejo__ left
tadzik wait til you get to know the street names :0 07:22
:)
cotto looks like a couple blocks from my place
so many bacteria
tadzik Ukaju, Uneku, Unekalu, Aielu
cotto Smilsu seems friendly 07:23
tadzik gah, I can't reproduce a bug. It appears only when I parse S26 as a whole 07:26
benabik tadzik: Copy S26 into a new file and start deleting lines until it doesn't occur, then put that one back? 07:27
tadzik benabik: do you know how many lines is S26? :P
but I could try that, yes
benabik tadzik: Details, details.
tadzik: You could delete sections at a time instead… Bisection like.
tadzik yeah, I know what you mean 07:28
07:28 c1sung left
benabik sections until it works, put it back, paragraphs, lines, etc. 07:28
tadzik well, I tracked down the section in which it crashes, but when I isolated it, it works
I'll just do a full 'make' instead of 'make perl6' all the time
07:28 c1sung joined
tadzik the worse thing is that I made it segfault once or twice :/ 07:29
so it may be all related to that gc bug we have :/ 07:30
benabik It might be something about the way it parses things up to it… ends up in an inconsistent state...
Ugh, GC bugs.
tadzik but if I parse S26 with gc turned off... gah, my rams :(
benabik: it's about a data structure, twine, having even number of elements, which is quite forbidden. And I checked every compiler methods that constructs them, and they all construct odd-elmented lists 07:31
benabik So one's getting dropped somewhere or something. Not good. 07:32
tadzik oh, you should've seen this old one :)
You attach a .WHY to a Sub object, and then you get "Method .WHY not found for invocant of class NQPLexPad"
or CallContext, depending on the memory layout 07:33
or a full-blown segfault ;)
07:33 c1sung left
rafl cotto: you alright, mate? didn't even notice you leaving? 07:33
jnthn pmichaud: Any idea why regex_coderef gives "Method 'push' not found for invocant of class 'Undef'"
?
07:33 c1sung joined
pmichaud jnthn: on what regex? 07:33
cotto rafl, I'm fine. I got a few hours of sleep. Should be enough to run on.
jnthn pmichaud: A smallish grammar, lemme paste 07:34
cotto Anyone in Riga interested in lunch in a couple hours?
tadzik probably
rafl good!
jnthn pmichaud: gist.github.com/1144673
rafl also, yes
pmichaud jnthn: let me update my build and I'll work on it 07:35
jnthn Thanks! 07:36
07:37 Khisanth left
cotto Which restaurants are good around here? 07:37
masak cotto: what type food? 07:40
cotto masak, I'm fine if it's cooked. Preferably someplace with beer though. 07:41
masak so far, we haven't had any spectacular failures re food.
there are lots of eateries here in Old Town.
cotto that's promising. Should I just go outside, spin around and pick whichever place I end up pointing at? 07:42
jnthn Yes, provided it's not McDonalds ;)
tadzik does anyone have a machine with, like, enourmous amount of ram? I'd like to try parsing S26 with GC turned off, and my 2 GBs fill up in like a few seconds...
oh, I can still try ms2 07:43
cotto tadzik, I have a bunch though some of it's known-bad.
not a lot, but it doesn't take a lot
tadzik cotto: what do you mean by known-bad? 07:44
07:44 jaldhar left
cotto tadzik, produces errors in memtest86 07:44
tadzik oh, ok 07:45
pmichaud "Bad Memory! No refresh for you!"
tadzik ok, it still fails on ms2
so it's probably not write bareers
jnthn tadzik: OK, that means it's not a missing wb and thus is likely a missing mark.
tadzik oh, so still bad? 07:46
crap
jnthn yeah
tadzik I'd like to make sure, I don't want to declare it a blocker until I'm sure it is
well, it still is for Declarator blocks
moritz nom: my @a; @a.push: 1 07:47
p6eval nom: ( no output )
moritz nom: my @a; @a.push: 1; say "alive"
p6eval nom: OUTPUT«alive␤»
tadzik and parrot -g ms just segfaults
moritz also gets the "Method 'push' not found for invocant of class 'Undef'", this time while compiling t/spec/S05-capture/caps.t 07:48
tadzik but it segfaults on bare perl6.pbc too, so that's, ehm, ok
pmichaud wtf? I just got the error when trying to build rakudo. 07:49
moritz nom: 'aa' ~~ /(.)+/; say $0.WHAT 07:50
p6eval nom: OUTPUT«Parcel()␤»
moritz pmichaud: yesterday I got one too. Rerunning 'make' seemed to clear up everything
I questioned my sanity back then, mostly because I was rather tired :-)
pmichaud that's... worrisome.
pmichaud does "make clean" and "make" 07:51
moritz nom: say Parcel ~~ Capture
p6eval nom: OUTPUT«Bool::False␤»
07:52 c1sung left 07:53 c1sung joined, Khisanth joined
jnthn got setting compiled 07:55
didn't make clean, though
pmichaud yeah, mine compiled the second time around 07:56
I'm not sure what changed, though -- even the tests I ran yesterday are failing with the same error today.
(i.e., the "'push' not found for invocant..." error)
and they fail even if I roll back to the previou commit 07:57
*previous commits
(i.e., the version that I tested them with originally)
I wonder if I forgot to push something somewhere... although I can't seem to find it.
jnthn pmichaud: Assume nqp version bump(s) needed have happened? 07:58
07:58 chadadavis joined
pmichaud jnthn: appears they're there, yes. 07:58
jnthn pmichaud: Doing a totally fresh clone and build in a different directory 08:00
pmichaud okay, 51eb0f8 is able to handle a grammar okay, including the one you nopasted. So the problem is somewhere after that. 08:02
I guess I can bisect
08:03 c1sung left, lumi_ joined, c1sung joined
jnthn pmichaud: 6ac303d added the lines of code that crash. 08:04
08:04 wamba left
masak exhales 08:05
I think that's enough C programming for a while.
pmichaud must be that some blocks don't have a .[1] entry yet. 08:06
I suppose I could put the decls into .[0] 08:08
08:08 drbean left
pmichaud tries that 08:08
I still wish I knew what is causing nom to compile so much slower than master 08:10
tadzik we have memory issues too, don't we?
I mean, master didn't need 1.5 Gbs 08:11
* GBs
moritz I wonder if it's because we do more things in the setting
pmichaud actually, nom's setting is smaller (loc) than masters
so I suspect that isn't it.
pmichaud@kiwi:~/nom$ wc src/gen/CORE.setting 6984 23853 210955 src/gen/CORE.setting 08:12
pmichaud@kiwi:~/rakudo$ wc -l src/gen/core.pm
7910 src/gen/core.pm
moritz I wonder if we could compile each statementlist as soon as it's parsed, and then discard the PAST tree 08:13
or something like that
pmichaud changing .[1] to .[0] seems to have fixed the problem.. spectesting 08:15
I've gone ahead and pushed without waiting for the spectest 08:16
dalek kudo/nom: 884dc50 | pmichaud++ | src/Perl6/Actions.pm:
Push regex lexical declarations into $block[0] instead of $block[1]
mj41 compilers' features ... rakudo/nom is winning ... bit.ly/perl6feat 08:17
pmichaud anyway, nom's setting is smaller than masters, yet nom takes 2+ times longer to compile
*not* including the increased time of the parrot .pir -> .pbc step
(if that's included, it's an even greater difference)
moritz mj41++ # that's some way cool visualization
tadzik it's not a gc bug! \o 08:18
so it's my fault somewhere :/
mj41: woo, awesome!
pmichaud mj41: can the colors match the colors of the features table somehow...?
moritz mj41: is that updated regularly (or automatically)? 08:19
pmichaud jnthn/others: let me know if 884dc50 fixes your issue(s). kthx 08:20
mj41 working to have that automatically from cron
jnthn pmichaud: pulling
pmichaud I'd like "implemented" to be green, "missing" to be red, "partial" to be yellow, etc. :)
mj41 not sure our platform can do that
masak do you have the source code? :P 08:21
pmichaud spectests passed with 884dc50 08:22
mj41 yes, have some spagethi code ... but working on it
pmichaud afk for a bit 08:23
cotto For those in Riga, how about lunch at Victory Pub on Tirgonu iela at 11:45? 08:24
chadadavis nom: loop (my $i=0;$i<1;$i++){}; # say 'abc' ~~ /<&nonexistant>/ 08:25
p6eval nom: OUTPUT«===SORRY!===␤Missing block at line 1, near "(my $i=0;$"␤»
tadzik the speakers training is on 12
masak cotto: that's like, in 20 mintes?
08:25 c1sung left
cotto masak, yes. tadzik, I missed that. 08:25
08:25 c1sung joined
masak cotto: feels slightly early, but sounds kinda nice otherwise. 08:26
chadadavis I'd like to call that ^ a bug, but can't understand why that seems to confuse the parser. Expert opinions?
moritz std: loop (my $i=0;$i<1;$i++){};
p6eval std 516268a: OUTPUT«===SORRY!===␤Whitespace required before < operator at /tmp/74KwR7R_CD line 1:␤------> loop (my $i=0;$i<⏏1;$i++){};␤ expecting escape␤Parse failed␤FAILED 00:01 121m␤»
cotto actually, I'm going to do the speaker's training.
masak chadadavis: maybe nqp doesn't have loop (;;)? 08:27
cotto I don't see anything about lunch. Anyone want to grab a quick bite before the speaker training?
tadzik okay, win. S26 has a broken Pod
chadadavis masak, each statement is fine alone.
nom: loop (my $i=0;$i<1;$i++) {};
dalek atures: 61e9558 | moritz++ | template.html:
link to overview chart by mj41++
p6eval nom: ( no output )
cotto would go just to see damian, not having done so before
chadadavis nom: # say 'abc' ~~ / <&nonexistant> / 08:28
benabik tadzik: Error messages are preferable to segfaults though.
p6eval nom: ( no output )
moritz look at that output from STD
tadzik benabik: yeah, I know that
moritz std: loop (my $i=0;$i<1;$i++) {};
p6eval std 516268a: OUTPUT«===SORRY!===␤Whitespace required before < operator at /tmp/duyYcGEJQT line 1:␤------> loop (my $i=0;$i<⏏1;$i++) {};␤ expecting escape␤Parse failed␤FAILED 00:01 121m␤»
moritz chadadavis: see above. It's really a syntax error
cotto masak, sorry I didn't realize that was today.
tadzik benabik: it's just a breakthrough, when something that you thought of as an Ultimate Wisdom turns out to be wrong :0
:)
chadadavis moritz: got it now. Thanks.
moritz chadadavis: without whitespace, the $i< is parsed as a $hash<...> index 08:29
benabik tadzik: And that is an excellent summation of debugging.
08:29 fbass joined
tadzik true 08:29
I now wonder how on earth did it even parse...
S26 is now one, big, hundreds of lines long formatting code 08:30
masak o.O
tadzik or maybe not
no, I'm just blind. Huh
hehe, the failing case is just L<C<=item>|#Lists> L<C<=item>|#Lists> 08:32
benabik tadzik: Duplicated? 08:33
08:34 ZaphrodZenovka joined
tadzik benabik: cutting out the whole paragraphs didn't end up that bad :) 08:36
08:36 cotto left
tadzik benabik: seems so, =pod L<C<b>|a> L<C<b>|a> fails too 08:36
I wonder if that's related to the fact that it gets serialized only once, and then just looked up 08:37
moritz nom: multi infix:<+>(int $a, int $b) { nqp::add_i($a, $b) }; say 1 + 2 08:46
p6eval nom: OUTPUT«3␤»
moritz nom: multi infix:<+>(int $a, int $b) {say "native!"; nqp::add_i($a, $b) }; say 1 + 2
p6eval nom: OUTPUT«3␤»
09:03 cogno_ joined, cognominal_ joined 09:05 drbean joined, cogno left 09:06 cognominal left 09:11 Mowah joined
moritz often wants a substr of the form $str.subst($from, $to), not ($from, $chars) 09:11
09:13 araujo left 09:14 REPLeffect left
TimToady with StrPos you can have that 09:15
09:21 ]]MTEm[[alhzen joined
]]MTEm[[alhzen Hello 09:21
09:21 hanekomu joined
]]MTEm[[alhzen ‏♥♥♥♥♥ 09:21
masak ]]MTEm[[alhzen: hi! ♥♥♥♥♥♥♥♥ 09:22
]]MTEm[[alhzen Helpmy
masak ok.
how?
]]MTEm[[alhzen I want register in frendo 09:23
moritz ]]MTEm[[alhzen: try #freenode then
]]MTEm[[alhzen Speak arabic 09:24
I
Rry
Try
masak ]]MTEm[[alhzen: try #freenode channel.
]]MTEm[[alhzen I am tem from syria 09:25
And you?
masak I'm from #perl6.
:D
moritz ]]MTEm[[alhzen: please stop being off-topic here. If you want to get help, ask in #freenode
]]MTEm[[alhzen Ok 09:26
Thanks
masak if you want to get help with Perl 6, feel free to be on-topic :)
]]MTEm[[alhzen What the channel
masak #freenode
09:28 REPLeffect joined
dalek ast: 37f29cd | moritz++ | S05-capture/caps.t:
fudge caps.t for rakudo
09:30
kudo/nom: e77d1cb | moritz++ | src/core/ (2 files):
Capture.{pairs,kv,values,keys} and Match.caps
09:31
kudo/nom: 2e824dd | moritz++ | / (2 files):
Match.chunks
09:32 wamba joined
]]MTEm[[alhzen Thankyou 09:32
09:33 ]]MTEm[[alhzen left 09:34 mishin joined 09:44 thou left 09:46 xinming left, xinming joined 09:58 Mowah left 10:00 daniel-s joined 10:04 thelazydeveloper joined 10:08 wtw joined, uniejo_in_riga joined 10:11 Alias joined 10:19 wtw left, fbass left 10:28 hanekomu left 10:35 LoRe_ is now known as LoRe 10:37 LoRe is now known as LoRe_ 10:56 agentzh joined 10:57 am0c joined 11:00 donri joined 11:03 DarthGandalf left 11:06 DarthGandalf joined
moritz nom spectest count: 11914 pass, 0 fail, 521 todo, 1638 skip 11:16
11:18 MayDaniel joined 11:21 whiteknight joined 11:23 JimmyZ joined 11:30 MayDaniel left
JimmyZ good evening, #perl6 11:41
11:43 woosley joined
pmichaud about the link to the summary chart... how will that be kept up to date? 11:47
(on perl6.org/compilers/features)
even the chart that is there now says "August 9", which is pretty far out of date :-| 11:48
jnthn Afternoon, #perl6 11:53
Leffe! \o/
masak Kvass! ø/ 11:54
jnthn oh de e kvass :P
masak :) 11:55
11:57 araujo joined, araujo left, araujo joined
tadzik o/ 12:07
12:10 ZaphrodZenovka left 12:11 whiteknight left
JimmyZ \o 12:12
12:13 whiteknight joined
tadzik ...that was one of the weirdest bugs I did 12:13
jnthn tadzik: Found it? :)
tadzik so a subroutine takes an array, shifts an element, then does something recursively on the rest of the elements
so the recursive call shifts the element to, so when you're back to the outer one, the thing you worked on is shifted 12:14
modified. Broken
jnthn oh shift...
tadzik aye
jnthn had a bug like that in SymbolTable a couple of weeks ago
Not at all fun to find.
12:16 kaare_ left 12:19 bbkr joined
bbkr rakudo: [].[0..*] 12:20
p6eval rakudo 922500: OUTPUT«(timeout)»
JimmyZ nom: [].[0..*] 12:21
p6eval nom: ( no output )
bbkr what is "nom"?
tadzik nom branch of Rakudo
moritz pmichaud: re summary chart, mj41++ said he was working on a cron job 12:22
masak Holy Dancing Links Batman!
pmichaud, tadzik: the p5 moose pentominoes solver takes 90 minutes on my laptop. any guess as to how long the C solver takes with the same problem? 12:23
JimmyZ aloha: nom? 12:24
tadzik masak: I know almost nothing about the complexity of the algorithm you're using 12:25
masak tadzik: the exact cover problem is NP-complete. 12:26
tadzik o-ho 12:27
masak tadzik: the DLX algorithm does recursion to the level of rows participating in the solution, and is set apart from other algorithms by not cloning any data structures.
it's just links being re-pointed back and forth. hence the name.
anyway, I figgere there could be some overhead from the Perl 5 runloop and stuff, but probably no more than 70%-80%. 12:28
I... was wrong :D
JimmyZ nom: say [].[0..10]
masak the Perl 5 run takes 90 minutes. the C run takes 8 SECONDS.
p6eval nom: OUTPUT«Any() Any() Any() Any() Any() Any() Any() Any() Any() Any() Any()␤»
masak that's between two and three orders of magnitude speedup. 12:29
tadzik yep 12:30
did you try NYTProf on the Perl 5 one?
masak no, I didn't. interesting idea. 12:31
sadly, I have to build slides now, not try interesting side-tracks :/
phenny: tell mberends that I'd be delighted if he could have a look at my noobish C and tell me what I could improve. github.com/masak/dlx-simple/tree/master/c/src 12:32
phenny masak: I'll pass that on when mberends is around.
moritz .u A 12:34
phenny U+0041 LATIN CAPITAL LETTER A (A)
12:34 cogno_ left
moritz nom: say 'A' ~~ /<[\c[LATIN CAPITAL LETTER A]>/ 12:34
p6eval nom: OUTPUT«A␤»
moritz nom: say 'T' ~~ /<[\c[LATIN CAPITAL LETTER A]>/
12:34 cogno joined
p6eval nom: OUTPUT«T␤» 12:34
moritz still NYI, ok
dalek ast: 0a66a58 | moritz++ | / (5 files):
rakudo unfudges
12:35
12:37 mishin left
JimmyZ just see another POD6 parser github.com/perl6/perl6-examples/tr...er/lib/Pod 12:39
masak JimmyZ: that's mberends', I believe. 12:40
JimmyZ masak: yeah
masak JimmyZ: it was abandoned because it hit speed limits at the time.
JimmyZ masak: there is HTTP example, github.com/eric256/perl6-examples-...r/lib/HTTP 12:41
masak: github.com/perl6/perl6-examples/ doesn't have one
masak: could I push one? 12:42
moritz JimmyZ: probably because there's LWP::Simple now
JimmyZ looks like 2009 is pretty old
dalek atures: 526ced2 | moritz++ | template.html:
add missing </a>
12:43
12:44 JimmyZ left, JimmyZ joined
masak 2009 is so last decade. 12:45
12:56 uniejo_in_riga left 12:57 uniejo_in_riga joined
moritz picks up mberends++ from the station 13:00
13:01 wamba left 13:17 hanekomu joined 13:20 orafu left, zby_home_ joined, orafu joined 13:24 crked joined 13:25 cotto joined 13:45 kaare_ joined 13:49 crked left 13:50 crked joined 13:51 crked is now known as coach, jaldhar joined, coach is now known as Guest30000 13:54 perlhack joined 13:55 Guest30000 is now known as couture 13:56 couture is now known as Guest60485, Guest60485 is now known as abercrombie 13:58 perlhack left 14:00 jaldhar left 14:02 hanekomu left 14:03 woosley left 14:04 Khisanth left, drbean left 14:06 ZaphrodZenovka joined
masak quiet today... 14:08
sbp yeah... 14:12
flussence my computer's fans suddenly went quiet the same time you said that :/
I think you just killed my PSU fan, masak :( 14:13
14:13 hanekomu joined
masak flussence: you could give it some work again by running my pentominoes solver. 14:14
flussence hah, I've been running my spectest graph thing all day :)
masak ah :) 14:15
flussence++
14:17 Khisanth joined 14:23 wamba joined, Aridai joined
[Coke] msg pmichaud (timing of parrot release) - do you have a preferred time? let me know. 14:30
phenny, tell pmichaud (timing of parrot release) - do you have a preferred time? let me know.
phenny [Coke]: I'll pass that on when pmichaud is around.
masak $ ./perl6 t/spec/S32-trig/pi.t 14:31
===SORRY!===
no bigint lib loaded
pi.t shows up as a failing test file in my spectest runs because of this.
jnthn sejm here 14:32
For a bunch of others too
masak lejm.
for me, only that one.
jnthn oh
lucky you :P
masak yeah.
[Coke] - 14:34
14:34 uniejo_in_riga left 14:36 JimmyZ_ joined, ponbiki joined 14:38 JimmyZ left, JimmyZ_ is now known as JimmyZ 14:39 hanekomu left 14:50 kboga joined
masak today's mini-challenge: write a small, idiomatic, nice, self-explanatory permutation generator in Perl 6. 14:55
input: [1, 2, 3, 4, 5], for example.
output: [[1, 2, 3, 4, 5], [1, 2, 3, 5, 4], [1, 2, 4, 3, 5], ...] in some order. 14:56
masak is struck by the thought that maybe there is one already on RC
14:58 araujo left 14:59 araujo joined 15:01 jaldhar joined
masak yep: rosettacode.org/wiki/Permutations#Perl_6 15:01
jnthn nom: say [X] [1,2,3,4,5] xx 5 15:02
p6eval nom: OUTPUT«(timeout)» 15:03
jnthn nom: say [X] [1,2,3] xx 3
p6eval nom: OUTPUT«1 3 2 3 1 3 2 3 3 3 2 3 1 3 2 3 2 3 2 3 1 3 2 3 3 3 2 3 1 3 2 3 1 3 2 3 1 3 2 3 3 3 2 3 1 3 2 3 2 3 2 3 1 3 2 3 3 3 2 3 1 3 2 3 3 3 2 3 1 3 2 3 3 3 2 3 1 3 2 3 2 3 2 3 1 3 2 3 3 3 2 3 1 3 2 3 1 3 2 3 1 3 2 3 3 3 2 3 1 3 2 3 2 3 2 3 1 3 2 3 3 3 2 3 1 3 2 3 2 3 2 3 1 3 2 3 3 3…
jnthn ah, no, not that :)
masak :)
would've been nice.
I always feel when I'm implementing permutations that there's one primitive missing to make it real easy. 15:04
but I can never figure out what that primitive is.
unless it's &perms, that is :P
but it feels more like something like [X], as jnthn suggested.
jnthn nom: grammar Foo { token TOP { <x> { say "oh hai" } }; token x { a } }; Foo.parse('a') 15:06
p6eval nom: OUTPUT«Method 'nqpattr' not found for invocant of class 'Undef'␤ in mu <anon> at src/stage2/QRegex.nqp:484␤ in mu CAPHASH at src/stage2/QRegex.nqp:483␤ in method MATCH at src/gen/CORE.setting:5546␤ in regex TOP at /tmp/Jv6WZdmWZA:1␤ in method parse at src/gen/CORE.setting:5570…
jnthn pmichaud: ^^
15:14 Aridai left 15:21 cottoo joined 15:22 MayDaniel joined, cotto left
masak nom: grammar Foo { token TOP { <x> }; token x { a } }; Foo.parse('a'); say "alive" 15:23
p6eval nom: OUTPUT«alive␤»
masak hm.
sbp rakudo: say '🐹' 15:24
p6eval rakudo 922500: OUTPUT«🐹␤»
sbp rakudo: say '💗💜💛💚💜' 15:25
p6eval rakudo 922500: OUTPUT«💗💜💛💚💜␤»
benabik .u 💗
phenny U+1F497 (No name found)
sbp .o unicode 💗 15:26
phenny GROWING HEART - www.fileformat.info/info/unicode/char/1F497/
sbp just testing the astral plane; with the side effect of notifying any OS X users present of a certain Lion feature... 15:27
benabik ?
Extra colorful fonts?
sbp the astral plane is a jolloquialism for characters outside of the BMP
yeah. Apple Color Emoji, they call it
15:32 cogno_ joined 15:35 cogno left 15:36 masak left 15:44 mj41 left
dalek kudo/nom: e6ed5e6 | Coke++ | t/spectest.data:
run another test, track failure modes.
15:45
15:47 agentzh left
takadonet hey all 15:52
15:54 daniel-s left, envi left 16:11 daniel-s joined 16:14 whiteknight left 16:20 fbass joined 16:35 daniel-s left 16:59 JimmyZ left 17:20 worr joined 17:25 thou joined 17:27 protalis joined, tokuhirom left, tokuhirom joined
protalis anyone used Perl6 for web development, yet? 17:31
17:32 tokuhirom left
tadzik I'm quite sure some people do 17:34
17:36 whiteknight joined
protalis ok, great. is there a cpan for Perl6, where I could find out what modules have been ported? I would need the basics, CGI::FAST, DBI, DBD::Pg, to get started. Any ideas where I could begin to assemble an Apache, FASTCGI, Postgres, Perl6 stack? 17:37
flussence modules.perl6.org
17:43 anbz joined 17:44 zby_home_ left 17:45 anbz left 17:47 anbz joined
protalis thanks, flussence., I'll check it out. 17:53
arnsholt masak's blog (strangelyconsistent.org) is published with Perl 6 17:57
But it's static, so the HTML is generated off-line and uploaded
18:01 donri left 18:04 fbass left 18:15 djanatyn_ joined
abercrombie nom: my @arr[2;3]=[1,2,3,4,5,6]; say @arr[1;1]; 18:16
p6eval nom: OUTPUT«===SORRY!===␤Shaped variable declarations are not yet implemented at line 1, near "=[1,2,3,4,"␤»
18:21 MayDaniel left 18:23 Searle3 joined 18:28 djanatyn left, djanatyn_ is now known as djanatyn 18:29 birdwindupbird joined 18:47 wolfman2000 left 18:49 Searle joined 18:50 Searle left 18:57 ponbiki left 19:03 thou left 19:05 uniejo_in_riga joined
sorear good * #perl6 19:09
[Coke] sorear: ho 19:12
19:16 ponbiki joined
uniejo_in_riga nom: say <Good>, * 19:18
p6eval nom: OUTPUT«Good*␤»
19:18 fbass joined
uniejo_in_riga nom: say <Good>, *++ 19:20
p6eval nom: OUTPUT«Good_block1010␤»
uniejo_in_riga ;-) 19:23
19:27 worr left 19:33 birdwindupbird left 19:42 tokuhirom joined
pmichaud oh hi 19:44
phenny pmichaud: 14:30Z <[Coke]> tell pmichaud (timing of parrot release) - do you have a preferred time? let me know.
pmichaud [Coke]: anytime is fine... earlier is possibly better for us
I'd like to get the nom release out sometime late Tuesday or early Wednesday... but since Europe is several hours advanced from US EST that means an earlier Parrot release is helpful if that can be done. 19:45
19:46 masak joined
masak oh hai 19:46
pmichaud 12:28 <masak> the Perl 5 run takes 90 minutes. the C run takes 8 SECONDS. 19:47
19:48 awwaiid_ joined
pmichaud "Why is Perl 5 so slow?!? It'll never be successful if it can't perform as fast as C!" (s/C/Perl 5/; s/5/6;) 19:48
jnthn evenin' 19:49
masak pmichaud: right.
moritz "the trick is to play to perl's strengths, not weaknesses" 19:50
masak I think the actual takeaway lesson is that it also takes 3-4 times longer to author that code. and it's about as long. and contains about as many more bugs.
and it wasn't as enjoyable :) 19:51
19:51 awwaiid left 19:52 orphu joined
masak moritz: well, to be honest I was surprised at the difference being that great. maybe I'm doing something horribly unoptimized with Moose or something. 19:52
orphu: greetings.
orphu hi masak 19:53
19:53 bbkr left 19:54 bbkr joined
moritz masak: I'm sure a profile would show up insteresting results 19:55
masak oh, ok.
tadzik++ suggested one too. 19:56
I don't have time to make one before my talk, though :/
if someone here on the channel decided to do it before lunch tomorrow, I'd make sure they'd get a very heartfelt mention in the talk... 19:58
20:00 noganex joined, mj41 joined
moritz masak: where's the code? 20:00
masak github.com/masak/dlx-simple 20:03
20:03 mberends joined, noganex_ left
masak the Perl 5 code is under the perl5/ directory. 20:03
mberends \o/
phenny mberends: 12:32Z <masak> tell mberends that I'd be delighted if he could have a look at my noobish C and tell me what I could improve. github.com/masak/dlx-simple/tree/master/c/src
masak mberends: it's noobish but really really fast :P 20:04
moritz \o mberends 20:05
[Coke] pmichaud: I can stay up late monday night and cut it midnight eastern time.
[Coke] sees that most of the failure modes that changed yesterday changed back. ;) 20:06
moritz [Coke]: pmichaud and jnthn tracked that one down 20:08
pmichaud [Coke]: whatever works for you will be fine here.
moritz masak: are nongrams even Exact Cover?
[Coke] moritz: but, one of them started passing instead of failing the old way, so yay. 20:09
20:09 worr joined, uniejo_in_riga left
pmichaud The absolute earliest I would cut the release is Tuesday evening here, around 20h00, which would be 13h00 where you are. Wednesday morning might be a bit more likely. 20:09
jnthn pmichaud: Note conf dinner is on Tue evening. 20:10
20:10 uniejo_in_riga joined
pmichaud jnthn: yes, I'm taking that into account :) 20:10
jnthn ok :)
pmichaud I did say "earliest", as in meaning "absolutely not before..."
masak moritz: surprising, isn't it? :) 20:12
moritz: I wasn't sure before working it out, but yes, they are. 20:13
moritz masak: the "obvious" mapping didn't seem like "exact" cover, but maybe there's a not-quite-so-obvious mapping
masak yes, there is.
I'll let you work it out on your own. you'll like finding the solution.
20:21 MayDaniel joined 20:25 mj41 left
moritz :-) 20:26
jnthn oh...turns out my second talk is on Wednesday, not Tuesday! 20:27
pmichaud \o/ ?
masak mumbles inaudibly
20:28 worr left
moritz thinks all speakers should be told that their talks are one day earlier than they actually are :-) 20:28
jnthn heh :)
moritz at least most speakers from the #perl6 crowd :-)
jnthn I actually got things prep'd in time for tue :)
masak how can a talk be one day earlier than it actually is? that doesn't make any sense.
moritz masak: no, but people can tell you that it's one day earlier 20:29
20:29 uniejo_in_riga left
moritz masak: so that you have some preparation backup time 20:29
mberends masak: I'll really enjoy studying your code in the morning, when my brain is more functional ;)
masak moritz: yes, I'm just trying to creatively misunderstand you. :)
jnthn masak: I'm looking forward to your talks today :P
masak mberends: cool. no rush. I'm not blocking on the review. :)
jnthn: aaaugh 20:30
masak starts throwing slides around the room
moritz gotta catch 'em all!
masak Slidémon 20:34
pmichaud be sure to play by the slide rules 20:35
20:35 cottoo left
masak dåligt. :) 20:35
20:36 cotto joined
lue hello Earth o/ 20:37
moritz aborts the Devel::NYTProf run after ~20 minutes and hopes that the HTML reports works out for a partial nytprof.out too
nope, did not :(
moritz too tired to do the full thing today
lue wonders what d􏿽xE5ligt means (and what language it is)... 20:39
jnthn lue: Swedish. "bad" 20:40
felher tominoes (see Knuth's paper above) 20:41
* Sudoku
sorry for the noise. copy-paste misclick
dalek p: 0e60187 | pmichaud++ | src/ (4 files):
Refactor handling of $¢ in subs, make sure that match objects can
TimToady can I give my talk on Tuesday? 20:44
masak TimToady said what I was thinking... 20:45
pmichaud won't it be easier then, after you've given it on Monday? ;-)
I'm sure many of us would enjoy an encore presentation, yes. :-P 20:46
TimToady easier, but more boring, since you'll already know all the jokes
pmichaud is this talk separate from SOTO? If so, you could re-give SOTO on Tuesday :-) :-)
pmichaud missed OSCON + SOTO this year :(
TimToady yes, it's a new talk 20:47
though there will be bits of it
bits of soto in the new talk
masak once upon a time people actually made transcripts of the SOTOs. I don't know if that is done anymore. 20:48
but it was back around 2000, so I guess people had lots of time on their hands after the bubble had burst...
TimToady no, they're trying to get me used to the notion of being a dead white male
masak read that as 'dead white whale' 20:49
pmichaud jnthn: locally I now have
> grammar Foo { token TOP { <x> { say 'oh hai' } }; token x { a }; }; say Foo.parse('a')
oh hai
a
spectesting and pushing
TimToady well, I'd better get back to work, sigh...
dalek kudo/nom: 1820f2e | pmichaud++ | tools/build/NQP_REVISION:
Bump NQP_REVISION to get latest qregex cursor and closure fixes. jnthn++
20:50
20:52 MayDaniel left
jnthn \o/ 20:52
pmichaud: Does say $<x> in that closure work?
TimToady is there a fast way to reduce the resolution of a whole dirctory of jpegs? my odp file is 300MB at the moment... 20:54
flussence mogrify -resize 75% *.jpg (or something like that...) 20:55
20:55 dorlamm joined
pmichaud > grammar Foo { token TOP { <x> { say $<x> } }; token x { a }; }; Foo.parse('a') 20:55
a
TimToady flussence: thanks! 20:56
pmichaud jnthn: ^^ 20:57
flussence
.oO( I actually got something right first time?! :D )
jnthn pmichaud++ 20:58
20:59 whiteknight left, bbkr left, whiteknight joined 21:00 bbkr joined 21:03 am0c left 21:08 kaare_ left 21:12 dorlamm left
lue ooc, is there any other way besides eval to call a module whose name you'll only know at run-time? 21:15
21:19 daniel-s joined
masak lue: what does "call a module" mean in that question? 21:23
21:23 buubot_backup left
lue To be more specific, how can I C<use> a module whose name I only know at run time? 21:25
pmichaud jnthn: gist.github.com/1145328 # stage timings, 2011.07 vs nom -- very interesting 21:26
jnthn pmichaud: looking
I did a C level profile too
pmichaud looks like we're losing a bunch of time in post and pir stages
jnthn hm 21:27
The profile at C level showed what seemed to be elevated levels of GC activity
pmichaud elapsed time is 74s (2011.07) vs 155s (nom)
increases are in parse +24s, post +40s, and pir +14s
jnthn parse really means parse + past, of course. 21:28
pmichaud correct
jnthn Well, that's not really true...
pmichaud but the bulk of the increase (54s out of 81s) isn't in the parsing or in the past
jnthn We're also building a much more detailed model.
But yeah, the losses in later stages are high. 21:29
Especially past to post.
pmichaud I don't quite understand why that's 3x longer, tbh. 21:30
jnthn I can believe we're building more PAST nodes.
I find it much harder to believe we'd be building 3 times as many though.
Is the master profile also using the new register alloc stuff that went into PAST? 21:31
pmichaud yes.
jnthn OK, good. So we needn't consider that.
pmichaud the pir we generate is a fair bit bigger 21:32
pmichaud@kiwi:~/rakudo$ wc src/gen/core.pir 193150 572697 5738277 src/gen/core.pir
pmichaud@kiwi:~/nom$ wc src/gen/CORE.setting.pir 248375 868844 10555580 src/gen/CORE.setting.pir
masak lue: 'use' is a parse-time operation. if you only know the name at run time, by definition you can't do 'use' on it. 21:33
pmichaud jnthn: I'm not quite sure why that would be the case.
(it's not wrong for that to be the case.. I'm just not certain of the reasons why) 21:34
lue oh, ok. (Using custom output modules for Pod6 will be... interesting, then)
21:34 dorlamm joined
pmichaud importing at runtime is done with 'require' 21:34
perlcabal.org/syn/S11.html#Runtime_Importation 21:35
jnthn I guess it's hard to do, but my suspicion is that if we removed the stuff that built classes in the loadinits in master, and removed the deserialization sub in nom, we'd be looking at more level numbers.
pmichaud well, the real question is "how do we improve this?" making the parser faster won't help so much 21:36
masak hm. if importation is now to lexpads, and 'require' is done at runtime, doesn't that mean we actually change the lexpad at runtime? isn't that impossible?
pmichaud masak: require declares lexicals
(I think.)
yes, that's what the "means something like" section says. 21:37
masak ok. 21:38
pmichaud jnthn: even assuming that the regex engine became 2x as fast as master, overall compilation will still be longer than master 21:39
jnthn pmichaud: The :load :init sub is the obvius lace for improvements.
*place
In the setting it's 160,000 lines long.
pmichaud yes, I noticed that
oh
I bet we go quadratic on generating the pir for that sub, for one.
since it's a bunch of concatenations 21:40
jnthn ouch.
I can look at splitting it up
Thing is that it's really meant to "go away" in favor of serialization. 21:41
But that's a medium-term solution and we could kinda use something sooner I guess.
pmichaud well, I'm fine with saying that it's something we'll solve in the medium term, as long as we know why it exists and how we'll fix it 21:42
jnthn Looking through the generated code, I suspect various other improvements are possible too.
as in, short-term ones
Yeah, that :load :init is the thing that's tiding us over until we do the full serialization. 21:43
21:43 buubot_backup joined
jnthn OK, tomorrow I can spend a couple of hours trying to reduce that somewhat. 21:45
pmichaud that's fine, either way. I just wanted to get a preliminary look at where the slowdown seems to be occuring, so that we can start thinking about it.
and I'm a bit glad to know that it's not all in parse+past 21:46
because I think we have more options there for improvement
jnthn Oh, for sure we do.
How do I run the stage timings, btw? 21:47
pmichaud just a sec, let me make a couple of commits
I had to patch things in nqp and nom to get them
21:47 Patterner left
jnthn ok, no hurry...I need to rest soon. :) 21:47
dalek p: 00c8b11 | pmichaud++ | src/HLL/Compiler.pm:
Restore --stagestats option for HLL::Compiler.
21:48
pmichaud okay, pushed both nqp and nom 21:49
yes, I'm going to take a nap also here shortly.
21:49 Psyche^ joined, Psyche^ is now known as Patterner
dalek kudo/nom: 534bd3f | pmichaud++ | tools/build/Makefile.in:
Re-enable stagestats option for setting compilation.
21:49
kudo/nom: 7c76168 | pmichaud++ | tools/build/NQP_REVISION:
Bump NQP_REVISION to get latest stagestats fixes.
pmichaud actually, I'll do it now. bbiaw 21:50
21:50 Trashlord left
pmichaud (stagestats will now show whenever --makefile-timings is given on the Configure.pl line) 21:50
bbiaw
jnthn excellent, thanks 21:51
jnthn gets some sleep 21:52
lue blog post! rdstar.wordpress.com/2011/08/14/th...ion-in-p6/ 21:57
masak lue: "The split between Perl 5 and Perl 6 is well known."? 21:59
lue Shoot, I knew I forgot to do something to that post. [Editing...] 22:00
masak I wouldn't rule out Perl 6 module on CPAN that fast if I were you.
s/module/modules/ 22:01
lue: also, the problem isn't that there isn't a discussion about this. the problem is that there isn't anything better/more concrete than modules.perl6.org so far. 22:02
sure, that needs discussion, but what it needs most is someone who (like you) decides to do something. 22:03
22:03 pernatiy left
masak personally, I believe a modules archiving solution will be mostly pain-driven, and I don't believe modules.perl6.org hurts enough yet. 22:03
felher lue++ . Just two things: first "er, object inhertance chain?" -- missing an 'i' here? || second: "when I get started one explaining the module system" -- do you mean 'on' instead of 'one'? 22:05
lue felher: thanks for spotting the typos. Fixing those as well. 22:06
felher lue: you're welcome :) 22:07
lue post updated, hopefully that first item is clearer now. 22:08
22:08 bs338 left
lue masak: if the problem isn't lack of discussion then I must be missing them :) 22:09
masak lue: yes. 22:10
lue notes to himself considering a more european sleep/awake cycle, except for that lousy "school" business
masak the discussions about something CPAN-like seem to ebb and flow a bit. 22:11
it's been a while since we had one on a bigger-ish scale.
lue: but rest assured that the topic does come up. jnthn, pmichaud and I last discussed it in a cafe here in Riga yesterday. 22:12
lue I would agree that development on the module archiving front would be pain driven (the only alternative is I'm-going-to-fix-it-and-you-can't-stop-me driven, which I haven't the webspace to do) 22:17
masak we have the latter variety too. 22:18
here's what wouldn't be useful: someone coming along and saying "hey, I wrote these PDFs about the design about a CPAN system for Perl 6. they're about 120 pages of text. I will now go and implement it. see you in X years."
lue As long as simple things, like splitting the list of modules into multiple pages and categorization (click here for all Acme:: modules), are easy to implement when need, there won't be any groundbreaking changes to the system.
masak here's what *would* be useful: someone coming along saying "look. I built this. it works better than modules.perl6.org and Panda together. [here's why.] also, it conforms better to what Perl 6 needs. [here's why.]" 22:19
22:19 [Coke] left
lue I've always been a bit frustrated with the module system, and I just know I'll be less frustrated when I annotate and summarize the revelant parts of the spec. That'll be the first step. 22:20
22:22 [Coke] joined
masak fair enough. 22:24
22:24 bs338 joined, bs338 left, bs338 joined
flussence I like the idea of decentralised packages - the top level is just a set of metadata describing known module repositories. It works pretty well for gentoo/things based on it. 22:31
22:31 thelazydeveloper left 22:32 Searle3 left 22:33 [Coke] left 22:35 [Coke] joined
lue I was thinking more of a mix. Packages can be stored on the system, however it also has the ability to use off-site things. Not sure how good that would work out though. 22:36
felher Is there a good way to export some data-structure ( some nested hashes and arrays with just strings and numbers in them) to a file at runtime and load it later on? 22:39
flussence sounds like a good fit for json...
ruz felher: github.com/moritz/json/ 22:40
felher flussence: Hm, yeah, i think i didn't specify my problem clear enough. The problem is that i have some text-file i want to parse. But parsing takes like two hours. I would like to parse only once, store the parsed data in some format one can import really fast (instead of reparsing it - what json would do), and load it later on instaed of reparsing the text-file. 22:42
how fast ist .perl it once and then eval the output later on? 22:43
22:43 [Coke] left
flussence well, building rakudo has to compile a few thousand lines of perl6 and that takes about 10 minutes on a fast machine... 22:44
felher flussence: hm, agreed. :) 22:45
22:45 [Coke] joined
felher i give .perl and eval a try. 22:45
thnx. :)
22:47 wolfman2000 joined 22:50 [Coke] left
masak felher: way back then, we used .perl and &eval for storing things to file in November the wiki engine. 22:50
felher: of course, we were aware already at the time that it was a security hazard and the wrong tool for the job. 22:51
but it worked, and we were building everything from stop-gap measures anyway.
'night, #perl6
//gq tests rock!
22:51 masak left 22:52 [Coke] joined
flussence he writes that quit message manually every time? that's some dedication :) 22:52
felher :D 22:54
sbp and yet I'm not surprised, are you? :-)
22:56 [Coke] left 22:59 [Coke] joined
lue
.oO(when I'm reading the specs, it feels like it was written by an expert in.... well, LUE)
23:01
23:09 drbean joined 23:12 wolfman2000 left 23:16 molaf__ joined 23:20 molaf_ left 23:28 wolfman2000 joined 23:38 ZaphrodZenovka left 23:55 worr joined