Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
130 lines (107 sloc) 6.03 KB

Announce: Rakudo Perl 6 compiler, Release #118 (2017.12)

On behalf of the Rakudo development team, I’m very happy to announce the December 2017 release of Rakudo Perl 6 #118. 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 2017 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

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

The changes in this release are outlined below:

New in 2017.12:

  • Fixes:
    • Various POD-related fixes [41514235][11d90cac][061c36d6][2cd266fe] [8ea7a46f][2c951798]
    • Fixed resolve of IO::Path for Windows [eed733e2]
    • Fixed ∖ op to do Hash→Mix conversion through Sets [eacf9b27]
    • Fixed incorrect attribute name in [3166400d]
    • Fixed to call done when some supply is done [1d0dae86]
    • Fixed Supply.throttle() when the source supply becomes done [c8370f21]
    • Fixed silent failures on invalid is export values [1668b4f0]
    • Fixed many cases of enum creation [d9021cf1][754664ed][65301756]
    • Fixed crash when using allomorphs as enum values [fc52143b]
    • Fixed <:Digit> to match digits correctly [0339b0f8]
    • Fixed some Telemetry.EXISTS-KEY issues [f3b1289f][91798547]
    • Fixed gut spillage in pseudopackages [cd24b1c5][a82e0e7d][1c7d15d7]
    • Fixed introspection on Mixins to Code:U objects [e31a414b]
    • Fixed let/temp to be able to take Mu [75229976]
    • Fixed autovivification container issues with no strict [e5b49ce3]
    • Fixed shaped array indexing to accept non-Ints [00632edb]
    • Fixed to not create containers [d80df073]
    • Fixed incorrect .count-only/.bool-only implementation [af9812fa][0e228fab]
    • Made sure each Seq.skip gets a new Seq [854c10c2]
    • Moved attribute settage inside the lock [8df8ce09]
    • Made print/say/put/note handle junctions correctly [07616eff] [9de4a60e][8155c4b8][3405001d]
    • Fixed WhateverCode curries losing use fatal [31db3acc]
    • Various improvements to produced messages [d85585ea][9fd5042b] [c9699ab2][1da698ab]
  • Additions:
    • Implemented TR/// [f6958624][3d2fa915][8b27166f]
    • Implemented .toggle [694f534a][78caeb6b][ca7d0483][e7c0a644]
    • Consistified &[but] and &[does] with non-roles [575d31e2]
    • Added While/Until iterators [2c1a2860]
    • Added proper Supply.Seq method [aa3c2c5b]
  • Efficiency:
    • Made multi-needle split setup cheaper [5929887c]
    • Streamlined INDIRECT_NAME_LOOKUP a bit [76158136]
    • Made &[-]/&[+] with Rationals 30%-50% faster [6c299bf9]
    • Made DIVIDE-NUMBERS 6%-15% faster [78aeaf46]
    • Streamlined Hash.AT-KEY [6601da5c]
    • Streamlined Array.Slip.AT-POS like Hash.AT-KEY [fe8312b7]
    • Streamlined Array.AT-POS for better inlinability [af29a227]
    • Streamlined List.AT-POS a bit [9a2f5325]
    • Made Array.ASSIGN-POS about 1.7x faster [c5afc97e]
    • Made R:It:ReifiedArray 15% to 30% faster [a974de9b]
    • Streamlined Array.iterator.push-until-lazy a bit [ae02bc29]
  • Internal:
    • Abstracted prefix:<temp|let> logic into R:I [47f23fc6][126d7b55][6fb5c8c8]
    • Implemented Sequence.Numeric [6061f0bc]
    • Various improvements for the JVM backend [0a24efc3][f40c3818] [fbf7beca][928ada08][74a13ae1]
    • Added tests for previously resolved issues [20d67a3d][831dab14] [1b0be0f6][062c27f3][1101fea1][fed56be2][47552282][ced4af66] [d4ad6fa9][eaf609ed][04eb1da6]

The following people contributed to this release:

Zoffix Znet, Elizabeth Mattijsen, Pawel Murias, Alex Chen, Tom Browder, Christian Bartolomäus, Luca Ferrari, Aleks-Daniel Jakimenko-Aleksejev, Jan-Olof Hendig, Fernando Correa de Oliveira, Jeremy Studer, Will "Coke" Coleda, Samantha McVey, Jonathan Worthington, Tim Smith, Larry Wall, Dmitri Iouchtchenko, Rafael Schipiura, Fernando Correa, Moritz Lenz, Timo Paulssen, Juan Julián Merelo Guervós, lefth, Brad Gilbert, Michael D. Stemle, Jr, Daniel Green, Ronald Schmidt

as well as

Bart Wiegmans, Paweł Murias, Stefan Seifert, brian d foy

If you would like to contribute or find out more information, visit,, ask on the 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: (put “Perl 6 Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#119), is tentatively scheduled for 2018-01-20.

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

[^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.