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 http://rakudo.org/downloads/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 http://rakudo.org/downloads/star/.
The changes in this release are outlined below:
New in 2017.12:
- Various POD-related fixes [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 X::AdHoc.new [3166400d]
- Fixed Supply.zip() to call
donewhen some supply is
- Fixed Supply.throttle() when the source supply becomes
- Fixed silent failures on invalid
is exportvalues [1668b4f0]
- Fixed many cases of enum creation [d9021cf1][754664ed]
- Fixed crash when using allomorphs as enum values [fc52143b]
- Fixed <:Digit> to match digits correctly [0339b0f8]
- Fixed some Telemetry.EXISTS-KEY issues [f3b1289f]
- 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 
- Fixed autovivification container issues with
- Fixed shaped array indexing to accept non-Ints [00632edb]
- Fixed List.new 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
- Various improvements to produced messages [d85585ea][9fd5042b] [c9699ab2][1da698ab]
- 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]
- Made multi-needle split setup cheaper [5929887c]
- Streamlined INDIRECT_NAME_LOOKUP a bit 
- 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]
- 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][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
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 (#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 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.