Perl 6 language and compiler development 2.0 | Logs at irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by moderator on 30 April 2018.
buggable 🎺🎺🎺 It's time for the monthly Accidental /win Lottery 😍😍😍 We have 2 ballots submitted by 2 users! DRUM ROLL PLEASE!... 00:00
And the winning number is 10! Congratulations to nine! You win a roll of duck tape!
TimToady
.oO(Roll the tape! "Quack")
00:07
samcv AlexDaniel: ok so not too many then :) 00:12
submitted a PR for Serialize::Tiny, made an issue for messagepack. time for bed now. o/ 00:22
AlexDaniel samcv++ 00:25
is $license.files().keys, ['COPYING.LESSER', 'COPYING'], 'License files'; 00:27
heh
samcv though JVM still has the hash issue bugzilla.redhat.com/show_bug.cgi?i...-2012-2739
by default JVM has deterministic hashing
AlexDaniel given that the order is random every run, I guess the next time we toast the ecosystem we will see some extra failing modules 00:28
samcv yeah may be. mostly in cases where there's a sufficently small number of keys (like 2 or 3). if there's 4 it will mostly fail if it relys on ordering 00:29
AlexDaniel samcv++ # I like that change! 00:30
samcv AlexDaniel: which one? just the hash having randomized order on each initialization of moarvm? 00:39
i made a rakudo github issue so we can track the status on jvm. i haven't personally tested but node shouldn't be susciptible to the hash DOS attack 00:40
from the research i did into how different backends decided to fix the issue
AlexDaniel yeah, randomized order should detrap a couple of things, I think 00:42
of course the security aspect is important too :) 00:43
samcv night o/ 00:46
01:57 ilbot3 joined
moderator Perl 6 language and compiler development 2.0 | Logs at irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
tony-o lizmat: i failed on the blog. i got sick saturday night and have been sleeping since then 03:01
Geth star: hankache++ created pull request #111:
Update perl6intro.pdf
04:08
star: e00307235f | (Naoum Hankache)++ (committed by Zoffix Znet) | docs/perl6intro.pdf
Update perl6intro.pdf (#111)
04:11
[Tux] Rakudo version 2018.04.1-35-g8cd70d1ee - MoarVM version 2018.04.1-41-gaf60a8610
csv-ip5xs0.929 - 0.944
csv-ip5xs-209.013 - 9.080
csv-parser38.303 - 39.702
csv-test-xs-200.453 - 0.453
test9.360 - 10.115
test-t2.444 - 2.449
test-t --race1.006 - 1.053
test-t-2044.709 - 44.887
test-t-20 --race14.548 - 16.515
06:25
lizmat Files=1239, Tests=76311, 322 wallclock secs (15.85 usr 5.68 sys + 2218.64 cusr 224.56 csys = 2464.73 CPU) 07:59
08:01 robertle joined 08:26 brrt joined 09:05 [TuxCM] joined 09:52 Ven`` joined 09:53 Ven`` joined 10:03 Ven`` joined 10:43 brrt joined
lizmat Do we currently have a way to handle char ** in a struct with NativeCall ? 11:12
I guess we have: its Carray[Str] 11:41
but if this is part of a CStruct and the call fills it, how do I get things out of it again ? 11:42
I need it here: github.com/lizmat/P5getgrnam/blob/...am.pm6#L17 :-) 11:43
"The $members value returned by getgr*() is a space-separated list of the login names of the members of the group."
is what I want to achieve 11:44
perhaps I should SO it :-)
Ven`` m: use nqp; class A { submethod x {} } class B is A {}; say B^.methods; say nqp::can(B.new, 'x'); 12:19
camelia 5===SORRY!5=== Error while compiling <tmp>
Strange text after block (missing semicolon or comma?)
at <tmp>:1
------> 3use nqp; class A { submethod x {} }7⏏5 class B is A {}; say B^.methods; say nq
expecting any of:
infi…
Ven`` m: use nqp; class A { submethod x {} }; class B is A {}; say B^.methods; say nqp::can(B.new, 'x');
camelia No such method 'methods' for invocant of type 'Any'
in block <unit> at <tmp> line 1
Ven`` m: use nqp; class A { submethod x {} }; class B is A {}; say B.^methods; say nqp::can(B.new, 'x'); 12:20
camelia (x)
0
Ven`` ^Is this expected?
(I'm looking at #1758)
jnthn Hmm, could call that both ways. Changing it would break anything doing e.g. B.^methods.grep(*.name eq 'BUILD') 12:29
12:43 AlexDaniel joined
Ven`` Ok, thanks. Guess I'll go for a nqp::can. 12:48
timotimo an nqp::can of soup
12:59 lizmat joined 13:31 skids joined
Geth nqp/pluggable-spesh: 969ff6879e | (Jonathan Worthington)++ | t/moar/52-pluggable-spesh.t
Test pluggable spesh at a range of offsets
13:36
13:56 brrt joined 14:34 lizmat joined 14:35 lizmat_ joined 15:03 Ven`` joined 15:26 lizmat joined 15:33 robertle joined 15:54 brrt joined 16:10 [TuxCM] joined, Ven`` joined
Geth nqp/pluggable-spesh: 14ffc92ec9 | (Jonathan Worthington)++ | t/moar/52-pluggable-spesh.t
Tests for literal object match spesh plugin guard
16:12
brrt can i disable precompilation with an env flag? 16:55
or at all 17:04
moritz brrt: a git grep doesn't find something obvious to disable it 17:21
brrt thats unfortunate 17:32
samcv lizmat: the hash speed improvement is 15% faster in the simplest case where the strings are fully random. testing an identical 1000 codepoints + random string at the end makes it 3x faster than it used to be 17:52
brrt it was precomp 18:00
RAKUDO_MODULE_DEBUG=1 demonstrated that it would compile-and-reload the same code over and over 18:01
which is okay, except that i really, really wanted predictable behaviour
jnthn brrt: You can try putting `no precompilation` in the top-level script file 18:11
lizmat samcv: whee !
jnthn samcv: Ooh, that's nice...that's for the ones we merged already, or for upcoming siphash?
samcv no it'll be merged shortly once i spectest it 18:12
not related to siphash at all.
jnthn ah, OK :) 18:20
brrt jnthn: thanks :-) 18:28
i'd prefer a no-modification solution if at all possible though
anyway. i have good evidence that one of my recent changes was the thing that broke the test i'm looking at 18:29
which happens to be true
18:36 Ven`` joined 19:04 cog_ joined, [TuxCM] joined
timotimo oh, i must have missed that hash thing, are we re-using the cached hash value if we want to calculate the hash of a stranded string? 19:07
samcv timotimo: yeah we are. but we compare strings when we don't need to sometimes 19:13
and that's where the speedup comes from
timotimo oh? is that when a strand in the string is literally a pointer to the same other string? 19:14
samcv also will make it not DOSable (with combination of the other changes i've been making)
timotimo: we compare with each string in the bucket. so i guess it's ok if there's few things in the buckets. so only gives a 15% speed degradation 19:15
timotimo oh, because the actual hash code for objects in the same bucket may be different, right? 19:16
samcv yeah
timotimo that's a part i missed :)
samcv and the time delay could make it so the attacker could use a timing attack
Ven`` tries a fix for GH#1758
synopsebot GH#1758 [open]: github.com/rakudo/rakudo/issues/1758 [LHF][LTA] Ancestor's submethods are typo-suggested when you try to call a submethod on a kid
timotimo glad to see you back, Ven`` :) 19:17
samcv i mean i haven't proved it. but it may be possible to find strings which fit in the same buckets somehow. even if they can't use a 'meet in the middle' type attack
Ven`` timotimo: I'm never too far! I have a talk submitted to the french pw
timotimo nice
samcv (when i merge siphash implementation i mean. that fixes meet in the middle attack assuming someone can guess our random key 19:18
or at least enough to be able to bruteforce some strings or something
stmuk pl6anet.org/drop/rakudo-star-2018.04-RC2.dmg 19:34
virtualsueable++ 19:35
19:45 [TuxCM] joined 19:58 skids joined 20:06 brrt joined 20:14 ktown joined
ktown ll 20:17
20:18 [TuxCM] joined 21:00 [TuxCM] joined 21:11 pmurias joined
pmurias jnthn: when sorting fates when doing NFA matching should the longlit part affect the sort order? 21:14
21:23 shareable6 joined
pmurias jnthn: we don't apply the bit mask here: github.com/MoarVM/MoarVM/blob/mast...NFA.c#L610 21:28
if we are add in a new operator that has the same literal prefix as an existing one, the older one should be choosen because NFA prefers earlier declarations? 21:34
jnthn pmurias: TimToady++ added the longlit thingy, so I don't know off the top of my head how the mechanism works. But yes, the longest literal acts as a tie-break for things that are otherwise longest. 21:50
I think maybe S05 will clarify which of them is the stronger breaker
21:57 dct joined
pmurias jnthn: the literal has 1 char in both cases it's just the extra stuff tacked on that's affecting the sort order 22:08
I'll think about it more when I'm fresh tomorrow 22:11
jnthn pmurias: Ah, then maybe if it's otherwise accounting for longlit then it is just a forgotten masking
pmurias jnthn: github.com/perl6/roast/blob/master...sub.t#L173 - it seems moar is wrong here and js/jvm are correct
jnthn: js/jvm are using the @ prefix from the variable rule 22:13
jnthn Hmm...it seems moar is doing the more helpful thing, in picking the @ circumfix, though? 22:14
22:14 Ven`` joined
jnthn I think the sigil rule starts with a char class 22:15
I don't *think* a charclass counts as a longest literal
But an @ would
And then it's in a subclass compared to variable
So it'd seem that the circumfix one would win both, or even if I'm wrong on the char class thing, on one of them and be tied otherwise? 22:16
pmurias I guess I should really get some sleep ;) 22:17
Geth nqp/pluggable-spesh: 023df2d6f3 | (Jonathan Worthington)++ | t/moar/52-pluggable-spesh.t
Spesh plugin tests for type/concreteness guards
jnthn :-)
pmurias jnthn: a removed comment indicates that the literal length should take part in the sorting 22:18
jnthn Yeah, that's my understanding, but I think it's secondary to overall longest
(Though in this case var and the circumfix tie on overall longest) 22:19
22:20 [TuxCM] joined
Ven`` resets his rakudo/t directory to point to roast directly instead... 22:20
(at least I think that's the simplest way) 22:21
jnthn o/ Ven``
Ven`` \\o
I have a patch for GH#1758, just need to sync up two PRs for it. 22:22
synopsebot GH#1758 [open]: github.com/rakudo/rakudo/issues/1758 [LHF][LTA] Ancestor's submethods are typo-suggested when you try to call a submethod on a kid
jnthn Cool :)
Ven`` Er, I actually probably don't need to add a roast test for a rakudo error message. 22:30
jnthn If it's a typed exception it should be quite easy to test, though :) 22:31
Ven`` Yeah, I already have a test, I was just considering where to put it.
jnthn If we're aleady testing that exception type then along with those, I guess 22:32
Geth rakudo: vendethiel++ created pull request #1791:
GH#1758: Only suggest a submethod if it's local
22:35
synopsebot GH#1758 [open]: github.com/rakudo/rakudo/issues/1758 [LHF][LTA] Ancestor's submethods are typo-suggested when you try to call a submethod on a kid
Ven`` probably not the prettiest fix.
23:03 skids joined
Geth nqp/pluggable-spesh: 6a1fd1a93e | (Jonathan Worthington)++ | t/moar/52-pluggable-spesh.t
Test plugin spesh guards on fetched attributes
23:06
23:27 Zoffix joined, Zoffix left