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.
Geth rakudo: patzim++ created pull request #2842:
Fix build runners
00:02
patrickz .tell vrurg I made a change to the build system (r#2842). Once that's merged I'll have a look at your branch and try to incorporate the change there as well. 00:04
yoleaux patrickz: I'll pass your message to vrurg.
synopsebot R#2842 [open]: github.com/rakudo/rakudo/pull/2842 Fix build runners
vrurg patrickz: ok, thanks! 00:05
yoleaux 00:04Z <patrickz> vrurg: I made a change to the build system (r#2842). Once that's merged I'll have a look at your branch and try to incorporate the change there as well.
patrickz Time for bed. o/ 00:06
00:06 patrickz left 00:20 AlexDaniel left 01:23 vrurg left, vrurg joined
Geth nqp: 56c12ad070 | (Daniel Green)++ | src/HLL/Compiler.nqp
Whitespace fixes
02:29
03:27 Kaiepi left 03:29 Kaiepi joined 04:18 Kaiepi left 04:23 SqrtNegInf left
Geth roast: 25b776bc0b | usev6++ | S32-io/mkdir_rmdir.t
[JVM] Unfudge now passing test

Fixed with github.com/perl6/nqp/commit/3921b1e6c7
04:47
05:36 b2gills left 06:02 b2gills joined 06:11 SqrtNegInf joined 06:25 SmokeMachine left
lizmat Files=1255, Tests=90107, 398 wallclock secs (23.56 usr 7.10 sys + 2823.79 cusr 240.67 csys = 3095.12 CPU) 06:33
06:33 SmokeMachine joined 06:42 SmokeMachine left 06:51 ufobat_ joined 06:52 SmokeMachine joined 06:55 ufobat left
lizmat .tell kawaii I have a slight preference for a release before the PTS, which is on 25-28 April: work will be done on the CUR subsystem with potential ecosystem fallout 07:19
yoleaux lizmat: I'll pass your message to kawaii.
kawaii o/ 07:28
yoleaux 07:19Z <lizmat> kawaii: I have a slight preference for a release before the PTS, which is on 25-28 April: work will be done on the CUR subsystem with potential ecosystem fallout
lizmat kawaii o\
kawaii lizmat: I will see if we can cut the release early next week then, this week I am moving to a new apartment so a little busy IRL :) 07:29
lizmat kawaii: as I said, a slight preference
if you cut a release branch, then all should be ok 07:30
AleksDaniel has done that in the past, not sure if it's now part of standard procedure
07:31 patrickb joined
kawaii I'm going to attempt to cut a 2019.04-rc1 this weekend, just to practice :) 07:32
lizmat kawaii++ 07:34
08:05 SmokeMachine_ joined 08:06 SmokeMachine left, SmokeMachine_ is now known as SmokeMachine 08:29 go|dfish left 09:27 MasterDuke left
lizmat m: gist.github.com/lizmat/aa814fb0183...d031937600 # timotimo: something like that ? 10:06
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /home/bisectable/git/whā€¦
lizmat, Full output: gist.github.com/2caee5c7532927a160...496be2e7f8
lizmat (without the m: :-))
|Tux| Rakudo version 2019.03.1-208-g9ce87eeb9 - MoarVM version 2019.03-76-gc10fee65c
csv-ip5xs0.731 - 0.824
csv-ip5xs-205.924 - 5.959
csv-parser21.859 - 22.308
csv-test-xs-200.425 - 0.435
test6.985 - 6.990
test-t1.666 - 1.706
test-t --race0.828 - 0.863
test-t-2028.899 - 28.983
test-t-20 --race10.100 - 10.731
10:16
20190415 1.669ā™20190416 1.666ā™20180928 1.662ā™20181015 1.659ā™20181011 1.647ā™
10:17 patrickb left 10:18 patrickb joined
Geth rakudo: afc9f84949 | (Elizabeth Mattijsen)++ | lib/Telemetry.pm6
Add message capability to snap()

snap("checkpoint one") will now store that message with the period and will show it in the report:
   $ perl6 -e 'use Telemetry; snapper; sleep .2; snap("checkpoint"); sleep .1'
Telemetry Report of Process #89112 (2019-04-16T10:18:37Z) ... (14 more lines)
10:20
timotimo lizmat: oops, i just saw that
timotimo it looks quite good, yeah!
10:20 patrickb left
timotimo hm, though snap("foo") doesn't read very well for the "insert this into the profiler's data" use case 10:21
lizmat so what would read well then ?
checkpoint("foo") ? 10:22
timotimo i'd like that wording 10:23
though not entirely sure about putting subs in the main namespace when Telemetry is used; that's why i thought of T<checkpoint> = "hi"
snap is probably not something user code would be likely to have, but "checkpoint" seems like a much more common word maybe? 10:24
greppable6: checkpoint
greppable6 timotimo, 19 lines, 7 modules: gist.github.com/2f41a56827d91853e5...81538ecd0f
timotimo ok, not really used yet at all in the ecosystem at least
lizmat timotimo: the thing is that T creates a throwaway Telemetry object and gives you the current values for that 10:25
it won't get snapped, so it won't appear in snapper output
timotimo mhhh, i see
though my first thought was to return a Proxy from that specific lookup
so that assigning to it would be "an action" 10:26
but that's pretty "foreign" to the current telemetry api, so we can probably forget about that :)
lizmat technically, I could have T<checkpoint> = "foo" create a Telemetry object and have that snapped, but that feels too magic to me
especially since you can create your own Telemetry instruments, which could interfere with <checkpoint> 10:27
timotimo that makes sense
10:31 patrickb joined
lizmat wrt to snapshot maker, that could be a named arg to snap() 10:32
*heap snapshot 10:33
snap( :heap )
10:34 patrickb left, patrickb joined 10:37 patrickb left
lizmat wonders if we lost Travis? 11:13
just found out that "make test" isn't clean... and I borked that yesterday already
timotimo travis seems to think that "make test" is clean 11:14
maybe you have to "make install" first?
lizmat that shouldn't be necessary 11:16
timotimo jnthn has complained recently that he had to do that 11:17
but perhaps that was only for moarvm changes, not perl6 changes
wow, the jvm builds take a loooong time, don't they? 11:18
lizmat hmmm... can't reproduce it anymore either now.... weird 11:19
timotimo looks like they always hit the 50 minute timeout 11:20
lizmat m: dd sprintf('%+.0d',0) 11:34
evalable6 "+"
lizmat that's unexpected to me
but consistent with Perl 5 11:35
11:50 AlexDaniel` joined
Geth roast: d69eba76f8 | (Elizabeth Mattijsen)++ | S32-str/sprintf-d.t
Parameterize sprintf testing of "d" and "i" formats

Mostly intended to register the behaviour of the current sprintf implementation, which was not testing some combinations of flags and values.
11:58
rakudo: 91218bccc3 | (Elizabeth Mattijsen)++ | t/spectest.data
Add extensive testing of "d" and "i" formats in sprintf
12:00
roast: 505f5c23c3 | (Elizabeth Mattijsen)++ | S32-str/sprintf-d.t
Oops, forgot to disable debugging help
12:02
timotimo oh lizmat btw you can already put support in for heap snapshots; all you need to put there is nqp::startprofile followed by nqp::endprofile with the heap snapshot profile type passed in a hash 12:10
lizmat are those nqp ops documented ? 12:13
timotimo oh, perhaps not 12:14
nope
lizmat that would help :-) 12:15
timotimo perhaps that's what i'll do right now
oh it's mvmstartprofile apparently
lizmat m: say sprintf("%#o",-64) # another one that looks like it's off 12:24
evalable6 0-100
timotimo the cat is now on my lap and if i don't hold his butt with my left hand he starts slipping which causes the positioning claws to extend straight into my legs %) 12:36
makes it hard to write that documentation
lizmat
.oO( devs will do anything to prevent documenting :-)
12:38
Geth nqp: 3093f22f34 | timo++ (committed using GitHub Web editor) | docs/ops.markdown
document mvmstartprofile and mvmendprofile
12:40
nqp: 8fe62740a3 | timo++ (committed using GitHub Web editor) | docs/ops.markdown
fix formatting
12:42
12:44 tyil[m] joined
lizmat Sometimes I feel we need a hook for this as well: github.com/perl6/problem-solving/issues/11 12:52
"sprintf is a mess"
timotimo Python has variants that could be worth a look 12:57
pyformat.info/ 13:00
13:13 Kaiepi joined 13:16 Kaiepi left, Kaiepi joined
Geth roast: 50851f8882 | (Elizabeth Mattijsen)++ | S32-str/sprintf-o.t
Parameterize sprintf testing of "o" formats

THIS IS TESTING FOR THE CURRENT BROKEN BEHAVIOUR OF sprintf("%o"), while we can hopefully decide on a way forward:
   github.com/perl6/problem-solving/issues/11
13:45
13:45 sivoais left
13:46 sivoais joined 13:47 lucasb joined
Geth rakudo: 873de2da53 | (Elizabeth Mattijsen)++ | t/spectest.data
Add extensive testing of "o" format in sprintf
13:47
13:52 Guest2775 joined 13:53 patrickb joined 14:04 AlexDaniel joined
lizmat afk for a bit& 14:05
14:05 tyil[m] left 14:06 AlexDaniel` left
AlexDaniel hehe 14:11
can't commit, can't merge my own pull request
14:17 discord6 left, discord6 joined, discord6 left, discord6 joined
AlexDaniel lizmat: I'm so happy to see github.com/perl6/problem-solving/issues/11 :) 14:25
m: say ā€œ$0 $1 $2ā€ with $/ = <5 6 7> 14:30
evalable6 Cannot test 873de2da53cb31c695aabe0edc983ff4718cec65 (Commit exists, but a perl6 executable could not be built for it)
14:30 reportable6 left, shareable6 left 14:31 reportable6 joined, ChanServ sets mode: +v reportable6
AlexDaniel c: HEAD^ say ā€œ$0 $1 $2ā€ with $/ = <5 6 7> 14:31
committable6 AlexDaniel, Ā¦HEAD^: Ā«5 6 7ā¤Ā»
AlexDaniel heh 14:32
14:33 AlexDaniel` joined 14:34 shareable6 joined, ChanServ sets mode: +v shareable6
releasable6 Next release in ā‰ˆ4 days and ā‰ˆ3 hours. 12 blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 15:00
15:01 tyil[m] joined 15:10 llfourn left 15:29 patrickb left 15:36 patrickb joined 15:41 pmurias joined
AlexDaniel Geth: help 15:50
Geth AlexDaniel, Source at github.com/perl6/geth To add repo, add an 'application/json' webhook on GitHub pointing it to hack.p6c.org:8888/?chan=%23perl6,%23perl6-dev and choose 'Send me everything' for events to send | use `ver URL to commit` to fetch version bump changes
problem-solving: 146ed82b73 | (Aleks-Daniel Jakimenko-Aleksejev)++ | solutions/meta/00002 ā€“ Problem Solving.md
Fix link to the README
15:53
AlexDaniel weekly: first PR in the problem solving repo was merged! Yes, the PR is about the problem-solving repo itself. github.com/perl6/problem-solving/pull/2 15:55
notable6 AlexDaniel, Noted!
Geth nqp/truffle: 0a33ab15fc | (Paweł Murias)++ | src/vm/jvm/runtime/org/perl6/nqp/truffle/sixmodel/REPRRegistry.java
[truffle] Sort reprs alphabetically
15:56
nqp/truffle: f314fc7150 | (Paweł Murias)++ | 9 files
[truffle] Implement Decoder/ConcBlockingQueue/ConditionVariable/ReentrantMutex reprs
nqp/truffle: c5a9698833 | (Paweł Murias)++ | 3 files
[truffle] Stub VMArray and VMIter reprs
AlexDaniel weekly: please use the problem-solving repo file tickets about issues in the language (previously github.com/rakudo/rakudo/ was used for that)
notable6 AlexDaniel, Noted!
timotimo lizmat: opening Telemetry.pm6 gives me an error that the syntax highlighter reached its memory limit and was turned off 16:02
16:11 pmurias left
lizmat timotimo: odd 16:26
16:29 AlexDaniel left
Geth roast: 395926a5fa | (Elizabeth Mattijsen)++ | S32-str/sprintf-x.t
Parameterize sprintf testing of "x" and X formats

THIS IS TESTING FOR THE CURRENT BROKEN BEHAVIOUR OF sprintf("%x"), while we hopefully decide on a way forward:
   github.com/perl6/problem-solving/issues/11
16:38
rakudo: 448f525cd3 | (Elizabeth Mattijsen)++ | t/spectest.data
Add extensive testing of "x" and "X" formats in sprintf
16:42
17:09 llfourn joined 17:21 Kaiepi left 17:25 Kaiepi joined 17:29 Kaiepi left
lizmat m: say sprintf("%02s","") # another weird one, but consistent with Perl 55 17:31
evalable6 00
lizmat *5
17:32 Kaiepi joined
timotimo lizmat: the perl6 vim syntax has a bug with lines like # foo --------------------- 17:36
it seems to go exponential or something
lizmat is it the number of --- ? 17:37
so you're also saying it was not a recent change I introduced
timotimo no, it's been that way for a long time
same with the autogenerated native array files, i think 17:38
they also have pretty headings and such, don't they?
lizmat yeah... 17:39
timotimo gist.github.com/timo/802d9d04b3ca8...cffd564e2c - making a snap right after starting the snapper lets you get negative wallclock times, that's funny
lizmat well... what happens there is that you didn't segfault
snap / snapper are pushing to the same array from different threads... 17:40
was hoping I wouldn't get caught :-)
timotimo oh, it pushes literally into an array
that's dangerous :)
lizmat guess I will have to use the concbllockingqueue 17:42
timotimo as long as you don't have to have positional access that should be just fine 17:44
lizmat only when making the report
timotimo that's perfect, then
Telemetry.pm6 can't use #?if moar, right? 17:45
so putting nqp::mvmstartprofile in there is not a good idea :|
lizmat indeed
well, we have constants that indicate the backend
ah yes, but then we'd have to wrap them in an EVAL yuck
timotimo yep, yuck indeed 17:46
we could put mvmstartprofile and mvmendprofile on other backends to just throw an "not supported" exception
or maybe we expose it through the HLL Backend, atwo methods on the compiler object perhaps 17:47
lizmat just as a class method on the Compiler class ? 17:49
timotimo yeah 17:50
gist.github.com/timo/802d9d04b3ca8...shot-patch 17:52
i have this patch and it misbehaves in the strangest way
the $filename always ends up "heapsnapshot-.mvmheap" with two "use of nil" warnings
and then it errors out trying to unbox a VMNull in the startprofile line ?!?
lizmat perhaps related to c10fee65c839b7e60fb748dfb5 ? 17:54
(in MoarVM repo)
timotimo huh. it shouldn't though? :|
17:54 Kaiepi left
timotimo should be able to see by disabling spesh 17:54
lizmat if you mate the $snapshot-idx an Int rather than an int ? 17:55
*make
timotimo doesn't help
lizmat weird
timotimo but using $(...) instead of {...} did help 17:56
lizmat yikes
timotimo OK, the null error goes away when i put "path" instead of "filename" (because filename isn't correct there) 17:57
17:57 Kaiepi joined
lizmat may I say I find the API for nqp::mvmstartprofile in the case of a heap dump, strange ? 17:59
timotimo gist.github.com/timo/802d9d04b3ca8...pshots-txt - check it out!
in what way?
lizmat so what happens if you do not do the mvmendprofile?
timotimo it'll create a single file that gets a new snapshot every time the gc runs
just like when you --profile=heap 18:00
lizmat ah... hmm... wasn't clear to me from the documentation :-)
timotimo stopping it immediately makes it take one snapshot and stop, i.e. not one every time the gc runs
i can put some more docs in there
the snap :heap could also take a message, i'm not entirely sure how that should work, though; put the message first, the heap snapshot filename second? 18:01
and maybe the :heap named argument could be a path or filename
lizmat that would make sense to me 18:02
timotimo also, now that i'm at it already, why not start work on the stats nqp op, the one that'd expose things like how often the GC ran so far
we'll have the ~fun~ of making that work regardless of backend used, too
Geth roast: e985c7d7cd | (Elizabeth Mattijsen)++ | S32-str/sprintf-s.t
Parameterize sprintf testing of "s" format

Mostly intended to register the behaviour of the current sprintf implementation, which was not testing some combinations of flags and values.
18:03
lizmat ^^ another bit of fun :-)
timotimo oh btw, can you think of a way we could subtract time spent taking heap snapshots from the wallclock snap? 18:04
Geth rakudo: 7ee08bb10f | (Elizabeth Mattijsen)++ | t/spectest.data
Add extensive testing of "s" format in sprintf
timotimo maybe it'd be enough to push two T's; one before and one after taking the snapshot 18:05
then it'd be clearer how much time is spent taking the snapshot exactly
lizmat indeed
timotimo the first T could have the message that's passed as a positional parameter (if one is passed), the second one the filename 18:06
18:06 AlexDaniel joined
lizmat sounds like a pla 18:06
n
timotimo check the gist again 18:07
it looks kind of odd
lizmat why do you have the snapper running ?
does that add anything ? 18:08
timotimo i guess i don't have to?
lizmat nope, you don't
snapper is just for continuous watching
timotimo right
lizmat if you want to snap at certain stages of your program, you can just add snap statements
timotimo the report appears without a snapper, too
lizmat yup 18:09
timotimo i don't know why, but now i don't get the first "taking heap snapshot" message
lizmat anytime you do a single snap, it will
m: use Telemetry; snap
evalable6 Telemetry Report of Process #16344 (2019-04-16T18:09:27Z)
Number of Snapshots: 2
Initial/Fā€¦
lizmat, Full output: gist.github.com/2e41529bdf65f1985d...333da3d302
timotimo also, the 641% cpu usage in the gist is funny 18:10
probably has something to do with the time being -3
lizmat yup
lizmat looks forward to the nqp::stats op :-)
timotimo i'll teach the heap snapshot profiler to actually return a summary of what it saw to nqp::mvmendprofile; any idea how that should be displayed in the telemetry report if there were heap snapshots taken? 18:11
how does nqp::backendstats sound as an op name?
lizmat sounds good
timotimo harder to confuse with the stat system call and such
lizmat wrt to the heap snapshots info: what kind of data would that contain? 18:12
timotimo oh, also, would it make sense for the snapper report to display how much util% corresponds to one cpu core?
at the very least "how many objects, how many references between objects, how many frames, how many STables, total managed object size, total unmanaged object size", perhaps also "rankings" of types by count and size 18:13
lizmat before you said "perhaps", I thought about a thing similar to nqp::getrusage
perhaps we could put that into an instrument 18:14
timotimo mhm
lizmat although the information is really of a different type
timotimo what kind of stuff gets returned could be configurable via the mvmstartprofile op
but it'll have to be compatible with "multiple heap snapshots were taken between start and end" 18:15
ugexe re per-core stats: remember nqp::cpucores isn't always a relevant number, or mean usable cores, or etc 18:16
lizmat perhaps Telemetry should be agnostic of this
timotimo mhm 18:17
lizmat an nqp::profilestats could fetch information collected by snapshots
if there is none, then there was no profiling
if there was, it will automatically pick it up
(and reset it for the next batch)
timotimo if you call it twice after only one profiling?
ah, that's what i wanted to hear :)
lizmat afk for a bit& 18:19
Geth nqp: e9807a613c | timo++ (committed using GitHub Web editor) | docs/ops.markdown
elaborate a little on mvmstartprofile and mvmendprofile
18:22
rakudo: Kaiepi++ created pull request #2845:
Don't use nqp::execname on OpenBSD
18:31
patrickb Kaiepi++ 18:41
Kaiepi: I really appreciate the work you put into this!
Kaiepi :)
i like issues like this that are specific to bsd in general since i'm forced to learn more about how the oses work 18:43
patrickb From what I can see the changes look good. 18:44
patrickb boots into Windows 18:49
18:49 patrickb left
Kaiepi i have some changes i need to propose to libuv that i found out about from this since there's a better way they could be handling uv_exepath than they do now 18:50
the only reason i didn't use it for this issue was because it'd only work on moarvm 18:51
but basically sysctl let's you get the program's cwd
combine that with it allowing you to get the binary name from argv and you have a full path 18:52
only issue with that is if the program chdir's at some point but the current implementation doesn't deal with that either so whatever 18:54
timotimo afaik we don't chdir in maorvm, though of course there's nativecall 18:55
19:01 patrickb joined 19:14 patrickb_ joined, patrickb left 19:22 Kaiepi left 19:59 Kaiepi joined
Geth nqp/master: 5 commits pushed by (Timo Paulssen)++ 20:52
timotimo ^- deallocations weren't actually being written to the profiler's output until now, oops :) 20:55
21:02 AlexDani` joined 21:04 AlexDaniel left 21:12 Kaiepi left, Kaiepi joined 21:15 Kaiepi left 21:32 AlexDani` left 21:38 vrurg left, vrurg joined 22:07 MasterDuke joined, MasterDuke left, MasterDuke joined 22:19 vrurg left, vrurg joined
Geth rakudo: patzim++ created pull request #2846:
Remove relative elements from NQP_HOME and PERL6_HOME
22:29
22:38 patrickb_ left 22:47 patrickb joined
jnthn .tell patrickb I'll take a look at your PR tomorrow :) 22:50
yoleaux jnthn: I'll pass your message to patrickb.
patrickb No hurry.
yoleaux 22:50Z <jnthn> patrickb: I'll take a look at your PR tomorrow :)
jnthn I need to try and look at the spesh-related release blocker ticket this week too 22:54
Sleep for now o/ 23:01
23:40 patrickz joined 23:43 patrickb left 23:45 AlexDani` joined 23:46 AlexDani` is now known as AlexDaniel, AlexDaniel left, AlexDaniel joined 23:47 lucasb left 23:50 ufobat_ left