On behalf of the Rakudo and Perl 6 development teams, I’m happy to announce the November 2015 release of “Rakudo Star”, a useful and usable distribution of Perl 6. The tarball for the November 2015 release is available from http://rakudo.org/downloads/star/.
This Rakudo Star release comes with support for the MoarVM backend (all module tests pass on supported platforms).
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 2015.11 of the Rakudo Perl 6 compiler, version 2015.11 of MoarVM, plus various modules, documentation, and other resources collected from the Perl 6 community.
Some of the new compiler features since the ast Rakudo Star release include:
- There is now an
infix:<.> operator that does method calls with slightly looser precedence than the postfix unary method call.
- New operator
infix o for function composition
fc for Unicode-correct case folding implemented
- grep now accepts :k, :v, :kv, :p attributes
Supply.throttle for rate-limiting
- Array.push is now used for pushing one element (mostly); Array.append exists for pushing multiple values. Same for
- Basic arithmetic operations (
/) on Range objects that shift or scale the end points while maintaining exclusions
- The v notation now allows alphabetic components: v1.2.beta. (Incompatible because method calls on a version must be protected by \ or () now.)
use v6b+; notation is now recognized and enforced
- Many built-in methods that return iterables are now much faster
- Better error messages when comparing version strings with numbers
- Several error messages that were lacking line numbers now include them
- Initial shaped array support
\r\n (Carriage Return/LineFeed) is now a single (synthetic) grapheme
- Unicode support adheres to Unicode Annex #29
- Unicode quotes are now also allowed in regular expressions
- Improved newline support with “use newline” and updates to IO::Handle
- Added List.head, List.tail, List.repeated methods
- Str.encode now allows :replacement parameter for unencodable sequences
- Str.split now accepts multiple strings to split on
- New Range.int-bounds returns first/last value for integer ranges
- Auto-generated meta-ops vivified by referring to them, instead of executing
- Illegal assignment of different Numeric values now caught at compile time
&nextcallee implemented, which returns the routine that
nextsame would invoke
- Many speedups
The Rakudo Perl 6 compiler is now officially in beta for the upcoming production release around Christmas 2015.
Please note that this release of Rakudo Star is not fully functional with the JVM backend from the Rakudo compiler. Please use the MoarVM backend only.
Notable changes in modules shipped with Rakudo Star:
- Bailador: Add MIT License
- DBIish: Improved Windows support
- doc: More documentation; generated HTML is better searchable
- Template::Mustache: Switched from LGPL to Artistic License 2.0
- panda: Default action is no longer
install; better help messages
- Digest::MD5: Now accepts non-ASCII input (internally encodes as Latin-1)
- LWP::Simple: Support for successful return codes besides 200
which routine for locating executables
- Updated docs/2015-spw-perl6-course.pdf from Nov 21
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:
- advanced macros
- non-blocking I/O (in progress)
- much of Synopsis 9 and 11
There is an online resource at http://perl6.org/compilers/features that lists the known implemented and missing features of Rakudo’s backends 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 email@example.com.
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 Perl 6 tutorial is available as docs/2015-spw-perl6-course.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 firstname.lastname@example.org mailing list, or join us on IRC #perl6 on freenode.