Announce: Rakudo Star Release 2015.02

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 February 2015 release of “Rakudo Star”, a useful and usable
distribution of Perl 6. The tarball for the February 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) along with
experimental support for the JVM backend (some module tests fail).
One shipped module is known to fail on Parrot (jsonrpc).

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

https://github.com/rakudo/rakudo/blob/nom/docs/announce/2015.02.md

Some of the new compiler features added to this release include:

  • On MoarVM, symlinks are now followed. This means that e.g. a given path
    can have both .l and .d be true, if the symlink points to a directory.
    This behaviour now matches the behaviour on the Parrot and JVM backend,
    therefore one could consider this a bug fix, rather than an incompatible
    change.
  • Overriding invoke/postcircumfix:<( )> for type coercions (ex. MyType(...))
    now passes the function arguments as-is, rather than just passing a Capture
    containing them. To get the old behavior, simply declare a Capture
    parameter (|c).
  • 6; at unit start is no longer a way to say no strict;. It was deemed
    to be a bad meme and huffmannized inappropriately.
  • Coercion syntax now works in signatures: sub foo(Str(Any) $a) { ... }
    will take Any value as its first positional parameter, and coerce it to
    Str before making it available in $a. Note that Str(Any) can be shortened
    to Str().
  • sub MAIN; (as in, rest of file is the MAIN unit) has been implemented.
  • Metaop = now respects the precedence of the op it is meta-ing.
  • Many optimizations, improved error messages and bugs fixed (over
    200 commits to Rakudo since the 2015.01 release).

In future, the nqp:: namespace willl only be available after a declaration
like use nqp;.

Changes to modules included in Rakudo Star:

  • JSON::Tiny gives better error messages on invalid input
  • panda gives better error messages when
    projects.json is not a valid JSON file (for example due to ISP-level HTTP filtering)
  • doc ships with much more documentation
  • LWP::Simple supports PUT and HEAD requests,
    as well as TLS if IO::Socket::SSL is installed.

The Math::Model and Math::RungeKutta modules no longer ship with Rakudo
Star. They can still be installed with panda.

This is the last Rakudo Star release with support for the Parrot backend,
until volunteers are found that bring the Parrot backend in shape and on par with
the other backends, and implement necessary features for upcoming changes. See
this blog post for
more information.

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 (in progress for the JVM and MoarVM backend)
  • 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 rakudobug@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-compiler@perl.org mailing list, or join us on IRC #perl6 on freenode.

About moritz

Just another Perl 6 hacker
This entry was posted in announce. Bookmark the permalink.