github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
00:08 patrickz joined 00:10 patrickz left 00:12 patrickb left 01:03 lucasb left 01:40 synopsebot left 03:42 quotable6 left, benchable6 left, bloatable6 left, sourceable6 left, statisfiable6 left, greppable6 left, shareable6 left, releasable6 left, nativecallable6 left, coverable6 left, notable6 left, committable6 left, unicodable6 left, reportable6 left, squashable6 left, bisectable6 left, coverable6 joined, releasable6 joined, benchable6 joined, notable6 joined, reportable6 joined, bisectable6 joined 03:43 sourceable6 joined, squashable6 joined 03:44 committable6 joined, quotable6 joined, greppable6 joined, nativecallable6 joined, statisfiable6 joined 03:45 bloatable6 joined, shareable6 joined, unicodable6 joined 04:45 releasable6 left, bisectable6 left, sourceable6 left, shareable6 left, coverable6 left, bloatable6 left, benchable6 left, unicodable6 left, evalable6 left, nativecallable6 left, reportable6 left, tellable6 left, committable6 left, squashable6 left, notable6 left, greppable6 left, quotable6 left, statisfiable6 left 04:46 releasable6 joined, benchable6 joined, coverable6 joined, shareable6 joined, tellable6 joined, nativecallable6 joined, evalable6 joined, unicodable6 joined, quotable6 joined 04:47 greppable6 joined, sourceable6 joined, bloatable6 joined, notable6 joined, reportable6 joined, squashable6 joined, bisectable6 joined 04:48 statisfiable6 joined, committable6 joined 05:44 Kaiepi left, Kaiepi joined 06:36 domidumont joined 06:39 Kaiepi left 06:48 domidumont left 07:07 domidumont joined
nine Some times you just can't seem to make progress... Running the otherwise working code with MVM_SPESH_LOG ends in this: MoarVM oops: Too many levels of inlining popped 08:08
08:58 zakharyas joined 09:05 zakharyas left 09:07 zakharyas joined 10:00 sena_kun joined 10:08 zakharyas1 joined 10:11 zakharyas left
nine This is interesting: the sp_guardconc that blows up is the first one after a nativecallinvoke. And one that's running for quite a while with many other calls (even to the same NativeCall site) in between. 10:15
Furthermore tc->cur_frame changes from before entering that call to after it returns. Could be moved by the GC. The frame is on the heap after all 10:17
nwc10 gdb hardware watchpoint time?
(whcih I assume you were already doing. just wanted to say something, because this stuff is hard and I can't help) 10:18
nine But the GC seems innocent. When I increase the nursery size from the puny to 1 GiB tc->cur_frame stays the same from before to after. But it's effective_spesh_slots is cleared. 10:22
So, it's rr time! 10:23
nwc10 every pirate's favourite debugging tool 10:33
nine So the native function does a callback. For this we start a new runloop which processes the call. The call does a rebless which causes a MVM_spesh_deopt_all. That deopt is what clears the spesh_cand and effective_spesh_slots on the frame of the outer runloop. 10:38
This would be fine, but the callback_handler restores tc->interp_cur_op and tc->interp_bytecode_start after the callback to the values they had before, essentially negating the deopt changes. Only that now we're missing the spesh info on the frame. 10:39
I wonder why we actually need to restore those values... 10:43
10:52 sena_kun left 11:03 MasterDuke left 11:07 sena_kun joined 12:26 zakharyas1 left 12:32 lucasb joined 12:52 sena_kun left
nine MVM_SPESH_INLINE_DISABLE=1 makes the issue go away! 12:53
13:07 sena_kun joined 14:13 zakharyas joined 14:53 sena_kun left 14:56 vrurg_ left 15:01 vrurg joined 15:05 brrt joined
brrt \o 15:06
15:07 sena_kun joined 15:11 Kaiepi joined 15:13 Kaiepi left, Kaiepi joined 15:31 Ven`` joined 16:04 zakharyas left 16:10 Ven`` left 16:13 Ven`` joined 16:18 brrt left
nwc10 .tell brrt o/ 16:20
tellable6 nwc10, I'll pass your message to brrt
16:23 Kaiepi left 16:24 Kaiepi joined 16:31 Kaeipi joined, Kaiepi left 16:36 Kaiepi joined 16:38 Kaeipi left 16:39 Kaiepi left 16:52 sena_kun left 17:01 domidumont left 17:02 Kaiepi joined 17:07 sena_kun joined
timotimo o/ 17:33
sena_kun timotimo: hey! 17:35
timotimo: how are you?
timotimo not fantastic 17:36
how about you?
sena_kun timotimo: so so, I guess... having a final exam with lots of complex topics to pass, but things are doable anyway. 17:37
timotimo as long as your creeps are pumping energy into the controller, you'll gain global control level, which persists across respawns 17:38
sena_kun timotimo: I hope things will become better for you.
timotimo haha, wrong channel
sena_kun _creepy_ 17:39
timotimo i should catch up all my local checkouts, and make a new JSON::Fast release
japhb timotimo: What's new in JSON::Fast land? Which is to say, what would the release gain us? 17:46
timotimo bug fix for some specific unicode trouble
japhb Ah, nice 17:47
timotimo i believe the starfield_scroller.p6 doesn't even have a moving player thingie yet, though? 17:49
wrong window again 17:50
18:17 sena_kun left, sena_kun joined 18:28 MasterDuke joined
nine Seems like I added enough hacks so the deopt will affect the outer frame of the callback. But it still leads to very strange errors 18:41
18:52 sena_kun left 19:07 sena_kun joined 20:32 Kaiepi left, Kaiepi joined
nine Well, one thing is sure: the nativecallinvoke op needs to be marked :deoptallpoint and :maycausedeopt as that's exactly what can happen in a callback 20:34
Alas that does not fix my issue :/ It doesn't even change anything about the "Can't find deopt all idx" I'm seeing with the frame that contains the nativecallinvoke 20:37
20:41 Kaiepi left 20:42 Kaiepi joined 20:52 sena_kun left
nine Finally! 21:04
tc->cur_frame->return_address = cur_op; before the call to MVM_nativecall_invoke seems to do the trick. Deopt needs that return address 21:05
21:07 sena_kun joined
nine Feels like I have an 80 % understanding of all the parts involved and I've got a pile of hacks that turn this segfaulting test into a passing one. I guess that's good enough to call it a day :) 21:12
sena_kun nine++ 21:13
21:17 Ven`` left 22:14 MasterDuke left 22:54 sena_kun left 23:05 brrt joined 23:08 sena_kun joined 23:31 sena_kun left 23:43 brrt left 23:54 Kaiepi left