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:06 reportable6 joined 00:38 evalable6 joined 02:37 linkable6 joined
timo m: my int $a = 5; sub do_it($x, $y is rw) { $a += $y }; say so do_it all(1, 2, 3, 4), $a; say $a 03:06
camelia True
timo m: my int $a = 5; sub do_it($x, $y is rw) { $y += 1 }; say so do_it all(1, 2, 3, 4), $a; say $a
camelia True
timo rw args with autothreaded subs is funky
04:40 squashable6 left 04:41 squashable6 joined 04:55 squashable6 left 04:57 squashable6 joined 05:05 squashable6 left, squashable6 joined 06:00 frost joined 06:02 reportable6 left 07:02 unicodable6 left, bloatable6 left, statisfiable6 left, sourceable6 left, committable6 left, quotable6 left, tellable6 left, greppable6 left, linkable6 left, releasable6 left, bisectable6 left, notable6 left, benchable6 left, squashable6 left, shareable6 left, evalable6 left, nativecallable6 left, coverable6 left 07:03 greppable6 joined, sourceable6 joined, bloatable6 joined 07:04 coverable6 joined, evalable6 joined, statisfiable6 joined 07:05 unicodable6 joined, quotable6 joined, shareable6 joined, notable6 joined 08:04 linkable6 joined, releasable6 joined, nativecallable6 joined 09:03 squashable6 joined 09:04 tellable6 joined, bisectable6 joined 09:05 committable6 joined, benchable6 joined 10:04 reportable6 joined 10:33 dogbert11 left 11:09 sena_kun joined 12:03 reportable6 left 14:04 reportable6 joined 14:52 frost left
MasterDuke timo: github.com/rakudo/rakudo/issues/17...-900393108 15:26
hm, just adding `uv_mutex_unlock(&body->head_lock); uv_mutex_unlock(&body->tail_lock);` before the destroys still gives the abort in the destroy 15:35
huh. we never unlock mutexes before destroying them 15:56
[Coke] during cleanup, do we want to unlock them? Would that potentially allow some other bit of code to continue when we were trying to shut down? 15:57
nine MasterDuke: no you can't just unlock those mutexes. You have to do it on the thread that locked them
There's just no way around proper thread cleanup. And that can only happen if those threads cooperate. 15:58
MasterDuke nine: have you looked at that issue? seems like there might be a problem with workers not getting cleaned up
nine MasterDuke: haven't looked at that specific issue, but I have working thread cleanup in github.com/MoarVM/MoarVM/commit/af...ec9e7516d0 and github.com/rakudo/rakudo/commit/8d...65155a13e0 16:04
MasterDuke cool, i'll see if those make a difference in this case 16:05
nine Those commits are on the moar_asan_fixes branches
MasterDuke prob won't be able to until later tonight 16:06
16:12 linkable6 left, evalable6 left 16:13 evalable6 joined 17:25 sena_kun left 18:03 reportable6 left 18:04 reportable6 joined 18:14 linkable6 joined 19:31 discord-raku-bot left, discord-raku-bot joined
nine Good news: I have a fully working dispatcher based implementation of nqp::hllize and nqp::hllizefor! 19:38
Bad news is that we have a miscompilation on master that makes many tests fail with this new implementation :/
In foo(what => Int.^name) the call to the HOW method gets compiled into QAST::Op+{QAST::SpecialArg}(p6callmethodhow name :named<what>) <wanted> :before_promotion<?> :statement_id<2> name 19:40
See that :named<what>? That shouldn't be there and it confuses the lang-hllize dispatcher
19:45 discord-raku-bot left 19:46 discord-raku-bot joined
nine Apparently caused by method arglist in Perl6::Actions: $_[2].named($name); 20:07
And I seem to have a fix :) 20:18
timo i wonder what other sitations this miscompile happens in? only with .^ i assume? 20:19
nine Well, it happens there because we re-use the existing QAST::Op carrying that named annotation. The fix accordingly is to create a new node and take only the stuff we need. 20:26
Could happen with other desugars as well
timo mhm 20:28
Geth MoarVM/new-disp: a9782fd5b0 | (Stefan Seifert)++ | 6 files
Add gettypehllrole op to facilitate writing hllization code in HLLs
MoarVM/new-disp: 7897ff04e4 | (Stefan Seifert)++ | 7 files
Add lang-hllize dispatcher

This dispatcher checks if hllization is actually needed and if it is, delegates to a registered hllization dispatcher for the target language. This will replace the existing nqp::hllize and nqp::hllizefor ops.
MoarVM/new-disp: 4f04eef208 | (Stefan Seifert)++ | src/disp/boot.c
Give lang-hllize dispatcher an optional argument for language name

This makes lang-hllize suitable as a replacement for the nqp::hllizefor op.
timo i don't mean to offload "my" work onto you, but do you have an idea for the junction autothreading thing, nine? 20:57
23:04 evalable6 left, linkable6 left 23:05 evalable6 joined