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:06 c418 joined, c418 left
MasterDuke m: sub a(Pair @a) { dd @a; dd @a[0] }; a Array[Pair].new([b => 2]) 00:11
camelia Array[Pair].new("b" => 2)
:b(2)
00:11 x[LGWs4x4i]uG2N0 left
MasterDuke m: sub a(@a where all(@a) ~~ Pair) { say "hi" }; a (:1st, :2nd) 00:11
camelia hi
MasterDuke lizmat: ^^^, not sure what you were trying for 00:12
00:14 x[LGWs4x4i]uG2N0 joined, p6bannerbot sets mode: +v x[LGWs4x4i]uG2N0 00:28 apetresc1 joined, apetresc1 left 00:34 j3nnn1 left 01:34 Zoffix joined, p6bannerbot sets mode: +v Zoffix, ChanServ sets mode: +o Zoffix 01:35 p6bannerbot left 01:36 p6bannerbot joined, Zoffix sets mode: +o p6bannerbot, Zoffix left 02:45 ZofBot left 02:46 ZofBot joined, ChanServ sets mode: +v ZofBot, p6bannerbot sets mode: +v ZofBot 03:03 nullrouted joined, nullrouted left 03:16 lizmat left 03:37 lizmat joined, p6bannerbot sets mode: +v lizmat 05:03 breitenj23 joined, breitenj23 left 06:18 By joined, By left
[Tux] Rakudo version 2018.06-312-ge0a27ce37 - MoarVM version 2018.06-331-g2c74b672c
csv-ip5xs1.101 - 1.227
csv-ip5xs-208.113 - 8.335
csv-parser24.520 - 25.250
csv-test-xs-200.446 - 0.461
test10.059 - 10.530
test-t2.291 - 2.297
test-t --race0.961 - 1.015
test-t-2040.859 - 41.946
test-t-20 --race13.746 - 14.801
08:48
08:57 DJones joined, DJones left 09:03 dct joined, p6bannerbot sets mode: +v dct
lizmat Files=1246, Tests=75931, 379 wallclock secs (16.42 usr 5.46 sys + 2695.24 cusr 237.75 csys = 2954.87 CPU) 09:34
09:55 [Tux] left 10:01 ErrantEgo19 joined, ErrantEgo19 left 10:03 [Tux] joined, p6bannerbot sets mode: +v [Tux] 10:46 pmurias joined 10:47 p6bannerbot sets mode: +v pmurias
Geth rakudo: d09756ae66 | (Elizabeth Mattijsen)++ | src/core/Mu.pm6
Fix for R#2174

This was caused by the erroneous assumption that opcode 10 (vivify role attribute) of the `BUILDPLAN` would always be the last in the `BUILDPLAN`. If a `TWEAK` method is available, then the calling of `TWEAK` would follow. So the execution of `10` opcodes, would run into the run `TWEAK` task, causing the error.
11:30
synopsebot R#2174 [open]: github.com/rakudo/rakudo/issues/2174 [regression] attr + submethod TWEAK in role causes crash "This type (Submethod) does not support positional operations"
nqp/truffle: 4 commits pushed by (Paweł Murias)++ 11:34
roast: efb42a9462 | (Elizabeth Mattijsen)++ | S12-construction/TWEAK.t
Test for R#2174
11:36
synopsebot R#2174 [open]: github.com/rakudo/rakudo/issues/2174 [regression] attr + submethod TWEAK in role causes crash "This type (Submethod) does not support positional operations"
11:40 Eduard_Munteanu0 joined, Eduard_Munteanu0 left 11:42 zyley joined, zyley left 11:44 ffernand11 joined, ffernand11 left
Geth nqp/truffle: 425230eea0 | (Paweł Murias)++ | src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPPowNumNode.java
[truffle] Fix nqp::pow_n with base 1
11:45
11:45 Vercas27 joined, Vercas27 left 11:51 dct left 11:57 dan3wik joined, dan3wik left 12:00 betawaffle16 joined 12:01 betawaffle16 left 12:05 basic`21 joined, basic`21 left, Guest81029 joined, Guest81029 left 12:06 cncr04s20 joined 12:07 cncr04s20 left 12:27 fractal joined, fractal left, wols joined 12:28 wols left
timotimo ever wanted to see every path that leads to a given routine from the routine overview? well, now you can: imgur.com/zNEY5jY 12:31
12:41 thomasb951114 joined, thomasb951114 left
timotimo imgur.com/U8n5jsA - now with a tiny bit more eye candy 12:53
lizmat timotimo++ 13:03
timotimo maybe when i publish the project someone will contribute CSS magic to make the lines start and end in the middle of the first and last row respectively
it looks like a giant piece of hackery to do; either add a pseudo-element that is half the height of the cell and give it the same color as the background and place it correctly (which won't work because there's already a pseudo-element there and i don't think you can stack 'em), or use a background-image with gradient, which apparently requires six different implementations of gradient because browsers? 13:04
lizmat yeah, that's way above my current paygrade :-) 13:09
MasterDuke timotimo: nice 13:10
timotimo you mean paingrade? :D
lizmat hehe... timotimo: yeah, and it is supposed to fun, right? so what does that make us ? :-) 13:11
timotimo i'm a bit of a masakist 13:12
MasterDuke timotimo: btw, "see every path that leads to a given routine" is in fact a feature i've wanted before 13:20
timotimo yes!
me, too. a whole bunch of times
like, *so* often
MasterDuke part of what inspired me to write coverable 13:21
samcv . 13:41
yoleaux 04:08Z <Zoffix> samcv: would you double-check this prop-spec? Is it correct that Upper/Title case mapping of 'Ɵ' is 'Ɵ' and not 'SS'? github.com/perl6/roast/blob/c08ceb....t#L89-L91
samcv ZofBot: my perl6 is giving me SS 13:42
oh
.tell Zoffix that is just for "Simple_Uppercase_Mapping" which does not uppercase to SS
yoleaux samcv: I'll pass your message to Zoffix.
lizmat moritz timotimo: any idea if this used to be valid Perl 6 code: rule expression_list { [\w+] ** ',' } 13:54
and what it should be now to get the same semantics ? 13:55
bisectable6: rule expression_list { [\w+] ** ',' } 13:56
bisectable6 lizmat, Bisecting by output (old=2015.12 new=d09756a) because on both starting points the exit code is 1
lizmat, No! It wasn't me! It was the one-armed man! Backtrace: gist.github.com/107a1b1799082a8882...f5a71bcc18
lizmat bisectable6: rule expression_list { [\w+] ** ',' }
bisectable6 lizmat, Bisecting by output (old=2015.12 new=d09756a) because on both starting points the exit code is 1
MasterDuke committable6: all rule expression_list { [\w+] ** ',' } 13:59
committable6 MasterDuke, gist.github.com/192ec99f35f07c7033...790d2f3239
MasterDuke lizmat: ^^^, looks like it hasn't been valid since 2014.01 14:00
14:01 bisectable6 left
lizmat interesting.. 14:02
I can't do a bisect before 2015.12 can I ?
MasterDuke you can do 2014.01 if you set the old rev manually 14:05
lizmat hmmm... looks like I killed bisectable6 :-( 14:06
Changelog of 2014.10 doesn't show anything :-(
ok, I think I'll just leave an Issue rather than a PR then
14:07 bisectable6 joined, ChanServ sets mode: +v bisectable6, p6bannerbot sets mode: +v bisectable6
lizmat thinks the current syntax is probably: rule expression_list { [w+]* %% ',' } 14:20
b2gills lizmat: I've come across code that I'd written years ago on SO where I used something like ` . ** ',' ` So yes it used to work, but I don't think it should anymore 14:23
14:32 robertle joined 14:33 p6bannerbot sets mode: +v robertle
Geth rakudo: 546d08c164 | (Elizabeth Mattijsen)++ | src/core/Routine.pm6
Remove sig from Routine.perl if it is empty
14:59
15:02 mww113 joined, mww113 left, Yatekii1 joined, Yatekii1 left
Geth rakudo: 6ad50d7948 | (Elizabeth Mattijsen)++ | src/core/Routine.pm6
Give Routine its own .gist

So that "say sub foo { }" will be much closer to what Data::Pretty does and thus make it obsolete and save masak some work.
15:20
lizmat .tell masak github.com/rakudo/rakudo/commit/6ad50d7948 15:21
yoleaux lizmat: I'll pass your message to masak.
15:30 rkta joined, rkta left 15:37 mentifis1 joined, mentifis1 left
MasterDuke i think someone suggested this recently, but what about changing up how the --profile options work? to --profile=filename and --profile-type=heap ? i find i frequently want to set a name, which requires adding --profile-filename=name, but rarely change to a heap profile 15:49
also, does anyone have any suggestions for speeding up subbuf? github.com/rakudo/rakudo/blob/mast...#L173-L215 15:55
it's the top by exclusive time (40%) in opening .gz files with Compress::Zlib 15:56
15:57 AlexDani` joined, p6bannerbot sets mode: +v AlexDani` 15:59 AlexDaniel left
timotimo lizmat: don't know :S 16:07
lizmat lost context 16:08
timotimo that regex syntax
[\w+]**','
lizmat ah, that,
Kaiepi should i host a netbsd equivalent to pufferbot/beastiebot?
timotimo not sure how that is supposed to have worked without a number
16:08 AlexDani` left
timotimo but it looks like it was meant to use % rather than a second * there? 16:08
Kaiepi only issue is that builds will be reeeeaaaalllly long
lizmat yeah, pretty sure that's now [\w+]* %% ','
16:15 rorx16 joined, rorx16 left
lizmat MasterDuke: hmmm... I wonder why that isn't a multi ? 16:17
Zoffix: re 5f48c0695c48f152f0541503fb05151a84bc4bad , did you have any reason for keeping it as an only method ? 16:19
MasterDuke lizmat: i did just try making it a multi, but it didn't seem to help 16:26
lizmat MasterDuke: do you have a simple piece of code I could use to benchmark ? 16:27
MasterDuke lizmat: this is what i tried: gist.github.com/MasterDuke17/1cf73...b197fe4c5c
lizmat and in which one of the multi's is the bottleneck now ? 16:28
MasterDuke `use Compress::Zlib; my $a = gzslurp("3k.txt.gz"); say $a.lines.elems; say now - INIT now` # where 3k.txt.gz is a 50k file (compressed from a 3k lines text file)
16:30 Nightmare8 joined, Nightmare8 left
MasterDuke line 174 and line 240 16:30
almost an even split 16:31
timotimo i don't think nqp::islt_i($length, 0) is safe when the signature doesn't make $length an "int" 16:32
lizmat yeah, you want to keep that HLL 16:34
16:34 xunplini1 joined, xunplini1 left
MasterDuke right 16:34
lizmat MasterDuke: I just realized that that implementation predates the invention of nqp::slice 16:35
m: use nqp; dd nqp::slice(Buf.new(1,2,3,4),0,2) 16:36
camelia Buf.new(1,2,3)
lizmat github.com/perl6/nqp/blob/master/d...down#slice
I think Buf.subbuf can be reduced to parameter sanity checking + nqp::slice 16:37
timotimo \o/
lizmat MasterDuke: want to take that on?
MasterDuke lizmat: interesting. i'll take a look 16:39
16:39 enyc8 joined, enyc8 left
lizmat ++MasterDuke 16:41
16:45 wgma joined, wgma left, Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix lizmat: re 5f48c0695c48f152f0541503fb05151a84bc4bad No, I don't think there was any reason for keeping it an only method 16:45
yoleaux 13:42Z <samcv> Zoffix: that is just for "Simple_Uppercase_Mapping" which does not uppercase to SS
Zoffix cool 16:46
16:46 darkmagic joined, darkmagic left
lizmat Zoffix: ok, cool, MasterDuke is now looking at speeding that up 16:47
I'm expecting a factor or 4 at least :-)
Zoffix \o/
lizmat thanks to the new nqp::slice op
(which didn't exist yet when you wrote that )
16:48 jack36 joined, jack36 left 16:54 FiendKing04 joined, FiendKing04 left 16:56 Cool_Fire14 joined 16:57 Cool_Fire14 left
MasterDuke huh, Range.int-bounds($from is rw, $to is rw) isn't documented 17:07
Zoffix isn't in spec either 17:08
17:10 Zoffix left
MasterDuke looks like lizmat added it a year and a half ago because `my ($a,$b) = foo()` is slow 17:10
17:10 bigpet3 joined 17:11 bigpet3 left, Zoffix joined, p6bannerbot sets mode: +v Zoffix, ChanServ sets mode: +o Zoffix 17:12 p6bannerbot left, p6bannerbot joined, Zoffix sets mode: +o p6bannerbot
jnthn Hm, I'm not sure that it should be documented; we should make list assignment faster :P 17:13
17:13 Zoffix_ joined, p6bannerbot sets mode: +v Zoffix_, Zoffix_ left, Zoffix left
MasterDuke jnthn: i've tried to do that several times 17:13
but i think it needs work above my pay grade 17:14
though that reminds me about github.com/rakudo/rakudo/pull/1844 if there are any opinions 17:15
17:20 jdv79_ joined
Geth roast: 524fdd649d | (Zoffix Znet)++ | S03-junctions/autothreading.t
[v6.d REVIEW] Fix typo in test description
17:21
17:21 p6bannerbot sets mode: +v jdv79_, jdv79 left, ilmari left, ilmari joined, ilmari left, ilmari joined, p6bannerbot sets mode: +v ilmari 17:22 p6bannerbot sets mode: +v ilmari 17:25 dogbert11 joined 17:26 p6bannerbot sets mode: +v dogbert11 17:28 dogbert17 left
lizmat goes our for some fresh air (fsvo fresh) 17:28
jnthn Our "fresh" here is still > 30C :/ 17:29
timotimo goes to grab a fresh can of perri-air out of the fridge 17:30
17:30 greppable6 left, yoleaux left, statisfiable6 left, benchable6 left, notable6 left 17:31 benchable6 joined, notable6 joined, statisfiable6 joined, greppable6 joined, squashable6 left, p6bannerbot sets mode: +v benchable6, p6bannerbot sets mode: +v notable6, p6bannerbot sets mode: +v statisfiable6, p6bannerbot sets mode: +v greppable6, undersightable6 left 17:32 deedra15 joined, deedra15 left, Pixelz21 joined 17:33 p6bannerbot sets mode: +v Pixelz21 17:36 pmurias left 17:37 Pixelz21 left 17:39 |Tux| left, |Tux| joined 17:40 p6bannerbot sets mode: +v |Tux| 17:44 pmurias joined 17:45 p6bannerbot sets mode: +v pmurias 18:13 squashable6 joined, p6bannerbot sets mode: +v squashable6
Geth nqp/truffle: a67fcd74d2 | (Paweł Murias)++ | src/vm/jvm/Truffle.nqp
[truffle] Implement nqp::isfalse
18:21
nqp/truffle: 12489cfdd9 | (Paweł Murias)++ | src/vm/jvm/runtime/org/perl6/nqp/truffle/runtime/NQPList.java
[truffle] Implement nqp::atpos with negative indexes
nqp/truffle: bc87a3d857 | (Paweł Murias)++ | 6 files
[truffle] Implement nqp::pop, nqp::push, nqp::shift nqp::unshift on arrays
18:50 lorimer27 joined, lorimer27 left 19:05 get joined 19:06 get left 19:07 dct joined, p6bannerbot sets mode: +v dct 19:17 yoleaux joined 19:18 p6bannerbot sets mode: +v yoleaux 19:27 dct left
Geth rakudo: MasterDuke17++ created pull request #2175:
Speed up subbuf by using the new nqp::slice op...
19:28
MasterDuke lizmat: ^^^, turned out to be a pretty simple change 19:30
19:32 dct joined, p6bannerbot sets mode: +v dct 19:40 Turandot28 joined, Turandot28 left 19:41 yaymuffins9 joined, yaymuffins9 left
lizmat hmmm... did we lose Geth here? 19:44
lizmat just merged github.com/rakudo/rakudo/pull/2175
MasterDuke timotimo: btw, trying to profile opening a 50k .gz with Compress::Zlib creates a 16mb .json profile that crashes the QT viewer. trying to profile a 190k .gz file creates a .json it won't even open, complaining about "too deeply nested elements" 19:46
19:52 Geth left, Geth joined, ChanServ sets mode: +v Geth
Geth rakudo: 4e56ce954e | (Daniel Green)++ | src/core/Buf.pm6
Speed up subbuf by using the new nqp::slice op...

instead of manually looping with nqp::bindpos+nqp::atpos.
19:52
rakudo: c4bb1b19d2 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core/Buf.pm6
Merge pull request #2175 from MasterDuke17/speed_up_subbuf

Speed up subbuf by using the new nqp::slice op...
19:53 p6bannerbot sets mode: +v Geth 19:57 AlexDaniel joined, AlexDaniel left, AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel
timotimo MasterDuke: perhaps needs an inline disable 19:59
that thing with the call graphs is still not fixed, alas
MasterDuke github.com/rakudo/rakudo/blob/mast...#L119-L121 is now the most expensive in the Compress::Zlib test 20:01
the next is Compress::Zlib.get 20:02
timotimo how often does it get entered?
MasterDuke decode?
or get?
timotimo decode 20:03
MasterDuke 3401 for decode, 161383 for get
timotimo so it really does spend a lot time doing the decoding, huh
a "perf record" perhaps tells us something about that, but it's likely just "it's a lot of work it's doing" 20:04
20:06 dct left 20:07 MasterDuke left 20:10 pmurias left, pmurias joined 20:11 p6bannerbot sets mode: +v pmurias
lizmat Q: can we have Bufs with > 2**64 bytes ? 20:16
timotimo currently, we can not. 20:17
lizmat m: dd Buf.new.reallocate(2**65).elems 20:18
camelia Cannot unbox 66 bit wide bigint into native integer
in block <unit> at <tmp> line 1
lizmat I guess not
timotimo if your machine only has 64bit pointers, you don't have space for both your program and the 2**64 byte big buffer
lizmat fair enough :-)
timotimo even then, that's how many terabytes?
lizmat yehah, true 20:19
jnthn m: say 2 ** 64
camelia 18446744073709551616
20:19 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke
timotimo m: say 2 ** 64 / 1024 / 1024 / 1024 / 1024 20:19
camelia 16777216
jnthn m: say (2 ** 64).flip.comb(3).reverse.join('_').say
camelia 81_644_447_370_907_155_616
True
timotimo that should be terabytes?
the next thing is petabytes, right?
m: say 16777216 / 1024
camelia 16384
jnthn Yeah but that's 2 after tera
timotimo oh, ok
sjn m: say 64 - 12; # Terabytes
camelia 52
timotimo so it's 16 petabytes?
sjn m: say "2^" ~ 64 - 12; # Terabytes 20:20
camelia 2^52
lizmat so, we could technically have all Buf.methods that take an Int also give a native int candidate
jnthn 81 exabytes?
I think
lizmat so we wouldn't have to box / unbox
timotimo if someone with that much ram calls us to say that we please lift that limitation, we're probably in a very good place anyway
MasterDuke (slight delay because of a power outage) MVM_string_utf8_decode is 2nd in a perf report 20:21
hm, for a larger file, zero_slots is 2nd and MVM_string_utf8_decode drops to 4th 20:23
lizmat MasterDuke: would you mind if I took optimizing subbuf and associated methods a bit further? Or do you have your sights set on that?
MasterDuke lizmat: please, go ahead 20:24
lizmat ok, will do!
timotimo google "how to zero out memory the fastest" 20:28
not sure if we can get much better at that
not sure what exactly we're doing at the moment? but hopefully we use memset
MasterDuke hm, an even larger (22mb) file is different again. VMArray_gc_mark tied with MVM_interp_run for the top at 7%, then zero_slots, then sim_stack_find 20:30
timotimo VMArray_gc_mark shouldn't take any time for a native int array like a Buf or Blob would be 20:32
if it's an Int array, then yeah, that'll take a while
MasterDuke the code is just 'use Compress::Zlib; my $a = gzslurp("1m.txt.gz"); say $a.lines.elems;' 20:33
timotimo sim_stack_find, eh? that's not supposed to take long ... 20:34
MasterDuke github.com/retupmoca/P6-Compress-Z...b.pm6#L219
`while (elems < ssize) body->slots.i64[elems++] = 0;`, couldn't that be a memset? 20:39
jnthn MasterDuke: Yes, with a bit of calculation
Geth 6.d-prep: 8707604fea | (Zoffix Znet)++ (committed using GitHub Web editor) | TODO/FEATURES.md
Add TODO: Sort out normalization of ZDRs
20:40
20:40 buggable left, buggable joined, ChanServ sets mode: +v buggable 20:41 p6bannerbot sets mode: +v buggable
MasterDuke jnthn: same with all the other cases, right? 20:45
jnthn MasterDuke: Yes
MasterDuke ah, maybe i'll give that a go 20:47
btw, think github.com/MoarVM/MoarVM/pull/896 and github.com/MoarVM/MoarVM/pull/897 are fine?
jnthn MasterDuke: All OSX fails in the first of those 20:48
Ah, maybe timing 20:49
MasterDuke it's been happening on all recent travis builds
jnthn Restated the test jobs to find out :)
lizmat
.oO( that's quite a statement :-)
20:50
jnthn :P 20:51
Other than that it's good, though I still find that warning frustrating :P
21:03 tony-o_ left 21:04 tony-o joined 21:05 p6bannerbot sets mode: +v tony-o 21:11 MasterDuke left 21:14 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke 21:18 travis-ci joined, travis-ci left 21:29 dct joined, p6bannerbot sets mode: +v dct
timotimo [Coke]: could someone try to limit the size of the screenshot on the front page of news.perlfoundation.org? on my end it blocks three quarters of the sidebar :| 21:47
21:48 hipp joined, hipp left 21:52 wsm joined, wsm left 21:57 pmurias left 22:08 robertle left
[Coke] timotimo: I can only edit my blog entries. 22:08
if you comment on it, Alan can probably fix it. 22:09
22:13 MatthewAllan9324 joined, MatthewAllan9324 left 22:14 yaymuffins28 joined, yaymuffins28 left
Geth roast: f677510e00 | (Zoffix Znet)++ | S05-modifier/sigspace.t
[v6.d REVIEW] Add another test for trailing ws in :s

To cover the case where it'd fail
Orig: github.com/perl6/roast/commit/bb4510143
22:18
22:19 pmurias joined
timotimo maybe i'll send him a mail directly? 22:20
22:20 pmurias left
[Coke] sure 22:36
22:40 justyns joined, p6bannerbot sets mode: +v justyns 22:45 justyns left 23:00 JStoker17 joined, p6bannerbot sets mode: +v JStoker17
JStoker17 I thought you guys might be interested in this blog by freenode staff member Bryan 'kloeri' Ostergaard bryanostergaard.com/ 23:00
Read what IRC investigative journalists have uncovered on the freenode pedophilia scandal encyclopediadramatica.rs/Freenodegate
A fascinating blog by freenode staff member Matthew 'mst' Trout MattSTrout.com/
AlexDaniel Zoffix: what if we give voice, take it away, and then give it again after a delay? :) 23:03
.oO( where's the source code for these spam bots? )
:)
23:05 JStoker17 left
[Coke] I thought we had everything blocked? 23:06
timotimo what we have is we force new people who join to be silenced for 40 seconds 23:09
then they get voice
hoping that they'll have spammed some other channel already and gotten killed off the network
instead, they use sufficiently many connections or something? 23:10
AlexDaniel oh, that's how it works
I thought it was the bot just giving up after some time :)
23:21 swoolley14 joined, swoolley14 left 23:25 BeastieBot left 23:35 CeBe11 joined, CeBe11 left 23:42 dct left 23:46 Fusl29 joined, p6bannerbot sets mode: +v Fusl29 23:49 Fusl29 left 23:59 Turska-11 joined, Turska-11 left
[Coke] (silenced) is that what people were arguing for instead of what zoffix setup? 23:59
let's go back to what zoffix had.