Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-11-08

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:03 Mouq Isn't that a spec-bug?
00:03 Mouq :p
00:04 lue whoops. I was thinking "STD Perl 6" :P
00:05 berekuk joined #perl6
00:06 lue here we are: https://github.com/perl6/specs/issues/61
00:09 rurban joined #perl6
00:10 DarthGandalf joined #perl6
00:16 ssutch joined #perl6
00:18 Psyche^ joined #perl6
00:18 timotimo since when does --gen-nqp=master no longer checkout master before building nqp? :(
00:22 timotimo oh, it *does* work!
00:22 timotimo huh
00:22 timotimo i wonder where the "is behind origin/master and can be fast-forwarded" message came from
00:26 eternaleye joined #perl6
00:27 timotimo oi, what is this? i do --gen-nqp=master and it says nqp-j is too old? why doesn't the installation work?
00:28 timotimo i rm'd nqp-j, re-ran make all install and now it works?!
00:28 timotimo what foul sorcery is this!
00:31 dmol joined #perl6
00:41 timotimo i wonder what takes up all the time in stage post.
00:41 timotimo the obviously "slower than it has to be" part i can see is that it uses many instances of multiple ~ in a row
00:42 timotimo which, iirc, will give unnecessary copies
00:43 timotimo that could conceivably be fixed in the nqp optimiser by creating nqp::join calls for those cases automatically
00:47 pdurbin joined #perl6
00:48 timotimo nqp: my $time := now(); for ^1000 { nqp::split(' ', 'start pmc tgt string pos int off int eos int rep int cur pmc curclass pmc bstack pmc cstack pmc'); } say(now() - $time);
00:48 camelia nqp-jvm: OUTPUT«Confused at line 2, near "for ^1000 "␤  in panic (gen/jvm/stage2/NQPHLL.nqp:379)␤  in comp_unit (gen/jvm/stage2/NQP.nqp:922)␤  in TOP (gen/jvm/stage2/NQP.nqp:820)␤  in parse (gen/jvm/stage2/QRegex.nqp:1247)␤  in parse (gen/jvm/stage2/NQPHLL.nqp:1378)␤  in…»
00:48 camelia ..nqp-moarvm: OUTPUT«Confused at line 2, near "for ^1000 "␤panic␤»
00:48 camelia ..nqp-parrot: OUTPUT«Confused at line 2, near "for ^1000 "␤current instr.: 'panic' pc 16305 (gen/parrot/stage2/NQPHLL.pir:6018) (gen/parrot/stage2/NQPHLL.nqp:426)␤»
00:48 timotimo oh, right. nqp.
00:49 timotimo nqp: my $time := now(); my int $i := 1000; while $i > 0 { $i := $i + 1; nqp::split(' ', 'start pmc tgt string pos int off int eos int rep int cur pmc curclass pmc bstack pmc cstack pmc'); } say(now() - $time);
00:49 camelia nqp-jvm: OUTPUT«Confused at line 2, near "while $i >"␤  in panic (gen/jvm/stage2/NQPHLL.nqp:379)␤  in comp_unit (gen/jvm/stage2/NQP.nqp:922)␤  in TOP (gen/jvm/stage2/NQP.nqp:820)␤  in parse (gen/jvm/stage2/QRegex.nqp:1247)␤  in parse (gen/jvm/stage2/NQPHLL.nqp:1378)␤  in…»
00:49 camelia ..nqp-parrot: OUTPUT«Confused at line 2, near "while $i >"␤current instr.: 'panic' pc 16305 (gen/parrot/stage2/NQPHLL.pir:6018) (gen/parrot/stage2/NQPHLL.nqp:426)␤»
00:49 camelia ..nqp-moarvm: OUTPUT«Confused at line 2, near "while $i >"␤panic␤»
00:50 timotimo ... huh?
00:50 timotimo nqp: my $time := now(); my int $i := 1000; while ($i > 0) { $i := $i + 1; nqp::split(' ', 'start pmc tgt string pos int off int eos int rep int cur pmc curclass pmc bstack pmc cstack pmc'); } say(now() - $time);
00:50 camelia nqp-parrot: OUTPUT«Confused at line 2, near "while ($i "␤current instr.: 'panic' pc 16305 (gen/parrot/stage2/NQPHLL.pir:6018) (gen/parrot/stage2/NQPHLL.nqp:426)␤»
00:50 camelia ..nqp-jvm: OUTPUT«Confused at line 2, near "while ($i "␤  in panic (gen/jvm/stage2/NQPHLL.nqp:379)␤  in comp_unit (gen/jvm/stage2/NQP.nqp:922)␤  in TOP (gen/jvm/stage2/NQP.nqp:820)␤  in parse (gen/jvm/stage2/QRegex.nqp:1247)␤  in parse (gen/jvm/stage2/NQPHLL.nqp:1378)␤  in…»
00:50 camelia ..nqp-moarvm: OUTPUT«Confused at line 2, near "while ($i "␤panic␤»
00:50 Mouq nqp: say(now())
00:50 camelia nqp-moarvm: OUTPUT«No lexical found with name '&now'␤frame_name_0␤»
00:50 camelia ..nqp-jvm: OUTPUT«java.lang.NullPointerException␤  in  (/tmp/olhW2KiD1g:1)␤  in  (gen/jvm/stage2/NQPHLL.nqp:1100)␤  in eval (gen/jvm/stage2/NQPHLL.nqp:1086)␤  in evalfiles (gen/jvm/stage2/NQPHLL.nqp:1292)␤  in command_eval (gen/jvm/stage2/NQPHLL.nqp:1196)␤  in command_line…»
00:50 camelia ..nqp-parrot: OUTPUT«Could not find sub &now␤current instr.: '' pc 45 ((file unknown):70821799) (/tmp/sTQ6Wtba4b:1)␤»
00:50 Mouq nqp: say(nqp::now())
00:50 camelia nqp-parrot: OUTPUT«Error while compiling op now (source text: "nqp::now()"): No registered operation handler for 'now'␤current instr.: '' pc 58571 (gen/parrot/stage2/QAST.pir:21439) (gen/parrot/stage2/QAST.nqp:3584)␤»
00:50 camelia ..nqp-moarvm: OUTPUT«Error while compiling op now (source text: "nqp::now()"): No registered operation handler for 'now'␤frame_name_1109␤»
00:50 camelia ..nqp-jvm: OUTPUT«Method 'type' not found for invocant of class 'NQPMu'␤  in coerce (gen/jvm/stage2/QAST.nqp:4097)␤  in as_jast (gen/jvm/stage2/QAST.nqp:2981)␤  in  (gen/jvm/stage2/QAST.nqp:3678)␤  in compile_all_the_stmts (gen/jvm/stage2/QAST.nqp:3666)␤  in as_jast (gen/jvm…»
00:51 timotimo oh, whoops.
00:51 timotimo thanks
00:51 * Mouq hopes that once ::, :::, <commit> are implemented, NQP's errors can easily be made less terrible
00:52 timotimo nqp: say(nqp::time())
00:52 camelia nqp-moarvm: OUTPUT«Error while compiling op time (source text: "nqp::time()"): No registered operation handler for 'time'␤frame_name_1109␤»
00:52 camelia ..nqp-parrot: OUTPUT«Error while compiling op time (source text: "nqp::time()"): No registered operation handler for 'time'␤current instr.: '' pc 58571 (gen/parrot/stage2/QAST.pir:21439) (gen/parrot/stage2/QAST.nqp:3584)␤»
00:52 camelia ..nqp-jvm: OUTPUT«Method 'type' not found for invocant of class 'NQPMu'␤  in coerce (gen/jvm/stage2/QAST.nqp:4097)␤  in as_jast (gen/jvm/stage2/QAST.nqp:2981)␤  in  (gen/jvm/stage2/QAST.nqp:3678)␤  in compile_all_the_stmts (gen/jvm/stage2/QAST.nqp:3666)␤  in as_jast (gen/jvm…»
00:52 timotimo how do i even ...
00:53 timotimo ah!
00:53 timotimo nqp: say(nqp::time_n())
00:53 Mouq nqp: say(nqp::time_n)
00:53 timotimo :)
00:53 camelia nqp-parrot: OUTPUT«1383871988.602␤»
00:53 camelia ..nqp-jvm: OUTPUT«1.383871988443E9␤»
00:53 camelia ..nqp-moarvm: OUTPUT«1383871984.011313␤»
00:53 camelia nqp-moarvm: OUTPUT«1383871988.736559␤»
00:53 camelia ..nqp-parrot: OUTPUT«1383871993.77833␤»
00:53 camelia ..nqp-jvm: OUTPUT«1.383871993585E9␤»
00:53 timotimo good good
00:53 timotimo nqp: my $time := nqp::time_n(); my int $i := 1000; while ($i > 0) { $i := $i + 1; nqp::split(' ', 'start pmc tgt string pos int off int eos int rep int cur pmc curclass pmc bstack pmc cstack pmc'); } say(nqp::time_n() - $time);
00:53 camelia nqp-parrot: OUTPUT«Confused at line 2, near "while ($i "␤current instr.: 'panic' pc 16305 (gen/parrot/stage2/NQPHLL.pir:6018) (gen/parrot/stage2/NQPHLL.nqp:426)␤»
00:53 camelia ..nqp-jvm: OUTPUT«Confused at line 2, near "while ($i "␤  in panic (gen/jvm/stage2/NQPHLL.nqp:379)␤  in comp_unit (gen/jvm/stage2/NQP.nqp:922)␤  in TOP (gen/jvm/stage2/NQP.nqp:820)␤  in parse (gen/jvm/stage2/QRegex.nqp:1247)␤  in parse (gen/jvm/stage2/NQPHLL.nqp:1378)␤  in…»
00:53 camelia ..nqp-moarvm: OUTPUT«Confused at line 2, near "while ($i "␤panic␤»
00:53 timotimo er, that's also an infinite loop.
00:53 * Mouq would be interested to see a nqp::time_s
00:54 timotimo nqp: my $time := nqp::time_n(); my int $i := 1000; while ($i > 0) { $i := $i + 1; nqp::split(' ', 'start pmc tgt string pos int off int eos int rep int cur pmc curclass pmc bstack pmc cstack pmc'); }; say(nqp::time_n() - $time);
00:54 timotimo nooo
00:54 timotimo timeout please
00:54 camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«(timeout)»
00:54 timotimo nqp: my $time := nqp::time_n(); my int $i := 1000; while ($i > 0) { $i := $i - 1; nqp::split(' ', 'start pmc tgt string pos int off int eos int rep int cur pmc curclass pmc bstack pmc cstack pmc'); }; say(nqp::time_n() - $time);
00:54 camelia nqp-moarvm: OUTPUT«0.041667␤»
00:54 camelia ..nqp-jvm: OUTPUT«0.013000011444091797␤»
00:54 camelia ..nqp-parrot: OUTPUT«0.0045619010925293␤»
00:55 timotimo well, that's not terribly slow ...
00:55 timotimo (this is called once per compiled Regex object)
00:57 timotimo impressive that parrot is 10x faster than moar, but they may have executed in parallel or something
00:57 Mouq nqp: my $time := nqp::time_n; nqp::split(' ', 'start pmc tgt string pos int off int eos int rep int cur pmc curclass pmc bstack pmc cstack pmc'); say(nqp::time_n() - $time);
00:57 camelia nqp-moarvm: OUTPUT«0.000022␤»
00:57 camelia ..nqp-parrot: OUTPUT«1.09672546386719e-05␤»
00:57 camelia ..nqp-jvm: OUTPUT«0␤»
00:58 timotimo you think it was the loops fault?
01:02 timotimo nqp-p: my $time_a := nqp::time_n(); my int $i := 1000; while $i > 0 { $i := $i - 1; "foo" ~ "bar" ~ "baz" ~ "quux" }; say(nqp::time_n() - $time_a); $time_a := nqp::time_n(); while $i < 1000 { $i := $i + 1; nqp::join("", ["foo", "bar", "baz", "quux"]) }; say(nqp::time_n() - $time_a);
01:02 camelia nqp-parrot: OUTPUT«0.00133299827575684␤0.00516510009765625␤»
01:02 timotimo nqp-j: my $time_a := nqp::time_n(); my int $i := 1000; while $i > 0 { $i := $i - 1; "foo" ~ "bar" ~ "baz" ~ "quux" }; say(nqp::time_n() - $time_a); $time_a := nqp::time_n(); while $i < 1000 { $i := $i + 1; nqp::join("", ["foo", "bar", "baz", "quux"]) }; say(nqp::time_n() - $time_a);
01:02 camelia nqp-jvm: OUTPUT«0.003000020980834961␤0.006999969482421875␤»
01:02 timotimo nqp-m: my $time_a := nqp::time_n(); my int $i := 1000; while $i > 0 { $i := $i - 1; "foo" ~ "bar" ~ "baz" ~ "quux" }; say(nqp::time_n() - $time_a); $time_a := nqp::time_n(); while $i < 1000 { $i := $i + 1; nqp::join("", ["foo", "bar", "baz", "quux"]) }; say(nqp::time_n() - $time_a);
01:02 camelia nqp-moarvm: OUTPUT«0.001935␤0.002369␤»
01:02 timotimo huh. so much for that hypothesis.
01:03 timotimo nqp-m: my $time_a := nqp::time_n(); my int $i := 10000; while $i > 0 { $i := $i - 1; "foofoo" ~ "barbar" ~ "bazbaz" ~ "quuxquux" }; say(nqp::time_n() - $time_a);
01:03 camelia nqp-moarvm: OUTPUT«0.055504␤»
01:03 preflex joined #perl6
01:03 timotimo nqp-m: my $time_a := nqp::time_n(); my int $i := 10000; while $i > 0 { $i := $i - 1; nqp::join("", ["foofoo", "barbar", "bazbaz", "quuxquux"] }; say(nqp::time_n() - $time_a);
01:03 camelia nqp-moarvm: OUTPUT«Unable to parse expression in blockoid; couldn't find final '}'  at line 2, near "nqp::join("␤panic␤»
01:03 timotimo nqp-m: my $time_a := nqp::time_n(); my int $i := 10000; while $i > 0 { $i := $i - 1; nqp::join("", ["foofoo", "barbar", "bazbaz", "quuxquux"]) }; say(nqp::time_n() - $time_a);
01:03 camelia nqp-moarvm: OUTPUT«0.070415␤»
01:04 timotimo so constructing the list is probably slower?
01:04 timotimo anyway, i'll get some rest
01:08 btyler joined #perl6
01:15 cognominal joined #perl6
01:26 * lue idly wonders if comparing a list to key => key => key => ... => True is more efficient than to [item, item, item, ... item]
01:28 lue comparing to [] takes about 2s per list right now :)
02:34 jeff_s1 joined #perl6
02:47 colomon joined #perl6
03:35 dalek Pugs.hs: 45cfed0 | au++ | HsSyck/ (3 files):
03:35 dalek Pugs.hs: * 0.51, switched to hashtables package.
03:35 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/45cfed038e
03:40 tipdbmp joined #perl6
03:45 SamuraiJack joined #perl6
03:54 jeff_s2 joined #perl6
04:24 preflex_ joined #perl6
04:30 REPLeffect joined #perl6
04:36 ingy^ joined #perl6
04:50 timotimo (can't sleep :( )
04:51 timotimo just after running perl Configure.pl --backend=parrot,jvm --gen-nqp=master i get "nqp-p is too old", when i "perl Configure.pl" after that, it works fine
05:00 timotimo i wonder if list literals could be handled better by getting an explicit pre-growing done by the compiler or something
05:00 timotimo or if that makes any difference at all
05:00 timotimo but for now i'll try to sleep again
05:02 timotimo nqp-p: my $time_a := nqp::time_n(); my int $i := 10000; while $i > 0 { $i := $i - 1; my $l := ["foofoo", "barbar", "bazbaz", "quuxquux", "abc", "def", "ghi"]; }; say(nqp::time_n() - $time_a);
05:02 camelia nqp-parrot: OUTPUT«0.0372607707977295␤»
05:02 timotimo nqp-p: my $time_a := nqp::time_n(); my int $i := 10000; while $i > 0 { $i := $i - 1; my $l := nqp::list("foofoo", "barbar", "bazbaz", "quuxquux", "abc", "def", "ghi"); }; say(nqp::time_n() - $time_a);
05:02 camelia nqp-parrot: OUTPUT«0.0614409446716309␤»
05:02 timotimo huh
05:02 timotimo that's interesting. but it also seems to be pretty fast on its own
05:03 timotimo maybe the former gets a WVal and the latter doesn't?
05:03 timotimo nqp-p: my $time_a := nqp::time_n(); my int $i := 10000; while $i > 0 { $i := $i - 1; my $l := nqp::list_s("foofoo", "barbar", "bazbaz", "quuxquux", "abc", "def", "ghi"); }; say(nqp::time_n() - $time_a);
05:03 camelia nqp-parrot: OUTPUT«0.0475258827209473␤»
05:06 diakopter tadzik: you seem sleepy
05:10 thou joined #perl6
05:28 lue diakopter: sure that's not you? ;)
05:32 rurban joined #perl6
06:08 rurban joined #perl6
06:11 moritz \o
06:21 itz joined #perl6
06:27 kaleem joined #perl6
06:42 [Sno] joined #perl6
07:00 darutoko joined #perl6
07:30 dalek specs: 5e2c420 | larry++ | S03-operators.pod:
07:30 dalek specs: Adopt quietfanatic++'s suggestion of Less/More
07:30 dalek specs:
07:30 dalek specs: The problem is not the sign of the numeric values, which is consistent with
07:30 dalek specs: common usage in C and Perl.  The problem is that the names seemed to be
07:30 dalek specs: answering the opposite question from the "less, same, or greater" operators,
07:30 dalek specs: which are asking about the left operand, not the right one.
07:30 dalek specs:
07:30 dalek specs: fixes 61
07:30 dalek specs: review: https://github.com/perl6/specs/commit/5e2c420566
07:30 tobyink joined #perl6
07:52 awwaiid joined #perl6
07:54 rurban joined #perl6
07:55 cognominal joined #perl6
08:03 jac50 joined #perl6
08:03 brrt joined #perl6
08:09 xenoterracide joined #perl6
08:10 thou joined #perl6
08:16 moritz .oO( Order::Less? we are orderless! )
08:18 awwaiid joined #perl6
08:26 cognominal joined #perl6
08:38 zakharyas joined #perl6
08:52 jnthn .oO( more or less )
09:01 rurban joined #perl6
09:03 dmol joined #perl6
09:05 eternaleye joined #perl6
09:05 eternaleye joined #perl6
09:12 kivutar joined #perl6
09:21 kaleem joined #perl6
09:40 FROGGS[mobile] joined #perl6
09:43 tobyink joined #perl6
09:44 kaleem joined #perl6
09:54 woosley left #perl6
09:55 iSlug joined #perl6
10:08 brrt joined #perl6
10:11 FROGGS joined #perl6
10:15 daxim_ joined #perl6
10:32 fhelmberger joined #perl6
10:34 dalek Heuristic branch merge: pushed 653 commits to rakudo/sized-arrays by FROGGS
10:37 dalek Heuristic branch merge: pushed 42 commits to rakudo/sized-arrays by FROGGS
10:38 timotimo oh, cool! are you going to bring that branch up to speed?
10:39 FROGGS at least so I can run a spectest :o)
10:39 dalek rakudo/sized-arrays: 0defacb | (Tobias Leich)++ | perl6-j:
10:39 dalek rakudo/sized-arrays: removed perl6-j
10:39 dalek rakudo/sized-arrays: review: https://github.com/rakudo/rakudo/commit/0defacb7fc
10:50 p5eval joined #perl6
11:03 denis_boyun joined #perl6
11:07 brrt joined #perl6
11:10 pdurbin left #perl6
11:10 berekuk joined #perl6
11:15 jnthn FROGGS++
11:15 moritz uhm, so the pull request https://github.com/rakudo/rakudo/pull/217 was against another rakudo branch, not nom?
11:15 * moritz is rather confused
11:20 cognominal joined #perl6
11:35 bbkr joined #perl6
11:55 kresike joined #perl6
11:55 kresike hello all you happy perl6 people
12:03 lizmat hi kresike!
12:03 timotimo hello there
12:03 timotimo (from a train o/)
12:03 brrt joined #perl6
12:03 timotimo i was hoping i could get some productivity done from here, since many good commits seem to happen on trains for other perl6ers :)
12:06 moritz \o timotimo.train :-)
12:06 lizmat .oO( an excellent train of thought )
12:08 lizmat fwiw, I'm working on Increase/Decrease -> Less/More transition
12:08 moritz lizmat++
12:09 daxim_ joined #perl6
12:11 timotimo nqp-p: my $time := nqp::time_n(); my int $i := 0; while $i < 5000 { $i := $i + 1; nqp::eqat("$foobar", "$", 0) }; say(nqp::time_n() - $time);
12:11 camelia nqp-parrot: OUTPUT«Use of undeclared variable '$foobar' at line 2, near "\", \"$\", 0)"␤current instr.: 'panic' pc 16305 (gen/parrot/stage2/NQPHLL.pir:6018) (gen/parrot/stage2/NQPHLL.nqp:426)␤»
12:11 timotimo nqp-p: my $time := nqp::time_n(); my int $i := 0; while $i < 5000 { $i := $i + 1; nqp::substr("$foobar", 0, 1) eq '$' }; say(nqp::time_n() - $time);
12:11 camelia nqp-parrot: OUTPUT«Use of undeclared variable '$foobar' at line 2, near "\", 0, 1) e"␤current instr.: 'panic' pc 16305 (gen/parrot/stage2/NQPHLL.pir:6018) (gen/parrot/stage2/NQPHLL.nqp:426)␤»
12:11 timotimo derp
12:11 timotimo nqp-p: my $time := nqp::time_n(); my int $i := 0; while $i < 5000 { $i := $i + 1; nqp::eqat('$foobar', "$", 0) }; say(nqp::time_n() - $time);
12:11 camelia nqp-parrot: OUTPUT«Error while compiling op eqat (source text: "nqp::eqat('$foobar', \"$\", 0)"): No registered operation handler for 'eqat'␤current instr.: '' pc 58571 (gen/parrot/stage2/QAST.pir:21439) (gen/parrot/stage2/QAST.nqp:3584)␤»
12:11 timotimo ah, haven't bumped up the NQP_REVISION far enough yet
12:14 berekuk joined #perl6
12:16 timotimo yay, on parrot, eqat is 3x faster than substr+eq in the case of a 1-length substring
12:19 FROGGS cool!
12:19 FROGGS timotimo++
12:20 dalek roast: 3a5af16 | (Elizabeth Mattijsen)++ | S (16 files):
12:20 dalek roast: Increase/Decrease -> Less/More migration
12:20 dalek roast:
12:20 dalek roast: As per recent spec change
12:20 dalek roast: review: https://github.com/perl6/roast/commit/3a5af165d1
12:20 timotimo same for longer strings
12:20 timotimo but it doesn't help terribly much, as it can do a million of those operations in a tenth of a second anyway
12:21 timotimo now, there's two spots in the regex compiler where it emits substr + eq which i *could* try to turn into eqat instead. sounds like it's worth it? it's for newline-cclass and any literal
12:23 timotimo i'll definitely have to rebuild the stage0 files for that, though
12:25 dalek rakudo/nom: 132a970 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
12:25 dalek rakudo/nom: Increase/Decrease -> Less/More migration
12:25 dalek rakudo/nom:
12:25 dalek rakudo/nom: As per recent spec change.  Added Increase/Decrease as DEPRECATED subs.  Not
12:25 dalek rakudo/nom: sure how I can add Order::Increase/Order::Decrease as DEPRECATED subs  :-(
12:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/132a970753
12:28 moritz r: our sub Order::Blafu is DEPREACATED('blubb') { }; Order::Blafu
12:28 camelia rakudo-jvm 882e33: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
12:28 camelia ..rakudo-parrot 5bd51c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/x2CN6r3NEOâ�¤Can't use unknown trait 'is DEPREACATED' in a sub declaration.â�¤at /tmp/x2CN6r3NEO:1â�¤------> â�¤    expecting any of:â�¤        rw parcel hidden_from_backtraceâ�¤        pure defau…»
12:28 moritz p: our sub Order::Blafu is DEPRECATED('blubb') { }; Order::Blafu
12:28 camelia rakudo-parrot 5bd51c: OUTPUT«Could not find symbol '&Blafu'␤  in method <anon> at gen/parrot/CORE.setting:11984␤  in any  at gen/parrot/Metamodel.nqp:2691␤  in any find_method_fallback at gen/parrot/Metamodel.nqp:2679␤  in any find_method at gen/parrot/Metamodel.nqp:946␤  …»
12:28 moritz p: package Order { our sub Blafu is DEPRECATED('blubb') { } }; Order::Blafu
12:28 camelia rakudo-parrot 5bd51c: OUTPUT«Saw 1 call to deprecated code during execution.␤=====================================​===========================================␤Sub Blafu (from Order) called at:␤  /tmp/HGh3KsuQCh, line 1␤Please use blubb instead.␤-----------------------------…»
12:29 moritz p: package Order { our sub Blafu is DEPRECATED('blubb') { } }; Order::Blafu; say Order::Increase
12:29 camelia rakudo-parrot 5bd51c: OUTPUT«Could not find symbol '&Increase'␤  in method <anon> at gen/parrot/CORE.setting:11984␤  in any  at gen/parrot/Metamodel.nqp:2691␤  in any find_method_fallback at gen/parrot/Metamodel.nqp:2679␤  in any find_method at gen/parrot/Metamodel.nqp:946…»
12:29 moritz ah, that overrides the namespace, so no good
12:30 jnthn p: Order::<&Blafu> = anon sub Blafu() is DEPRECATED { 1 }; say Order::Blafu
12:30 camelia rakudo-parrot 5bd51c: OUTPUT«1␤Saw 1 call to deprecated code during execution.␤=====================================​===========================================␤Sub Blafu (from GLOBAL) called at:␤  /tmp/cy9D01nkSH, line 1␤Please use something else instead.␤---------------…»
12:31 jnthn "use somethign else"? :)
12:31 timotimo well ... cloning moarvm over a super thin phone connection .... :(
12:31 jnthn p: Order::<&Blafu> = anon sub Blafu() is DEPRECATED('your mom') { 1 }; say Order::Blafu
12:31 camelia rakudo-parrot 5bd51c: OUTPUT«1␤Saw 1 call to deprecated code during execution.␤=====================================​===========================================␤Sub Blafu (from GLOBAL) called at:␤  /tmp/_MpLD6MQMh, line 1␤Please use your mom instead.␤---------------------…»
12:31 jnthn ah, k
12:34 timotimo i'm glad i got all the data i'll need for the next minutes
12:35 jnthn timotimo: Just hope there ain't too many tunnels :)
12:35 timotimo oh there are.
12:35 timotimo i know this line already. this is from my home to my parent's home
12:36 timotimo at least i got an ICE for the biggest part of the yojourney :)
12:36 timotimo ICEs are nice
12:36 timotimo in theory there's a wifi hotspot in this one, but i'm pretty sure it's very expensive
12:36 jnthn .oO( ICE ICE baby... )
12:36 moritz yes, you have to sell your soul to t-online
12:37 jnthn The Swedish train I was only the other day had free wifi, but only 'cus they're testing out a new wifi instatllation.
12:37 jnthn One that uses 4G.
12:38 jnthn The latency did feel a bit lower.
12:39 jnthn btw, is the r-j evalbot running latest? I'd hoped that yesterday's fixes to help evalserver would make ti more rreliable
12:39 timotimo hm. if the substr+eq part of 'literal' and newline actually get 3x faster, maybe it'll make a noticable difference in setting parse time. that would be awesome :)
12:39 timotimo i don't really have a good system doto do time measurements on though
12:39 brrt dutch trains have free wifi too, rather slow, and also provided by t-mobile
12:40 dalek rakudo/nom: c31f307 | (Elizabeth Mattijsen)++ | src/core/Order.pm:
12:40 dalek rakudo/nom: Add signatures to Increase/Decrease
12:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c31f307885
12:41 dalek roast: e4d9c67 | (Elizabeth Mattijsen)++ | S02-types/deprecations.t:
12:41 dalek roast: Add deprecation tests for Increase/Decrease
12:41 dalek roast: review: https://github.com/perl6/roast/commit/e4d9c67cba
12:41 jnthn lizmat: While I don't know of anything immediately better, the subs will parse as listops as opposed to the term that Increase used to parse as
12:41 jnthn lizmat: Oh, maybe we can actually do it as a term...
12:42 timotimo turns out my moarvm is 522 commits behind >_>
12:42 jnthn r: sub term:<Blah>() is DEPRECATED('a dugong') { 1 }; say Blah
12:42 camelia rakudo-parrot 5bd51c: OUTPUT«1␤»
12:42 camelia ..rakudo-jvm 882e33: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
12:43 lizmat jnthn: is DEPRECATED doesn't work in settings
12:43 jnthn lizmat: huh?
12:43 timotimo /usr/bin/ld: 3rdparty/sha1/libsha1.a(sha1.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC - is there something i must do differently?
12:43 jnthn I thought that's where you'd been using it?
12:43 * timotimo tried reconfiguring
12:43 jnthn timotimo: Try a realclean
12:43 FROGGS timotimo: make realclean
12:43 timotimo thanks
12:43 lizmat jnthn: I call the DEPRECATED sub inside the Increase sub
12:44 jnthn lizmat: oh...
12:44 jnthn lizmat: but my example above wasn't int he setting.
12:44 lizmat that's the "is DEPRECATED" work horse
12:44 FROGGS because your 3rdparty libs are built without -fPIC, and won't be rebuild when they are there
12:44 lizmat jnthn: I think it just gets ignored on terms ?
12:44 jnthn p: sub infix:<wtf>(*@a) { say @a.join('wtf') }; say 'omg' wtf 'bbq'
12:44 lizmat ah, ok, I get your pount
12:45 camelia rakudo-parrot 5bd51c: OUTPUT«omgwtfbbq␤True␤»
12:45 jnthn p: sub infix:<wtf>(*@a) is DEPRECATED('a toaster') { @a.join('wtf') }; say 'omg' wtf 'bbq'
12:45 camelia rakudo-parrot 5bd51c: OUTPUT«omgwtfbbq␤Saw 1 call to deprecated code during execution.␤=====================================​===========================================␤Sub infix:<wtf> (from GLOBAL) called at:␤  /tmp/qOYk38w3mr, line 1␤Please use a toaster instead.␤------…»
12:45 FROGGS >.<
12:46 jnthn p: sub term:<wtf>() is DEPRECATED('a dancing hamster') { 'wtf' }; say wtf
12:46 camelia rakudo-parrot 5bd51c: OUTPUT«wtf␤»
12:46 jnthn o.O
12:46 lizmat maybe terms don't have phasers ?
12:46 jnthn oh, I wonder...
12:46 jnthn p: sub term:<wtf>() is DEPRECATED('a dancing hamster') { say 'DON'T INLINE ME'; 'wtf' }; say wtf
12:46 camelia rakudo-parrot 5bd51c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/VY8Cc4OHgdâ�¤Two terms in a rowâ�¤at /tmp/VY8Cc4OHgd:1â�¤------> [32mRECATED('a dancing hamster') { say 'DON'[33mâ��[31mT INLINE ME'; 'wtf' }; say wtf[0mâ�¤    expecting any of:â�¤        post…»
12:47 jnthn p: sub term:<wtf>() is DEPRECATED('a dancing hamster') { say 'DO NOT INLINE ME'; 'wtf' }; say wtf
12:47 camelia rakudo-parrot 5bd51c: OUTPUT«DO NOT INLINE ME␤wtf␤Saw 1 call to deprecated code during execution.␤=====================================​===========================================␤Sub term:<wtf> (from GLOBAL) called at:␤  /tmp/jmqp2rKFtx, line 1␤Please use a dancing hamst…»
12:47 jnthn Bah
12:47 jnthn The inliner had better check for lack of phasers :)
12:47 jnthn Or we jsut have another phase-order problem again in routine_def.
12:47 jnthn Probably the latter
12:47 lizmat well
12:47 jnthn Anyway, that wants an RT.
12:48 lizmat in any case, I think I can fix Increase/Decrease
12:48 moritz p: sub term:<wtf>() { LEAVE { say 'not here anymore' } 42 }; say wtf
12:48 camelia rakudo-parrot 5bd51c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/OAVRLfMkHWâ�¤Two terms in a rowâ�¤at /tmp/OAVRLfMkHW:1â�¤------> [32mf>() { LEAVE { say 'not here anymore' } [33mâ��[31m42 }; say wtf[0mâ�¤    expecting any of:â�¤        postfixâ�¤        sta…»
12:48 moritz p: sub term:<wtf>() { LEAVE { say 'not here anymore' }; 42 }; say wtf
12:48 camelia rakudo-parrot 5bd51c: OUTPUT«not here anymore␤42␤»
12:49 jnthn moritz: The ENTER is added by a trait; I guess that's the "issue".
12:49 lizmat ah, I see what you mean
12:49 lizmat ok, will follow up on that
12:49 jnthn I can probably fix it quite easily, but not from teaching
12:50 lizmat you have plenty of other things to fix  :-)
12:50 lizmat lemme see if I can fix this
12:50 timotimo it's time for me to get a new laptop with a stronger processor ...
12:50 jnthn .oO( Like, the naming of EVERYTHING in src/vm/jvm/core/Threading.pm :P )
12:51 timotimo this build is taking forever
12:51 timotimo granted, three backends, but still!
12:51 jnthn timotimo: So I heard you're building Perl 6 on rails...
12:51 jnthn :P
12:51 lizmat jnthn: if you want, I can have a go at that...
12:51 jnthn lizmat: Go for it! :)
12:52 timotimo :)
12:52 timotimo i've been ogling a friend's t440s for a bit, that seems like a really great device
12:52 jnthn lizmat: Tehre's also tests in t/spec/S17-concurrency that may help, though will also want an update
12:53 lizmat jnthn: would it be an idea to create a Promise.pm c.s for parakudo ?
12:53 lizmat that would just fail ?
12:58 jnthn lizmat: japhb suggested a single-threaded emulation even
12:59 jnthn lizmat: It *will* deadlock
12:59 jnthn lizmat: If you do certain things
12:59 jnthn lizmat: But may make some things work
12:59 lizmat maybe we need an "is EMULATED" ?
12:59 jnthn Just call it is BROKEN :P
13:00 lizmat hehe
13:00 timotimo parrot and jvm builds finished, now for some moar
13:00 hoelzro hehe
13:00 hoelzro moar builds!
13:00 lizmat is there any reason you want to keep that in src/jvm ?
13:00 jnthn timotimo: I have a T430s and it's ncie. Got the wireless hardware bug fixed today too :)
13:01 jnthn lizmat: What will eventually happen is we'll separate out the VM-specific from the VM-independent. But I'm not really ready for that yet.
13:01 lizmat ok, I'll just focus on renaming
13:02 jnthn And we may end up with none of it VM-specific some day and nqp:: ops for stuff
13:02 jnthn We'll see :)
13:02 lizmat indeed  :-)
13:03 lizmat jnthn: would you mind putting classes into their own files yet?  or is that too soon as well?
13:03 jnthn lizmat: Oh, I'm +1 to splitting up the huge Threading.pm :)
13:03 jnthn It's misnamed and huge.
13:04 lizmat that was my feeling as well
13:04 jnthn Just hadn't go around to it yet :)
13:04 jnthn And no reason I have to do it :)
13:04 timotimo jnthn: how many things are still missing for moar-support to land?
13:05 jnthn timotimo: dunno :)
13:05 jnthn The next big thign is basic sig binding :)
13:05 timotimo huhdamn, i can't build nqp-moar at the moment
13:05 timotimo Unable to parse expression in method_def; couldn't find final ')'  at line 4328, near "MAST::Node"
13:05 timotimo is that something known?
13:06 jnthn I thought we'd fixed all those...
13:06 timotimo hm. maybe something i have is out of date?
13:07 jnthn That or we've a leftover bug
13:07 timotimo i don't want to have fresh stage0 for parrot and jvm, but not for moar :(
13:07 pernatiy joined #perl6
13:08 jnthn Why are you making a fresh stage0, ooc?
13:09 timotimo i guess i can develop it on parrot only for the moment
13:09 timotimo also, the constant stage0 updates are making the nqp repo prohibitively big
13:09 jnthn eeks, I have the first talk of the morning! http://act.yapc.eu/npw2013/schedule
13:09 jnthn timotimo: Yes, that's why I was asking you why you're doing another one :)
13:09 kivutar joined #perl6
13:10 moritz timotimo: make m-bootstrap-files ?
13:10 timotimo you were?
13:11 timotimo moritz: won't work if i can't get nqp-moar to compile in the first place ;)
13:11 moritz timotimo: right :-)
13:11 timotimo jnthn: the fresh stage0 is supposed to have eqat, so that i can use it in several places (like the implementation of literal or the cclass for newline in the regex compiler might help performance at least a tiny bit)
13:12 moritz you only need that if you use it in nqp source code, not if you use it in generated code
13:13 timotimo ah, ok. but i'm still using it in some places to replace combinations of substr + eq
13:13 timotimo in the same compiler, for example
13:14 timotimo and in the grammar, actions, module loader, ...
13:16 timotimo now i'm going through a lot of tunnels :|
13:17 timotimo ooc, how hard could it possibly be to make enumcharlist use ranges instead of huge amounts of values when you have big character classes?
13:18 moritz timotimo: I've long wanted to use bitmaps for the first 255 codepoints, and skiplists for the rest
13:18 timotimo that sounds good
13:20 timotimo i can rei can freely re-use registers in pir code, right?
13:21 moritz yes
13:21 lizmat pir?
13:22 lizmat *shudder*
13:22 lizmat :-)
13:25 denis_boyun joined #perl6
13:26 lizmat jnthn: alas, putting sub term:<Increase> into settings, doesn't work :-(
13:26 timotimo hehe
13:26 timotimo what's the simplest way to negate the value in a register? (0/1 based)
13:26 lizmat only works outside of settings  :-(
13:27 lizmat reverting to ordinary sub :-(
13:28 moritz nqp: say(nqp::not(1))
13:29 camelia nqp-parrot: OUTPUT«Error while compiling op not (source text: "nqp::not(1)"): No registered operation handler for 'not'␤current instr.: '' pc 58571 (gen/parrot/stage2/QAST.pir:21439) (gen/parrot/stage2/QAST.nqp:3584)␤»
13:29 camelia ..nqp-moarvm: OUTPUT«Error while compiling op not (source text: "nqp::not(1)"): No registered operation handler for 'not'␤frame_name_1109␤»
13:29 camelia ..nqp-jvm: OUTPUT«Method 'type' not found for invocant of class 'NQPMu'␤  in coerce (gen/jvm/stage2/QAST.nqp:4097)␤  in as_jast (gen/jvm/stage2/QAST.nqp:2981)␤  in  (gen/jvm/stage2/QAST.nqp:3678)␤  in compile_all_the_stmts (gen/jvm/stage2/QAST.nqp:3666)␤  in as_jast (gen/jvm…»
13:29 moritz nqp: say(nqp::neg(1))
13:29 camelia nqp-parrot: OUTPUT«Error while compiling op neg (source text: "nqp::neg(1)"): No registered operation handler for 'neg'␤current instr.: '' pc 58571 (gen/parrot/stage2/QAST.pir:21439) (gen/parrot/stage2/QAST.nqp:3584)␤»
13:29 camelia ..nqp-moarvm: OUTPUT«Error while compiling op neg (source text: "nqp::neg(1)"): No registered operation handler for 'neg'␤frame_name_1109␤»
13:29 camelia ..nqp-jvm: OUTPUT«Method 'type' not found for invocant of class 'NQPMu'␤  in coerce (gen/jvm/stage2/QAST.nqp:4097)␤  in as_jast (gen/jvm/stage2/QAST.nqp:2981)␤  in  (gen/jvm/stage2/QAST.nqp:3678)␤  in compile_all_the_stmts (gen/jvm/stage2/QAST.nqp:3666)␤  in as_jast (gen/jvm…»
13:29 timotimo i went with $ops.push_pirop('lt', %*REG<fail>, 1, %*REG<fail>);
13:31 ajr joined #perl6
13:33 FROGGS nqp-p: say(nqp::neg_i(1))
13:33 camelia nqp-parrot: OUTPUT«-1␤»
13:33 FROGGS nqp-p: say(nqp::neg_i(0))
13:33 camelia nqp-parrot: OUTPUT«0␤»
13:33 FROGGS nqp-p: say(nqp::neg_i(-1))
13:33 camelia nqp-parrot: OUTPUT«1␤»
13:34 FROGGS nqp-p: say(nqp::bitneg_i(1))
13:34 camelia nqp-parrot: OUTPUT«error:imcc:syntax error, unexpected IREG, expecting '(' ('$I5003')␤  in file '(file unknown)' line 51114903␤␤␤»
13:34 moritz nqp-p: say(1-1)
13:34 camelia nqp-parrot: OUTPUT«0␤»
13:34 moritz nqp-p: say(1-0)
13:34 camelia nqp-parrot: OUTPUT«1␤»
13:34 moritz if it's always 0 or 1, 1 - $reg works fine :-)
13:39 timotimo uaii'm not very good at this pir thing
13:39 timotimo error:imcc:The opcode 'nqp_string_equal_at_ic_s_sc_i' (nqp_string_equal_at<4>) was not found. Check the type and number of the arguments
13:43 FROGGS nqp-p: say( Q:PIR { $I100 = 0␤$I101 = not $I100␤say $I101 } )
13:43 camelia nqp-parrot: OUTPUT«1␤␤»
13:43 FROGGS nqp-p: say( Q:PIR { $I100 = 1␤$I101 = not $I100␤say $I101 } )
13:43 camelia nqp-parrot: OUTPUT«0␤␤»
13:45 FROGGS nqp-p: say( Q:PIR { $I100 = 7␤$I101 = not $I100␤say $I101 } )
13:45 camelia nqp-parrot: OUTPUT«0␤␤»
13:45 woolfy joined #perl6
13:46 timotimo so, i must be doing this wrong
13:46 colomon joined #perl6
13:47 timotimo $ops.push_pirop('nqp_string_equal_at', %*REG<fail>, %*REG<tgt>, $litpost, %*REG<pos>);
13:47 timotimo why would it ever have the first parameter be ic? that's the register i'm trying to write to
13:49 timotimo ah, finally a bit of network ... hopefully
13:53 timotimo moritz: you mucked about with the rxcompiler recently. do you have an idea?
13:54 FROGGS timotimo: can you paste the generated pir line?
13:55 dmol joined #perl6
13:57 timotimo nqp_string_equal_at rx85_fail207, rx85_tgt, ucs4:"_", rx85_pos
13:57 timotimo huh, is that really how to put a string literal in there?
13:58 berekuk joined #perl6
13:58 jnthn lizmat: oh, yeah...if you want a term added it also nmeeds to go in the grammar, same like any infix things too
13:59 jnthn timotimo: $ops.push_pirop('lt', %*REG<fail>, 1,
13:59 colomon joined #perl6
13:59 jnthn timotimo: I'm pretty sure you don't mean fail there
14:00 moritz timotimo: where is the op defined?
14:01 timotimo moritz: in nqp.ops
14:01 timotimo it's in the current master, too
14:02 lizmat joined #perl6
14:02 timotimo jnthn: if the node is negated, i want to invert the value of fail, which would at that point contain the result value of my eqat call
14:02 timotimo that's what i thought. is that still wrong?
14:02 jnthn timotimo: but fail is a label, not a register?
14:02 timotimo it ... is?
14:02 timotimo well, that would explain it then i guess?
14:02 jnthn sure,t hat's why we can goto %*REG<fail> :)
14:03 moritz yes, a label to jump to
14:03 timotimo ah, so gt and friends are gotos
14:03 jnthn right
14:03 timotimo that explains it!
14:03 jnthn ;)
14:03 timotimo i'd goto fail if the match doesn't go through, right?
14:03 jnthn yeah
14:04 FROGGS we should totally do more pir in future :o)
14:04 jnthn I...uh...no. :P
14:04 FROGGS *g*
14:04 timotimo what op do i use to compare numbers fo requality?
14:04 FROGGS I enjoy it somehow
14:04 timotimo eq_i?
14:05 FROGGS AST::Operations.add_core_pirop_mapping('iseq_i', 'iseq', 'Iii'
14:06 moritz so iseq
14:06 moritz timotimo: I think eq jumps to a label if equal, or something funny
14:07 lizmat jnthn: any objection to moving the Promise c.s. exceptions to src/core/Exception ?
14:07 timotimo oh, i want to jump
14:07 timotimo but i thought eq is string equlaity
14:08 jnthn timotimo: nooooooo....don't jump!
14:08 jnthn timotimo: eq depends on regiser type I think
14:08 timotimo ;
14:08 timotimo ah, ok
14:08 jnthn timotimo: I think iseq is used for getting the result
14:08 jnthn Like if you don't want to jump
14:09 jnthn lizmat: I don't really see why to do that...
14:09 moritz ♫ let's do the PIR jump again ♬
14:09 jnthn lizmat: It puts whem further away from the things they relate to.
14:09 timotimo the code seems to continue compiling past nqphll now
14:09 timotimo that's a good sign
14:09 timotimo if i have network coverage (damn you, eplus!) i'll update you on my progress
14:09 lizmat jnthn: well that seems to be the meme of src/core/Exception
14:09 lizmat stub them, and then define them in src/core/Exception
14:10 timotimo what does c.s mean? :/
14:10 lizmat cum suis
14:10 FROGGS coffee shop?
14:10 FROGGS ohh
14:10 lizmat and the like ?
14:10 jnthn can't say
14:10 moritz ah, I usually use 'et al' for that :-)
14:10 moritz but that's just "and others"
14:11 lizmat hmmm.. oddly enough, this seems to be Dutch  :-)
14:11 FROGGS "Acronym Finder: CS stands for Cum Suis (Latin: and associates). This definition appears very rarely."
14:11 jnthn Not in lizmat's messages :P
14:11 FROGGS *g*
14:11 lizmat hehe
14:12 jnthn lizmat: Well, I think Threading stuff comes after exceptions, though...
14:12 FROGGS the rare stuff happens pretty often here in #perl6 :o)
14:12 jnthn lizmat: We could move 'em there I guess...
14:12 timotimo now that i've figured out (with your help) how to use the fail thing, i get excellent network coverage
14:12 lizmat it's what been done everywhere else in core, afaik
14:12 timotimo what is this >_<
14:12 jnthn lizmat: But it may be more conveneint to keep them near the stuff tehy relate to while we're still going through name changes.
14:13 lizmat yes, I'll keep them close for now
14:13 lizmat we don't want abandoned exceptions hanging around
14:13 jnthn aye
14:13 moritz .oO( dangling exception at line 25 )
14:14 jnthn .oO( exceptional dangling at high line 10 )
14:14 araujo joined #perl6
14:14 araujo joined #perl6
14:14 lizmat who said anything about dangling?
14:14 lizmat :-)
14:14 rurban joined #perl6
14:15 * FROGGS .oO( exceptional dumpling at high line 10 )
14:15 moritz nobody! The IR clogs prove it. DELETE FROM ilbot_lines WHERE line LIKE '%dangling%';
14:15 FROGGS only her smile remains :o)
14:17 timotimo wow
14:17 timotimo a noticable difference
14:17 timotimo from 233 seconds to 224 seconds for stage parse
14:17 hoelzro wow
14:17 hoelzro such noticable dffirence
14:17 hoelzro amaze
14:18 moritz timotimo++
14:18 FROGGS wanna have!
14:18 timotimo r:  say224/233
14:18 hoelzro many plus
14:18 timotimo well, it's still a very noisy set of just two data points
14:18 camelia rakudo-jvm 882e33: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
14:18 camelia ..rakudo-parrot c31f30: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/x6PhUXHs0bâ�¤Undeclared routine:â�¤    say224 used at line 1â�¤â�¤Â»
14:18 timotimo r:  say 224/233
14:18 camelia rakudo-parrot c31f30: OUTPUT«0.961373␤»
14:18 camelia ..rakudo-jvm 882e33: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
14:18 timotimo 5%, won't knowk that
14:18 timotimo knock*
14:18 nnunley joined #perl6
14:18 timotimo i'll upload my code and someone with a beefier machine can do speed measurements for me (please)
14:19 moritz j: say 'alive'
14:19 Hugh_ joined #perl6
14:19 moritz timotimo: sure, will do
14:19 timotimo this may take a while :(
14:19 camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
14:19 timotimo stage0 through thin phne connection
14:20 dalek nqp/eqat_use: e41972e | (Timo Paulssen)++ | src/vm/ (19 files):
14:20 dalek nqp/eqat_use: update stage0 for parrot and jvm to get eqat op.
14:20 dalek nqp/eqat_use: review: https://github.com/perl6/nqp/commit/e41972e8d8
14:20 dalek nqp/eqat_use: 1e21ec9 | (Timo Paulssen)++ | src/vm/parrot/QAST/Compiler.nqp:
14:20 dalek nqp/eqat_use: use eqat instead of substr+eq in the parrot qast compiler
14:20 dalek nqp/eqat_use: review: https://github.com/perl6/nqp/commit/1e21ec9d30
14:20 dalek nqp/eqat_use: 5bf513d | (Timo Paulssen)++ | src/ (5 files):
14:20 dalek nqp/eqat_use: use the new nqp::eqat op in a couple of places
14:20 dalek nqp/eqat_use: review: https://github.com/perl6/nqp/commit/5bf513d3e6
14:20 dalek nqp/eqat_use: 2608c7a | (Timo Paulssen)++ | src/vm/parrot/QAST/Compiler.nqp:
14:20 dalek nqp/eqat_use: use eqat in the literal regex code on parrot
14:20 dalek nqp/eqat_use: review: https://github.com/perl6/nqp/commit/2608c7aa91
14:20 * FROGGS fetches
14:22 * moritz builds
14:29 moritz dammit, I should have done a reference timing *before*
14:30 SmokeMachine joined #perl6
14:31 raiph joined #perl6
14:32 timotimo know that feel :)
14:32 moritz parrot with eqat_use stage parse: 116.610
14:33 moritz will post the other timings when I have them
14:33 timotimo ty
14:33 timotimo changing trains now
14:33 timotimo online with my phone
14:36 moritz JVM with eqat_use stage parse: 45.171
14:37 johnny5_ joined #perl6
14:37 timotimo jvm does not have many changes
14:37 moritz now building nqp/master again
14:37 lizmat moritz: 50.270 just now, without these
14:38 timotimo i hope the winnings are for real
14:38 dalek rakudo/sized-arrays: 3823b87 | moritz++ | tools/lib/NQP/Configure.pm:
14:38 dalek rakudo/sized-arrays: [Configure] get rid of spurious "NQP too old" messages
14:38 dalek rakudo/sized-arrays: review: https://github.com/rakudo/rakudo/commit/3823b8787a
14:38 moritz eeks, I was on the wrong branch the whole time :-)
14:38 moritz well, shouldn't matter much for relative comparison
14:39 moritz I'll cherry-pick that commit into nom later on
14:39 timotimo :)
14:40 dalek rakudo/nom: 8e64a83 | (Elizabeth Mattijsen)++ | / (15 files):
14:40 dalek rakudo/nom: Split Threading.pm into components
14:40 dalek rakudo/nom:
14:40 dalek rakudo/nom: No other changes made to content just yet.  Keeping the old Threading.pm
14:40 dalek rakudo/nom: around for reference for now.
14:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8e64a832f0
14:41 beastd joined #perl6
14:43 jnap joined #perl6
14:43 timotimo fwiw i did not run many tests with my changes
14:44 timotimo soit may be wrong but still succeed in building nqp&raludo
14:47 btyler joined #perl6
14:47 bluescreen10 joined #perl6
14:49 moritz parrot with nqp/master: 116.489
14:49 timotimo aaw
14:51 timotimo so it was all noise?
14:51 moritz wait for the JVM timing
14:51 timotimo sadface
14:51 timotimo jvm should not see changes
14:52 timotimo at least for stage parse
14:53 moritz 44.926
14:53 benabik joined #perl6
14:54 timotimo that's just noise, yeah
14:55 timotimo it should have done *something*
14:55 timotimo now I'm disappointed :(
14:58 FROGGS patched parse-p: 124.726 / 123.368 / 122.815 / 118.608
14:58 FROGGS 6 seconds difference for the same code?
14:58 FROGGS btw, only xchat, an editor and this is running
15:00 timotimo you think i made the performance less reliable?
15:00 lizmat FROGGS: remember ribasushi's talk at YAPC?
15:00 timotimo hehe
15:00 kaare_ joined #perl6
15:01 lizmat if you want reliable benchmarks, make sure any auto-turbo or de-turbo settings are off
15:01 timotimo mhhyes
15:02 FROGGS lizmat: yeah, that might be it...
15:02 dalek Pugs.hs: 281b626 | au++ | HsSyck/ (3 files):
15:02 dalek Pugs.hs: * s/Changes/changelog/ for hackage
15:02 dalek Pugs.hs: review: https://github.com/perl6/Pugs.hs/commit/281b626231
15:02 timotimo use cpufreq to set the frequency to your machines minimum
15:02 FROGGS no time to do that now though :/
15:02 FROGGS bbl
15:02 timotimo so do you have unlatched timings?
15:02 timotimo k
15:18 timotimo btw, the regex compiler for literal uses lc instead of fc for literals with ignorecase
15:18 rindolf joined #perl6
15:18 Ulti joined #perl6
15:19 timotimo but since fc can changebthe strlen, i'm not one hundred percent sure how to change it
15:19 timotimo i guess I'll need test cases to makebthe change work
15:20 diakopter timotimo: did you have an idea of how many eqat invocations there are?
15:21 timotimo not really, no
15:21 timotimo should i measure it?
15:21 timotimo only for regexes or for everything?
15:22 diakopter or how much time of the parse stage was spent in the things eqat replaced?
15:22 timotimo or are you just going to tell me to measure first next time? :)
15:23 timotimo i did not have sufficient measurement, no
15:23 timotimo all i knew was eqat is about 3x faster than substr+ eq
15:24 timotimo andbthen i just replaced those occurrences
15:24 diakopter oh
15:25 cognominal joined #perl6
15:25 diakopter well if it's only 0.5% of total run time, the max improvement you could see is 0.33%
15:25 timotimo yes i know
15:26 timotimo but it is very hard to figure these things out
15:26 diakopter a routine-level profiler is not far fetched.. I'm working on it for moar
15:27 diakopter ..shouldn't actually be horrible overhead..
15:27 timotimo maybe i will try perf again
15:28 xinming joined #perl6
15:28 timotimo last time i looked it spent like 30% of time allocating memory or something?
15:28 lizmat joined #perl6
15:29 timotimo notbsure i remember correctly
15:29 lizmat new glassfiber connection and/or new FritzBox not as reliable as I would hope
15:29 timotimo that may have been niecza on mono, too?
15:29 xenoterracide joined #perl6
15:30 ajr joined #perl6
15:33 fhelmberger_ joined #perl6
15:34 lizmat joined #perl6
15:35 dalek rakudo/nom: 9d83492 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/ (2 files):
15:35 dalek rakudo/nom: select() -> winner() migration
15:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9d83492504
15:35 lizmat more later, cycling & dinner&
15:42 jnthn away for a bit &
15:45 To_______ joined #perl6
15:47 To_______ joined #perl6
15:48 tgt joined #perl6
16:00 denis_boyun joined #perl6
16:09 timotimo i've arrived :)
16:09 diakopter o_O
16:13 tipdbmp joined #perl6
16:15 kresike bye folks
16:20 raiph p5eval: @ar1 = qw(foo bar); @ar2 = qw(a b c d); print scalar (@ar1, @ar2); # http://blogs.perl.org/users/ovi​d/2013/11/a-tiny-code-quiz.html
16:20 p5eval raiph: 41
16:22 diakopter p5eval: @ar1 = qw(foo bar); @ar2 = qw(a b c d); scalar (@ar1, @ar2);
16:22 p5eval diakopter: 4
16:22 diakopter raiph: it auto-prints already
16:22 diakopter [.. in case you weren't already aware/realized]
16:23 raiph p: my @ar1 = <foo bar>; my @ar2 = <a b c d>; print $(@ar1, @ar2);
16:23 camelia rakudo-parrot 8e64a8: OUTPUT«foo bar a b c d»
16:23 raiph diakopter: ovid's post is about a p5 result that's surprising
16:24 raiph diakopter: (i did know about the autoprint)
16:32 timotimo i'm glad that kind of stuff is a bit more transparent in perl6 :)
16:35 diakopter p: my @ar1 = <foo bar>; my @ar2 = <a b c d>; print item (@ar1, @ar2);
16:35 camelia rakudo-parrot 9d8349: OUTPUT«foo bar a b c d»
16:35 diakopter p: my @ar1 = <foo bar>; my @ar2 = <a b c d>; print list (@ar1, @ar2);
16:36 camelia rakudo-parrot 9d8349: OUTPUT«foobarabcd»
16:36 diakopter p: my @ar1 = <foo bar>; my @ar2 = <a b c d>; print sink (@ar1, @ar2);
16:36 camelia rakudo-parrot 9d8349: ( no output )
16:37 diakopter p: my @ar1 = <foo bar>; my @ar2 = <a b c d>; say (sink @ar1, @ar2).WHAT;
16:37 camelia rakudo-parrot 9d8349: OUTPUT«Nil␤»
16:37 araujo joined #perl6
16:43 cxreg does rakudko-jvm implement most of that heretical S17?
16:43 timotimo yes, that's right
16:44 cxreg having written a ton of node.js in the last year it looks so pleasant to work in
16:47 denis_boyun joined #perl6
17:11 kivutar joined #perl6
17:14 timotimo i still have no idea how to read (or even interpret) kcachegrind, but it seems like a bunch of time is getting spent in publish_parrot_vtable_handler_mapping or something like that?
17:14 timotimo does that ring any bells?
17:17 denis_boyun joined #perl6
17:20 arnsholt The squares in the kcachegrind display are scaled so that more time == more area
17:21 SmokeMachine joined #perl6
17:21 timotimo in the callee map, yeah?
17:22 arnsholt Yeah
17:30 ajr joined #perl6
17:32 timotimo it seems like is_narrower gets a fair amount of time
17:32 timotimo huh, that's a very tight routine
17:33 berekuk joined #perl6
17:33 timotimo ah, wrong is_narrower
17:33 ingy^ joined #perl6
17:33 jac50 joined #perl6
17:37 stevan__ joined #perl6
17:44 Rotwang joined #perl6
17:46 [Sno] joined #perl6
18:18 dalek rakudo/nom: cdcb429 | moritz++ | tools/lib/NQP/Configure.pm:
18:18 dalek rakudo/nom: [Configure] get rid of spurious "NQP too old" messages
18:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cdcb429678
18:22 SamuraiJack joined #perl6
18:22 ssutch joined #perl6
18:33 lizmat joined #perl6
18:55 lue Hello world o/
18:58 dmol joined #perl6
18:59 kivutar joined #perl6
19:06 tadzik helue world
19:10 lue Why does nqp-j refuse to install to /usr/local like a normal person? :(
19:13 lue (looks like it means I can't compile rakudo-p and -j in the same makefile ._.)
19:23 berekuk joined #perl6
19:40 * lizmat is back
19:40 woolfy \o/
19:41 lizmat quelle surprise!
19:42 timotimo yay, i just ordered my new laptop :)
19:48 zakharyas joined #perl6
19:56 moritz lue: what did you try, what went wrong?
19:56 tadzik oh, what will it be?
19:57 lue moritz: just, for some reason in nqp `perl Configure.pl --backend=parrot' will install to /usr/local upon "sudo make install", and `perl Configure.pl --backend=jvm` doesn't.
19:58 ingy^ joined #perl6
19:58 moritz lue: both install to ./install without any given --prefix
19:58 denisboyun joined #perl6
19:59 moritz lue: maybe you had some remnant of auld days when you configured with a different prefix
19:59 moritz ... left in your build dir
20:00 lue moritz: nope. I can assure you nqp-p configure goes to /usr/local . I've run plenty of git clean -dfx, but can do it again and run configure and look at the makefile
20:00 moritz lue: maybe if it dound a prrot configured with prefix /usr/local
20:00 moritz *found
20:01 lue moritz: that would likely be it. I'm not a --gen user, after all.
20:01 colomon joined #perl6
20:01 tobyink joined #perl6
20:02 lizmat jnthn: in src/vm/jvm/core/Threading.pm, line 784, there is an assignment to $ssn that is never used
20:02 lizmat seems to me something is amiss there
20:04 lizmat same on line 806, BTW
20:06 berekuk joined #perl6
20:12 lizmat jnthn: perhaps $lock.protect could take additional parameters to be passed to the code to protect?
20:14 * timotimo has on the table in front of him: a nintendo 64 expansion pak
20:15 timotimo 4 megabytes. with heatsink thingie on the side
20:15 timotimo just wow
20:19 lue timotimo: 4 MB with 9b/B, IIRC :)
20:20 timotimo wow, seriously?
20:20 stevan_ joined #perl6
20:20 timotimo is that for error correction or something?
20:22 lue z-depth info, I believe /me sees if he can double-check
20:22 timotimo didn't see anything about it on the wikipedia article
20:22 lizmat joined #perl6
20:23 dalek rakudo/nom: 0eb6a26 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/ (5 files):
20:23 dalek rakudo/nom: Some more Concurrency to spec migrations
20:23 dalek rakudo/nom:
20:23 dalek rakudo/nom: Subscribable    -> Supply
20:23 dalek rakudo/nom: Lock.run        -> Lock.protect
20:23 dalek rakudo/nom: *.subscribe     -> *.tap
20:23 dalek rakudo/nom: *.subscriptions -> *.tappers
20:23 timotimo The Nintendo console utilized 4 MB RDRAM running with a 500 MHz clock on a 9-bit bus, providing 500 MB/s bandwidth.
20:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0eb6a26f15
20:24 lue https://en.wikipedia.org/wiki/Nintend​o_64_technical_specifications#Memory (but seems you found it :D)
20:25 lue timotimo: Maybe I read the "z-depth" bit [;)] from the super-illegal-to-have-had-in-posses​sion-to-read-so-certainly-i-didn't technical docs.
20:25 timotimo hah :D
20:25 timotimo yeah, 8 bits of z-depth would be very little
20:26 lue (fun fact: the N64 SDK came with stuff for Windows and SGI workstations. SGI ≈ Unix)
20:26 lizmat jnthn: src/vm/jvm/core/asyncops.pm, lines 52,57,58 use an array @waiting that doesn't seem to be actually used anywhere
20:26 lizmat was that left behind from some debugging ?
20:29 timotimo yeah, at that time sgi was big for graphics development, no?
20:29 timotimo i think the wipeout people developed for sgi first and then had to downscale the game quite a bit for it to run on the playstation
20:30 dalek roast: 9603768 | (Elizabeth Mattijsen)++ | S17-concurrency/su (2 files):
20:30 dalek roast: Another part of Subscribable -> Supply migration
20:30 dalek roast: review: https://github.com/perl6/roast/commit/9603768311
20:30 berekuk joined #perl6
20:31 FROGGS joined #perl6
20:31 lue Wow. What took 100 entries 91.7576215s to process on Parrot takes just 21.618s on JVM :)
20:34 tadzik timotimo, timotimo
20:34 tadzik what's that laptop gonna be?
20:37 timotimo t440s
20:38 timotimo fullhd, 12 gigs of ram, SSD+HDD :D
20:38 lizmat timotimo
20:38 timotimo lizmatlizmat
20:38 lizmat .oO( felt a Sheldon like urge after tadzik's double timotimo )
20:38 timotimo :D
20:43 dalek rakudo/nom: 42960c4 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/ (3 files):
20:43 dalek rakudo/nom: More Concurrency up-to-specness
20:43 dalek rakudo/nom:
20:43 dalek rakudo/nom: *.run -> *.start
20:43 dalek rakudo/nom:
20:43 dalek rakudo/nom: Please note that Thread already had a .start method: renamed that to jvm_start.
20:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/42960c4013
20:44 Hellcat joined #perl6
20:45 Guest25321 joined #perl6
20:46 Guest25321 joined #perl6
20:48 timotimo wow, the entirety of get-local-timezone-offset on my laptop takes 0.1 seconds
20:48 timotimo that seems a tad excessive
20:49 Guest25321 left #perl6
20:50 lue "Your timezone offset appears to be UTC-8.00002777777"
20:53 perigrin there was a pretty awful doc bug in that version of UTC.
20:56 timotimo $date eq any(tai-utc::leap-second-dates) - this could be slow
20:56 lue r: say any(tai-utc::leap-second-dates); # worth a shot
20:56 timotimo was about to print that :)
20:56 camelia rakudo-parrot cdcb42, rakudo-jvm 882e33: OUTPUT«any(1972-06-30, 1972-12-31, 1973-12-31, 1974-12-31, 1975-12-31, 1976-12-31, 1977-12-31, 1978-12-31, 1979-12-31, 1981-06-30, 1982-06-30, 1983-06-30, 1985-06-30, 1987-12-31, 1989-12-31, 1990-12-31, 1992-06-30, 1993-06-30, 1994-06-30, 199…»
20:56 timotimo r: say tai-utc::leap-second-dates.elems;
20:57 camelia rakudo-parrot cdcb42, rakudo-jvm 882e33: OUTPUT«25␤»
20:57 timotimo no, i was wrong. that only gets touched if there's a second >= 60
20:58 * lue wonders how many timezones you could divide the Earth into before it gets too silly to keep track.
20:58 denis_boyun joined #perl6
20:59 geekosaur by some arguments that's anything over 1...
21:02 timotimo :)
21:02 dalek rakudo/nom: 186b451 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/ (2 files):
21:02 dalek rakudo/nom: Still more S17-Concurrency up-to-specness
21:02 dalek rakudo/nom:
21:02 dalek rakudo/nom: keeper -> vow
21:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/186b451125
21:02 timotimo i don't think infix:«>» knows to automatically assume modulo-60 arithmetics if the lhs is called $!seconds ;)
21:04 timotimo the next thing that may be slow is the when blocks with any-junctions
21:09 lue timotimo: I'm not entirely sure you should worry about .1s :)
21:10 timotimo cool, i can teach the optimizer to do junctions in when-blocks, too!
21:21 Eg0N|2 joined #perl6
21:26 Eg0N|2 left #perl6
21:27 * lizmat wonders whether Sockets shouldn't be doing Supply
21:28 tadzik isn't supply something that may lose data?
21:28 tadzik they could be UDP then :P
21:28 lizmat .oO( deja vu )
21:29 geekosaur .oO { I could tell you a joke about UDP, but... }
21:29 Hellcat joined #perl6
21:30 dalek rakudo/nom: 6f360f5 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/Supply.pm:
21:30 dalek rakudo/nom: Supply.untap should be Supply.close
21:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6f360f5a0c
21:31 BenGoldberg joined #perl6
21:31 tadzik should sockets support compile-time tapping? I know a government or two which may be interested in that
21:31 dalek rakudo/nom: 6da29b2 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/Thread (2 files):
21:31 dalek rakudo/nom: Unrename internal Thread.run->Thread.start
21:31 dalek rakudo/nom:
21:31 dalek rakudo/nom: This seems to refer to something called "run" in the JVM bowels, of which I
21:31 dalek rakudo/nom: know nothing about.
21:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6da29b2a5f
21:32 dalek roast: 7999141 | (Elizabeth Mattijsen)++ | S17-concurrency/ (4 files):
21:32 dalek roast: Bring S17-concurrency tests up to spec
21:32 dalek roast: review: https://github.com/perl6/roast/commit/7999141ad8
21:36 lizmat preflex: tell jnthn src/vm/jvm/core should be up to spec again
21:36 preflex Consider it noted.
21:38 tadzik aawesome
21:38 tadzik lizmat++
21:38 moritz ... and all the examples from the slides broken :-)
21:38 lizmat not all, I don't think, but many, yes
21:39 lizmat preflex: tell jnthn please let me know if I should fix your slides as well
21:39 preflex Consider it noted.
21:54 dalek specs: d0b6770 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
21:54 dalek specs: s/Supply/Publish/ where needed
21:54 dalek specs:
21:54 dalek specs: Supply was both a role and a class.  Publish is a class that does Supply.
21:54 dalek specs: Well, at least, that's how it's implemented now.
21:54 dalek specs: review: https://github.com/perl6/specs/commit/d0b677036a
21:56 bluescreen10 joined #perl6
21:59 denis_boyun joined #perl6
22:05 diakopter .
22:05 lizmat .oO( do what again? )
22:05 diakopter .
22:10 geekosaur resting?
22:11 timotimo huh, i really can't pinpoint why get-local-timezone-offset would be so slow
22:12 dalek specs: d68bb65 | (Elizabeth Mattijsen)++ | S99-glossary.pod:
22:12 dalek specs: Add CAS
22:12 dalek specs: review: https://github.com/perl6/specs/commit/d68bb65ecc
22:14 lue timotimo: I'm confused now. .1s isn't slow for much to me. Or did you get a worse time...?
22:15 dmol joined #perl6
22:16 diakopter lizmat: did jnthn mention about the cas nqp ops?
22:16 lizmat you mean in the spec ?
22:16 timotimo 0.1s for constructing three datetime objects and converting from unix time twice and to unix time once?
22:16 lizmat no, not as NQP op
22:16 diakopter anytime
22:17 diakopter did he mention cas?
22:17 timotimo (though now i've removed a debug-say that may have taken a big chunk of time due to IO being IO)
22:17 lizmat the spec mentions CAS, read it :-)
22:18 lizmat anyway, earlier today, he said that a lot of the features now in src/vm/jvm/core would become nqp::ops once we know what we need
22:18 diakopter well I'm curious how much it matches what jnthn and I discuused/designed/planned extensively in kiev
22:18 * lizmat realizes she missed the Scheduler.schedule -> cue migration
22:19 timotimo lue: that's really enough stuff to do to justify 0.1s?
22:20 timotimo running the empty program takes about 1.1s and apparently 10% of that is calculating the timezone interval that isn't used in 99.99% of all one liners
22:21 BenGoldberg joined #perl6
22:21 lizmat feels like something that should be lazy  :-)
22:22 tadzik :o
22:22 diakopter lizmat: I don't understabd what happened to the huge expanse of things jnthn and I discussed in Kiev
22:23 jnap joined #perl6
22:23 * lizmat neither: I was in Kiev, but not at those discussions, was I ?
22:23 timotimo tadzik: good news, i found out how to make the empty program take 10% less time! ;)
22:23 diakopter this cas section makes no sense
22:24 diakopter you can't implement cas in Perl 6
22:25 berekuk joined #perl6
22:26 lizmat I think the spec is more to explain the idea,
22:27 denis_boyun joined #perl6
22:29 diakopter it doesn't explain the idea
22:29 timotimo how is such a lazy thing like $PROCESS::TZ best handled? with a proxy that caches the value upon first access?
22:29 lizmat it probably needs to be done as an nqp op, I agree, but I still don't see why we could not have a cas() exposed at Perl6 level
22:30 lizmat timotimo: except that that probably doesn't work that early in settings ?
22:30 diakopter we can, but it needs to have locks at some level, hopefully the nqp cas oo
22:30 diakopter op
22:30 diakopter the cas sub, I mean
22:30 lizmat wonders whether we need an "on access" attribute on variables
22:31 diakopter also, this doesn't work for lvalues deeply
22:32 diakopter the idea is i want to cas an array slot
22:33 lizmat I would say: patches welcome ?
22:35 diakopter but they're not
22:42 timotimo oh my. the vast majority of the time is spent inside DateTime.new(now).posix.Int
22:42 timotimo as in 0.088 out of 0.1s
22:43 * timotimo gets more time resolution to figure out if .new or .posix.Int is to blame
22:44 timotimo these build times on my old laptop are pretty prohibitive ...
22:45 timotimo r: my $time = nqp::time_n(); get-local-timezone-offset(); say nqp::time_n() - $time;
22:45 camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
22:45 camelia ..rakudo-parrot 6da29b: OUTPUT«0.0676708221435547␤»
22:45 timotimo okay, on a faster machine that may not be terribly much time saved
22:45 timotimo i wonder how fast camelia runs the empty program, all in all
22:53 timotimo p: my $time = nqp::time_n(); now; say nqp::time_n() - $time;
22:53 camelia rakudo-parrot 6da29b: OUTPUT«0.0195190906524658␤»
22:53 timotimo p: my $time = nqp::time_n(); DateTime.new(now); say nqp::time_n() - $time;
22:53 camelia rakudo-parrot 6da29b: OUTPUT«0.04715895652771␤»
22:53 timotimo p: my $time = nqp::time_n(); DateTime.new(now).posix; say nqp::time_n() - $time;
22:53 camelia rakudo-parrot 6da29b: OUTPUT«0.0777351856231689␤»
22:53 timotimo p: my $time = nqp::time_n(); DateTime.new(now).posix.Int; say nqp::time_n() - $time;
22:53 camelia rakudo-parrot 6da29b: OUTPUT«0.0484480857849121␤»
22:54 timotimo oh wow, that's a noisy measurement
22:55 * lue considers working on perl6/book ...
22:55 timotimo that would be cool
22:55 timotimo note that parts of the book are reproduced in possibly slightly altered form in the p6doc repo as well
22:55 timotimo classtut and friends
22:57 lue timotimo: yeah, but book form is still nice :)
22:57 timotimo yeah, just saying there's an almost 1:1 copy of the text in another repo as well
22:58 * lue wants to start by undoing the seemingly silly use of nonfree fonts he can't find in portage, and isn't motivated to hunt for :P
22:58 lue At least so I can compile the book, that is.
22:59 timotimo p: say now.WHAT
22:59 camelia rakudo-parrot 6da29b: OUTPUT«(Instant)␤»
22:59 timotimo p: say now.to-posix
22:59 camelia rakudo-parrot 6da29b: OUTPUT«1383951594.255217 False␤»
23:00 lue I'd probably start a modernize branch if/when I decide to act on that class of urges :)  (Pod6, all XeLaTeX, etc. ...)
23:00 timotimo p: my Instant $n = now; say now.to-posix; say DateTime.new(now).posix;
23:00 camelia rakudo-parrot 6da29b: OUTPUT«1383951623.037775 False␤1383951623␤»
23:00 timotimo oh man, leap seconds ...
23:02 timotimo tomorrow i'll try to give the new method that turns an Int into a DateTime native int arithmetics and see if that helps at all
23:02 timotimo for now i'll sleep
23:02 timotimo &
23:02 lizmat gnight, timotimo
23:07 lue I'm not sure if the formatting mixups are caused by my font changes or not, and I don't have the nonfree fonts to test this :P
23:07 timotimo http://questhub.io/realm/perl/​quest/527d67139f567a604d0000ca - i'd love somebody to comment there, or tell me here, why the sub is the way it is, because i'm not sure i get it.
23:14 lue Huh. Something is messing up the rendering, and I don't think it's just my font choice...
23:18 sftp joined #perl6
23:21 lue .oO(Our lovely perl5 scripts are introducing mojibake. /me kinda wishes a book veteran was around.)
23:22 lizmat timotimo: having been there, I don't think there is an easier way
23:22 lizmat unless you can prevent the craation of the DateTime
23:30 Shellcat joined #perl6
23:43 dalek rakudo/nom: d2cc298 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/ (3 files):
23:43 dalek rakudo/nom: Hopefully final Concurrency up-to-specness
23:43 dalek rakudo/nom:
23:43 dalek rakudo/nom: .schedule       -> .cue
23:43 dalek rakudo/nom: .schedule_in    -> .cue( :in )
23:43 dalek rakudo/nom: .schedule_every -> .cue( :every )
23:43 dalek rakudo/nom:                 -> .cue( :at )
23:43 dalek rakudo/nom:
23:43 dalek rakudo/nom: Alas, there seems to be a MMD bug preventing this from working:
23:43 dalek rakudo/nom:
23:43 dalek rakudo/nom: Ambiguous call to 'cue'; these signatures all match:
23:43 dalek rakudo/nom: :(ThreadPoolScheduler : &code, Mu *%_)
23:43 dalek rakudo/nom: :(ThreadPoolScheduler : &code, Mu *%_)
23:43 dalek rakudo/nom:
23:43 dalek rakudo/nom: Leaving this to jnthn++ to figure out why
23:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d2cc29879c
23:44 dalek roast: 8b42d46 | (Elizabeth Mattijsen)++ | S17-concurrency/scheduler.t:
23:44 dalek roast: Adapt test to .schedule* -> .cue migration
23:44 dalek roast: review: https://github.com/perl6/roast/commit/8b42d46b61
23:48 ssutch joined #perl6
23:48 FROGGS joined #perl6
23:50 dalek rakudo/nom: 405e482 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/ (2 files):
23:50 dalek rakudo/nom: Too many proto's may spoil the broth
23:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/405e482ccb

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

Perl 6 | Reference Documentation | Rakudo