Rakudo Star - "early adopter" distribution of Perl 6

2010-07-29

On behalf of the Rakudo and Perl 6 development teams, I'm happy to announce the July 2010 release of "Rakudo Star", a useful and usable distribution of Perl 6. The tarball for the July 2010 release is available from http://github.com/rakudo/star/downloads.

Rakudo Star is aimed at "early adopters" of Perl 6. We know that it still has some bugs, it is far slower than it ought to be, and there are some advanced pieces of the Perl 6 language specification that aren't implemented yet. But Rakudo Perl 6 in its current form is also proving to be viable (and fun) for developing applications and exploring a great new language. These "Star" releases are intended to make Perl 6 more widely available to programmers, grow the Perl 6 codebase, and gain additional end-user feedback about the Perl 6 language and Rakudo's implementation of it.

In the Perl 6 world, we make a distinction between the language ("Perl 6") and specific implementations of the language such as "Rakudo Perl". "Rakudo Star" is a distribution that includes release #31 of the Rakudo Perl 6 compiler [1], version 2.6.0 of the Parrot Virtual Machine [2], and various modules, documentation, and other resources collected from the Perl 6 community. We plan to make Rakudo Star releases on a monthly schedule, with occasional special releases in response to important bugfixes or changes.

Some of the many cool Perl 6 features that are available in this release of Rakudo Star:

Perl 6 grammars and regexes

formal parameter lists and signatures

metaoperators

gradual typing

a powerful object model, including roles and classes

lazy list evaluation

multiple dispatch

smart matching

junctions and autothreading

operator overloading (limited forms for now)

introspection

currying

a rich library of builtin operators, functions, and types

an interactive read-evaluation-print loop

Unicode at the codepoint level

resumable exceptions

There are some key features of Perl 6 that Rakudo Star does not yet handle appropriately, although they will appear in upcoming releases. Thus, we do not consider Rakudo Star to be a "Perl 6.0.0" or "1.0" release. Some of the not-quite-there features include:

nested package definitions

binary objects, native types, pack and unpack

typed arrays

macros

state variables

threads and concurrency

Unicode strings at levels other than codepoints

pre and post constraints, and some other phasers

interactive readline that understands Unicode

backslash escapes in regex <[...]> character classes

non-blocking I/O

most of Synopsis 9

perl6doc or pod manipulation tools

In many places we've tried to make Rakudo smart enough to inform the programmer that a given feature isn't implemented, but there are many that we've missed. Bug reports about missing and broken features are welcomed.

See http://perl6.org/ for links to much more information about Perl 6, including documentation, example code, tutorials, reference materials, specification documents, and other supporting resources.

Rakudo Star also bundles a number of modules; a partial list of the modules provided by this release include:

Blizkost - enables some Perl 5 modules to be used from within Rakudo Perl 6

MiniDBI - a simple database interface for Rakudo Perl 6

Zavolaj - call C library functions from Rakudo Perl 6

SVG and SVG::Plot - create scalable vector graphics

HTTP::Daemon - a simple HTTP server

XML::Writer - generate XML

YAML - dump Perl 6 objects as YAML

Term::ANSIColor - color screen output using ANSI escape sequences

Test::Mock - create mock objects and check what methods were called

Math::Model - describe and run mathematical models

Config::INI - parse and write configuration files

File::Find - find files in a given directory

LWP::Simple - fetch resources from the web

These are not considered "core Perl 6 modules", and as module development for Perl 6 continues to mature, future releases of Rakudo Star will likely come bundled with a different set of modules. Deprecation policies for bundled modules will be created over time, and other Perl 6 distributions may choose different sets of modules or policies. More information about Perl 6 modules can be found at http://modules.perl6.org.

Rakudo Star also contains a draft of a Perl 6 book -- see "docs/UsingPerl6-draft.pdf" in the release tarball.