Perl 6
Perl 6 implementations: Revision 13

Unlike previous versions of Perl, where the translator actually defined the language, for Perl 6 the language is defined by its specification (the synopses). Thus, there are several implementations of Perl 6, and none of them are designated as "The Official Perl". As Synopsis 1 indicates, Perl 6 is anything that passes the official test suite.

Currently maintained Implementations

Here's a brief synopsis of the current implementations. View their individual pages for more details.

Pugs

As of this writing (2007-12-28), Pugs is the most complete of the available implementations, but its development seems to have stalled somewhat. Pugs is written in Haskell and currently hosts the official Perl 6 test suite.

Rakudo

Rakudo is designed to run on Parrot, which is a virtual machine designed to support dynamic languages. Rakudo is still fairly primitive at the moment, but it is rapidly gaining new features. As of December 2007, Rakudo has been substantially rewritten so that major components of the compiler are written in Perl 6 (using both itself as a bootstrap and the "Not Quite Perl" language below). Rakudo was formerly known as "perl6", but the name has been changed to better reflect the fact that there's no "official" Perl 6 implementation, and to reduce confusion.

KindaPerl6 (kp6)

is a project which grew out of pugs and is aimed to run a subset of perl 6 on the traditional perl interpreter. It's designed and headed by Flavio S. Glock.

Not Quite Perl (NQP)

"Not Quite Perl" (NQP) is not really a Perl 6 implementation, even though it uses Perl 6 syntax. NQP is a tool to help write compilers and libraries for Parrot, and is not really intended as a complete end-user programming language. It uses only limited forms of Perl 6 syntax, and provides only native Parrot runtime support (i.e., no specialized Perl 6 libraries or functions).

Simplistic Meta Object Programming (SMOP)

Also called "Simple Matter Of Programming", SMOP is an alternative runtime engine for Perl 6 in C with a pragmatic approach. It's much like the perl5 interpreter and feature a extremely polymorphic design which allows integration of about whatever object system and even pluggin of other interpreters. It's supposed to become a target for the KindaPerl6 compiler, until it bootstraps and finally supports the STD grammar.

v6.pm

v6.pm is a Perl 5 module that implements a subset of Perl 6.

Historical Implementations

Topaz

Topaz was Chip Salzenberg's attempt to reimplement Perl 5 in C++ in the late 1990s. Topaz was abandoned after the Coffee Mug Incident.


Upload Files

Click "Browse" to find the file you want to upload. When you click "Upload file" your file will be uploaded and added to the list of attachments for this page.

Maximum file size: 50MB

 
 
 
File Name Author Date Uploaded Size

Save Page As

Enter a meaningful and distinctive title for your page.

Page Title:

Tip: You'll be able to find this page later by using the title you choose.

Page Already Exists

There is already a page named XXX. Would you like to:

Save with a different name:

Save the page with the name "XXX"

Append your text to the bottom of the existing page named: "XXX"

Upload Files

Click "Browse" to find the file you want to upload. When you click "Add file" this file will be added to the list of attachments for this page, and uploaded when you save the page.

 
 
 
Add Tags

Enter a tag and click "Add tag". The tag will be saved when you save the page.

Tag: 

Suggestions: