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.
brrt \o 08:27
timo brrt o/ 09:13
you probably have a better idea than me / already know details about this topic: using lea instructions instead of add; when is it worth it, can the exprjit be easily taught how to apply it just by making a proper tile? can we fuse an a + n * b in the assembly into a lea when we see it without a more complicated optimization pass? 09:16
i even saw something like "5 * n turns into n + 4 * n" 09:25
nine Before adding new features I'd rather like the expr jit to be fixed... It is known to generate racy code and I simply gave up on trying to fix that. 10:18
timo oh oops 12:04
what does it race with? like, when you try to write code that works with atomics it re-orders things against your wishes?
(but also, maybe there is a tuit shaped like lea from someone who can't do the racyness fix, and maybe brrt has a tuit shaped like explaining the lea thing, etc) 12:05
... where are my tuits?
both in a literal, and a metaphorical sense
nine (template: gethow 13:12
(let: (($how (^getf (^stable $1) MVMSTable HOW)))
(if (nz $how)
$how
(call (^func MVM_6model_get_how)
...
You would think that we're fetching $how once into a register, check it and then return it. But in reality this generates 2 mov instructions reading from that memory location, resulting in a TOCTTOU race condition
jack9 how to inspect moar bytecode 13:45
nine jack9: moar --dump foo.mbc 14:05
tellable6 nine, I'll pass your message to jack9
lizmat And yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2023/01/23/2023-...nk-you-jj/ 15:06