Implementations: Revision 29
There is no official or reference Perl 6 implementation, as exists with Perl 5. Instead, there is a language [specification] that began with [Apocalypses] and evolved through [Exegeses] and [Synopses]. There is also a test suite. The [Synopses] and test suite continuously evolve together with several compilers and interpreters. [Larry Wall] has clarified that anything that passes the test suite is Perl 6. With their feedback, the [Synopses] and test suite that form the language [specification] are evolving. This page is about the various partial implementations that exist, which can parse and execute Perl 6. Virtual machines and runloops are excluded because they do not deal with Perl 6 source code.
* [Rakudo] is currently the most feature-rich and most actively developed implementation. It runs on [Parrot], a virtual machine for many dynamic languages.
* Niecza is currently the fastest implementation, the active development is lead by Stefan O'Rear.
* [Pugs] was the leading implementation from 2005 until about 2007. It runs on "GHC Haskell"<http://www.haskell.org/ghc/index.html> and helped to develop the [test suite].
* [viv] is a derivation of [STD.pm] for testing and bootstrapping purposes. A utility called "gimme5" creates viv by translating STD.pm into Perl 5. This is possible because Larry very carefully wrote STD.pm in a translatable subset of Perl 6.
* [Elf] is a compiler written in Perl 6 with Perl 5 and Lisp backends.
* [vill] connects STD.pm to the LLVM (Low Level Virtual Machine) compiler tools.
* [Perlito], formerly known as MP6 (mini Perl 6), is a Perl 6 subset build by Flavio Glock for bootstrap purposes.
* [KindaPerl6] (kp6)
* [v6] is a Perl 6 compiler for Perl 5.
[Historical Implementations] are definitely closed projects.