|
|
|
|
|
by raiph
2988 days ago
|
|
Thanks for replying. I think MoarVM/NQP are strikingly similar in their approach based on what I've learned so far about Graal/Truffle (which isn't much; perhaps a few hours of exploration; eg reading/watching the One VM to Rule Them All, One VM to Bind Them paper/video). [1] Given the large number of Oracle employees working on Graal/Truffle (40 in 2016 according to the video) it doesn't surprise me that it's currently a lot faster. Did you use Graal/Truffle friendly benchmarks (just as was done in the video)? Have you tried MoarVM friendly benchmarks to see where MoarVM shines? In particular, have you accounted for the new JIT that recently landed after 3 years of non-master branch development? [2] Would you please elaborate a little on how MoarVM is insufficiently flexible? TIA for any reply. [1] https://www.youtube.com/watch?v=FJY96_6Y3a4 [2] https://perl6advent.wordpress.com/2016/12/09/a-preview-of-th... |
|
Does MoarVM use a meta-compilation technique? Pypy for example uses meta-tracing and Truffle uses Partial Evaluation to get from an interpreter specification to dynamically compiled code without duplicating the language logic. If yes, could you please point me to further information?
Meta-compilation is the primary innovation in Truffle. It allows to compose languages together and to compile them as one unit.
If you want to know more about the Truffle approach to meta-compilation see this PLDI paper from 2017[1].
[1] http://chrisseaton.com/rubytruffle/pldi17-truffle/pldi17-tru...