MasterDuke jnthn, timotimo: any pointers of a good place to start for generating mbc from nqp? 00:09
huh. is it intentional that --profile-compile and --profile-stage are missing from the rakudo --help output? 00:23
and is running.pod no longer available on the docs site? 00:40
timotimo: `Dynamic Optimization 5705006.99% (599262206ms)`, that number seems a little big 00:53
timotimo hm, yeah, that's probably wrong. gotta check the code later, but first bedtime 00:59
MasterDuke fyi, i was doing a --profile-stage=parse 01:00
i'll gist you the code
timotimo so just the core setting compilation?
MasterDuke just some random code
timotimo: gist.github.com/MasterDuke17/9b8fb...be31d3a311 01:03
timotimo is the only thing weird the dynamic opt percentage? 01:08
MasterDuke seems so
oh, and it's a big profile, 1.1mb 01:10
if i just do a --profile, it's only 100k
timotimo huh, yeah, that's strange 01:12
oh, does it still do the debug output?
"taking profile of a thread" or something?
MasterDuke yeah 01:14
timotimo i reproduce the file size at least
MasterDuke same debug output as just the --profile
timotimo mhm, in the --profile-stage one it has a gigantic amount of routines, among other things probably like a hundred in Exception.pm 01:16
looking forward to seeing what profiler-graphviz thinks 01:19
MasterDuke it almost looks like all the routines in the core setting
timotimo this will be a fun one to chase down 01:20
oh, no biggie, just a 15 megabyte svg file
ok so ModuleLoader.nqp calls a frame called <load>, which calls <unit-outer> (of CORE.setting), which calls <unit> (also of CORE.setting) which fans out into every single routine in the core setting 01:23
some of them even have some extra work
core/Supply.pm@1748 calls into lines 1751, 1755, 1801, 1894, 2023, 2079, and 2185 01:24
could be all nested blocks for all i know
anyway, bedtime
hack.p6c.org/~timo/weird.svgz MasterDuke 01:25
(the beginning is all the way at the bottom left
MasterDuke cool, later... 01:27
Geth rakudo: MasterDuke17++ created pull request #1580:
Add `--profile-[compile|stage]` to `--help` output
01:41
rakudo: d643c2cc5e | (Zoffix Znet)++ | src/core/ThreadPoolScheduler.pm
Remove trailing whitespace
01:50
rakudo: 3b3507396d | MasterDuke17++ | src/Perl6/Compiler.nqp
Add `--profile-[compile|stage]` to `--help` output
01:55
rakudo: 79a95b49a3 | (Zoffix Znet)++ (committed using GitHub Web editor) | src/Perl6/Compiler.nqp
Merge pull request #1580 from MasterDuke17/add_stage_and_compile_profiling_options_to_help_output

Add `--profile-[compile|stage]` to `--help` output
rakudo: 4617976d9e | (Zoffix Znet)++ | 2 files
Nano-optimize supervisor thread sleep

By avoiding .Bridge->.Num calls on SUPERVISION_INTERVAL every 100th of a second. Pointless speed-wise, given we're sleeping anyway, but it was polluting my Rat usage measurements data by spamming .Bridge, .Num calls into the log.
02:08
japhb Optimizing background threads has benefits beyond performance. Scalability, reliability, power/battery use, ... and as you discovered, less noise when debugging. So I say Zoffix++. :-) 03:07
AlexDaniel squashable6: next 06:16
squashable6 AlexDaniel, āš šŸ• Next SQUASHathon in ā‰ˆ3 hours (2018-03-03 UTC-12āŒUTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
dogbert21 AlexDaniel: what's the status of github.com/MoarVM/MoarVM/issues/680 ? Can it be closed? 11:18
AlexDaniel` Very likely yes. I'll check when I get home 11:20
Geth rakudo: 85ad0eba3e | (Elizabeth Mattijsen)++ | src/core/ThreadPoolScheduler.pm
Further nano-optimize threadpool scheduler thread

It struck me that we don't need the overhead of calling the HLL sleep() as we know the value that will be used all of the time. Please note that I also tried to feed it a native num variable, but this appeared to have a negative effect on longer running parallel executing programs.
12:13
rakudo: 1894eacea4 | (Elizabeth Mattijsen)++ | 3 files
Move chrs() logic to List.chrs and make chrs() the gateway

So that if you define your own .chrs method on a Foo object for some reason, using chrs() will find the Foo.chrs.
12:25
jnthn afternoon, #perl6-dev 12:49
lizmat jnthn o/ 12:55
Geth rakudo: 6117647570 | (Elizabeth Mattijsen)++ | 2 files
Move ords() logic to Str.ords
12:56
lizmat jnthn: so how was the meeting in Brno ?
dogbert21 o/ jnthn, how's your vacation going?
jnthn Very nice. :)
Gave a copule of talks. Answered lots of questions. :)
On the train back home now 12:57
dogbert21 and the weather?
jnthn We walked up to the Brno castle in -10C or so on Wednesday :) 12:58
dogbert21 yay
lizmat brrrrrrrrno
jnthn Thursday was warmer, but windier, so felt colder
dogbert21 any snow?
jnthn So I was glad we'd done that on Wednesday
A little snow. Saw quite a bit on the train there/back
Not much in the city itself
Though it was lightly snowing while I was waiting for the train earlier :) 12:59
dogbert21 with some luck there's snow in Prague
jnthn Relatively unlikely 13:00
dogbert21 :( 13:01
was it a good conference?
jnthn 'twas a Pm group meeting rather than conf, but yeah, was nice :) 13:02
Good view over the city from the place where I was speaking too :)
dogbert21 nice
jnthn And some good food and microbrews afterwards
dogbert21 oh microbrews 13:03
jnthn Yeah, they had a pleasing oatmeal stout :)
dogbert21 mmm 13:04
jnthn uploads his holiday hacking to CPAN :) 13:05
AlexDaniel dogbert21: sorry, did you run the example mentioned in the ticket? 13:21
this is the output, but I'm not sure what to think of it: gist.github.com/AlexDaniel/f39a1c4...2e8f2ab738 13:22
lucasb I tried to make chrs() use an arbitrary .chrs method in a dummy class, but couldn't make it happen 13:31
besides 'multi sub chrs(*@c --> Str:D) { @c.chrs }', a new multi sub should be defined to catch that case?
lizmat if you make the class Cool, does it work then?
lucasb oh, I forgot. let me try 13:32
lizmat github.com/rakudo/rakudo/issues/1575 # reason for not putting it in Any (so far)
lucasb nope, it didn't see to work 13:33
the intention is for "chrs($myobj)" to call $myobj.chrs, rigth? 13:34
but will it ever work if that signature (*@c) ?
*@c doesn't retain the original type, right? 13:35
MasterDuke jnthn: did you see my question yesterday about nqp -> mbc? 13:36
lizmat lucasb: I guess we need to add a multi then, PR's accepted :-) 13:37
going to be afk mostly until late Saturday night
afk& 13:57
MasterDuke last night i was running some experiments trying to --profile-compile the rakudo build 13:59
the last release where that was possible was 2017.08
(and that took about 15m for the build and 105m to write out the 1.2g of profile data (as SQL)) 14:01
every release since then (and HEAD) used significantly more ram according to /usr/bin/time
and wouldn't actually create a profile 14:02
there wasn't any message that it got killed by the os, and /usr/bin/time showed only 40g used (out of 52g in the vm) during some of the ones right after 2017.08 14:04
anybody have any thoughts/suggestions? 14:08
dogbert21 perhaps timotimo 14:47
Geth roast: ad4aef0102 | (Stefan Seifert)++ | 3 files
Fix broken todo-ed precomp interning test

Don't expect an implementation to load a precompiled file without accompanying source file. Instead, expect precompilation to be done implicitly like so many other tests already do. The only reason why this wasn't done at the same time as for other tests is that this was todo-ed and nobody looked at the failure close enough to notice the breakage till pmurias++ came along. Fixes GH #391
15:28
synopsebot SPEC#391 [open]: github.com/perl6/roast/issues/391 Broken todo-ed precomp interning test
timotimo waves from a fresh upgraded fedora 27 15:34
jnthn MasterDuke: My plan was to use that as a concrete test case for a yet-to-be-designed set of binary data ops
timotimo MasterDuke: does dmesg say it was OOM'd? 15:36
MasterDuke timotimo: nope 16:11
timotimo did it write a core dump? 16:12
(that'd be a many gigabytes big file, fun!)
MasterDuke jnthn: ah, so not really something i could start on?
timotimo: not that either
timotimo hrmpf
MasterDuke yeah 16:13
jnthn MasterDuke: Indeed, though I think it'll be something that, once rolling, could be fairly easy to join in with 16:14
MasterDuke cool 16:15
timotimo: i could create you an account on the vm... 16:17
timotimo if it's the bisectable machine, i already have that?
MasterDuke no, it's a google compute vm 16:18
timotimo ah, hm
that way what i do will waste your money :o
MasterDuke profiling the build now takes way more ram than the whateverable server
i'm just using the free credit 16:19
timotimo ah
one day i should grab the free credit, too
MasterDuke and at this rate it will expire before i use it up
so i want to spend it while i can 16:20
timotimo BBL 16:25
Geth rakudo: 98e575de00 | (Jonathan Worthington)++ | 451 files
Use .pm6 under src/core/, not .pm

We should really be setting a good example in Rakudo, plus this will be easier on everyone whose editor defaults to Perl 6 highlights for .pm6 and Perl 5 highlights for .pm.
16:32
AlexDaniel yay for proper filename extension 17:01
it's a bit trickier with .pl files though, as someone may be doing some kind of automation with them 17:02
but still potentially doable
jnthn Yeah, that way-out-of-hand docs ticket finally prodded me to do it :)
MasterDuke jnthn: any thoughts on my unsuccessful attempts to --profile-compile the rakudo build? think it might be related to that --profile-stage=parse weirdness i was discussing with timotimo yesterday? 17:09
jnthn MasterDuke: 'fraid I didn't really follow everything here the last few days 17:12
timotimo probably has more idea of the latest profile-related stuff than I do :)
MasterDuke irclog.perlgeek.de/perl6-dev/2018-...i_15874404 if you're interested
jnthn Hmm
That number is meaningless-ish now, I think 17:13
In that we always do opt on a background thread
Geth rakudo: b7df58f25b | (Aleks-Daniel Jakimenko-Aleksejev)++ | 5 files
Use .p6 instead of .pl6 for some tools

We should be careful when changing names of these tools because there might be some automation that depends on them, but in this case it's probably only my own automation that matters, so I'll take the hit.
Consensus for .p6 was reached in perl6/doc#778.
17:14
synopsebot DOC#778 [closed]: github.com/perl6/doc/issues/778 [LHF][docs] ā€œSource files generally use the standard .pm extension, and scripts or executables use .pl.ā€
rakudo: 02fc1ffe6a | (Aleks-Daniel Jakimenko-Aleksejev)++ | tools/contributors.p6
Add missing shebang
17:15
MasterDuke but even if it's meaningless, it shouldn't say dynamic optimization took hours longer than the actual compilation+runtime 17:16
Geth rakudo: efd0d6c051 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 2 files
CREDITS.pl6 ā†’ CREDITS.p6

Similarly to b7df58f25ba47bd404b19005626b6b0058435ec1.
Seems like this file is not used, so renaming it should be safe.
17:17
AlexDaniel so there's only install-dist.pl now 17:18
which is actually a perlĀ 6 script
jnthn MasterDuke: Yeah, I've never seen it output anything ever than 0 since my spesh refactors
MasterDuke: So I've no idea what's going on with it :)
AlexDaniel++ # picking up where I left off 17:19
I had thought about doing the scripts too, but got distracted :)
AlexDaniel jnthn: actually, there was one script with .p6 extension already, and IIRC it had .pl before I changed it. I just didn't have enough courage to rename the rest 17:20
there :) github.com/rakudo/rakudo/commit/ad...af809826c2
arguably switching pl6 to p6 is not that big of a difference 17:21
it's the .pl ā†’ .p6 that mattered
MasterDuke jnthn: where is the data for that value collected?
AlexDaniel I filed R#1583 for the last file 17:25
synopsebot R#1583 [open]: github.com/rakudo/rakudo/issues/1583 tools/install-dist.pl is a perlĀ 6 script but has Prolog file extension
AlexDaniel greppable6: install-dist 17:33
greppable6 AlexDaniel, 4 lines, 1 modules: gist.github.com/5bda741414b36279a2...0a7a741ebd
jnthn MasterDuke: I didn't actually think it was any more. It used to be that when we entered/left the specializer we would call some functions in profile/log.c or whatever it's called. But those went away with the spesh refactor, I think 17:34
(When it was moved to a background thread) 17:35
Geth roast: 1be2c82018 | (Stefan Seifert)++ | S10-packages/precompilation.t
Adapt test count after ad4aef0102e3d7dc2e986bf225c4cd93c301d629
17:39
rakudo: 440fceacc2 | (Zoffix Znet)++ | src/core/Range.pm6
Remove Range.clone-with-op / Fix bug on ops with subclasses of Range

Addresses R#1582 github.com/rakudo/rakudo/issues/1582 Addresses D#1798 github.com/perl6/doc/issues/1798
Also fixes explosion when subclasses/mixedin Range objects were used with Range ops. Also fixes propagation of `infinite` attribute, tho ... (10 more lines)
18:22
synopsebot R#1582 [open]: github.com/rakudo/rakudo/issues/1582 Remove Range.clone-with-op
D#1798 [open]: github.com/perl6/doc/issues/1798 [NOTSPECCED][docs] clone-with-op is not documented
roast: 81d8cc92ed | (Zoffix Znet)++ | S03-operators/range.t
Remove trailing whitespace
18:23
roast: 6607795a41 | (Zoffix Znet)++ | S03-operators/range.t
Test Range operators with Range subclasses

Rakudo fix: github.com/perl6/doc/issues/1798
MasterDuke timotimo: looks like there's an MVM_profiler_log_spesh_end getting called before MVM_profiler_log_spesh_start, so it's setting the initial spesh_time to `uv_htime() - 0`, which is obviously a large number 18:36
jnthn Hmm 18:37
MasterDuke however, each only are called in one place in worker.c 18:38
jnthn I guess maybe logging how much time the specializer thread spends could be interesting
MasterDuke if (tc->instance->main_thread->prof_data) MVM_profiler_log_spesh_start(tc);
timotimo added those a week ago
jnthn I mean, once we have multi-threaded profiles working well
MasterDuke yeah, that's what he's been working on
jnthn ah, ok 18:39
MasterDuke landed a bunch of commits last week
jnthn I was a bit distracted writing/giving talks and travel/sightseeing :)
MasterDuke both the _start and _end have that same if and are in a loop 18:40
so i guess somehow that conditional isn't true for the start and is for the end the first time through the loop 18:41
jnthn Hmm 18:43
if (tc->instance->main_thread->prof_data)
MVM_profiler_log_spesh_start(tc);
I wonder if there can be issues involving the main thread having finished profiling or not yet started or some such 18:44
So that condition changes
And it maybe logs a start without end or end without start
MasterDuke it definitely does, i added some fprintfs to _start and _end
and the very first thing printed was an _end 18:45
jnthn Hm, maybe a check to make sure that we ignore any end when we weren't started :)
MasterDuke only does it with --profile-compile or --profile-stage 18:46
not --profile
or should the _start be moved somewhere later in that worker loop such that tc->instance->main_thread->prof_data will definitely be set? 18:49
travis-ci Rakudo build passed. Zoffix Znet 'Remove Range.clone-with-op / Fix bug on ops with subclasses of Range 19:29
travis-ci.org/rakudo/rakudo/builds/348354899 github.com/rakudo/rakudo/compare/e...0fceacc2e2
tbrowder Zoffix: you around? 20:16
does anyone know if there is a list of current p6 modules showing the current status of travis and appveyor testing? the cpan list apparently doesn't show current status. 20:20
Zoffix tbrowder: what? 20:23
gfldex tbrowder: modules.perl6.org does know, so there must be a way to get hold of that data
Zoffix tbrowder: the search page shows travis/appveyor. Don't enter a term and it'll show all modules: modules.perl6.org/search 20:24
And the data is querable via API: modules.perl6.org/search.json
$ perl6 -MWWW -MJSON::Fast -e '"modules.perl6.org/search.json".&...>).map: { "{.<name>}\t\ttravis {.<travis_status>}\t\tappveyor {.<appveyor_status>}".say }' 20:26
And `dist_source` key contains source ("cpan", "github", "gitlab") 20:27
None of CPAN dists have the data (well they say "not setup", but there's just no info populated by the dist source code):
$ perl6 -MWWW -MJSON::Fast -e '"modules.perl6.org/search.json".&...source> eq "cpan").sort(*<name>).map: { "{.<name>}\t\ttravis {.<travis_status>}\t\tappveyor {.<appveyor_status>}".say } 20:28
$ perl6 -MWWW -MJSON::Fast -e '"modules.perl6.org/search.json".&...source> eq "cpan").sort(*<name>).map: { printf "%50s %-15s %-15s\n", .<name travis_status appveyor_status> }' # a bit easier to read 20:30
A few days it was mentioned about forgetting to run `make test`. FWIW, Z-Script's `z s` (spectest), `z bs` ("best" test), and `z ss` (stresstest) all run `make test` first. 20:37
huggable: z
huggable Zoffix, Helper script for Rakudo Perl 6 core development: github.com/zoffixznet/z
gfldex tbrowder: please note that travis tests reported as passed may have done so with a rakudo that is months old. As such they may not pass anymore. 20:39
[Tux] Rakudo version 2018.02.1-104-g440fceacc - MoarVM version 2018.02-22-g9233d85e7
csv-ip5xs0.829 - 0.912
csv-ip5xs-207.880 - 8.072
csv-parser37.490 - 39.699
csv-test-xs-200.496 - 0.500
test9.603 - 9.631
test-t2.573 - 2.628
test-t --race1.157 - 1.179
test-t-2046.628 - 48.521
test-t-20 --race15.917 - 17.737
21:02
japhb HEAD rakudo breaks JSON::Fast, it looks like: 21:24
===> Testing: JSON::Fast:ver<0.9.10>
The iterator of this Seq is already in use/consumed by another Seq
(you might solve this by adding .cache on usages of the Seq, or
by assigning the Seq into an array)
in sub assert-sorted at t/08-sorted-keys.t line 8
in block <unit> at t/08-sorted-keys.t line 11
===> Testing [FAIL]: JSON::Fast:ver<0.9.10>
Aborting due to test failure: JSON::Fast:ver<0.9.10> (use --force-test to override)
tbrowder Zoffix: thanks 21:34
gfldex: good point, thanks 21:37
the reason for my query is that Bailador is having problems with appveyor tests and i think at least some of it is the large number of dependencies, some of which may not be set up or not passing windows tests themselves 21:39
timotimo jnthn: i force a gc collection to collect profile data, so at least at the end it'd be in sync. the start, however, may be a different story :) 21:45
MasterDuke timotimo: github.com/MoarVM/MoarVM/pull/812 22:03
timotimo oh you fixed it for me
MasterDuke well, my fix misses anything that happened the first time through the loop, so maybe there's something better 22:05
timotimo i can't immediately reproduce the test failure in json::fast 22:14
but maybe i should build newest everything first
Zoffix timotimo: github.com/timo/json_fast/pull/37 22:29
timotimo aha, it's reproduced
Zoffix .comb was inconsistent in that it returned Seq in all cases but the .comb(Regex:D) one and now it was made consistent and the test tries to call .List and then .sort on that same Seq 22:30
timotimo i see!
released 22:32
japhb Thanks guys! 22:37
Geth nqp: 41b2f055b1 | (Timo Paulssen)++ | src/vm/moar/HLL/Backend.nqp
remove stray debug output from sql profile output
23:21
japhb Timo: Did you bump the version for JSON::Fast? My rebuild seems to have pulled the old one (0.9.10) 23:22
timotimo i did 23:24
jnthn It's also possible that it was uploaded to CPAN and you're noticing the delay between it being uploaded and it being indexed
timotimo aye, that takes a bit every time 23:25
jnthn
.oO( Is this why the CPAN upload service is called pause? :) )
timotimo the sql output for the same workload just reached 348 megs
er, ww i guess
japhb jnthn: Any idea how long that delay is? Minutes? Hours? A day? 23:46
jnthn japhb: Feels like ~1 hour to me 23:53
Maybe ~30 minutes
timotimo modules.perl6.org/update.log 23:58
japhb: check this, it should show you how long things ought to take
almost an hour
also, that build log still has 9.10 as the latest :( 23:59
so the *next* one will get it