github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
00:49 lizmat left 01:08 lizmat joined, p6bannerbot sets mode: +v lizmat 01:16 fake_space_whale joined 01:17 p6bannerbot sets mode: +v fake_space_whale 03:53 evalable6 left, evalable6 joined 03:54 p6bannerbot sets mode: +v evalable6 04:35 lizmat left 04:39 lizmat joined, p6bannerbot sets mode: +v lizmat 04:43 lizmat left 04:54 fake_space_whale left 05:09 fake_space_whale joined, p6bannerbot sets mode: +v fake_space_whale 05:50 fake_space_whale left 06:01 MasterDuke left 06:27 ItchyPlant joined, p6bannerbot sets mode: +v ItchyPlant 10:50 lizmat joined, p6bannerbot sets mode: +v lizmat
nine Oh, we don't yet JIT any named arguments except required strings? I.e. most constructors won't be JIT compiled. I wonder why this hasn't come up as kind of low hanging fruit 12:09
timotimo if the callsite is known, named arguments become positional arguments 12:12
a very nice optimization 12:13
12:14 ggoebel joined 12:15 p6bannerbot sets mode: +v ggoebel
nine But that doesn't always work apparently 13:06
jnthn It won't work when the callsite has flattening 13:07
nine The callsite looked like this: nqp::push(@!buffer-stack, SubBuffer.new( :bytecode($!bytecode), :outer-annotations-start($!annotations-offset), :annotations-offset(nqp::elems($!annotations)), :label-fixups(@!child-label-fixups), :labels(%!labels), :handlers(@!handlers), :level($sublevel++),)); 13:11
13:11 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke
nine Yet the callsite was not interned according to the spesh log and the constructor not JIT compiled because of a param_on_o 13:11
13:11 MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke
nine Changed it to positionals and it's much faster now 13:12
jnthn Wonder if it's too big to intern 13:18
There's some size limit, maybe that wants a boost
nine INTERN_ARITY_LIMIT is 8. If named args count as 2 the callsite is far above the limit 13:37
jnthn Could try increasing it :) 13:38
And yeah, I think they could for 2 still
nine There's also MAX_ARGS_FOR_OPT which is 8, too 13:39
14:08 MasterDuke left 14:27 ItchyPlant left 15:08 ItchyPlant joined, p6bannerbot sets mode: +v ItchyPlant
ItchyPlant Hi, what is the way to test MoarVM alone (without NQP/Rakudo) if that is fully functional itself? On AIX, I get the "Duplicate symbol: .__init_aix_libgcc_cxa_atexit" at the end of compilation. make install can be done, so... I would like to make sure if at least that part is OK. 15:09
timotimo currently we rely on nqp's test suite for testing 15:11
ItchyPlant aha, ok 15:16
so these two rows tells us it has critical issues? 15:17
t/nqp/111-spawnprocasync.t ............. Dubious, test returned -1 (wstat 6, 0x6) Failed 4/4 subtests
t/nqp/113-run-command.t ................ Dubious, test returned -1 (wstat 6, 0x6) Failed 2/8 subtests 15:18
timotimo yeah, feel free to run them directly with ./nqp-m to see where and how it dies 15:19
ItchyPlant NQP also can be "make install"-ed despite these errors but...
OK, I will run them separately 15:20
15:35 fake_space_whale joined 15:36 p6bannerbot sets mode: +v fake_space_whale
ItchyPlant t/nqp/111-spawnprocasync.t ............. 1..4 Dubious, test returned -1 (wstat 6, 0x6) Failed 4/4 subtests 15:49
t/nqp/113-run-command.t ................ 1..8 ok 1 - got the correct output from stdout ok 2 - got the correct output from stderr Dubious, test returned -1 (wstat 6, 0x6) Failed 6/8 subtests 15:50
t/nqp/114-pod-panic.t .................. 1..1 Dubious, test returned -1 (wstat 6, 0x6) Failed 1/1 subtests
got these three in verbose mode (modified it in Makefile). However, I didn't figure out how to run them separately. :) 15:51
nine ItchyPlant: ./nqp-m t/nqp/111.spawnprocasync.t
ItchyPlant Ok, thanks 15:52
1..4 ok 1 - called the ready callback once ok 2 - got the correct output on stdout ok 3 - called the ready callback once ok 4 - got the correct output on stderr
# ./nqp-m t/nqp/113-run-command.t 1..8 ok 1 - got the correct output from stdout ok 2 - got the correct output from stderr ok 3 - got the correct output from stdout ok 4 - got the correct output from stderr ok 5 - got the correct output from stdout ok 6 - got the correct output from stderr ok 7 - got the correct output from stdout ok 8 - got the correct output from stderr 15:53
# ./nqp-m t/nqp/114-pod-panic.t 1..1 ok 1 - got the correct output from stderr 15:54
so these all look like OK (?)
nine looks like, yes
ItchyPlant so does it mean MoarVM is fine at its installed location and NQP may be make install-ed too? 15:55
nine I'd guess the failures are just some weird interaction between nqp's async execution of binaries and the prove command (Perl's test harness) 15:56
nine wouldn't waste too much time on it right now
ItchyPlant OK, thanks for now :) 15:58
so only Rakudo's compilation is bad (as it crashes either by segfault or by not enough allocated memory or by illegal instruction 16:00
)
it does it when it reaches this point (you probably well aware of it): 16:01
The following step can take a long time, please be patient. /opt/rakudo/bin/moar --libpath="blib" --libpath="/opt/rakudo/share/nqp/lib" --libpath="/opt/rakudo/share/nqp/lib" perl6.moarvm --nqp-lib=blib --setting=NULL --ll-exception --optimize=3 --target=mbc --stagestats --output=CORE.setting.moarvm gen/moar/CORE.setting Stage start : 0.000 Stage parse : make: ***
but now I'm leaving for now... I will check in later (will also check logs if something came to anyone's mind) 16:02
thank you again :) bye
nine The only real special thing about this step is that it compiles a huge amount of code thereby exercising most of the compiler a lot
ItchyPlant but it compiles with moarvm only, right? no gcc is involved here... or am I wrong? 16:03
16:04 ItchyPlant left
timotimo gcc is also involved in an earlier step 16:04
to compile a few "extops" we call them
16:34 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke 17:00 zakharyas joined 17:01 p6bannerbot sets mode: +v zakharyas 17:27 zakharyas left 17:38 lizmat left 17:39 lizmat joined, p6bannerbot sets mode: +v lizmat 17:44 lizmat left
nine I just noticed that our decision of whether to inline a frame is based on the original frame's bytecode size. But that size may be totally dominated by argument handling. E.g. method write_uint32_at(uint32 $i, uint32 $pos) { nqp::writeuint(self, $pos, $i, 4); } is too large to inline! 17:45
timotimo really? wow 17:46
can you post the before/after of an instance of that?
is it because of lots of truncate and extend overhead?
Geth MoarVM: b2e870c6ff | (Aleks-Daniel Jakimenko-Aleksejev)++ | 10 files
Revert async socket introspection

Revert "Implement async socket introspection functions"
This reverts commit e1eb9af30ad7a1d64b62ff989695b10190cf8426.
Revert "Implement asyncsocket op"
This reverts commit caf23c6bc449969f6042d7ef6b2f080e6c118c70.
17:49
17:50 fake_space_whale left 17:53 ItchyPlant joined, p6bannerbot sets mode: +v ItchyPlant
nine timotimo: gist.github.com/niner/39675e602f7a...3e21382967 17:53
ItchyPlant This step causes the segfault/illegal operation crash: 17:55
nine Oh, there's also this: Can NOT inline read_uint32_at (6) with bytecode size 70 into insert_bytecode (72): target has a :noinline instruction 17:56
timotimo why does it have paramnamesused in the "after" part? 17:57
nine what does that do anyway?
17:58 Kaiepi left
MasterDuke ItchyPlant: is valgrind available on AIX? if so, you could run the moar command with it and maybe get some useful info 17:58
timotimo it asserts that all nameds have been used
17:59 Kaiepi joined
timotimo however, it only ever does anything if the args num is != the pos num 17:59
17:59 p6bannerbot sets mode: +v Kaiepi
timotimo and from the callsite it looks like both are "2"? 17:59
nine Yes, it's uint32 $i, uint32 $pos 18:00
timotimo you may figure this out by stepping through args.c's MVM_spesh_args 18:01
nine Err.... it's read_uint32_at, so the args are self and $pos
That's method read_uint32_at(uint32 $pos) { nqp::readuint(self, $pos, 4) } 18:02
timotimo right
nine The only ops with a :noinline in read_uint32_at seem to be param_rp_o, param_rp_u and paramnamesused which should not count as they will not be inlined. 18:04
timotimo aha
it won't reach paramnamesused for arg spesh because it stumbles over param_rp_u
param_rp_u is in the block with "don't understand how to specialize these yet" 18:05
so even post-spesh it's doing the expensive kind of argument getting
nine Oh god damnit, another sign of our lacking support for unsigneds?
timotimo yep
nine Whatever else will come out of my endeavours here, better support for uint is definitely in there 18:06
timotimo for sure
nine I wonder if all that's needed is moving that case up 18:08
uints are after all not _that_ different from ints
timotimo i'm not sure i understand why it does trunc_u32, then extend_u32
and coerce_iu the const_i64_16 is a special kind of funny 18:09
nine I moved the cases up, but the result is the same. At least there's nothing broken either 18:13
Ah, there's some more handling needed 18:14
Looks like a nice job for tomorrow 18:16
18:42 zakharyas joined 18:43 p6bannerbot sets mode: +v zakharyas 19:11 robertle left
AlexDaniel samcv: by any chance do you know why this happens sometimes? ci.appveyor.com/project/rakudo/rak...8v46#L1188 19:36
aaah nevermind
samcv AlexDaniel: is it only windows?
AlexDaniel these are just TODOs and I'm blind
t\08-performance\99-misc.t is likely just a flapper so that's why 19:37
samcv timotimo: make heap snapshot profiler functional again
is this a change from last release? 19:38
i.e. should it be in the changelog?
19:42 fake_space_whale joined 19:43 p6bannerbot sets mode: +v fake_space_whale
Geth MoarVM: 225ab3e923 | (Samantha McVey)++ | docs/ChangeLog
Update ChangeLog
19:50
MoarVM: 867318a8cc | (Samantha McVey)++ | tools/update-changelog.p6
Fix a few formatting issues with update-changelog.p6
19:51
ItchyPlant Does anyone know what to do with Rakudo if MoarVM was compiled with --static? :) 19:53
jnthn I don't think it's possible to compile Rakudo with that configuration, since it wants to link the extension ops against libmoar (we want to get rid of those in the future, at which point --static will work OK) 19:54
ItchyPlant I'm just asking because when I add the "--static" parameter for MoarVM's Configure.pl, then it compiles and finishes without any errors. 19:55
...then NQP was also Ok but Rakudo complained about a huge amount of undefined symbols. 19:56
OK, so it won't have any further benefit, Rakudo still won't be compiled (on AIX). I tried on a 7.2 anyway too, the results are the same: compilation crashes at that point. :) 19:59
timotimo samcv: i think the bug was introduced at least one release earlier; whenever jnthn made spesh more responsive to the GC 20:04
samcv ok 20:07
20:40 ItchyPlant left 20:56 lizmat joined, p6bannerbot sets mode: +v lizmat
MasterDuke timotimo: i'm getting a bunch of warnings in heapsnapshot.h and graph.c 21:04
gcc version 8.2.1 20180831 (GCC) 21:05
gist.github.com/MasterDuke17/32900...0da7f50864 21:06
samcv i'm trying to turn the sleep bug into a test. but i'm not getting it to trigger? 21:08
21:18 zakharyas left 21:25 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix samcv: there is a kinda test for it already: R#2395 after your fix that test file started non-hanging for me again 21:26
synopsebot R#2395 [closed]: github.com/rakudo/rakudo/issues/2395 [perf] t/spec/S32-io/io-cathandle.t is now 2x-8x slower without precomp
Zoffix So if bug returns, that file would be super slow (at least on some boxes)
samcv ah ok 21:27
ok cool :)
once this spectest is done, i will release
Zoffix \o/ 21:28
jnthn samcv++ \o/ 21:29
timotimo MasterDuke: ah, all it needs is a few casts 21:38
AlexDaniel samcv: btw what's the status of this? github.com/rakudo/rakudo/issues/2337 21:39
timotimo if it's okay i'll just push it to master 21:40
samcv: would that be fine, warning fixes? 21:41
samcv yeah go ahead
AlexDaniel: regarding that, i think there's a few things needing to be updated. i was going to check roast/docs/unicode-generated-tests.asciidoc after release
AlexDaniel ok cool 21:42
Geth MoarVM: ac5fac457f | (Timo Paulssen)++ | src/spesh/graph.c
fix up warnings by putting some casts in
samcv i wanted to get that updated before 6.d at least :)
MasterDuke timotimo: no more warnings 21:46
21:46 AlexDaniel left, AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel
AlexDaniel MasterDuke: thank you :) 21:47
and timotimo++
I hated those :)
MasterDuke samcv: btw, did you see that article i mentioned to you a couple days ago? 21:48
samcv which one? 21:50
MasterDuke samcv: darkcephas.blogspot.com/2018/10/val...ookup.html 22:16
Geth MoarVM: 0b5bde835d | (Samantha McVey)++ | VERSION
Bump VERSION for release 2018.10
22:20
samcv \o/ release is done 22:21
Zoffix samcv++
AlexDaniel that was fast
samcv++ 22:22
timotimo nice 22:34
oh, release is through, i can merge the split thing 23:21