On behalf of the Rakudo development team, I’m very happy to announce the
September 2018 release of Rakudo Perl 6 #126. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine1.
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
distribution2 — 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.09:
- Fixes:
- Made native arrays throw when storing a lazy Seq [fc8c7f8][bb963a2]
- Fixed smartmatching of Seqs against Iterables [d3cac14]
- Made it possible to emit Mu [3f10e2d][db3768e]
- Fixed setting of
$/when matching NDF [cf1df1d] - Fixed prefix calls with
.:< ... >on integer literals [ec366c3]
[1835f28] .Arrayon shaped arrays now returns a properArrayinstead of
dying [efbd58c]- Fixed
.keyson one-dimensional native shaped arrays [5a9105a] - Made
Parameter.twigilalso work on dynamic Parameters [39f2d68] - Made sure the decoder is detached when closing handles [b07874e]
- Made sure
Xhandles empty lists on RHS [6c93fde] - Various improvements to produced messages [d419a31][c8db35e]
- Additions:
- Added a
PredictiveIteratorrole forIterators that can
determine how many values can still be generated, without
actually generating them [3ffacb9][5cbbcc6][842d4b3]
[78ae902][000ac81][c2c9df1][cdf6530][ad64c75][eefbe6e]
[da663af][e717e21][ca5825b] - Added
use isms <C++>and makeuse ismsassume all available
"isms" (now 'Perl5' and 'C++') [57f8927][c6c2b6c][528def4] - Partially implemented Pod
#alias for%config :numbered[b4bf166] - Added utf16 decodestream and file handle write support [8fcebb8]
[e8a7564][0bf909b][d275ea0]
- Added a
- Efficiency:
- Made
Str.wordsabout 3x as fast [b8f37bf] - Made
Str.linesabout 2x as fast [3dd09be] - Made
IO::Handle.linesabout 1.2x as fast [874ec00][d198c1b] - Made
IO::Path.linesabout 1.1x as fast [1905838] - Made
Str.chop(N)about 5x as fast [07089e8] - Made
Str.(r)index(needle,pos)about 1.2x as fast [5d1d792] - Improved
.elemsand.BoolonSeqby adding
count-only/bool-onlymethods [8905575][86468e1][070780e]
[64ddaca][9738dfb][d1e80df][9ff1736][b1c645e][bd83206]
[708ff62][5f3c2bf][2a011a0][faed3a9][e73e3ec][78bebc7]
[d970c2b][f5ebad9]
- Made
- Internal:
- Moved some iterators from Range to
R::Iterator[fcd45ff] - Streamlined quoted words handling [9295116][ae739ad]
- Fixed a bug in the optimizer where optimizations were
improperly combining [e436f4e] - Simplified
Map.kviterator [6977973] - Replaced use of
p6boolbyhllboolandhllboolfor[672196c]
[20feda7][170ffd4][7e69c64][3272207][f1f6825] - Removed obsolete p6settypes extop [de4e822]
- Standardized use of proto's on
.STOREmethods [ed9b48d] - Removed EmptySeq [a4db33e]
- Moved some iterators from Range to
The following people contributed to this release:
Zoffix Znet, Elizabeth Mattijsen, Paweł Murias, Bart Wiegmans,
Samantha McVey, Stefan Seifert, Jeremy Studer, Timo Paulssen,
Aleks-Daniel Jakimenko-Aleksejev, Will "Coke" Coleda, Daniel Green,
Tom Browder, MorayJ, Naoum Hankache, Nick Logan, Ben Davies, Curt Tilmes,
David M. Cawthon, Lichtkind, Luis F. Uceta, 陈梓立, Alexander, Daniel Mita,
Itsuki Toyota, Jonathan Stowe, Jonathan Worthington,
Juan Julián Merelo Guervós, Robert Lemmen, Steve Mynott, Tobias Boege
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 (#127), is tentatively scheduled for 2018-10-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.
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 See http://moarvm.org/ ↩
What’s the difference between the Rakudo compiler and the Rakudo
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.
Footnotes
Star distribution? ↩