What is v6?

v6 is a set of bootstrapping compilers each implementing a larger subset of Perl6.

The final v6 compiler will be written in Perl6 and will implement the full Perl6 Specification.

kp6 is currently in active development. Work is ongoing to bootstrap kp6 to the point where it can compile itself. kp6 progress and future plans are indicated in the Roadmap [POD] [HTML].

  • lrep See The "lrep" thing. lrep was a bootstrapped Perl6 compiler which was initially implemented over a period of 3 weeks in Perl5 around mar/2006. It started as an implementation of rules in Perl5, evolved into a Perl6 grammar implementation, a compiler, and then to compile its own parser. lrep is no longer maintained.
  • Pugs::Compiler::Rule is a compiler for Perl6 regexes which was bootstrapped using lrep. It is maintained by Agent Zhang (章亦春) and can be found at cpan.
  • v6.pm is a Perl6 compiler that uses Pugs::Compiler::Rule and Moose to implement a large subset of Perl6. v6.pm was published to CPAN in jun/2006. It is maintained by Flávio Glock and can be found at cpan and installed with the command "cpan v6".
  • mp6 is a Perl6 compiler which was bootstrapped using lrep. mp6 was written with portability in mind. It compiles to a very small number of basic operations. MiniPerl6 was started in nov/2006 and it was finished near feb/2007. It was not published, because it was only meant as an intermediate step in writing Perl6-in-Perl6
  • kp6 is a Perl6 compiler which is being bootstrapped using mp6. It was started in feb/2007. The initial goal was to provide an extra layer of semantics (lexical subroutines, object metamodel, begin-blocks, proper containers) and an improved compiler architecture (pluggable compilation workflow, pluggable backends, pluggable grammar engines). kp6 has a very flexible architecture and several backends, the most advanced creates Perl5 and CLISP.

The source for mp6 and kp6 can be found in the Pugs SVN repository

Development is usually discussed on #perl6 on irc.freenode.org.

Note: The next compiler version was meant to be called Onion, but this might change, because there is a compiler in the Parrot project which is also called Onion.