Rakudo Star 2013.01 henceforth available: a useful and usable distribution of Perl 6.



Available since January 30, 2103 a useful and usable distribution of Perl 6,aims to make a distinction between the language (“Perl 6″) and specific implementations of the language such as “Rakudo Perl”.
Therefore this Star release includes release 2013.01 of the Rakudo Perl 6
compiler, version 4.10.0 of the Parrot Virtual Machine, and various modules, documentation, and other resources collected from the Perl 6 community.
Henceforth the new features added include:
  • Sink context (what some other languages call void context) is now enforced correctly. This means that for-loops are now lazy by default. It fixes the bug where a map in sink context would not execute, and also means that a Failure returned to sink context will be properly thrown.
  • ‘require’ now works with indirect module names
  • Restored socket read semantics to returning the requested number of bytes
  • $obj.Some::Role::meth() now passes the correct $obj
  • try/CATCH now returns Nil when the CATCH is triggered, rather than the exception; this brings it in line with try without a CATCH
  • whatever-star cases of splice now implemented
  • can now import multis with the same name from different modules, provided all dispatchers are onlystar
We also discover that the release contains a range of bug fixes, improvements to error reporting and better failure modes.
However certain features have been deprecated or modified from previous
releases due to changes in the Perl 6 specification, and are being removed
or changed as follows:
    • postcircumfix:<[ ]> and postcircumfix:<{ }> will become multi-subs rather than multi-methods. Both at_pos and at_key will remain methods.
    • Unary hyper ops currently descend into nested arrays and hashes. This will change to make them equivalent to a one-level map.
    • The Str.ucfirst builtin is deprecated; it will be replaced by Str.tc.
    • Leading whitespace in rules and under :sigspace will no longer be
      converted to <.ws> . For existing regexes that expect this conversion, add a <?> in front of leading whitespace to make it meta again.
    • The ?-quantifier on captures in regexes currently binds the capture slot to a List containing either zero or one Match objects; i.e., it is equivalent to “** 0..1″. In the future, the ?-quantifier will bind the slot directly to a captured Match or to Nil. Existing code can manage the transition by changing existing ?-quantifiers to use “** 0..1″, which will continue to return a List of matches.
 The tarball for the January 2013 release is available from the download page.

Popular Posts