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:07 reportable6 left 00:08 reportable6 joined 01:03 [Coke] joined 01:05 [Coke] left, [Coke] joined 01:10 [Coke] left 01:11 [Coke] joined 01:56 Colt left 01:57 Colt joined 04:15 sourceable6 left, squashable6 left, bisectable6 left, reportable6 left, statisfiable6 left, coverable6 left, tellable6 left, releasable6 left, nativecallable6 left, shareable6 left, benchable6 left, bloatable6 left, notable6 left, greppable6 left, unicodable6 left, quotable6 left, committable6 left, linkable6 left, evalable6 left, unicodable6 joined 04:17 tellable6 joined, statisfiable6 joined, notable6 joined 04:18 coverable6 joined, bloatable6 joined 04:41 MasterDuke left 05:15 committable6 joined 05:16 bisectable6 joined, nativecallable6 joined 05:17 sourceable6 joined, evalable6 joined, benchable6 joined, shareable6 joined 05:18 squashable6 joined 06:16 greppable6 joined 07:15 quotable6 joined, linkable6 joined 08:10 reportable6 joined 08:16 releasable6 joined
Nicholas Bah humbug, #moarvm :-) 09:38
nine Ah, I know what's wrong with the Curlie example 10:34
For RW int args I have spesh emit appropriate assign_i instructions after the native call: github.com/MoarVM/MoarVM/blob/mast...sp.c#L1249 10:43
What causes this to break is that the register holding the variable we try to assign to is already released at this point. So in the Curlie example the rw variable register is also used for the native functions return value. 10:44
11:10 MasterDuke joined
MasterDuke nine: then that must be an additional bug, because the shorter golf still sigaborts even with spesh disabled 11:11
nine one bug at a time... 11:14
Looks like I have a fix 11:18
MasterDuke nine++'s christmas present to the raku community 11:33
Geth MoarVM/fix_rw_native_calls: 364d0a378b | (Stefan Seifert)++ | src/spesh/disp.c
Fix speshed native calls with rw args assigning into wrong target

For rw args of native calls we emit appropriate assign_i instructions after the call to write back the native values from the argument registers to the NativeRef. However the register holding the NativeRef will already have been released at the callsite (as for non-speshed calls writing back is handled by MVM_nativecall_dispatch). If one of the ... (9 more lines)
MoarVM: niner++ created pull request #1627:
Fix speshed native calls with rw args assigning into wrong target
11:34
12:07 reportable6 left 12:19 frost joined
lizmat given this code: sub prefix:<√>($value) is looser(&[+]) { sqrt $value } 13:09
does it makes sense that the "is looser" trait will cause the prefix:<√> to become uninlineable ? 13:10
target has a :noinline instruction - ins: takeclosure
without the "is looser" trait, prefix:<√> inlines almost immediately 13:11
13:48 linkable6 left, evalable6 left 13:50 linkable6 joined 13:55 frost left 14:08 reportable6 joined 15:37 linkable6 left 15:39 linkable6 joined 15:56 ggoebel_ left 16:49 evalable6 joined 16:50 ggoebel_ joined 17:50 unicodable6 left, notable6 left, bloatable6 left, reportable6 left, tellable6 left, statisfiable6 left, linkable6 left, quotable6 left, evalable6 left, benchable6 left, bisectable6 left, squashable6 left, shareable6 left, greppable6 left, committable6 left, coverable6 left, releasable6 left, sourceable6 left, nativecallable6 left, notable6 joined 17:51 greppable6 joined, benchable6 joined 17:52 tellable6 joined 17:53 sourceable6 joined, quotable6 joined, releasable6 joined 18:23 guifa left 18:50 bisectable6 joined 18:51 committable6 joined, bloatable6 joined, nativecallable6 joined, unicodable6 joined, coverable6 joined 18:53 statisfiable6 joined, linkable6 joined 19:14 reportable6 joined
japhb That seems like a very odd entanglement to me .... 19:47
19:51 evalable6 joined 20:51 shareable6 joined
timo i won't say anything without a bytecode and/or spesh dump of the affected frames :) 21:56
japhb Well, it can still be very odd while still matching the code as written ... 22:10
timo certainly 22:19
22:25 linkable6 left, evalable6 left 22:27 evalable6 joined 23:53 squashable6 joined