http://www.perlmonks.org?node_id=1085133

»»» This post is about the immature Perl 6, not the rock solid Perl 5 «««

Rakudo Star is a "batteries included" distribution that couples the Rakudo Perl 6 compiler with an installer, the C calling interface, bundled modules, and doc.

The new Rakudo Star 2014.04 release is the first to be shipped with a MoarVM and JVM backend (as well as a Parrot VM backend). This marks the stage where not only is the Rakudo compiler on the MoarVM and JVM backends passing more spectests than on the Parrot backend but also the ecosystem -- installer, modules, doc -- has generally caught up too.

The biggest impact so far of including these new backends is on performance, use of concurrency1, and use of Java code2.

Rakudo on Parrot is currently fastest for code that does a lot of string slicing and dicing. This is Rakudo on Parrot's main current advantage, one it's likely to retain for another few months. Ignoring that, Parrot is much slower for most scripts and the Rakudo/NQP backend does not support concurrency.

Rakudo on MoarVM runs most P6 scripts a lot faster using a lot less RAM than either Rakudo on Parrot or Rakudo on JVM. Concurrency is supported, though not as robustly as on the JVM.

Long running scripts sometimes end up running a lot faster on the JVM backend than on either MoarVM or Parrot due to JVM's JIT. The JVM also supports P6's concurrency features and calling Java libs.

Finally I'd like to highlight the debugger and its command line UI. Partly because it's a good tool, but mostly to illustrate how easy it can be to contribute to the core as I did via a bugfix and a speedup.


1 Reactive programming in Perl 6 is a good intro to P6's reactive programming features but make sure to use the latest version of the example code in the reactive examples code repo.

2 See jnthn's examples of calling Java code.