# Announce: Rakudo Star Release 2014.12

## 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 December 2014 release of "Rakudo Star", a useful and usable
distribution of Perl 6. The tarball for the December 2014 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).
Three shipped modules are known to fail on Parrot (JSON::RPC,
MIME::Base64 and p6doc).

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

[release 2014.12]:
    https://github.com/rakudo/rakudo/blob/nom/docs/announce/2014.12.md
[Rakudo Perl 6 compiler]: http://github.com/rakudo/rakudo
[Parrot Virtual Machine]: http://parrot.org
[MoarVM]: http://moarvm.org/

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

- $str ~~ s/// now returns a Match or list of Matches (incompatible change)
- Supply.lines/words and IO::Handle.words implemented
- &indir for scoped directory manipulations
- Various performance improvements
- Method 'for' as an alias for 'map'. Map will stop flattening the list eventually, 'for' remains as it is now
- Method 'unique' as a successor for 'uniq'
- Introduce IO::Handle.slurp-rest for slurping rest from the handle
- Fix tie-breaking issues with longest literal matching
- Method FALLBACK implemented
- $\*DISTRO and $\*KERNEL updated ($*DISTRO now actually report the Linux dist)
- Added Metamodel::Primitives, to open up more meta-programming possibilities
  (publishing method caches, completely custom meta-objects, etc.)

Changes to modules included in Rakudo Star:

- [Bailador](https://github.com/tadzik/Bailador) now binds to all interfaces by default.
- [panda](https://github.com/tadzik/panda) reads package information from <http://ecosystem-api.p6c.org/> as opposed to <http://feather.perl6.nl:3000/>.
- panda executable now works under PowerShell.
- panda returns correct exit status if it fails.
- panda now ignores POD while determining module dependencies.
- panda now can [upload test results to testers.perl6.org server](http://perl6advent.wordpress.com/2014/12/21/day-21-community-smoke-testing/).
- panda now displays help with correct command descriptions when using `--help`.
- panda has a `smoke` option to download and test all Perl 6 modules.
- panda can now use `look` option in order to download modules without doing anything else.
- [HTTP::Easy](https://github.com/supernovus/perl6-http-easy) has received a few algorithm optimizations that made it faster.
- HTTP::Easy now binds to all interfaces by default when acting as a web server.
- [ufo](https://github.com/masak/ufo) now leaves `.pm` and `.pm6` in module names.
- [NativeCall](https://github.com/jnthn/zavolaj) now parses library names like `libfoo-2.0` and `libbar.so.3.3.0`.

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.
