|
Perl 6
Implementations: Revision 24
Perl 6 has several compilers and interpreters, and none is called "official Perl 6". [Larry Wall] has explained that anything that passes the test suite is Perl 6. So far several partial implementations exist. With their feedback, the [Synopses] and test suite that form the language [specification] are evolving. This page is about software that can parse Perl 6, not VMs or runloops.
* [Rakudo] is currently the most feature-rich and the most actively developed implementation. It runs on [Parrot], a virtual machine for many dynamic languages. * [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. * [vill] bridges STD to the LLVM (Low Level Virtual Machine) compiler tools * [Mildew] is a Perl 5 based compiler that embeds viv, and can emit code for several runtime engines, including JavaScript and SMOP. * [Sprixel] started out with viv as the source code parser and Google's V8 JavaScript engine as a runtime interpreter. Currently Sprixel is undergoing a complete rewrite. The future Sprixel will probably be written in C# and will run on Mono and the .NET Framework. It will include its own regex engine and Perl 6 grammar parser. * [Elf] is a compiler written in Perl 6 with Perl 5 and Lisp backends. * [Perlito], formerly known as MP6 (mini Perl 6), is a Perl 6 subset build by Flavio Glock for bootstrap purposes. * [KindaPerl6] (kp6) * "v6"[Perl 6 for Perl 5] is a source filter for Perl 5. [Historical Implementations] are definitively closed projects. |