Fork me on GitHub

MoarVM 2015.11

Improvements to Normal Form Grapheme, including compliance with the Unicode Grapheme Cluster definition and support for synthetics in the grammar NFA engine. Encodings now support replacement characters. I/O line reading improvements. Multi-dispatch cache and inline analysis updated to handle dispatch by container or value. And many smaller additions, fixes, and optimizations.


What is MoarVM?

Short for "Metamodel On A Runtime", MoarVM is a virtual machine built especially for Rakudo Perl 6 and the NQP Compiler Toolchain. The primary backend target for the Christmas 2015 release of Perl 6, MoarVM stands out amongst the various Rakudo and NQP compilation targets by:

  • Running the Perl 6 specification test suite in the least time
  • Passing more of the Perl 6 specification tests than Rakudo Perl 6 on other backends
  • Having the lowest memory usage
  • Having the best startup time
  • Being fastest to build both NQP and Rakudo - and thus your Perl 6 and NQP programs too!
  • Being the only backend to support strings at grapheme level

For long-running workloads where startup time doesn't matter and you need tried-and-tested threading support, Rakudo on the JVM may be a better bet. It may also - once the slow startup is overcome - win on performance for some workloads, once its sophisticated JIT compiler gets to work. MoarVM is under active development in these areas, and the gap will close as time goes by.