On behalf of the Rakudo and Perl 6 development teams, I'm happy to announce the August 2012 release of "Rakudo Star", a useful and usable distribution of Perl 6. The tarball for the August 2012 release is available from <http://github.com/rakudo/star/downloads>. A Windows .MSI version of Rakudo Star is also being made available in the downloads area.
In the Perl 6 world, we make a distinction between the language ("Perl 6") and specific implementations of the language such as "Rakudo Perl". This Star release includes release 2012.08 [0] of the Rakudo Perl 6 compiler [1], version 4.6 of the Parrot Virtual Machine [2], and various modules, documentation, and other resources collected from the Perl 6 community. Some of the new features added to this release include: * Rakudo Star now includes a Perl 6 debugger! The debugger allows single-stepping, setting breakpoints, variable inspection/modification, regex debugging, and more! Enter "perl6-debug <script.pl>" to run a script in debugging mode. Enter "help" from a debug prompt to see the available commands. * Memory usage of the build stage has been reduced by 35% - 40%. This makes it possible to build and compile Rakudo Star on machines with less memory (although 1.2GB may still be needed for some 64-bit environments). * Variables prefixed by | or \ in signatures are now sigilless, per updates to the Perl 6 specification. * Circularities in module loading are now detected. * An improved inliner, allowing a wider range of routines to be inlined. * Str.bytes and lcfirst have been removed. The tclc builtin has been added. * 'abs' is now a normal subroutine instead of a prefix operator. * IO::File and IO::Dir have been removed. * The integer argument to IO::Socket.recv is now interpreted as a number of characters/codepoints. This release also contains a range of bug fixes, improvements to error reporting and better failure modes. More exceptions are thrown as typed exceptions, and more meta-model errors have been fixed to properly report line numbers. The following features have been deprecated or modified from previous releases due to changes in the Perl 6 specification, and are being removed or changed as follows: * Parameters preceded by a | or \ can no longer have a sigil. * IO::Path.dir (which returns the directory part of the path) has been renamed to IO::Path.directory. IO::Path.dir will be removed or re-purposed. * The Str.ucfirst builtin is deprecated; it will be replaced by Str.tc. * The (experimental) LAZY statement prefix will soon be removed. * Leading whitespace in rules and under :sigspace will no longer be converted to <.ws> . For existing regexes that expect this conversion, add a <?> in front of leading whitespace to make it meta again. * The ?-quantifier on captures in regexes currently binds the capture slot to a List containing either zero or one Match objects; i.e., it is equivalent to "** 0..1". In the future, the ?-quantifier will bind the slot directly to a captured Match or to Nil. Existing code can manage the transition by changing existing ?-quantifiers to use "** 0..1", which will continue to return a List of matches. There are some key features of Perl 6 that Rakudo Star does not yet handle appropriately, although they will appear in upcoming releases. Some of the not-quite-there features include: * macros * threads and concurrency * Unicode strings at levels other than codepoints * interactive readline that understands Unicode * non-blocking I/O * much of Synopsis 9 There is an online resource at http://perl6.org/compilers/features that lists the known implemented and missing features of Rakudo Star 2012.08 and other Perl 6 implementations. 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 at <rakudo...@perl.org>. 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. A draft of a Perl 6 book is available as <docs/UsingPerl6-draft.pdf> in the release tarball. The development team thanks all of the contributors and sponsors for making Rakudo Star possible. If you would like to contribute, see <http://rakudo.org/how-to-help>, ask on the perl6-compi...@perl.org mailing list, or join us on IRC #perl6 on freenode. [0] https://github.com/rakudo/rakudo/blob/nom/docs/announce/2012.08 [1] http://github.com/rakudo/rakudo [2] http://parrot.org/