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 |