Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_logs/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by AlexDaniel on 12 June 2018.
00:06 eater left, dogbert2 left, DrForr left, perlawhirl left 00:07 eater joined 00:10 ilmari[m] left 00:15 perlawhirl joined, dogbert2 joined, DrForr joined 00:48 ilmari[m] joined 01:14 lizmat left 01:21 lizmat joined 01:35 AlexDaniel[m] joined, tyil[m] joined, CIAvash[m] joined 01:42 dct left 01:43 dct joined 01:46 Ven`` left 02:20 dct left 02:47 Ven` joined 02:52 Ven` left
releasable6 Next release in ≈1 day and ≈15 hours. 4 blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 03:00
03:41 fake_space_whale left 04:58 Ven` joined 05:02 skids joined 05:03 Ven` left 05:09 Kaiepi left, Kaiepi joined 05:16 skids left 06:03 xi- left 07:31 buggable left 08:46 robertle joined 09:19 robertle left
|Tux| Rakudo version 2018.06-229-ga5ab50d64 - MoarVM version 2018.06-301-gdad8a39f6
csv-ip5xs1.000 - 1.025
csv-ip5xs-208.178 - 8.487
csv-parser24.339 - 24.779
csv-test-xs-200.423 - 0.445
test9.674 - 10.125
test-t2.227 - 2.228
test-t --race0.961 - 0.981
test-t-2040.149 - 40.289
test-t-20 --race13.937 - 14.541
09:37
09:42 tyil[m] left, ilmari[m] left, AlexDaniel[m] left 09:43 CIAvash[m] left 09:45 benchable6 left, nativecallable6 left, statisfiable6 left, bisectable6 left 09:46 undersightable6 left, greppable6 left
lizmat Files=1246, Tests=76402, 379 wallclock secs (16.00 usr 5.73 sys + 2667.98 cusr 255.30 csys = 2945.01 CPU) 09:47
09:49 robertle joined 09:52 ilmari[m] joined 10:30 tyil[m] joined, AlexDaniel[m] joined, CIAvash[m] joined 10:43 benchable6 joined, greppable6 joined, nativecallable6 joined, undersightable6 joined 10:45 MasterDuke left 10:51 Ven`` joined 11:17 Ven`` left
Geth rakudo: jkramer++ created pull request #2102:
Consistify P6 scripts.
11:25
jkramer I did that 4 days ago and linked it to the issue but apparently forgot to als make a PR
*also 11:26
11:27 yoleaux joined
Geth rakudo: 906bec8c9d | (Jonas Kramer)++ | 20 files
Consistify P6 scripts.

Fixes rakudo/rakudo#2077.
11:28
rakudo: 2e5912c0ae | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 20 files
Merge pull request #2102 from jkramer/issue-2077

Consistify P6 scripts.
synopsebot RAKUDO#2077 [closed]: github.com/rakudo/rakudo/issues/2077 [easy to resolve][good first issue][meta] Extensions, shebangs, executable permissions in tools/ and elsewhere
11:33 pmurias joined
jkramer AlexDaniel: As per R#1583 there obviously are gonna be issues for some packagers of linux distros, but I'm not sure what to do about it (other than not renaming the file) 11:37
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 jkramer: I dunno github.com/rakudo/rakudo/issues/15...-406575218
I mean, I can issue an alert 11:38
here: alerts.perl6.org/
greppable6: install-dist 11:39
greppable6 AlexDaniel, Found nothing!
jkramer Well it's a really easy fix for packagers I guess, they'll probably notice soon enough ;) 11:40
AlexDaniel it had to be done sooner or later anyway… :) 11:41
but yeah, when I created that issue I didn't mean that this particular file should be renamed… in fact I meant that it should be left unchanged
but ok, we'll see how it goes
11:46 lizmat left
jkramer Regarding nqp, I had a quick look and all the .pl files are P5 scripts, .pl6 files don't exist and the only .p6 file already has the correct shebang, so I guess there's nothing to do there 11:47
AlexDaniel jkramer: alright, please close the issue with this justification then 11:48
:)
11:48 lizmat joined
AlexDaniel jkramer: though, is everything executable? 11:49
and shebangs?
if so then great 11:50
11:50 ExtraCrispy joined
jkramer No, I was just about to say that. I could set 755 to some .pl scripts and some of them have different shebangs, like just '# perl', but mostly the have the full #/usr/bin/env perl 11:50
I'll clean that up a bit, but should I create an issue for that in nqp or just refer to the rakudo issue? 11:51
With ! of course :) 11:53
AlexDaniel jkramer: whatever works better for you
Geth nqp: jkramer++ created pull request #486:
Set executable flags and shebangs as requested in rakudo/rakudo#2077.
12:08
synopsebot RAKUDO#2077 [open]: github.com/rakudo/rakudo/issues/2077 [easy to resolve][good first issue][meta] Extensions, shebangs, executable permissions in tools/ and elsewhere
Geth nqp: 9dd7485485 | (Jonas Kramer)++ | 13 files
Set executable flags and shebangs as requested in rakudo/rakudo#2077.
12:09
nqp: bbfb873060 | (Aleks-Daniel Jakimenko-Aleksejev)++ (committed using GitHub Web editor) | 13 files
Merge pull request #486 from jkramer/issue-2077

Set executable flags and shebangs as requested in rakudo/rakudo#2077.
AlexDaniel jkramer: there's also github.com/MoarVM/MoarVM *wink* *wink* *wink* *wink* 12:10
:)
jkramer :D 12:21
AlexDaniel releasable6: status 12:25
releasable6 AlexDaniel, Next release in ≈1 day and ≈6 hours. 4 blockers. 0 out of 231 commits logged (⚠ 37 warnings)
AlexDaniel, Details: gist.github.com/0b1916a6a1e9de0b0c...dfe707d83e 12:26
AlexDaniel
.oO( optimismable )
12:27 travis-ci joined
travis-ci NQP build errored. Aleks-Daniel Jakimenko-Aleksejev 'Merge pull request #486 from jkramer/issue-2077 12:27
travis-ci.org/perl6/nqp/builds/406215768 github.com/perl6/nqp/compare/acae1...fb87306052
12:27 travis-ci left
jkramer Hmm, it built just fine locally 12:29
AlexDaniel 🤷 12:30
restarted the job
jkramer Still builds just fine locally with a fresh clone 12:33
Huh, now it passed ¯\_(ツ)_/¯ 12:35
Hmm, lib/MAST/Ops.p6 (in moarvm) says it's generated by tools/update_ops.p6, but tools/update_ops.p6 is writing to Ops.pm not Ops.p6 12:38
Also in different directory 12:39
timotimo it should build that file, too, though?
the p6 one is used in tools, like the spesh grapher
jkramer Ah lib/MAST/Ops.p6 was touched last time in 2015, I think it's not generated with every build then 12:40
timotimo starting line 60 it writes it
jkramer Someone probably copied/moved it manually
timotimo oh, it's Ops.pm that it writes
jkramer Yes that's what I meant 12:41
timotimo sorry
i'm apparently still half asleep
jkramer Same here :)
Anyhow I guess I should not make tools/update_ops.p6 add a shebang to the generated file since it's writing a module, not Ops.p6? 12:42
timotimo yeah, they're not useful to be executed as a program 12:43
jkramer But should Ops.p6 get one? It's not really an executable
But then it probably shouldn't be named .p6 :)
timotimo though something could be made for the case you run it, like ld.so does
jkramer I'll just not touch it for now :) 12:47
tools/count-jit-bail-ops.p6 has #!/usr/bin/env perl6-m as shebang, I suppose that's on purpose? Or should it be changed to perl6? 12:48
timotimo could be perl6 instead, yeah 12:54
AlexDaniel eh wow, that was a very perl6tense morning for me :) 12:57
AlexDaniel takes a break
13:01 statisfiable6 joined
AlexDaniel .tell jnthn looking at things now, I find the idea of releasing from HEAD less crazy… :) There were many fixes, and cherry-picking all that into the release branch is also somewhat risky. So maybe indeed we should take our time to make sure that HEAD is good (instead of spending a similar amount of time to test the release branch). If we go with HEAD, then we do indeed need backcompat for Proxy/is-rw. “when it's ready” would then 13:05
yoleaux AlexDaniel: I'll pass your message to jnthn.
AlexDaniel next-week-ish. Let me know what you think
.tell jnthn message trimmed: colabti.org/irclogger/irclogger_log...07-20#l158
yoleaux AlexDaniel: I'll pass your message to jnthn.
AlexDaniel samcv: ↑
jnthn AlexDaniel: Yeah, one thing about many of the MoarVM fixes I've put in is that they became needed because more aggressive inlining exposed them, but some of them actually were potentially possible to trigger before now. 13:06
yoleaux 13:05Z <AlexDaniel> jnthn: looking at things now, I find the idea of releasing from HEAD less crazy… :) There were many fixes, and cherry-picking all that into the release branch is also somewhat risky. So maybe indeed we should take our time to make sure that HEAD is good (instead of spending a similar amount of time to test the release branch). If we go with HEAD, then we do indeed need backcompat for Proxy/is-rw. “when it's ready”
would then
13:05Z <AlexDaniel> jnthn: message trimmed: colabti.org/irclogger/irclogger_log...07-20#l158
jnthn AlexDaniel: We just got "lucky enough"# 13:07
samcv are we going to ignore this for now? github.com/MoarVM/MoarVM/issues/910 13:08
though i could revert siphash changes, but i still have 120% no clue why that commit could cause that
AlexDaniel well, “lucky enough” is often actually good enough for users (in practice), so extra disruptions are very unwanted from my perspective 13:09
jnthn Well, also, we don't know to what degree the issues might have cropped up in the darkpan and gone unreported. 13:11
timotimo m: say 4294967296 / 1024 / 1024
camelia 4096
samcv is this person on freenode btw? github.com/0racle 13:12
timotimo i think i've seen them around
.seen 0racle
yoleaux I haven't seen 0racle around.
timotimo maybe not under that name 13:13
samcv maybe different spelling?
or different name entirely
AlexDaniel .seen 0racle
yoleaux I haven't seen 0racle around.
timotimo anyway, trying to expand a hash to be 4 gigs big, that seems kind of wrong
or is that trying to increase the size of one bucket to 4 gigs?
AlexDaniel quotable6: 0racle 13:14
quotable6 AlexDaniel, OK, working on it! This may take up to three minutes (4582161 messages to process)
samcv timotimo: it tries to make the size of the bucket pointer array 4GB
well.
it's not pointers. but the aray of buckets
jnthn 4GB is a suspicious number though
Like if we underflowed somehow 13:15
samcv and i've confirmed you can build nqp even if we just use uint16's
jnthn: though that could be true
AlexDaniel samcv: fwiw I don't think we should be ignoring it. A lot of people try to build on raspberry pi and stuff like that, so breaking that is generally not a wonderful situation :)
quotable6 AlexDaniel, 105 messages (2016-03-23⌁2018-04-07): gist.github.com/5a8a70d365aea35a74...2d868ef352
AlexDaniel perlawhirl: 0racle is you, right? 13:16
yes
samcv: ↑
samcv though now that i'm looking for underflow i can maybe look harder...
well then again i didn't add any code except the code that generates siphash hash values... so ignore that. not much to look at anywhere else 13:17
i mean the only code change i made to uthash.h was setting fibonnaci hashing to use 64 bit integers. but that would just cause a segfault if it returned the wrong value 13:18
well the size of pointers on their machine is 8 bytes? so they are on a 64bit machine? 13:19
though i don't see them mention what arch it is 13:20
MVMHashBktNum new_num_bkts = tbl->num_buckets * 2; 13:22
then we do uthash_malloc_zeroed(tc, new_num_bkts * sizeof(struct UT_hash_bucket)); 13:23
but i don't see how that could underflow. and tbl->num_buckets is a uint32
unless we just decided to already have decided to add a crazy number of buckets
13:40 skids joined
timotimo maybe a "bt all" would have been more enlightening - also asking 0racle to build with --optimize=0 14:09
maybe after reaching 1g we should increase in half-gigabyte increments instead of doubling
is there some kind of possibility that we put everything in one bucket and keep trying to rehash? it must be astronomically unlikely, right? 14:10
jnthn thought "maybe let's do something easier on a Friday afternoon" 14:13
Ended up dealing with continuations :P
Ulti I tend to do interesting moon shot rather than easier on Fridays 14:14
timotimo ouch
jnthn I think I might have a solution for the issue timotimo spotted a while back where some uses of the thread pool scheduler end up with a huge pile of invocation records on the call stack though
timotimo hey, that's cool!
jnthn I was looking at the t/spec/S17-promise/lock-async-stress.t instability under stress 14:15
And got a four thousand line stack trace :P
timotimo :D
jnthn Anyway, it looks like I can fix it, but in doing so I realized that MoarVM's implementation of the protect flag to continuationcontrol was incorrect 14:16
So now spectesting that patch together with my Rakudo fix
Unsurpsisingly, the lock async stress test runs quite a lot faster now :) 14:17
Also seems rather less explosive 14:18
timotimo way cool.
jnthn Though looks like I might have a spectest regression
Can't get the lock async one to blow up at all
grmbl 14:20
t/spec/S17-supply/syntax-nonblocking-await.t fails with "No matching continuation reset found", which is exactly the protect bug I thought I just fixed
Geth nqp/truffle: 5 commits pushed by (Paweł Murias)++ 14:24
jkramer > No such method 'take-while' for invocant of type 'Array'. Did you mean 'take-while'? Ü 14:44
AlexDaniel jkramer: how did you get that? 14:46
jkramer augmented that method into List instead of Array :) I think there's already an issue for something similar 14:47
But it's monkey-typing anyway, so probably not an issue for normal users
14:48 fake_space_whale joined
jkramer github.com/rakudo/rakudo/issues/1758 14:48
jnthn Good news is that I got the massive stack issue fixed without breaking anything.
jkramer I think this is the same problem, because augmented methods don't get inherited into child classes 14:49
But it still suggests the method in the parent class, although it can't be used
jnthn Bad news is that it seems t/spec/S17-promise/lock-async-stress2.t is still unhappy occasionally and with the same kind of failure mode, just not with the 4000 line stack trace :)
Yowser, "MoarVM panic: Corrupt multi dispatch cache: cur_node == 0" 14:52
And the other error it more often crashes with is an argument count error 14:53
Which I guess could mean it picked the wrong entry out of a messed up multi cache
dogbert11 there's an old, closed, report for t/spec/S17-supply/syntax-nonblocking-await.t where the above dispatch error is mentioned 14:55
jnthn Corrupt multi dispatch cache?
dogbert11 yep, github.com/MoarVM/MoarVM/issues/554
Geth nqp: 25dec5da98 | (Aleks-Daniel Jakimenko-Aleksejev)++ | tools/build/MOAR_REVISION
[MoarVM Bump] Brings 32 commits

MoarVM bump brought: github.com/MoarVM/MoarVM/compare/2...g4d22fb9e7 4d22fb9e7 Fix protect handling in continuationcontrol 36cd04e57 Merge pull request #912 from jkramer/issue-2077 33363d321 Add +x and shebangs for scripts. dad8a39f6 Remove a line that shouldn't have been added in the last commit ... (28 more lines)
14:58
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...g4d22fb9e7
rakudo: 683ae67b67 | (Aleks-Daniel Jakimenko-Aleksejev)++ | tools/build/NQP_REVISION
[NQP Bump] Brings 3 commits

NQP bump brought: github.com/perl6/nqp/compare/2018....g25dec5da9 25dec5da9 [MoarVM Bump] Brings 32 commits bbfb87306 Merge pull request #486 from jkramer/issue-2077 9dd748548 Set executable flags and shebangs as requested in rakudo/rakudo#2077.
synopsebot RAKUDO#2077 [closed]: github.com/rakudo/rakudo/issues/2077 [easy to resolve][good first issue][meta] Extensions, shebangs, executable permissions in tools/ and elsewhere
¦ rakudo: version bump brought these changes: github.com/perl6/nqp/compare/2018....g25dec5da9
samcv timotimo: well not at all possible 15:02
about having everything in one bucket. and even if that happens it wouldn't expand.
timotimo mhm 15:03
super weird.
samcv when it expands the buckets, it keeps track of how many excess elements end up in a bucket. so if there's 4 too many items in one bucket, it makes additional things in that bucket not cause an expansion unless it gets some multiple of the normal lengcth 15:04
timotimo mhm
samcv yeah. it's super weird 15:08
jnthn The other error I see is "Not enough positional arguments; needed at least 2" and it's seemingly about the signature of `proto sub cas($, $, $?, *%) {*}`
Geth nqp/truffle: 174fb97bf5 | (Paweł Murias)++ | src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPNanNode.java
[truffle] Fix nqp::nan
15:13
nqp/truffle: 97355496be | (Paweł Murias)++ | src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/NQPNodeWithBoolification.java
[truffle] Boolification of nqp::null
nqp/truffle: 33b9c7910d | (Paweł Murias)++ | src/vm/jvm/Truffle.nqp
[truffle] Add &skip and print out the desc description in &ok and &is
15:23 pmurias left 15:28 fake_space_whale left 15:29 robertle left 16:31 diakopter joined 16:37 Zoffix joined
Zoffix m: use MONKEY; augment class List { method z { say 42 } }; Array.^compose; [].z 16:38
camelia 42
Zoffix jkramer: ^ you can call .^compose after monkeying for the kid type to get the augmentation from the parent
Geth rakudo: bf514c1502 | (Jonathan Worthington)++ | src/core/ThreadPoolScheduler.pm6
Avoid building up a huge stack of continuations

If we have a continuation to resume, it already has the continuation entry frame with error handling as part of the stack that is resumed. If we thus invoke the continuation inside such a frame, and then it also results in the continuation being taken, we make the stack more deeply nested each time. Don't do that. Also refactor to avoid taking a closure holding the continuation, which will make things a little cheaper.
16:41
Zoffix ZOFVM: Files=1301, Tests=153427, 167 wallclock secs (22.42 usr 3.29 sys + 3621.24 cusr 175.14 csys = 3822.09 CPU) 16:53
16:53 Zoffix left 17:12 ZofBot left 17:13 huggable left 17:26 ZofBot joined, ChanServ sets mode: +v ZofBot 17:28 huggable joined, ChanServ sets mode: +v huggable 17:32 lizmat left
Geth nqp/unfudge-test: 317c3d137e | 陈梓立++ (committed using GitHub Web editor) | t/nqp/019-file-ops.t
Update 019-file-ops.t
17:46
17:55 brrt joined
Kaiepi i'm going to implement being able to get the file descriptors for IO::Socket::Async sockets on top of IO::Socket::INET 18:03
but maybe it'd be a good idea to implement some variation of setsockopt/getsockopt since what i'm trying to do is use setsockopt and send so i can use SO_OOBINLINE because telnet uses it sometimes 18:04
what do you guys think?
18:10 lizmat joined 18:16 AlexDaniel left 18:18 AlexDaniel joined
brrt My opinion on the matter is not worth that much, since I've never done anything related to the IO code 18:18
yoleaux 16:51Z <jnthn> brrt: If you have a spare moment, please could you take a look at github.com/rakudo/rakudo/issues/2070 which shows we still have JIT issues on Windows. I wonder if it's related to that ARG5/ARG6 thing...
brrt .tell jnthn will do
yoleaux brrt: I'll pass your message to jnthn.
brrt re: standard, low-hanging fruit assembly optimizations: note that the expr JIT architecture differs a bit from GCC 18:19
(What I know of GCC archtecture is from second or third hand, so take sufficient grains of salt) 18:20
but I understand that GCC produces naive bytecode first, then uses peephole optimizations to translate it into more efficient forms
whereas we (try to) select 'optimal' bytecode via a tiling process 18:21
so part of what GCC would do as an optimzier, we do as instruction selection 18:22
there's advantages and disadvantages of both approaches
diakopter brrt: oh ok
brrt for one thing, our tiler is constant-time per node 18:23
having said that, I do know that the 'optimality' calculation is probably off
and, I'm also working on an IR optimizer, which should hopefully help the tiler select better bytecode 18:24
and, having REPR specific expression templates is also a goal 18:25
and there's also some really low-hanging fruit optimizations to be done in the register allocator 18:26
for one thing, all values that derive from constants never need to be spilled to memory; the instruction that loads them can be copied instead 18:27
18:27 dogbert17 joined
brrt there's probably a grants worth of work just picking LHF like that 18:27
also; the theory that expression-jitted repr ops would help, is based on two things: a): if i can replace a (dynamic) call with a static one, good for branch prediction; b): if i can replace a call with inline code, better still, plus there's no call-convention nonsesnse and spill-to-memory necessary 18:29
so it's not so much a better assembly story but more an assembly-in-the-right-place story 18:30
19:11 pmurias joined
timotimo Kaiepi: right now i'm about to put socket name and port into the listen socket support; i assume you'll want to touch that part, too? 19:12
and yeah, i'd like setsockopt support, too. i don't have a use for it yet, but i know it's necessary in lots of situations
Kaiepi i'm using setsockopt in my telnet library hastebin.com/tigixasaci.pl 19:22
ignore the really stupid msitakes in the connect method, i haven't tested this code yet 19:25
timotimo it'll also be nice for our users to be able to set reuseaddr 19:28
i do believe $match.to with negative values is how we signal different kinds of failure modes upwards in the grammar engine 19:31
oh, you're using IO::Socket::INET at the moment? you want to switch to ::Async? 19:33
Kaiepi can't get the file descriptor for sockets with async 19:36
at the moment at least
timotimo right 19:37
20:23 brrt left 20:58 Kaiepi left 20:59 Kaiepi joined 21:00 PufferBot joined 21:01 skids left 21:13 Kaiepi left 21:14 Kaiepi joined 21:16 AlexDaniel[m] left, tyil[m] left, ilmari[m] left 21:17 CIAvash[m] left 21:19 benchable6 left, nativecallable6 left, nativecallable6 joined, benchable6 joined, undersightable6 left 21:20 statisfiable6 left
timotimo pmurias: what's the benefits of parcel compared to webpack? 22:06
22:08 ilmari[m] joined
timotimo somehow i have a GC run that seems to begin before an earlier gc run has ended 22:08
pmurias timotimo: it's easier to hook Rakudo/NQP into it without having the generated code reparsed 22:13
timotimo OK 22:14
pmurias timotimo: outside of Perl 6 use the zero config approach seems saner 22:15
timotimo mhm
pmurias the drawback is that parcel seems buggier
timotimo OK, so i'll keep using webpack for moarperf a while longer 22:16
hmm, i should change the regrettable background image ...
22:17 statisfiable6 joined
pmurias timotimo: for regular use both seems to kind of work, neither seems like a super good piece of tech 22:17
timotimo %) 22:18
22:28 MasterDuke joined 22:44 AlexDaniel[m] joined, tyil[m] joined, CIAvash[m] joined 22:45 bisectable6 joined 22:55 fake_space_whale joined
releasable6 Next release in ≈19 hours. 4 blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 23:00
AlexDaniel I appreciate your optimism, releasable6 23:06
23:09 dct joined
timotimo that just means i can get That Feature™ in before the release :P 23:15