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.
nine I've made some progress on my weird WVal confusion issue. Somehow the block loses the sc and idx from the point we add it to the SC to when the WVal is processed by the QAST compiler 12:56
nine Aw, man.... nqp::scsetcode resets the code object's sc 13:15
lizmat I guess that is generally / was a good thing ? 13:19
vrurg_ BTW, is there a particular reason why nqp::getlexdyn (getdynlex) is marked `noinline`? It just walks a frame stack and should be ok if its own frame is inlined. 13:29
Would it be inlinable then pulling it out of &DYNAMIC and only falling back to the sub if no symbol is found could make a big difference. 13:31
nine It may be inlinable thanks to the frame walker 13:36
vrurg_ nine: getdynlex w(obj) r(str) :pure :noinline :useshll 13:45
Perhaps it worth correcting?
nine worth a try, yes 13:46
vrurg_ Ok, I would test it on my side.
nine The hard part is making sure your test would actually break if there was an inlining issue after all 13:48
vrurg No slightest idea how to do it. Though I was about to do a little benchmarking on using dynamics. There are good chances for inlining the inner sub or, at least, its loop body. 13:50
Just removing noinline doesn't work. 'MVMArray: Can't pop from an empty array' while compiling rakudo. 13:55
NQP doesn't build too. :( 13:57