Welcome to the main channel on the development of MoarVM, a virtual machine for NQP and Rakudo (moarvm.org). This channel is being logged for historical purposes.
Set by lizmat on 24 May 2021.
00:02 reportable6 left 00:04 reportable6 joined 00:14 lizmat_ joined 00:18 lizmat left 00:34 patrickb left 01:15 Colt left, Colt joined 01:24 frost joined 02:24 linkable6 left, evalable6 left 02:27 linkable6 joined 03:27 evalable6 joined 06:02 reportable6 left 08:04 reportable6 joined
MasterDuke any particular reason gc worklists aren't allocated with the fsa? 08:50
nine I guess they just predate the fsa
MasterDuke ok. i'll have a go a switching them 08:52
i have a wip branch that converts a bunch of MVM_*alloc to alloca or fixed_size_*, converting things that heaptrack says cause a lot of temporary allocations 08:55
by far the largest is set_size_internal, but for that i need to finish up my branch converting VMArray to use a single block for body and storage 09:00
if there's a comment that "technically this free isn't threadsafe", then converting to fixed_size_free and using the _at_safepoint version will in fact make the free threadsafe, correct? 09:30
09:32 RakuIRCLogger left, Geth left 09:33 Geth joined, lizmat_ left, lizmat joined
timo if it's not threadsafe because two threads could free it at the same time, then no, it would still be bad 09:55
MasterDuke ah 09:57
10:10 squashable6 left
dogbert17 ===SORRY!=== Error while compiling /home/dogbert/repos/rakudo/t/spec/S06-signature/introspection.rakudo.moar 10:22
No such private method 'SET-SELF' on Map
at /home/dogbert/repos/rakudo/t/spec/S06-signature/introspection.rakudo.moar:4
boom
jnthnwrthngtn o/ 10:29
dogbert17 good morning 10:30
coffee brewing? 10:31
jnthnwrthngtn Brewed :) 10:34
lizmat I've been thinking about the 2021.11 release and how we're going to probably not able to do that 10:38
I propose we move the release 2 weeks forward and make it an early 2021.12 release
and then skip to 2022.01 release on the 3rd Sat of January 10:39
so we all get a bit more time during the holiday season
jnthnwrthngtn *nod* 10:41
Has anyone volunteered to take on the release manager role yet (or a few, to rotate between, to reduce pressure on any individual)?
lizmat not yet quite firmly I don't think 10:42
JRaspass I'm always amazed that Ruby launches on xmas day, I guess they get it ready sufficiently before hand 10:46
Geth MoarVM: MasterDuke17++ created pull request #1608:
Convert temp allocations into alloca or use FSA
10:50
11:13 squashable6 joined 12:02 reportable6 left 12:03 reportable6 joined
MasterDuke the vast majority of the remaining temporary allocations are from set_size_internal (which is sort of unavoidable) and MVM_VECTOR_(INIT|GROW) 12:12
12:12 discord-raku-bot left
MasterDuke could those MVM_VECTOR_* macros be converted to use the fsa? 12:12
12:13 discord-raku-bot joined 12:17 frost left
jnthnwrthngtn MasterDuke: Not completely easily, in so far as various things assume they are just malloc'd memory that is then taken over and separately managed 12:49
(So everything doing that would need updating also)
MasterDuke hm. haven't even gotten quite that far yet. still trying to deal with the vectors hanging off the instance, where there isn't a tc 12:50
dogbert17 dogbert@dogbert-VirtualBox:~/repos/rakudo$ MVM_SPESH_NODELAY=1 ./rakudo-m -Ilib t/spec/S04-blocks-and-statements/let.t 12:51
MoarVM panic: Adding pointer 0x55f4a15dd310 to past fromspace to GC worklist
oops
a rather small nursery but still
#define MVM_NURSERY_SIZE (5 * 1024) 12:52
will we be able to get to the 'root' of this problem? 12:53
might this gist reveal any clues? gist.github.com/dogbert17/810f1471...e90bb57a19 12:57
13:17 evalable6 left, linkable6 left 13:19 evalable6 joined 13:20 linkable6 joined 13:38 ggoebel joined 13:43 Colt left
ggoebel Are the Perl 5 integration tests typically run during the release? That's not mentioned in the release guide 14:07
lizmat Perl 5 integration tests are run in every spectest if Inline::Perl5 is installed, afaik 14:08
so maybe it should mention to install Inline::Perl5 ? 14:09
afk&
sena_kun ggoebel, this is part of the `rakudo` task, so yes. 14:26
in the rakudo task there are subtasks including rakudo-inline, see github.com/rakudo/rakudo/blob/mast...#L117-L120
MasterDuke oh, when a vector is assigned somewhere, i can't then just MVM_VECTOR_DESTROY(new_thing), because there won't be new_thing_(num|alloc). ugh 14:28
ggoebel sena_kun: where are currently known flappers documented? 14:33
sena_kun ggoebel, flapper modules or flappers in tests? 14:35
ggoebel flappers in tests 14:43
sena_kun ggoebel, there is a meta-ticket at github.com/rakudo/rakudo/issues/4212 and additions are welcome. 14:45
15:10 ggoebel left
nine dogbert17: that GC issue looks like a missing root, somehow involving slurpy nameds (which would explain the rarity) 15:10
dogbert17 nine: at least it is relatively easy to repro 15:19
nine indeed 15:22
Though not quite trivial to trace back to where things start to go wrong
15:36 patrickb joined
dogbert17 (gdb) p MVM_dump_string(tc,cs->arg_names[i]) 16:11
default
16:24 psydroid left, AlexDaniel left
dogbert17 nine: I could be wrong but it seems to be the last part of the test file which is causing problems: github.com/Raku/roast/blob/master/.../let.t#L88 16:28
nine The broken hash key is "default" and the value is Nil. So, yes 16:31
dogbert17 any theories as of yet? 16:32
MasterDuke oh. nqp just built with MVM_VECTOR_* using the fsa. however, i do have to have the jit disabled... 16:33
nine dogbert17: not yet 16:34
16:35 AlexDaniel joined 16:39 leont left, SmokeMachine left, tbrowder left 16:42 leont joined, SmokeMachine joined 16:45 tbrowder joined, psydroid joined 16:59 psydroid left 17:01 AlexDaniel left 17:46 lizmat_ joined 17:47 lizmat_ left, lizmat_ joined 17:49 lizmat left, lizmat_ left, lizmat joined 17:53 patrickb left 18:03 reportable6 left 18:04 reportable6 joined 18:20 patrickb joined
dogbert17 nine: could it possibly have anything to do with the merge of New disp nativecall (#1595) ? 18:29
nine dogbert17: don't see how. I've had a mild suspicion about dispatcher-replace-arg-syscall but wasn't able to confirm it either 18:42
dogbert17 I rebuilt a few older versions of Moarvm (nothing else) and the problem seems to disappear with github.com/MoarVM/MoarVM/commit/10...d15a995165 18:46
nine Err.... what the hell happened here? github.com/MoarVM/MoarVM/commit/59...9630f85141 19:32
Why is this one gigantic commit with a jumbed up commit message?! 19:33
ugexe looks like it was squashed and merged
nine lizmat: why did you squash my branch? I spent _hours_ cleaning up commits, amending them and ensuring that there is a clear history that can be bisected properly 19:35
Geth MoarVM/new-disp-nativecall-libffi: 35 commits pushed by (Stefan Seifert)++, (Nicholas Clark)++, (Timo Paulssen)++
review: github.com/MoarVM/MoarVM/compare/0...0bb7b31497
lizmat nine: I squashed because I thought that was what you wanted :-( 19:36
nine Why would I want that? It makes everything worse :(
lizmat ok, shall I revert the squashed commit and re-apply the PR ?
nine Yes, please 19:37
Geth MoarVM: e9ce9ea7f4 | (Elizabeth Mattijsen)++ | 44 files
Revert "New disp nativecall (#1595)"

This reverts commit 592cc85489d42901dce96032820be49630f85141.
19:38
19:38 linkable6 left
lizmat nine: github.com/MoarVM/MoarVM/pull/1595...-970269666 19:39
I waited for about an hour after that :-(
nine Looking at that PR there are several messages I haven't seen before, because I didn't get them via email. Including jnthn's approval 19:41
Geth MoarVM: lizmat++ created pull request #1609:
New disp nativecall libffi
19:43
lizmat nine: well, there's a new PR now 19:44
if you are ok with merging that now, please let me know, or do the merge yourself 19:45
and sorry, sorry for the misunderstanding :-(
nine I think this branch now needs to be rebase, otherwise it won't have an effect
Geth MoarVM/new-disp-nativecall-libffi: 35 commits pushed by (Stefan Seifert)++, (Nicholas Clark)++, (Timo Paulssen)++
review: github.com/MoarVM/MoarVM/compare/9...614b05ca5e
lizmat rebased 19:46
nine is glad the rebase just went through without conflicts then
lizmat Using index info to reconstruct a base tree...
Msrc/spesh/manipulate.c
Falling back to patching base and 3-way merge...
Auto-merging src/spesh/manipulate.c
was the only problematic one
nine Ah, yes, because master got a fix there after the merge 19:47
Geth MoarVM/master: 35 commits pushed by (Stefan Seifert)++, (Nicholas Clark)++, (Timo Paulssen)++
review: github.com/MoarVM/MoarVM/compare/e...614b05ca5e
nine git log 19:48
dogbert17: can you please re-do your test and just skip commit 592cc85489d42901dce96032820be49630f85141? Maybe that will give us some more information
lizmat: thanks!
lizmat: thanks! 19:49
lizmat I will bump MoarVM again, I guess
all bumped 20:09
nine dogbert17: got it! 20:19
It is, indeed MVM_capture_replace_arg
dogbert17 nine++ 20:20
timo uh oh
Geth MoarVM: 81082e1c36 | (Stefan Seifert)++ | src/6model/reprs/MVMCapture.c
Fix possible access to fromspace after MVM_capture_replace_arg

A callsite can contain pointers to the names of named arguments. These pointers can get outdated if a newly allocated and populated callsite is neither interned, nor part of any other GC rooted data structure.
MVM_capture_replace_arg first created a new callsite, then allocated a capture. This could lead to outdated pointers to argument names. Fix by reversing the order. The callsite is needed only later anyway.
20:26
nine Luckily this is one of those hard to find but trivial to fix ones. Just had to move a few lines of code around.
lizmat so this would fix NativeCall's issues ?
nine No, nothing to do with NativeCall 20:28
fixes this one: gist.github.com/dogbert17/810f1471...e90bb57a19
lizmat ah, ok :-) 20:29
timo oh my 20:30
capture_replace_arg can be used i pretty much any dispatch program 20:31
dogbert17 perhaps this fixes other bugs as well
[Coke] nine++ 20:35
dogbert17 the complex.t bug was not fixed by this, ah well it was worth a shot
MasterDuke ah ha! built rakudo with the MVM_VCECTOR_* macros using the fsa (still with the jit disabled though) 20:37
almost 1M reduction in temporary allocations when compiling CORE.c.setting (but now 1.2gb leaked, so obviously something isn't quite right) 20:41
nine Ha! That TCP::LowLevel bug is not a bug in NativeCall at all. It's actually a fix in NativeCall. 20:44
github.com/jmaslak/Raku-TCP-LowLev...98b56dd474
So as far as NativeCall is concerned, there's only the DB::SQLite JIT issue left 20:45
[Coke] Nice. 20:46
timo if fileame contais SQLite, bail the jit 20:49
nine Well, worst case we can indeed disable JIT of native calls for the release. Would hurt a lot, but we'd still be way faster than the previous release. 20:56
lizmat nine: don't know if you saw my ruminations about the release earlier today? 20:57
logs.liz.nl/moarvm/2021-11-18.html#10:38
japhb timo: I'd call that the "video driver method of solving application conflicts"
nine lizmat: ah, yes, I do like that idea 20:58
japhb FWIW, "push the release" seems like a good idea to me
[Coke] +1 from me to space things to a) get better product b) avoid burnouot 20:59
nine On that thought, I think I'll retire for the day and attack that JIT issue with a fresh mind tomorrow 21:00
lizmat nine++
22:41 linkable6 joined
[Coke] we don't have anyone with an M1 yet, correct? (looking at the mac mini 2000 with an M1 right now) 23:40
lizmat I do think we have people with an M1, just not with MacOS Monterey? 23:43
patrickb I have an M1 sitting around. Willing to give people access. 23:52