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 epony left 00:09 epony joined 00:35 dogbert11 joined 00:37 dogbert17 left 04:01 coleman is now known as Tcl_Fan420 04:07 Tcl_Fan420 is now known as coleman
patrickb o/ How can I dump more byte code? --target=MAST seems to only print partial information. 05:41
Also: Is there an MVMObject printer in C land that could be used to inspect those in a gdb session? 05:43
A caller frame is the frame one deeper on the call stack - the caller. (frame.h calls this dynamic chain). But what is an outer frame? (aka static chain) 10:24
10:37 sena_kun joined
patrickb Thinking about it, I'm pretty sure outer frame must be the lexically enclosing frame. Synonymous to lexical vs dynamic variables. Right? 12:49
lizmat yes, that's the definition of outer vs caller
mind you, it can be confusing: I've misunderstood nqp::getlexxcaller for a long time 12:50
patrickb lexcaller seems like a contradiction. What's the explanation? 13:08
lizmat basically, it looks through the outer frames of the caller 13:09
this is used for $/
patrickb Ah. A normal lexical search, but in the caller. Makes sense. 13:10
lizmat well, actually it does a search in the current frame first
so if the current frame has a $/, it is found there
otherwise it will be found in the outers of the caller (in practice, as every sub/method/mainline has a $/ automatically defined) 13:11
patrickb I just found out about --target=mbc and --dump. So I now know how to access the byte code. Yay! 13:56
MasterDuke patrickb: there are some gdb plugins/pretty-printers in the tools directory in the MoarVM repo 13:57
patrickb I have already looked at those. No MVMObject printer in there. There is a commented out one, but even if it worked it only prints the REPR type. 13:58
MasterDuke hm. you could try pinging timo, i think he did some stuff with them and might have something not-yet-committed 14:00
patrickb I find it nearly impossible to keep track of where I am in the program flow when stepping through the interpreter without being able to see what all those objects are. Basically the only thing easily accessible that can give a hint what it's doing specifically is the MVMStrings and `call MVM_dump_backtrace(tc)` 14:02
MasterDuke yeah. a common technique is to stick in something unusual (e.g., say nqp::tanh(123)) at places you want to inspect and then break on tanh. that assumes of course you want to stop at a particular place 14:04
14:04 epony left
MasterDuke i agree that *following* raku scripts in gdb compared to stopping in just one or two places is a pain 14:05
14:59 timo joined 15:07 epony joined 15:44 epony left 15:59 epony joined 18:22 MasterDuke left