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