buggable | 🎺🎺🎺 It's time for the monthly Accidental /win Lottery 😍😍😍 We have 6 ballots submitted by 6 users! DRUM ROLL PLEASE!... | 00:00 | |||||||||||||||||||||||||||||||||||||
And the winning number is 14! Congratulations to jast! You win a roll of duck tape! | |||||||||||||||||||||||||||||||||||||||
Zoffix | Perl 6 2017 Advent Day 1 post: "The Grinch of Perl 6: A Practical Guide to Ruining Christmas": perl6advent.wordpress.com/2017/12/...christmas/ | 00:01 | |||||||||||||||||||||||||||||||||||||
jnthn | OMG it's December already! | 00:06 | |||||||||||||||||||||||||||||||||||||
Zoffix | Yeah, crazy :) | 00:08 | |||||||||||||||||||||||||||||||||||||
jnthn | Zoffix++ | 00:11 | |||||||||||||||||||||||||||||||||||||
'night o/ | 00:14 | ||||||||||||||||||||||||||||||||||||||
timotimo | yesterday's moar vs now's moar does give a little speed improvement for our work | 01:20 | |||||||||||||||||||||||||||||||||||||
we might get a performance dip if we don't bump again | |||||||||||||||||||||||||||||||||||||||
Geth | roast: e10d781912 | usev6++ | S05-mass/properties-general.t [jvm] Skip dying Unicode tests |
05:56 | |||||||||||||||||||||||||||||||||||||
samcv | i think i found a serious bug in ucd2c.pl. investigating | 06:22 | |||||||||||||||||||||||||||||||||||||
basically causes it to not store any properties on any codepoint that is not in UnicodeData.txt | 06:23 | ||||||||||||||||||||||||||||||||||||||
so any of the not mentioned in that file just get ignored | |||||||||||||||||||||||||||||||||||||||
AlexDaniel | squashable6: next | 07:06 | |||||||||||||||||||||||||||||||||||||
squashable6 | AlexDaniel, ⚠🍕 Next SQUASHathon in ≈2 hours (2017-12-02 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day | ||||||||||||||||||||||||||||||||||||||
samcv | well i guess it's not that serious for most people. but. a serious issue in the script. most people don't rely on property values of reserved codepoints | 07:21 | |||||||||||||||||||||||||||||||||||||
though it could be more important if someone is using an older perl6 and if the property values are more right based on expected usage or something | 07:22 | ||||||||||||||||||||||||||||||||||||||
|Tux| |
|
10:52 | |||||||||||||||||||||||||||||||||||||
sorry for the late post | |||||||||||||||||||||||||||||||||||||||
jnthn, is this the dip you hoped for? | |||||||||||||||||||||||||||||||||||||||
lizmat | [Tux]: looks like it to me, about 5% faster | 11:03 | |||||||||||||||||||||||||||||||||||||
further commute& | |||||||||||||||||||||||||||||||||||||||
timotimo | oh, that also includes the jitting of the exception ops | 11:04 | |||||||||||||||||||||||||||||||||||||
jnthn | |Tux|: Hm, is that a new low for test-t? :) | 11:12 | |||||||||||||||||||||||||||||||||||||
|Tux| | I think I had one run under 3. /me checks .... | 11:13 | |||||||||||||||||||||||||||||||||||||
jnthn | Looks like a dip over recent days, anyways | ||||||||||||||||||||||||||||||||||||||
|Tux| | $ perl -ne'/test-t (2.\d+|3.[01]\d*)/ or next; push @x, [$1,$_]}END{print$_->[1]for sort{$b->[0]<=>$a->[0]}@x' speed.log | tail | 11:17 | |||||||||||||||||||||||||||||||||||||
2017-10-26 13:58:52 test-t 3.077 | |||||||||||||||||||||||||||||||||||||||
2017-10-14 12:24:16 test-t 3.071 | |||||||||||||||||||||||||||||||||||||||
2017-10-14 12:25:25 test-t 3.071 | |||||||||||||||||||||||||||||||||||||||
2017-10-26 12:50:40 test-t 3.067 | |||||||||||||||||||||||||||||||||||||||
2017-10-26 14:11:11 test-t 3.066 | |||||||||||||||||||||||||||||||||||||||
2017-10-26 11:01:00 test-t 3.064 | |||||||||||||||||||||||||||||||||||||||
2017-10-26 11:48:59 test-t 3.064 | |||||||||||||||||||||||||||||||||||||||
2017-10-19 13:32:36 test-t 3.044 | |||||||||||||||||||||||||||||||||||||||
2017-12-01 11:49:30 test-t 3.044 | |||||||||||||||||||||||||||||||||||||||
2017-12-01 11:46:09 test-t 3.013 | |||||||||||||||||||||||||||||||||||||||
so yes, it is a new low | |||||||||||||||||||||||||||||||||||||||
jnthn | \o/ | 11:20 | |||||||||||||||||||||||||||||||||||||
DrForr | And quite a jump at that :) | ||||||||||||||||||||||||||||||||||||||
jnthn | Was hoping I might just manage to break the 3s barrier. But not quite yet :) | 11:21 | |||||||||||||||||||||||||||||||||||||
|Tux| runs a second double, just to verify | 11:23 | ||||||||||||||||||||||||||||||||||||||
test-t 3.021 - 3.041 | 11:25 | ||||||||||||||||||||||||||||||||||||||
dogbert17 | timotimo, jnthn: don't you have a one line fix optimiztion lying around :) | 12:28 | |||||||||||||||||||||||||||||||||||||
timotimo | the exception ops that get jitted still all put a validation in front, i.e. "is the object concrete and is the type right?"; with a proper implementation of these ops it could be a tiny bit faster, but definitely not much | 12:38 | |||||||||||||||||||||||||||||||||||||
not enough to get us below 3.0 anyway | 12:39 | ||||||||||||||||||||||||||||||||||||||
dogbert17 | darn | 12:48 | |||||||||||||||||||||||||||||||||||||
perhaps it's time to callgrind again | |||||||||||||||||||||||||||||||||||||||
Geth | roast/W4anD0eR96-Patch-1: 4355702fc6 | (Alex Chen)++ | S04-phasers/in-loop.t Test for RT #125488 |
12:51 | |||||||||||||||||||||||||||||||||||||
synopsebot | RT#125488 [new]: rt.perl.org/Ticket/Display.html?id=125488 Some phaser blorsts don't see outer $_ | ||||||||||||||||||||||||||||||||||||||
timotimo | so, Str's split method, right? | 12:55 | |||||||||||||||||||||||||||||||||||||
it spends 27% of its time inside Seq's sink method | 12:56 | ||||||||||||||||||||||||||||||||||||||
Geth | roast: W4anD0eR96++ created pull request #362: Test for RT #125488 |
||||||||||||||||||||||||||||||||||||||
synopsebot | SPEC#362 [open]: github.com/perl6/roast/pull/362 Test for RT #125488 | ||||||||||||||||||||||||||||||||||||||
timotimo | which is fine, i expect that's for iterating a loop | ||||||||||||||||||||||||||||||||||||||
dogbert17 | split definitive rings a bell | 13:01 | |||||||||||||||||||||||||||||||||||||
*definitively | |||||||||||||||||||||||||||||||||||||||
timotimo | that looks to be the kv loop inside split where it goes through the needles | 13:02 | |||||||||||||||||||||||||||||||||||||
dogbert17 | it's already nqp code it seems | 13:03 | |||||||||||||||||||||||||||||||||||||
timotimo | right | 13:04 | |||||||||||||||||||||||||||||||||||||
i'm going to try with a simple iteration and a variable $index that i increment myself | 13:05 | ||||||||||||||||||||||||||||||||||||||
dogbert17 | so you already have a cunning plan :) | 13:07 | |||||||||||||||||||||||||||||||||||||
timotimo | wow | 13:08 | |||||||||||||||||||||||||||||||||||||
dogbert17 | ? | ||||||||||||||||||||||||||||||||||||||
timotimo | the fastest before the change was 3.10s wallclock (105% cpu) | ||||||||||||||||||||||||||||||||||||||
dogbert17 | and now | ||||||||||||||||||||||||||||||||||||||
timotimo | the fastest after the change was 2.96s wallclock (104% cpu) | ||||||||||||||||||||||||||||||||||||||
dogbert17 | oh | 13:09 | |||||||||||||||||||||||||||||||||||||
impressive | |||||||||||||||||||||||||||||||||||||||
timotimo | it is! | ||||||||||||||||||||||||||||||||||||||
dogbert17 | but does it pass a spectest ? | 13:10 | |||||||||||||||||||||||||||||||||||||
timotimo | i shall soon see | 13:11 | |||||||||||||||||||||||||||||||||||||
dogbert17 | this is exciting | ||||||||||||||||||||||||||||||||||||||
timotimo | i find it rather mean to snatch the "going from above to below 3s" thing from liz and jnthn who put considerably more effort into this than i just did | 13:14 | |||||||||||||||||||||||||||||||||||||
dogbert17 | should jnthn or lizmat take a look at your change or are you confident that it is correct? | 13:16 | |||||||||||||||||||||||||||||||||||||
timotimo | the spec tests shall prove them correct | 13:17 | |||||||||||||||||||||||||||||||||||||
the change is basically trivial | |||||||||||||||||||||||||||||||||||||||
dogbert17 | how far are you in the spectest? | 13:18 | |||||||||||||||||||||||||||||||||||||
timotimo | done | 13:19 | |||||||||||||||||||||||||||||||||||||
passed :) | |||||||||||||||||||||||||||||||||||||||
i'd really want to measure more for a good commit message | |||||||||||||||||||||||||||||||||||||||
but building back and forth ... meh | |||||||||||||||||||||||||||||||||||||||
dogbert17 | :) | 13:21 | |||||||||||||||||||||||||||||||||||||
Geth | roast: 1fbabe9b57 | (Alex Chen)++ | S12-enums/basic.t Test for RT #116719 The very ticket is fixed somewhere. It should be mentioned that there was a test with comment RT#116719, but it is nothing to do with this rt. |
||||||||||||||||||||||||||||||||||||||
synopsebot | RT#116719 [open]: rt.perl.org/Ticket/Display.html?id=116719 [BUG] Internal error message on Z=> in enum declaration in Rakudo | ||||||||||||||||||||||||||||||||||||||
dogbert17 | don't you have rakudobrew installed as well ? | 13:22 | |||||||||||||||||||||||||||||||||||||
timotimo | i don't | ||||||||||||||||||||||||||||||||||||||
Geth | roast: c4ce9a3c1b | (Alex Chen)++ | S12-enums/basic.t Revert a comment |
13:23 | |||||||||||||||||||||||||||||||||||||
timotimo | i'm splitting a 2.3 mb file with three needles for before/after comparison | ||||||||||||||||||||||||||||||||||||||
huh, there's almost no difference here | 13:25 | ||||||||||||||||||||||||||||||||||||||
dogbert17 | strange | 13:29 | |||||||||||||||||||||||||||||||||||||
timotimo | the reason was i was only calling split a single time | 13:35 | |||||||||||||||||||||||||||||||||||||
Text::CSV does it once per line | |||||||||||||||||||||||||||||||||||||||
dogbert17 | oh | 13:36 | |||||||||||||||||||||||||||||||||||||
timotimo | m: say "it only takes { 3.74 * 100 / 4.84 }% as long now" | ||||||||||||||||||||||||||||||||||||||
camelia | it only takes 77.272727% as long now | ||||||||||||||||||||||||||||||||||||||
dogbert17 | very impressive | 13:37 | |||||||||||||||||||||||||||||||||||||
timotimo | my test has 3 needles, Text::CSV uses 5 | 13:39 | |||||||||||||||||||||||||||||||||||||
timotimo turns around (because cool guys don't look at explosions) | 13:41 | ||||||||||||||||||||||||||||||||||||||
Geth | rakudo: 5929887c77 | (Timo Paulssen)++ | src/core/Str.pm make multi-needle split setup cheaper by using a hand-managed index counter rather than the more expensive (but better-looking) .kv iterator. Cuts time to split each line of 100000 by 3 needles down to 77% |
||||||||||||||||||||||||||||||||||||||
timotimo | [Tux]: could you time this for me? :) | ||||||||||||||||||||||||||||||||||||||
moritz | timotimo: nice timing :-) | ||||||||||||||||||||||||||||||||||||||
dogbert17 | timotimo++ | 13:46 | |||||||||||||||||||||||||||||||||||||
now everyone is hoping that [Tux] will show up :) | 13:47 | ||||||||||||||||||||||||||||||||||||||
timotimo | m: say "using 5 needles the percentage is { 4.09 * 100 / 5.14 }%" | 13:51 | |||||||||||||||||||||||||||||||||||||
camelia | using 5 needles the percentage is 79.571984% | ||||||||||||||||||||||||||||||||||||||
DrForr | Just tripped over a bug in Pod::To::HTML... | ||||||||||||||||||||||||||||||||||||||
timotimo | coming up on a long keyboard break | 13:52 | |||||||||||||||||||||||||||||||||||||
dogbert17 | timotimo: do you suffer from carpal tunnel syndrome? | 13:53 | |||||||||||||||||||||||||||||||||||||
timotimo | aye | 13:54 | |||||||||||||||||||||||||||||||||||||
"tendovaginitis", such an amusing word if you're still 13 years old in your brain | |||||||||||||||||||||||||||||||||||||||
started 1.5 months ago | 13:55 | ||||||||||||||||||||||||||||||||||||||
when i wanted to start my TPF grant | |||||||||||||||||||||||||||||||||||||||
x_X | |||||||||||||||||||||||||||||||||||||||
well, ttyl! | |||||||||||||||||||||||||||||||||||||||
dogbert17 | this is common among hardcore gamers | ||||||||||||||||||||||||||||||||||||||
timotimo | and pianists i hear | ||||||||||||||||||||||||||||||||||||||
moritz | and pianogamers | ||||||||||||||||||||||||||||||||||||||
dogbert17 | aha, that was new to me | ||||||||||||||||||||||||||||||||||||||
timotimo | perhaps not *as* common | 13:56 | |||||||||||||||||||||||||||||||||||||
workrave++ | |||||||||||||||||||||||||||||||||||||||
teatime | timotimo: take care of yourself | 13:59 | |||||||||||||||||||||||||||||||||||||
first secure your own mask, before attending to Perl6 | 14:00 | ||||||||||||||||||||||||||||||||||||||
because we want you attending to Perl6 for as long as you're willing :) | |||||||||||||||||||||||||||||||||||||||
wander | DrForr: Pod::To::HTML, its source code is a headache... | 14:09 | |||||||||||||||||||||||||||||||||||||
moritz | the thing I don't understand about Pod::To::HTML: wouldn't that be a *perfect* application for object orientation and polymorphism? | 14:12 | |||||||||||||||||||||||||||||||||||||
teatime | I recommend y'all look at Pandoc for design inspiration | 14:13 | |||||||||||||||||||||||||||||||||||||
timotimo | teatime: i've been cutting back on my perl6 and work times significantly, and quite frankly it's torturous to not do anything | 14:20 | |||||||||||||||||||||||||||||||||||||
teatime | timotimo: :/ maybe you can treat it as an opportunity to focus more on some other interests / projects | 14:22 | |||||||||||||||||||||||||||||||||||||
timotimo | what can i do without hands? :) | ||||||||||||||||||||||||||||||||||||||
i can learn to play the harmonica with one of these harnesses that holds it in front of your mouth for you | 14:23 | ||||||||||||||||||||||||||||||||||||||
Geth | roast/W4anD0eR96-Patch-1: dfc498b81f | (Alex Chen)++ (committed using GitHub Web editor) | S04-phasers/in-loop.t Remove test on POST, AlexDaniel++ `$_` in POST is set to the return value of the block: |
||||||||||||||||||||||||||||||||||||||
roast: 4355702fc6 | (Alex Chen)++ | S04-phasers/in-loop.t Test for RT #125488 |
14:24 | ||||||||||||||||||||||||||||||||||||||
roast: dfc498b81f | (Alex Chen)++ (committed using GitHub Web editor) | S04-phasers/in-loop.t Remove test on POST, AlexDaniel++ `$_` in POST is set to the return value of the block: |
|||||||||||||||||||||||||||||||||||||||
roast: 48124e0123 | (Alex Chen)++ (committed using GitHub Web editor) | S04-phasers/in-loop.t Merge pull request #362 from perl6/W4anD0eR96-Patch-1 Test for RT #125488 |
|||||||||||||||||||||||||||||||||||||||
synopsebot | RT#125488 [new]: rt.perl.org/Ticket/Display.html?id=125488 Some phaser blorsts don't see outer $_ | ||||||||||||||||||||||||||||||||||||||
synopsebot | SPEC#362 [closed]: github.com/perl6/roast/pull/362 Test for RT #125488 | ||||||||||||||||||||||||||||||||||||||
DrForr | wander: It's not tat bad, but I'm refactoring the hell out of it for another project. | 14:30 | |||||||||||||||||||||||||||||||||||||
moritz: Yes, an excellent candidate, but in order to do debugging of the internals they wrote it in such way that makes it much more work than necessary. | 14:31 | ||||||||||||||||||||||||||||||||||||||
Confused me for a few hours until I tracked down the entry point in the perl6 binary and realized why they'd exported what they did. | 14:32 | ||||||||||||||||||||||||||||||||||||||
moritz is guilty of a few commits to that repo too | 14:40 | ||||||||||||||||||||||||||||||||||||||
Geth | roast: 2a3717c134 | (Alex Chen)++ | S04-phasers/in-loop.t Add more tests for phasers' in-loop |
14:59 | |||||||||||||||||||||||||||||||||||||
wander | DrForr: somewhat lack of generality, I'd like pod2html only to generate html body, maybe provide class attr for custom css. it was well designed, but modify for some particular purpose(like fit sth about generate doc site), that's OK. but as where you arrive, someone has to(?) *refactor*(not simply modify) it to adjust his own use | 15:04 | |||||||||||||||||||||||||||||||||||||
gather meta message and make the toc are useful, we can export subs(return $toc, @meta, @x-tags) for that | 15:05 | ||||||||||||||||||||||||||||||||||||||
DrForr | Isn't it terribly convenient then that what I'm working on is Pod::To::BlogspotHTML which has just a bare <body/> element - Blogspot does the heavy HTML lifting for you. | ||||||||||||||||||||||||||||||||||||||
wander | nowadays web devs use html template generally, maybe generate the whole web page is not that admired. after all, it can provide an adverb to generate a full html using default template. | 15:11 | |||||||||||||||||||||||||||||||||||||
render($=pod, :whole) | 15:12 | ||||||||||||||||||||||||||||||||||||||
our doc site relies heavily on current p2h, anyway | |||||||||||||||||||||||||||||||||||||||
DrForr | There's already a :header and :footer argument present, so there's a echanism that we can hijack. | 15:17 | |||||||||||||||||||||||||||||||||||||
|Tux| pops up | 16:41 | ||||||||||||||||||||||||||||||||||||||
looks good. have a sec | 16:42 | ||||||||||||||||||||||||||||||||||||||
|
16:47 | ||||||||||||||||||||||||||||||||||||||
dogbert17 | holy sh*t | ||||||||||||||||||||||||||||||||||||||
timotimo: have you seen this | 16:49 | ||||||||||||||||||||||||||||||||||||||
timotimo | whoops | 16:50 | |||||||||||||||||||||||||||||||||||||
dogbert17 | :) | ||||||||||||||||||||||||||||||||||||||
timotimo | i accidentally 20 msec | ||||||||||||||||||||||||||||||||||||||
jnthn | Nice. And you were smart enough not to do it by working on inlining and exceptions :P | 16:51 | |||||||||||||||||||||||||||||||||||||
timotimo | well, your work on inlining and exceptions benefits everyone | ||||||||||||||||||||||||||||||||||||||
this change only benefits code that uses multi-needle split | |||||||||||||||||||||||||||||||||||||||
so yeah, it looks great on the benchmark, but few users other than that will see much difference | |||||||||||||||||||||||||||||||||||||||
looks like the --race version hardly sees a win? but maybe it's just too noisy? | 16:53 | ||||||||||||||||||||||||||||||||||||||
it's a new low, sure, but 1.147 vs 1.152 isn't that much | |||||||||||||||||||||||||||||||||||||||
Geth | roast: 89a96af777 | (Alex Chen)++ | S12-enums/basic.t Add test for RT#123457 |
16:54 | |||||||||||||||||||||||||||||||||||||
synopsebot | RT#123457 [open]: rt.perl.org/Ticket/Display.html?id=123457 enum A <Code> "P6opaque: no such attribute '$!signature'" | ||||||||||||||||||||||||||||||||||||||
jnthn | timotimo: But look at test-t-20 --race :) | 16:56 | |||||||||||||||||||||||||||||||||||||
|Tux| off to $HOME | |||||||||||||||||||||||||||||||||||||||
jnthn | That's a bigger difference | ||||||||||||||||||||||||||||||||||||||
timotimo | speed.log doesn't have it | 16:57 | |||||||||||||||||||||||||||||||||||||
but my irclogs should have it | 16:58 | ||||||||||||||||||||||||||||||||||||||
ah, that already saw a nice improvement from jnthn++'s work before mine | |||||||||||||||||||||||||||||||||||||||
jnthn | Righty, enough time at the office for me this week :) | 17:14 | |||||||||||||||||||||||||||||||||||||
jnthn bbl | 17:15 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | squashable6: status | 17:39 | |||||||||||||||||||||||||||||||||||||
squashable6 | AlexDaniel, 🍕🍕 SQUASHathon is in progress! The end of the event in 1 day and ≈18 hours. See github.com/rakudo/rakudo/wiki/Mont...Squash-Day | ||||||||||||||||||||||||||||||||||||||
AlexDaniel, Log and stats: gist.github.com/576125f079fd183663...f37a418e8d | |||||||||||||||||||||||||||||||||||||||
AlexDaniel | Geth: ver github.com/rakudo/rakudo/commit/b2...5228de1249 | 18:51 | |||||||||||||||||||||||||||||||||||||
Geth: help? | |||||||||||||||||||||||||||||||||||||||
japhb | buggable: speed :4 test-t-20--race | 19:15 | |||||||||||||||||||||||||||||||||||||
buggable | japhb, ▅ ↑ █ ▂ dates: 2017-11-10–2017-12-01 | 19:16 | |||||||||||||||||||||||||||||||||||||
japhb, ▆ ▇ ▂█▂▁ ▃█ █▃▆ ▂▃▂▅ ▇ █ ▄ ▆▆▆ range: 17.585s–26.624s | |||||||||||||||||||||||||||||||||||||||
japhb, █▁█▇████▇▅▅▁██▃███▅▇▄█▄█▄▇████▃███▆█▇▆▇▆▇███ speed: 19% faster (widths: 9/3) | |||||||||||||||||||||||||||||||||||||||
japhb, ████████████████████████████████████████████▆▆▄▁↓↓ | |||||||||||||||||||||||||||||||||||||||
japhb | Nice. | ||||||||||||||||||||||||||||||||||||||
timotimo | ↓_↓ | 19:24 | |||||||||||||||||||||||||||||||||||||
bartolin | bisectable6: say "ab" ~~ rx:P5/^(a(??{"(?!)"})|(a)(?{1}))b/ && $1 # RT 125027 | 19:42 | |||||||||||||||||||||||||||||||||||||
bisectable6 | bartolin, Bisecting by exit code (old=2015.12 new=5929887). Old exit code: 1 | ||||||||||||||||||||||||||||||||||||||
synopsebot | RT#125027 [new]: rt.perl.org/Ticket/Display.html?id=125027 [REGEX] Roast rakudo skip/todo test:./S05-modifier/perl5_9.t line:35 reason: 'Quantifier quantifies nothing' | ||||||||||||||||||||||||||||||||||||||
bisectable6 | bartolin, bisect log: gist.github.com/996a9c0aeea60fd106...bc71ceefbd | ||||||||||||||||||||||||||||||||||||||
bartolin, (2017-09-03) github.com/rakudo/rakudo/commit/4c...9a36449371 | |||||||||||||||||||||||||||||||||||||||
Geth | roast: e7dd88699a | usev6++ | S05-modifier/perl5_9.t Unskip now passing test RT #125027 Seems to be fixed by rakudo commit 4c25df745c, MasterDuke++ |
19:46 | |||||||||||||||||||||||||||||||||||||
roast: 28555c8449 | usev6++ | S32-str/sprintf-b.t Do not refer to automatically generated tickets All those RT tickets were only created to point to (formerly) failing tests. They were merged into one ticket (124697), that is closed now. |
21:02 | ||||||||||||||||||||||||||||||||||||||
roast: 26cacb145a | usev6++ | S32-str/sprintf.t Add test for RT #123979 |
21:16 | ||||||||||||||||||||||||||||||||||||||
synopsebot | RT#123979 [open]: rt.perl.org/Ticket/Display.html?id=123979 %064b format doesn't deal with negatives | ||||||||||||||||||||||||||||||||||||||
bartolin | .tell jnthn if you could spare a few minutes to take a look at PR 1253 (rakudo) -- i'd be really happy to get your opinion on that one. (it's not urgent in any way) | 21:30 | |||||||||||||||||||||||||||||||||||||
yoleaux | bartolin: I'll pass your message to jnthn. | ||||||||||||||||||||||||||||||||||||||
lizmat | . | 21:58 | |||||||||||||||||||||||||||||||||||||
m: my %h = "24" => 666; my %i := %h.clone; %i{24} = 42; dd %h,%i # this feels wrong to me | 22:27 | ||||||||||||||||||||||||||||||||||||||
camelia | Hash %h = {"24" => 42} {"24" => 42} |
||||||||||||||||||||||||||||||||||||||
lizmat | binding to a clone of a Hash should disentangle with the original hash, one would expect ? | ||||||||||||||||||||||||||||||||||||||
masak | I was gonna answer "yes", but given that Pairs are first-class, I actually don't know... | 22:30 | |||||||||||||||||||||||||||||||||||||
perlpilot | lizmat: feels wrong to me too. | 22:31 | |||||||||||||||||||||||||||||||||||||
masak | would be interesting to know if any spectests break under the other behavior | 22:32 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | squashable6: status | 22:33 | |||||||||||||||||||||||||||||||||||||
squashable6 | AlexDaniel, 🍕🍕 SQUASHathon is in progress! The end of the event in 1 day and ≈13 hours. See github.com/rakudo/rakudo/wiki/Mont...Squash-Day | ||||||||||||||||||||||||||||||||||||||
AlexDaniel, Log and stats: gist.github.com/598e58419879ad2703...e855393d3e | |||||||||||||||||||||||||||||||||||||||
lizmat | masak: there are no Pairs at that point in the code, just an nqp::hash underneath? Or am I missing something ? | 22:34 | |||||||||||||||||||||||||||||||||||||
masak | lizmat: no, probably I am | 22:35 | |||||||||||||||||||||||||||||||||||||
lizmat: but it just felt less clear-cut with Pairs (possibly) in the picture | |||||||||||||||||||||||||||||||||||||||
lizmat | now, if it were an object hash, you'd have a point :-) | 22:36 | |||||||||||||||||||||||||||||||||||||
masak | like, you could conceivably clone just the Hash but none of the Pairs | ||||||||||||||||||||||||||||||||||||||
lizmat | I think I understand what's happening: the hash contains containers, which *aren't* cloned | 22:38 | |||||||||||||||||||||||||||||||||||||
so you wind up with a new hash with the same old containers | |||||||||||||||||||||||||||||||||||||||
masak | does the same apply for arrays? | ||||||||||||||||||||||||||||||||||||||
lizmat | possibly, haven't checked | 22:50 | |||||||||||||||||||||||||||||||||||||
yeah, it's a container not being cloned issue: observe: | 22:52 | ||||||||||||||||||||||||||||||||||||||
my %h = a => 666; my %i := %h.clone; %i<a> = 42; dd %h, %i | |||||||||||||||||||||||||||||||||||||||
m: my %h = a => 666; my %i := %h.clone; %i<a> = 42; dd %h, %i | |||||||||||||||||||||||||||||||||||||||
camelia | Hash %h = {:a(42)} {:a(42)} |
||||||||||||||||||||||||||||||||||||||
lizmat | m: my %h = a => 666; my %i := %h.clone; %i<a> := 42; dd %h, %i | ||||||||||||||||||||||||||||||||||||||
camelia | Hash %h = {:a(666)} {:a(42)} |
||||||||||||||||||||||||||||||||||||||
lizmat | the second case we bind to the key, thereby removing the container in the cloned hash, and thus not affecting the original hash | 22:53 | |||||||||||||||||||||||||||||||||||||
masak: arrays don't have that issue because: " multi method clone(Array:D:) { [self] }" | 22:55 | ||||||||||||||||||||||||||||||||||||||
which is pretty yuck from a performance point of view | |||||||||||||||||||||||||||||||||||||||
so I guess it boils down to: what *are* the intended semantics of .clone ? | 22:57 | ||||||||||||||||||||||||||||||||||||||
m: my Int @a = ^5; my @b := @a.clone; @b[0] = "foo"; dd @b # another consequence of Array.clone's implementation | 22:59 | ||||||||||||||||||||||||||||||||||||||
camelia | ["foo", 1, 2, 3, 4] | ||||||||||||||||||||||||||||||||||||||
lizmat | m: my Int @a = ^5; my @b := @a.Mu::clone; @b[0] = "foo"; dd @b # appears more correct | 23:00 | |||||||||||||||||||||||||||||||||||||
camelia | Type check failed in assignment to @a; expected Int but got Str ("foo") in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
timotimo | m: my @foo = 1, 2, 3; @foo[1] = |(1, 2, 3); say @foo.perl; say @foo.clone.perl; | 23:10 | |||||||||||||||||||||||||||||||||||||
camelia | [1, slip(1, 2, 3), 3] [1, slip(1, 2, 3), 3] |
||||||||||||||||||||||||||||||||||||||
timotimo | oh, ok | ||||||||||||||||||||||||||||||||||||||
scalar containers, /me remembers | |||||||||||||||||||||||||||||||||||||||
m: my @foo = 1, 2, 3; @foo[1] := |(1, 2, 3); say @foo.perl; say @foo.clone.perl; | |||||||||||||||||||||||||||||||||||||||
camelia | [1, slip(1, 2, 3), 3] [1, slip(1, 2, 3), 3] |
||||||||||||||||||||||||||||||||||||||
timotimo | it even works if i replace that scalar container? | 23:11 | |||||||||||||||||||||||||||||||||||||
lizmat | timotimo: that feels like another issue, namely postcircumfix [] not handling Slips correctly ? | 23:13 | |||||||||||||||||||||||||||||||||||||
m: my @foo = 1, 2, 3; @foo[1] := |(1, 2, 3); say @foo.perl; say [@foo].perl | 23:14 | ||||||||||||||||||||||||||||||||||||||
camelia | [1, slip(1, 2, 3), 3] [1, slip(1, 2, 3), 3] |
||||||||||||||||||||||||||||||||||||||
lizmat | looks like circumfix [] isn't handling slips correctly ? | 23:15 | |||||||||||||||||||||||||||||||||||||
or is this intended behaviour ? | |||||||||||||||||||||||||||||||||||||||
timotimo | good question | ||||||||||||||||||||||||||||||||||||||
i would have expected my code to mess up and give something different after the clone | 23:16 | ||||||||||||||||||||||||||||||||||||||
lizmat | anyways, the disentanglement that moritz did in response to masak's RT #127704 , seems to introduce inconsistencies | ||||||||||||||||||||||||||||||||||||||
synopsebot | RT#127704 [resolved]: rt.perl.org/Ticket/Display.html?id=127704 [BUG] Hash.clone differs from hash assignment; the hash and its clone are spookily entangled | ||||||||||||||||||||||||||||||||||||||
lizmat | oddly enough, removing github.com/rakudo/rakudo/blob/mast...ray.pm#L50 doesn't seem to break any spectests | 23:20 | |||||||||||||||||||||||||||||||||||||
I think the problem really comes from .clone acting differently because of implementation detaiuls | 23:21 | ||||||||||||||||||||||||||||||||||||||
*details | |||||||||||||||||||||||||||||||||||||||
the fact that Mu.clone clones all private attributes, and let's you twiddle public attributes | 23:22 | ||||||||||||||||||||||||||||||||||||||
is fine for non-core objects, where the developer has control over what the attributes are and whether they're private or not | |||||||||||||||||||||||||||||||||||||||
for core objects, this is different, because they're really implementation details, or am I wrong? | 23:23 | ||||||||||||||||||||||||||||||||||||||
Geth | rakudo: tbrowder++ created pull request #1291: Fix table caption RT #126740 |
23:24 | |||||||||||||||||||||||||||||||||||||
synopsebot | RT#126740 [new]: rt.perl.org/Ticket/Display.html?id=126740 [POD] Pod::Block::Table node caption property is not populated properly | ||||||||||||||||||||||||||||||||||||||
RAKUDO#1291 [open]: github.com/rakudo/rakudo/pull/1291 Fix table caption RT #126740 | |||||||||||||||||||||||||||||||||||||||
Geth | roast: tbrowder++ created pull request #363: add tests for fix for RT #126740 |
23:28 | |||||||||||||||||||||||||||||||||||||
synopsebot | SPEC#363 [open]: github.com/perl6/roast/pull/363 add tests for fix for RT #126740 | ||||||||||||||||||||||||||||||||||||||
lizmat | hmmm... looks like someone forgot to implement tests for RT #129762 | 23:35 | |||||||||||||||||||||||||||||||||||||
synopsebot | RT#129762 [resolved]: rt.perl.org/Ticket/Display.html?id=129762 [BUG] Array.clone does not return a properly independent array |