Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
00:00 AlexDaniel left 00:07 entonian joined 00:11 entonian left, japhb joined 01:34 j3nnn1 left 02:16 MasterDuke joined, MasterDuke left, MasterDuke joined
Geth rakudo: ugexe++ created pull request #2660:
Use path-spec instead of path for module-not-found errors
03:03
03:44 ufobat__ joined 03:48 ufobat_ left 06:12 robertle joined 06:58 ufobat__ is now known as ufobat 07:04 AlexDaniel joined 07:12 ufobat left 07:21 ufobat joined 08:02 patrickb joined 08:11 dct joined
patrickb AlexDaniel: wrt relocatability, I'm working on that atm. It is actually working already. Still to do is JVM, Windows and more testing. 08:39
09:05 dct left
|Tux| Rakudo version 2018.12-269-gc2e272ef6 - MoarVM version 2018.12-45-ga9d02578a
csv-ip5xs0.734 - 0.766
csv-ip5xs-206.337 - 6.417
csv-parser21.678 - 22.615
csv-test-xs-200.436 - 0.445
test7.703 - 8.223
test-t1.849 - 1.873
test-t --race0.838 - 0.839
test-t-2031.527 - 32.054
test-t-20 --race10.030 - 10.277
09:11
AlexDaniel patrickb: yes, that is wonderful 10:32
lizmat Files=1266, Tests=88056, 401 wallclock secs (19.92 usr 5.72 sys + 2661.59 cusr 227.44 csys = 2914.67 CPU) 10:34
that's quite a bit more than yesterday, jnthn ^^^
(376 -> 401) 10:35
jnthn Curious, at most here I saw a second or two
jnthn runs it again
lizmat well, could be a fluke, but won't know for sure until next night
jnthn Huh, and my latest run was faster than many I've had in recent days (but only within noise) 10:39
lizmat Files=1266, Tests=88056, 392 wallclock secs (21.58 usr 7.10 sys + 2771.88 cusr 231.77 csys = 3032.33 CPU) 10:42
ok, on a hot machine and less than last night's, I guess last night's was a fluke 10:43
sorry for the noise
jnthn np, given I added us producing extra debug info, it was entirely reasonable to think something might have had more effect than expected 10:45
Geth rakudo: f7704267de | (Nick Logan)++ | 3 files
Use path-spec instead of path for module-not-found errors

The path portion of the path-spec is often not enough to debug what wasn't found. This change includes the entire path-spec when giving an error for e.g. `use NotFound;`
11:00
rakudo: 82fde76874 | niner++ (committed using GitHub Web editor) | 3 files
Merge pull request #2660 from ugexe/path-spec-in-error

Use path-spec instead of path for module-not-found errors
11:45 dogbert2_ joined 11:52 robertle_ joined 11:58 robertle_ left 11:59 AlexDaniel left 12:00 robertle_ joined 12:02 brrt joined 12:05 leont joined 12:24 robertle_ left 12:57 leont left 13:02 patrickb left 13:03 brrt left
jnthn m: use Test; plan 1; my $i = 0; loop { last if ++$i == 5; $_ = 42; when Int { } }; is $i, 5; 13:10
camelia 1..1
# Looks like you planned 1 test, but ran 0
jnthn committable6: 2018.12 use Test; plan 1; my $i = 0; loop { last if ++$i == 5; $_ = 42; when Int { } }; is $i, 5;
committable6 jnthn, Ā¦2018.12: Ā«1..1ā¤# Looks like you planned 1 test, but ran 0ā¤ Ā«exit code = 255Ā»Ā»
dogbert2_ jnthn: another stab at the blockers? 13:12
jnthn dogbert2_: Taking care of the things I said I'd do at the end of github.com/rakudo/rakudo/issues/2644 13:13
Got an optimizer patch that fixes the above 13:18
13:22 patrickb joined
dogbert2_ jnthn: very cool 13:24
Geth rakudo: c6053e6a5d | (Jonathan Worthington)++ | src/Perl6/Optimizer.nqp
Don't inline immediate blocks using p6return

Otherwise, we can end up with, for instance, a `loop` that does a smart-match ending up causing a return from the block containing the loop itself, thus terminating not only the loop, but also skipping any code in the block after the loop. Related to #2644.
13:29
synopsebot RAKUDO#2644 [open]: github.com/rakudo/rakudo/issues/2644 [regression][āš  blocker āš ] Some regression with Cro::WebSocket
roast: e95d29d6c1 | (Jonathan Worthington)++ | S04-statements/when.t
Successful `when` should not terminate a loop

A Rakudo optimizer bug made it do so in some cases (including the one provided here). Covers github.com/rakudo/rakudo/issues/2644.
13:34
14:06 patrickb left 14:42 patrickb joined 15:18 dogbert2_ left 15:26 leont joined 15:51 brrt joined 16:00 patrickb left 16:17 brrt left 16:34 patrickb joined 17:02 AlexDaniel joined
patrickb o/ 17:29
17:36 gfldex left 17:37 gfldex joined 18:11 gfldex left
MasterDuke nqp: my $a := 5.4; $a := "now a string"; say($a) 18:26
camelia now a string
MasterDuke is ^^^ more efficient than vvv?
nqp: my num $a := 5.4; my str $b := "now a string"; say($b) 18:27
camelia now a string
jnthn MasterDuke: Naively, no, since the first two require a boxing 18:31
MasterDuke: But I guess maybe SSA form would split it and then the boxing might be eliminated 18:32
MasterDuke: I'd probably write the second just for readability, though. ;) 18:33
MasterDuke jnthn: thanks, i thought the first might be a little worse and it looks like it is slightly so in practice
trying to decide how much cleanup of github.com/perl6/nqp/blob/master/s...printf.nqp i really want to do along with the minimal changes needed for my branch to pass tests 18:34
nqp: my int $a := 0; my str $c; my num $s := nqp::time_n(); while $a++ < 10_000_000 { my $b := nqp::sub_n(1.0, $a); $b := ~$b ~ " is a string"; $c := $b }; say($c); say(nqp::sub_n(nqp::time_n(), $s)) 18:36
camelia -9999999 is a string
2.3138508796691895
MasterDuke nqp: my int $a := 0; my str $c; my num $s := nqp::time_n(); while $a++ < 10_000_000 { my num $b := nqp::sub_n(1.0, $a); my $d := ~$b ~ " is a string"; $c := $d }; say($c); say(nqp::sub_n(nqp::time_n(), $s))
camelia -9999999 is a string
2.244842529296875
MasterDuke i see a slightly larger difference locally, but maybe that's also my branches coming into play 18:37
2.55 vs 2.9
jnthn dinner time & 18:47
19:23 masak left 19:25 masak joined
MasterDuke nqp: my num $a := 0.0; say(nqp::sprintf("%#e5.2", [$a])) 20:39
camelia 0.000000e+005.2
MasterDuke after my most recent cleanup to sprintf i'm getting `Directive e not applicable for type BOOTNum`
which i don't understand 20:40
nqp: my num $a := 0.0; say($a.HOW.name($a))
camelia BOOTNum
MasterDuke nqp: my str $a := "492384e2394"; my $b; my int $i := 0; my num $s := nqp::time_n(); while $i++ < 10_000_000 { $b := nqp::indexic($a, "e", 0) }; say($b); say(nqp::sub_n(nqp::time_n(), $s)) 20:46
camelia 6
1.7762081623077393
MasterDuke nqp: my str $a := "492384e2394"; my $b; my int $i := 0; my num $s := nqp::time_n(); while $i++ < 10_000_000 { $b := nqp::index($a, "e", 0) }; say($b); say(nqp::sub_n(nqp::time_n(), $s))
camelia 6
0.18055200576782227
MasterDuke didn't realize indexic is that much slower than index, 10x 20:47
20:56 dct joined 20:57 leont left 21:01 dct left
timotimo it probably can't use the fast string search thing that can skip a bunch of letters at once when it sees the right letters in the haystack 21:09
MasterDuke boyer-moore? 21:11
timotimo: any idea about the error i'm getting? 21:13
if anyone is interested, here's the diff gist.github.com/MasterDuke17/cc73a...4692c9b42d (on my branch, so there are some other changes compared to what's in NQP right now) 21:15
but the branch is ok, it's just the diff that breaks things 21:16
timotimo could it be a missing decont somewhere? 21:41
like, is the check looking at a Scalar, but the error message is deconting to output the type it unexpectedly got? 21:42
MasterDuke hm. name in message comes from `$type.HOW.name($type)` 22:00
it goes through this github.com/perl6/nqp/blob/master/s...f.nqp#L107 branch of next_argument() 22:04
timotimo ah, bad-type-for-derctive gets called from an indiscriminate CATCH 22:08
so who knows what the original exception was
MasterDuke ah, right 22:09
huh, i put `note('exception is: ' ~ $_);` here github.com/perl6/nqp/blob/master/s....nqp#L404, but it doesn't get printed 22:12
timotimo i'd say remove the CATCH and let the "regular" exception printer print it maybe? 22:13
does "doesn't get printed" mean it makes absolutely no output? or just an empty text where the stringification is supposed to be?
MasterDuke no output at all
timotimo clearly something strange is happening, then? 22:14
lizmat git diff
oops
timotimo what does removing the CATCH block entirely do?
MasterDuke huh, no different output/error when i comment out the CATCH
timotimo are your changes being properly respected in compilation? 22:17
22:17 gfldex joined 23:11 leont joined