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.
02:10 MasterDuke left 09:28 sena_kun joined 12:10 MasterDuke joined
MasterDuke jnthn: do you have any idea why generating 'gen/jvm/ast.nqp' is 100x slower than generating 'gen/moar/ast.nqp'? the jvm backend is usually slower, but not that much. i've got it down to only 50x slower on my nqp branch that's using the fastutil library (plus some generic optimzations), but maybe you have an idea of something specific to look into 12:26
runNFA in src/vm/jvm/runtime/org/raku/nqp/runtime/Ops.java seems to be where all the time is spent, but i have no idea how it works, so i can only perform non-algorithmic optimizations 12:34
lizmat sadly I'm not in a position yet to help you with that... it appears that the NFA stuff was thought out by pmichaud originally 12:49
and even jnthn has only vague memories of implementing that design
MasterDuke hmmm 12:59
15:32 MasterDuke left
jnthn Don't have much to suggest other than cross-checking it against the MoarVM impl to see if there's any missing opts. But also, assuming you have a profile, what are the hopt spots inside of runNFA? Is it spending a lot of time in standard library unicode stuff? Is there some O(N^2) making up for non-NFG strings? 19:32
20:00 MasterDuke joined
MasterDuke jnthn: i have done a *very* small amount of comparing to the moarvm version, but i think i so little understand what's going on it's hard to tell what are significant differences. i'm also having trouble getting a more precise profile 20:07
tellable6 2024-03-09T19:23:20Z #raku-dev <lizmat> MasterDuke re JVM issues in NQP, maybe it needs a bootstrap ?
2024-03-09T19:48:33Z #raku-dev <lizmat> MasterDuke I'll wait with using them inside NQP until the JVM has been bootstrapped (github.com/Raku/nqp/commit/106c9c8503)
MasterDuke fwiw, i added a little bit of logging and i see that the size of the fates array varies dramatically. the *vast* majority of the time it's < 5, but then there are a few instances where it's over 100k 20:08
lizmat: i think the jvm backend is relatively ok now i.e., it builds on linux at least 20:10
going to re-bootstrap it now though 20:11
lizmat MasterDuke: thanks! 20:27
I can then go though NQP and get all of those 0, 1, 2, 3, 10 references properly marked