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:10 reportable6 joined 00:32 Kaipei left, Kaipei joined 01:32 greppable6 left, bisectable6 left, evalable6 left, reportable6 left, committable6 left, shareable6 left, sourceable6 left, benchable6 left, statisfiable6 left, nativecallable6 left, tellable6 left, linkable6 left, bloatable6 left, notable6 left, coverable6 left, quotable6 left, unicodable6 left, releasable6 left 01:33 statisfiable6 joined, notable6 joined, evalable6 joined, linkable6 joined, coverable6 joined 01:34 tellable6 joined, nativecallable6 joined, sourceable6 joined, reportable6 joined, releasable6 joined, quotable6 joined, greppable6 joined 01:35 bisectable6 joined, bloatable6 joined, benchable6 joined, shareable6 joined, committable6 joined 01:36 unicodable6 joined 02:02 Kaipei left 03:02 statisfiable6 left, notable6 left, releasable6 left, unicodable6 left, shareable6 left, quotable6 left, evalable6 left, linkable6 left, coverable6 left, reportable6 left, committable6 left, benchable6 left, sourceable6 left, bloatable6 left, bisectable6 left, tellable6 left, nativecallable6 left, greppable6 left 03:03 quotable6 joined, committable6 joined, greppable6 joined, statisfiable6 joined, bloatable6 joined 03:04 nativecallable6 joined, unicodable6 joined, notable6 joined, releasable6 joined, bisectable6 joined 03:05 coverable6 joined, tellable6 joined, benchable6 joined, reportable6 joined, evalable6 joined, sourceable6 joined, shareable6 joined, linkable6 joined 04:05 greppable6 left, sourceable6 left, nativecallable6 left, tellable6 left, releasable6 left, notable6 left, reportable6 left, evalable6 left, bloatable6 left, benchable6 left, statisfiable6 left, unicodable6 left, coverable6 left, linkable6 left, quotable6 left, bisectable6 left, shareable6 left, committable6 left 04:06 benchable6 joined, bloatable6 joined, shareable6 joined, quotable6 joined, nativecallable6 joined 04:07 committable6 joined, linkable6 joined, notable6 joined, unicodable6 joined, releasable6 joined, sourceable6 joined, evalable6 joined 04:08 coverable6 joined, tellable6 joined, reportable6 joined, greppable6 joined 04:09 statisfiable6 joined, bisectable6 joined 05:09 tellable6 left, reportable6 left, quotable6 left, bloatable6 left, releasable6 left, committable6 left, sourceable6 left, linkable6 left, evalable6 left, shareable6 left, statisfiable6 left, greppable6 left, bisectable6 left, notable6 left, coverable6 left, benchable6 left, nativecallable6 left, unicodable6 left, bisectable6 joined, statisfiable6 joined, releasable6 joined, committable6 joined, bloatable6 joined, nativecallable6 joined, unicodable6 joined 05:10 coverable6 joined, linkable6 joined, sourceable6 joined, evalable6 joined 05:11 shareable6 joined, notable6 joined, reportable6 joined, greppable6 joined, quotable6 joined, tellable6 joined, benchable6 joined 05:17 Kaipei joined 05:33 frost joined 06:08 reportable6 left 06:10 reportable6 joined 06:19 kjp left 07:52 linkable6 left, evalable6 left 07:54 linkable6 joined, evalable6 joined 07:58 Kaipii joined 08:01 Kaipei left 09:35 Kaipii left 09:51 frost left 10:24 Kaipii joined 10:47 Kaipii left 11:46 Kaipii joined 12:08 reportable6 left 12:09 reportable6 joined
dogbert17 m: use nqp; nqp::splice(my int @a,array[int].new(:shape),0,1) 12:57
camelia (signal SEGV)
dogbert17 this is github.com/rakudo/rakudo/issues/4075 12:58
the problem seems, to my untrained eye, to start on this line: github.com/MoarVM/MoarVM/blob/mast...ray.c#L842 13:02
when REPR(src)->ID returns 39 (MVM_REPR_ID_MultiDimArray) instead of 1 (MVM_REPR_ID_VMArray)
at that point s_repr_data gets set to NULL which leads to a SEGV on line 864 13:03
14:55 [Coke] left 15:03 [Coke] joined 15:39 [Coke] left 15:51 [Coke] joined
timo good catch 16:24
the guard for "is s_repr_data not null" should perhaps guard both the then and else branch, and probably also have an exception thrown at the end 16:26
i would have said we must have been sure the repr id of at least source is always array at some point, perhaps when choosing if copy_elements is the right function to call 16:27
perhaps we just blindly copy-pasted copy-elements to the reprops of mvmmultidimarray? 16:28
16:43 [Coke] left 16:53 [Coke] joined 17:16 [Coke] left 17:31 [Coke] joined 18:07 reportable6 left 18:10 reportable6 joined
dogbert17 timo: thx for looking, could it be the asplice function that maskes some kind of mistake? 19:32
#0 0x00007ffff78350f0 in copy_elements (tc=0x20000030080, src=0x200091178a0, dest=0x20009041e60, s_offset=0, d_offset=0, elems=1) at src/6model/reprs/VMArray.c:864
#1 0x00007ffff78358a1 in asplice (tc=0x20000030080, st=0x200038c11b8, root=0x20009041e60, data=0x20009041e78, from=0x200091178a0, offset=0, count=0) at src/6model/reprs/VMArray.c:1024
#2 0x00007ffff7794772 in MVM_interp_run (tc=0x20000030080, initial_invoke=0x7ffff7954c52 <toplevel_initial_invoke>, invoke_data=0x20000598800, outer_runloop=0x0) at src/core/interp.c:2260
19:36 kjp joined 21:42 evalable6 left, linkable6 left, linkable6 joined 21:45 evalable6 joined
timo we'll have to think about what exactly it means to splice a multidimarray. multidimarrays are supposed to be fixed-size, so either we forbid splicing a different-sized thing into the hole it makes, or if we do something like shuffle the default value or whatever in from the end 22:24
and splice uses single-dimension indices, how does it, just in general? 22:26