Announce: Rakudo Star Release 2015.06

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 June 2015 release of “Rakudo Star”, a useful and usable
distribution of Perl 6. The tarball for the June 2015 release is
available from

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

Other Rakudo Perl 6 Comiler changes included in this release:

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

  • “0” (0 as a string) is now True, no special-casing anymore
  • an Int() coercion type in a multi now creates two candidates: Any and Int
  • native arrays
  • starts-with/substr-eq/ends-with for comparing strings inside other strings
  • where constraints on variable and attribute declarations
  • ‘is rw’ parameters implemented for native subs (they get passed as a pointer)
  • use Foo:from<Perl5> and EVAL $code, :lang<perl5> are now supported as long as Inline::Perl5 is installed. Allows passing most of S01 spec tests.
  • NFG, NFC, NFD, Uni
  • “unit” declaration needed for blockless packages
  • Various API changes for the Great List Refactor, such as…
    •   ‘for’ loops not longer flatten; use ‘for flat’ for that
    •   .map no longer flattens, map as a listop does. Use .flatmap to get the old behavior
    •   Likewise other methods that used to flatten their invocant no longer do: all, any, one, none, unique, squish, min, max, minmax, classify, and categorize
    •   Nil no longer iterates like the empty List. Use () or Empty instead.
  • .pick($n)/roll($n) now always return lists, even when $n == 1
  • The “is cached” trait no longer works on methods, throws a NYI instead
  • Method .map should be used instead of .for
  • The REPL is strict by default now, that leaves only ‘-e’ lines to be lax
  • Implement new @*INC handling (about 30% faster startup time) (bare startup time is now below 100 ms on some machines)
  • Implemented CUnions which map to the union C type definition for NativeCall
  • Implemented HAS declarator for attributes to mark it embedded into the CStruct or CUnion
  • Lexical pragma ‘use trace’ now outputs statements on STDERR

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
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

See 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, ask on the
mailing list, or join us on IRC #perl6 on freenode.

This entry was posted in announce. Bookmark the permalink.