Rakudo Star Release 2014.08

2014-08-30

A useful, usable, "early adopter" distribution of Perl 6

On behalf of the Rakudo and Perl 6 development teams, I'm happy to announce the August 2014 release of "Rakudo Star", a useful and usable distribution of Perl 6. The tarball for the August 2014 release is available from http://rakudo.org/downloads/star/. A Windows .MSI version of Rakudo star will usually appear in the downloads area shortly after the tarball release.

This Rakudo Star release comes with support for the MoarVM backend (all module tests pass on supported platforms) along with experimental support for the JVM backend (some module tests fail). One shipped module is known to fail on Parrot (JSON::RPC).

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 2014.08 of the Rakudo Perl 6 compiler, version 6.7.0 of the Parrot Virtual Machine, version 2014.08 of MoarVM, plus various modules, documentation, and other resources collected from the Perl 6 community.

The 2014.08 release also covers the following announcements: https://github.com/rakudo/rakudo/blob/master/docs/announce/2014.05.md https://github.com/rakudo/rakudo/blob/master/docs/announce/2014.06.md https://github.com/rakudo/rakudo/blob/master/docs/announce/2014.07.md https://github.com/rakudo/rakudo/blob/master/docs/announce/2014.08.md

Some of the new features added to this release include:

  • Many optimizations in both rakudo and the underlying VMs.
  • If the LOLLY envar is set, have (;;), [;;], etc., turn into LoLs. Otherwise, parsefail
  • Add SEQ(a; b) to emulate the old behavior of (a; b)
  • Make &infix:<xx> many times faster
  • fix multi-dimensional slice assignment
  • assigning a single itemized hash to a hash is now DEPRECATED (my %h = {...})
  • subbuf-rw specced and implemented
  • the tr/// operator is implemented and has the proper return value
  • improved string handling for MoarVM backend
  • all backends now allow C pointer arithmetic and casting of pointers to Perl 6 types (this functionality is exposed by NativeCall)
  • fixed 'fail' so it also prints a backtrace
  • IO::Socket::Async now also works on JVM
  • added or updated many Supply methods: act, batch, categorize, Channel, classify, delay, elems, flat, grab, last, live, max, min, minmax, merge, migrate, Promise, reduce, reverse, rotor, sort, squish, stable, start, uniq, wait, zip
  • added IO::Notification.watch_path / IO::Path::watch which return a Supply of file system changes
  • added first-index, last-index, grep-index subs/methods
  • deprecate $*OS, $*OSVER, $*VM, $*PERL...
  • added $*KERNEL, $*DISTRO, $*VM, $*PERL as full blown objects
  • "use v5" is no longer a noop, but actually tries to load the "v5" module (soon available as part of Rakudo*)
  • implemented labeled loops and throwing of labels as payload

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
  • threads and concurrency (in progress for the JVM and MoarVM backend)
  • Unicode strings at levels other than codepoints
  • interactive readline that understands Unicode
  • non-blocking I/O
  • 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 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 protected].

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 [email protected] mailing list, or join us on IRC #perl6 on freenode.