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
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| Rakudo version 2017.11-48-gf78fd7c17 - MoarVM version 2017.11-28-gba1fb9542
csv-ip5xs1.046 - 1.052
csv-ip5xs-2012.955 - 13.051
csv-parser11.683 - 11.772
csv-test-xs-200.445 - 0.454
test11.543 - 12.189
test-t3.013 - 3.044
test-t --race1.194 - 1.340
test-t-2055.079 - 56.239
test-t-20 --race19.037 - 19.071
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
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
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
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
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
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
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
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
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
Rakudo version 2017.11-49-g5929887c7 - MoarVM version 2017.11-28-gba1fb9542
csv-ip5xs1.051 - 1.077
csv-ip5xs-2012.456 - 12.459
csv-parser11.850 - 11.870
csv-test-xs-200.453 - 0.476
test11.275 - 11.625
test-t2.809 - 2.878
test-t --race1.147 - 1.220
test-t-2050.946 - 52.677
test-t-20 --race17.585 - 17.675
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
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++
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.
roast: 26cacb145a | usev6++ | S32-str/sprintf.t
Add test for RT #123979
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)}
lizmat m: my %h = a => 666; my %i := %h.clone; %i<a> := 42; dd %h, %i
camelia Hash %h = {:a(666)}
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
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
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
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