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.
MasterDuke jnthn: github.com/MoarVM/MoarVM/pull/927 00:17
timotimo ("devoiced" is the proper term i think? i kind of pulled "silenced" out of a hat 00:44
)
can i just say the activity in the squashathon has been incredible to see 00:52
i didn't pay very much attention, but damn.
MasterDuke very much agree, ++s all around
AlexDaniel 29 contributors I think 00:53
we're still not down to 0 issues btw 00:56
and not really close
squashable6: status
squashable6 AlexDaniel, 🍕🍕 SQUASHathon is in progress! The end of the event in ≈11 hours. See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
AlexDaniel, Log and stats: gist.github.com/2581a0430e4cc9f4f6...8acdf3d0fd
AlexDaniel but there's time, so help is appreciated :)
about 56 modules received a pull request, that's incredible indeed :) 01:00
+ some were fixed by authors, and some modules received a ticket 01:02
MasterDuke jnthn, timotimo: wow, my most recent profile of Compress::Zlib say 43% of the time is spent in garbage collection and dynamic optimization! 01:43
timotimo let's see ... 01:45
how did you generate the test data? 01:46
just give me all your stuff :P
MasterDuke: ^ 01:48
timotimo ah i see the code 01:53
MasterDuke timotimo: i didn't have inlining disabled, so i could only profile on a 3k line file (50kb compressed, 209kb uncompressed) 01:56
i've just been using the first n lines of ftp://ftp.ncbi.nlm.nih.gov/genomes/Homo_sapiens/ARCHIVE/BUILD.37.3/CHR_01/hs_ref_GRCh37.p5_chr1.fa.gz for my testing 01:57
timotimo so unpacked, head, pack again?
MasterDuke yep 01:58
timotimo that's a really slow server? 01:59
MasterDuke yeah. the full file is ~66mb
timotimo i'll have the file in 5 minutes 02:00
would probably be faster to scp it from your server, if it's on there?
hm, i'm the only one logged in right now, so maybe not 02:01
MasterDuke it's up there now
timotimo where do find? 02:02
MasterDuke /home/bisectable/hs_ref_GRCh37.p5_chr1-2.fa.gz.bak i think
timotimo jeez, might want to kick some files out of /tmp
i'll save about a minute 02:03
MasterDuke heh. only took 6s to upload it...
timotimo then you should have sent it to me directly :D
www.sharedrop.io/rooms/385bdfb9-a0...df7eafb0de
MasterDuke do you have a null-modem cable long enough?
timotimo :D 02:04
timotimo oh, ok, i'm finished getting it via scp 02:05
MasterDuke i should've used zstd to recompress the extracted file. gzip is so slow comparatively 02:06
timotimo heh. 02:07
MasterDuke i just tried a profile of 100k lines and MVM_SPESH_OSR_DISABLE=1, nearly killed my box 02:08
oh. duh. i wanted _INLINE_ 02:09
timotimo it's difficult, the 3k lines thing finishes in just 0.6s 02:10
so not too much to profile actually
MasterDuke 100k with MVM_SPESH_INLINE_DISABLE=1 created a workable profile 02:12
timotimo i think one way to make things faster, though likely not by much, is to not go via the Str.pm6:2176 function, that one calls "encoder" from Encoding/Builtin:26 over and over, as well as "find" from the Encoding/Registry 02:15
that'd only do at most a second out of a runtime of 10 seconds i think 02:16
MasterDuke oh? and use Encoding/* directly? 02:17
timotimo could do
the block at line 253 is responsible for about 3 seconds, and half of that is in "encode" from Str 02:18
subbuf takes more time there, but that'll be (or has already been) improved by using nqp::slice? 02:19
MasterDuke lizmat merged my PR, so you should have it at rakudo's HEAD 02:20
timotimo cool, i'll update
MasterDuke yeah, that should make a difference 02:22
timotimo maybe as a super bad hotfix i could make only the op that causes the call graph to blow up "noinline" when the profiler is turned on 02:25
then you'll get a little bit of info on inlines in the profiler, and you don't have to turn inlining off
MasterDuke it's just one op?
timotimo i think so 02:26
i think it's throwpayloadcaller or similar
MasterDuke throwpayloadlex or throwpayloadlexcaller ? 02:27
timotimo it has to be the caller one i believe
MasterDuke yep, i could open a profile of 100k just fine after marking that op :noinline 02:30
timotimo that'll be a disgusting hotfix that'll want proper fixing soon
MasterDuke gc and opt are down to 8.5%
timotimo opt was how much before? 02:31
MasterDuke well, 40% when using the 3k file 02:32
timotimo well, it's at least running in parallel to the normal code
MasterDuke i'm still getting that the most expensive block is the loop {} in get() 02:33
timotimo yeah
MasterDuke at about 12%
timotimo inside that the block for if $i.defined takes the biggest chunk
i'd say about a third 02:34
timotimo line 247 takes about a fifth, and inflate from Compress::Zlib at only between a quarter and a third 02:34
you want a real microoptimization? move out $nl.chars to outside of the loop :P 02:35
it gets called once per call to that if block, and it takes about 8.5 miliseconds in total 02:36
MasterDuke github.com/retupmoca/P6-Compress-Zlib/pull/16
timotimo cool, you already found that
encode still takes a good chunk of total time 02:37
MasterDuke i'm seeing that the 3rd most expensive is the 'gather while' in lines()
that may be another place to re-implement lines(), like is needed for IO::String 02:38
timotimo "lines" barely registers on my profile, though i have only (?) a 1M lines file 02:39
MasterDuke huh, lines itself doesn't really show up 02:40
timotimo oh, lines surely only sets up the gather/take 02:41
and all the actual cost is accounted in whatever causes the body to run
also, my body has to run
seeya and good luck!
MasterDuke ah, it's from slurp's self.lines.join
later...
[Tux] Rakudo version 2018.06-317-gc4bb1b19d - MoarVM version 2018.06-339-g05990ef90
csv-ip5xs1.063 - 1.254
csv-ip5xs-207.919 - 8.166
csv-parser24.667 - 25.708
csv-test-xs-200.422 - 0.480
test10.052 - 10.360
test-t2.264 - 2.311
test-t --race0.978 - 0.982
test-t-2041.368 - 41.492
test-t-20 --race12.849 - 13.476
07:26
tbrowder_ hi #perl6-dev 09:55
i want to merge my rakudo PR #2171 later today if there are no objections 09:56
Geth rakudo: cd43c4f153 | (Elizabeth Mattijsen)++ | src/core/Buf.pm6
Streamline Buf.subbuf a bit more

  - make it a multi
  - use helper subs for readability
  - make sure all is done as natively as possible
  - depending on parameters, makes subbuf between 1.2x to 2.5x as fast
14:15
Geth nqp: 7729d0a8a0 | (Zoffix Znet)++ | tools/build/MOAR_REVISION
[MoarVM Bump] Brings 16 commits

MoarVM bump brought: github.com/MoarVM/MoarVM/compare/2...7-gca0ece5 ca0ece5 Merge pull request #888 from Kaiepi/configure 7cab426 Merge pull request #920 from jstuder-gh/mv_templates_right_location 700ce36 Merge pull request #921 from jstuder-gh/carray_str_leak 22d710e Merge pull request #928 from MasterDuke17/use_correct_types_in_find_deopt_target_and_index_signature ... (12 more lines)
14:54
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...7-gca0ece5
rakudo: d4d8289515 | (Zoffix Znet)++ | tools/build/NQP_REVISION
[NQP Bump] Brings 2 commits

NQP bump brought: github.com/perl6/nqp/compare/2018....4-g7729d0a 7729d0a [MoarVM Bump] Brings 16 commits 20b2eb7 Add pow_i to docs
MoarVM bump brought: github.com/MoarVM/MoarVM/compare/2...7-gca0ece5 ... (16 more lines)
rakudo: version bump brought these changes: github.com/perl6/nqp/compare/2018....4-g7729d0a
a50c0492e6 | (Elizabeth Mattijsen)++ | src/core/Buf.pm6

self is always already deconted
rakudo: 90ef306102 | (Elizabeth Mattijsen)++ | src/Perl6/Actions.nqp
Make sure "my ($a,$b)" does not have any runtime effect

Before this change, it would actually create a List each time the scope with the definition was entered. This does *not* take care of the case where the variables are initialized. This a different can of beans. jnthn++ for suggesting the code.
tbrowder_ before i merge my rakudo pr, ugexe had one comment: should the sub lines which splits lines with “\n” also consider “\r\n”. i said i don’t know, but i think all system-specific line endings are magically taken care of with the nqp (and p6) “\n” newline. is that not true? 17:39
lizmat nqp -e 'nqp::say(nqp::chars("\r\n"))' # 1 , so I think so 17:41
AlexDaniel tbrowder_: so that's in the source code, right 17:45
??
s/‘??’/?/ # one is enough :)
tbrowder_: if yes, then it should act the same way it does in other cases 17:48
like
m: my $x = { … }␤say 42 # something like this but with different newlines 17:50
camelia 42
AlexDaniel \r \r\n and \n seem to work 17:51
but also 17:52
u: 

u: a
a
unicodable6 AlexDaniel, U+000A <control-000A> [Cc] (control character)
AlexDaniel, U+001A <control-001A> [Cc] (control character)
AlexDaniel, Cowardly refusing to gist more than 5000 lines
AlexDaniel woah
tbrowder_: basically all these: en.wikipedia.org/wiki/Newline#Unicode 17:53
m: my $x = { … }
say 42
camelia 42
AlexDaniel because that ↑ works
so yeah, unless I'm missing something 17:54
brrt \o 18:31
tbrowder_ AlexDaniel: thanks! 19:22
Geth rakudo: 29dc1952da | (Tom Browder)++ | 5 files
implement S26 =defn block properly, add tests
19:23
rakudo: ff8d8d8260 | (Tom Browder)++ | 2 files
fix typo, remove debug line
rakudo: 6e8ca327a3 | (Tom Browder)++ (committed using GitHub Web editor) | 5 files
Merge pull request #2171 from tbrowder/defn3

implement S26 =defn block properly, add tests
Geth nqp: 3be0568b90 | (Zoffix Znet)++ | tools/build/MOAR_REVISION
[MoarVM Bump] Brings 25 commits

MoarVM bump brought: github.com/MoarVM/MoarVM/compare/2...2-g166c4a2 166c4a2 Fix wrong comment 346df9e Mark "shameful hotfix" as TODO b3eb1f4 shameful hotfix for gigantic profiler output files 3969395 [JIT] Please Travis ... (21 more lines)
20:16
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...2-g166c4a2
rakudo: ea84a465a2 | (Zoffix Znet)++ | tools/build/NQP_REVISION
[NQP Bump] 3be0568 [MoarVM Bump] Brings 25 commits

NQP bump brought: github.com/perl6/nqp/compare/2018....5-g3be0568
MoarVM bump brought: github.com/MoarVM/MoarVM/compare/2...2-g166c4a2 166c4a2 Fix wrong comment 346df9e Mark "shameful hotfix" as TODO ... (23 more lines)
¦ rakudo: version bump brought these changes: github.com/perl6/nqp/compare/2018....5-g3be0568
AlexDaniel .tell lizmat perhaps you're interested: GH#2182 21:21
yoleaux AlexDaniel: I'll pass your message to lizmat.
synopsebot GH#2182 [open]: github.com/rakudo/rakudo/issues/2182 [regression] Array[Pair] as return constraint does not work