Bart has done great work on MoarVM in the past, and has produced a highly reliable JIT compiler. While we regularly find bugs introduced in the optimization stages, bugs introduced by the JIT compiler are very rare.
That said, I'd like to actually see the example mentioned in the grant request :-)
Nine raised a concern on the #perl6 channel whether the resulting code would be more or less maintainable than the current JIT code. See here for a transcript of that discussion.
That is a valid concern. I think the current JIT has proven to be reasonably maintainable, since in my memory at least timotimo and JimmyZ have made changes to the JIT since I delivered it last year. More people have made additions using to the graph-building step, which is implemented in C.
The goal is to move more work for the JIT into high-level constructs (rather than opaque assembly code) which should improve maintainability (and also portability as I've noted above). At the same time, this will make the JIT necessarily more complex, which may reduce maintainability. I think that can be offset by good documentation.
+1, JIT is also a very much key feature which speeds up Rakudo Perl 6. brrt++ had done a good work on JIT last year, I hope he will continue working on it. Thank you, brrt.
Bart seems to be exactly the person to handle this task. Especially since this optimization will require deep knowledge of the existing JIT, there are probably few candidates. If he has the time to make P6 fast, we should take advantage of it!
Bart did a great job last summer working on the MoarVM JIT compiler under GSoC, and I'd be very happy to see him funded so that work can continue. In order to be of real world use, the initial JIT compiler work had to focus on integrating with optimizations that MoarVM could already perform (inlining, On Stack Replacement, deoptimization) and other aspects of the VM (exceptions, invocation, continuations, and so forth). Bart achieved these, and so we've had the JIT compiler turned on by default since early autumn releases. Further, other MoarVM developers besides Bart have been able to dig into the code and extend it - a good sign!
I agree with the proposal's focus on vastly improving code generation. It's the right time to do it, and it's the right next step. Furthermore, this work will enable us to efficiently JIT things that we simply can not cleanly do at the moment (including big int operations, which will help speed up Perl 6's Int type, and native calls, which many Perl 6 modules depend on). Therefore, this work will not only be good in and of itself, but will provide a clear direction for others to incrementally build on.
In summary, I'm +1 to the work, and +1 to Bart doing it.
+1 here. Bart's previous experience with moarVM's JIT and ongoing research gives this project a very high chance of success.
Bart's got a good track record and the requisite knowledge to get it done. We should take advantage of this before some other project steals away his brain cycles.