Camelia, the Perl 6 bug

Perl 6 Compilers

Perl 6 is a language specification, and just like C or C++ there are multiple compilers for the language.

Compilers

Rakudo
Rakudo is copyrighted by the Perl Foundation, was born and raised in the Parrot virtual machine, and now also runs on the Java Virtual Machine and MoarVM. It is actively developed on the Rakudo GitHub site. Download or compile Rakudo.

Niecza
Niecza is a compiler targetting the Common Language Runtime (.NET and Mono). Its goal is to explore the static aspects of Perl 6 and the possibilities for compile-time optimization.

STD
STD is Larry Wall's reference implementation of the Perl 6 grammar, parser generator, and some of the semantic verifier. STD is an abbreviation of "Standard", as in "Perl6.0.0-STD". It is written in Perl 6, transliterated into Perl 5 by viv. It is also used by various phases of several other compilers (mildew, perlito, elf).

viv
viv ("vi" to "v", 6 to 5) is a compiler that uses STD as its front-end. STD itself uses viv to build. It is actively developed along with STD.

Perlito
Perlito, also known as MiniPerl6, is a subset of Perl 6, designed as a light bootstrapping language. You can try it online. It is actively developed here.

Pugs
Pugs is written in Haskell. Maintenance releases for successive versions of ghc are published to Hackage.


NQP (Not Quite Perl) is not a Perl 6 compiler. NQP a small subset of Perl 6 used as a foundational tool to help write compilers and libraries.

Feature matrix

To see which compilers implement which Perl 6 features, please see our feature comparison matrix.

Supplementals