Skip to content

@AlexDaniel AlexDaniel released this Jul 18, 2019 · 1641 commits to master since this release

On behalf of the Rakudo development team, I’m very happy to announce the
October 2018 release of Rakudo Perl 6 #127. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].

This release implements the 6.c version of the Perl 6 specifications.
It includes bugfixes and optimizations on top of
the 2015.12 release of Rakudo.

Upcoming releases in 2018 will include new functionality that is not
part of the 6.c specification, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of the
6.c specification will continue to work unchanged. There may be incremental
spec releases this year as well.

The tarball for this release is available from https://rakudo.org/files/rakudo.

Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
https://rakudo.org/files/star.

The changes in this release are outlined below:

New in 2018.10:

  • SPECIAL NOTES:
    • This is the first Rakudo release that comes with an additional
      JS backend. See 6pad project for running Perl 6 code directly
      in your browser.
  • Deprecations:
    • Deprecated gethostname() in favor of $*KERNEL.hostname [f7fa518]
  • Fixes:
    • Fixed/improved divide-by-zero errors in
      Rational.floor/.ceiling/.Str [a639fa9][6d70346]
    • Fixed semantics of [Nil] [88e6de2]
    • Fixed issue with custom bless method [64137bd]
    • Made nativecall's postcircumfix:<[ ]> return containers [be2d4cb]
    • Fixed hash descriptor when doing Hash[Int].new [9acbf00][ea71041]
    • Nil is now allowed in initialization and assignment of hashes
      [f61ba41][605bcb3][7e86d4e]
    • Fixed ContainerDescriptor for arrays with a dimension of three [a2e78ec]
    • Fixed indexing of shaped arrays with a dimension higher than 3 [0307c36]
    • .in-timezones value is now coerced to Int [c8438e6]
    • Stub methods from roles are now verified [fd5d5bd]
    • Fixed double-closing of handles in IO::Handle.lines when :close and
      $limit are used [6edb142]
    • Fixed closing of handles in IO::Handle.lines when $limit
      is used [c1c7574]
    • Consistified Rat.base to fail instead of throw [a804ab5]
    • Fixed enforcing of return constraints on multi method stubs [abba67b]
    • Various improvements to produced messages [cc2fcc9][560e94e]
      [bf10f4c][243a2f0][7d02b94][9894eda][0243275]
  • Additions:
    • [6.d] Constructs $()/@()/%() no longer have any $/-related
      magic [bb88a03]
    • [6.d] DefiniteHOWs' (type smileys) default default is now the base
      type [38b198c]
    • Zero-Denominator Rationals are now normalized on creation [671c411]
      [75ec224]
    • Made my @a is List = 1,2,3,4 work [2bdf2b3]
    • Using is Type on @ and % attributes is now allowed [b537ce2]
    • Added a BOM on open for utf16 filehandles [959b89c][479348f]
    • Added initial support for Unicode 11.0 [5c272ee]
    • Pluggable MAIN interface refactored, documented and tested
      [f234b9a][35f3d83][7c9b295][33c2415][8c3a413][fbfccfa]][341190e][24413b5[2c43d2b]
    • Usage message now limits itself to partially matching candidates
      [0d1be77]
    • Added additional dashed variants for utf16le and utf16be [4307996]
    • Added Parameter.coerce_type method [0243275]
    • Added Code.cando method to allow for .cando on all Callables
      [45eeab7][69533b5]
  • Removals:
  • Efficiency:
  • Internal:
    • Made make an only [369068a]
    • Added skip-one method to appropriate PredictiveIterators [e54885e]
    • More things are now initialized at setting compile time
      [06dfbf0][688cbac][9273577]
    • Simplified initialization of CompUnit::RepositoryRegistry
      [0425d92][8e1cd01]
    • Introduced IterationBuffer.List [8c10da6]
    • Use nqp::create for IterationBuffer instead of .new [84311b7]
    • Made sure .STORE only works on instances of mixy/baggy types [9daac68]
    • Added $*INSIDE-EVAL to mark that we're inside an EVAL [73b7c60]

The following people contributed to this release:

Zoffix Znet, Elizabeth Mattijsen, Paweł Murias, JJ Merelo, Tom Browder,
Bart Wiegmans, Jonathan Worthington, Will "Coke" Coleda,
Aleks-Daniel Jakimenko-Aleksejev, Samantha McVey, thebooort,
Juan Julián Merelo Guervós, Ben Davies, Fernando Correa de Oliveira,
Timo Paulssen, Daniel Green, MorayJ, Valentin Anger,
threadless-screw, Jeremy Studer, Nick Logan, finanalyst, Alexander,
Amir Aharoni, Claudio Ramirez, Luis F. Uceta, Nacho Mas, Richard Hainsworth,
Alex Schroeder, Bartosz Janus, Brad Gilbert, Jared Miller, Jason Cole,
Jonathan Beebe, Patrick Sebastian Böker, Rafael Schipiura,
Tzu-Li "tison" Chen, Tzu-Li Chen, sarna

If you would like to contribute or find out more information, visit
https://perl6.org, https://rakudo.org/how-to-help, ask on the
perl6-compiler@perl.org mailing list, or ask on IRC #perl6 on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Perl 6 development: https://donate.perlfoundation.org/
(put “Perl 6 Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#128), is tentatively scheduled for 2018-11-17.

A list of the other planned release dates is available in the
“docs/release_guide.pod” file.

The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback – get in touch with
us through (the above-mentioned) mailing list or IRC channel. Enjoy!

Please note that recent releases have known issues running on the JVM.
We are working to get the JVM backend working again but do not yet have
an estimated delivery date.

[^1]: See http://moarvm.org/

[^2]: What’s the difference between the Rakudo compiler and the Rakudo
Star distribution?

The Rakudo compiler is a compiler for the Perl 6 language.
Not much more.

The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl 6 modules, a module installer, Perl 6 introductory
documentation, and other software that can be used with the Rakudo
compiler to enhance its utility.

Assets 4
You can’t perform that action at this time.