[00:07] *** reportable6 left
[00:08] *** reportable6 joined
[01:03] *** [Coke] joined
[01:05] *** [Coke] left
[01:05] *** [Coke] joined
[01:10] *** [Coke] left
[01:11] *** [Coke] joined
[01:56] *** Colt left
[01:57] *** Colt joined
[04:15] *** sourceable6 left
[04:15] *** squashable6 left
[04:15] *** bisectable6 left
[04:15] *** reportable6 left
[04:15] *** statisfiable6 left
[04:15] *** coverable6 left
[04:15] *** tellable6 left
[04:15] *** releasable6 left
[04:15] *** nativecallable6 left
[04:15] *** shareable6 left
[04:15] *** benchable6 left
[04:15] *** bloatable6 left
[04:15] *** notable6 left
[04:15] *** greppable6 left
[04:15] *** unicodable6 left
[04:15] *** quotable6 left
[04:15] *** committable6 left
[04:15] *** linkable6 left
[04:15] *** evalable6 left
[04:15] *** unicodable6 joined
[04:17] *** tellable6 joined
[04:17] *** statisfiable6 joined
[04:17] *** notable6 joined
[04:18] *** coverable6 joined
[04:18] *** bloatable6 joined
[04:41] *** MasterDuke left
[05:15] *** committable6 joined
[05:16] *** bisectable6 joined
[05:16] *** nativecallable6 joined
[05:17] *** sourceable6 joined
[05:17] *** evalable6 joined
[05:17] *** benchable6 joined
[05:17] *** shareable6 joined
[05:18] *** squashable6 joined
[06:16] *** greppable6 joined
[07:15] *** quotable6 joined
[07:15] *** linkable6 joined
[08:10] *** reportable6 joined
[08:16] *** releasable6 joined
[09:38] <Nicholas> Bah humbug, #moarvm :-)

[10:34] <nine> Ah, I know what's wrong with the Curlie example

[10:43] <nine> For RW int args I have spesh emit appropriate assign_i instructions after the native call: https://github.com/MoarVM/MoarVM/blob/master/src/spesh/disp.c#L1249

[10:44] <nine> 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.

[11:10] *** MasterDuke joined
[11:11] <MasterDuke> nine: then that must be an additional bug, because the shorter golf still sigaborts even with spesh disabled

[11:14] <nine> one bug at a time...

[11:18] <nine> Looks like I have a fix

[11:33] <MasterDuke> nine++'s christmas present to the raku community

[11:33] <Geth> ¦ MoarVM/fix_rw_native_calls: 364d0a378b | (Stefan Seifert)++ | src/spesh/disp.c

[11:33] <Geth> ¦ MoarVM/fix_rw_native_calls: Fix speshed native calls with rw args assigning into wrong target

[11:33] <Geth> ¦ MoarVM/fix_rw_native_calls: 

[11:33] <Geth> ¦ MoarVM/fix_rw_native_calls: For rw args of native calls we emit appropriate assign_i instructions

[11:33] <Geth> ¦ MoarVM/fix_rw_native_calls: after the call to write back the native values from the argument

[11:33] <Geth> ¦ MoarVM/fix_rw_native_calls: registers to the NativeRef. However the register holding the NativeRef

[11:33] <Geth> ¦ MoarVM/fix_rw_native_calls: will already have been released at the callsite (as for non-speshed

[11:33] <Geth> ¦ MoarVM/fix_rw_native_calls: calls writing back is handled by MVM_nativecall_dispatch). If one of the

[11:33] <Geth> ¦ MoarVM/fix_rw_native_calls: <…commit message has 9 more lines…>

[11:33] <Geth> ¦ MoarVM/fix_rw_native_calls: review: https://github.com/MoarVM/MoarVM/commit/364d0a378b

[11:34] <Geth> ¦ MoarVM: niner++ created pull request #1627: Fix speshed native calls with rw args assigning into wrong target

[11:34] <Geth> ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/pull/1627

[12:07] *** reportable6 left
[12:19] *** frost joined
[13:09] <lizmat> given this code: sub prefix:<√>($value) is looser(&[+]) { sqrt $value }

[13:10] <lizmat> does it makes sense that the "is looser" trait will cause the prefix:<√> to become uninlineable ?

[13:10] <lizmat> target has a :noinline instruction - ins: takeclosure

[13:11] <lizmat> without the "is looser" trait, prefix:<√> inlines almost immediately

[13:48] *** linkable6 left
[13:48] *** 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
[17:50] *** notable6 left
[17:50] *** bloatable6 left
[17:50] *** reportable6 left
[17:50] *** tellable6 left
[17:50] *** statisfiable6 left
[17:50] *** linkable6 left
[17:50] *** quotable6 left
[17:50] *** evalable6 left
[17:50] *** benchable6 left
[17:50] *** bisectable6 left
[17:50] *** squashable6 left
[17:50] *** shareable6 left
[17:50] *** greppable6 left
[17:50] *** committable6 left
[17:50] *** coverable6 left
[17:50] *** releasable6 left
[17:50] *** sourceable6 left
[17:50] *** nativecallable6 left
[17:50] *** notable6 joined
[17:51] *** greppable6 joined
[17:51] *** benchable6 joined
[17:52] *** tellable6 joined
[17:53] *** sourceable6 joined
[17:53] *** quotable6 joined
[17:53] *** releasable6 joined
[18:23] *** guifa left
[18:50] *** bisectable6 joined
[18:51] *** committable6 joined
[18:51] *** bloatable6 joined
[18:51] *** nativecallable6 joined
[18:51] *** unicodable6 joined
[18:51] *** coverable6 joined
[18:53] *** statisfiable6 joined
[18:53] *** linkable6 joined
[19:14] *** reportable6 joined
[19:47] <japhb> That seems like a very odd entanglement to me ....

[19:51] *** evalable6 joined
[20:51] *** shareable6 joined
[21:56] <timo> i won't say anything without a bytecode and/or spesh dump of the affected frames :)

[22:10] <japhb> Well, it can still be very odd while still matching the code as written ...

[22:19] <timo> certainly

[22:25] *** linkable6 left
[22:25] *** evalable6 left
[22:27] *** evalable6 joined
[23:53] *** squashable6 joined
