On behalf of the Rakudo development team, I’m very happy to announce the
March 2019 release of Rakudo Perl 6 #130. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine1.
This release implements 6.c and 6.d versions of the Perl 6 specification.
6.c version of the language is available if you use the use v6.c
version pragma, otherwise 6.d is the default.
Upcoming releases in 2019 will include new functionality that is not
part of 6.c or 6.d specifications, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of
6.c and 6.d specifications 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 2019.03:
- Fixes:
- Fixed uncaught processor floating point exception on
Rat.round[11da0fb] - Fixed
$a=~$aifuse isms <Perl5>is active [df748ea]
[af868f8] - Fixed
.WHICHmethods that did not returnObjAttypes
[e50f4f2][6b401da][67cbd99][9df0962][0d29768][ca8d8af]
[4b91610][537621e] - Fixed missing redeclaration of bound outer error
[2366360] - Made
X::TypeCheck::AssignmentandX::Trait::Unknownmore
resilient against strange values [a6d8858][54fe8a1] - [6.d]
$_container is no longeris dynamic[33f79fe]
[3d581c8][c2e272e] - Fixed thread safety of some state variables [a5b9fc2]
- Fixed
.^composecalls on types stored in a scalar [ab8052d] - Fixed
Parameter.perlfor slurpy parameters [d8b7fab] - Fixed
$*EXECUTABLEpath construction after achdir[5c14916] - Fixed
$*PROGRAMpath construction after achdir[cebf0cb] - Fixed
.^add_attributecalls withAttributeobject stored in
a scalar [bf0dbbe] - Fixed hang in Channel
subscribe/close/drain[9b77459] - Fixed
Inline::Perl5failing to load when installed through the
Staging repository [1c101a0] - Allowed parameterization of parent class in
classdeclaration
[35ecfc8] - Made
IO::Path.diron non-existent paths throw rather than
return aFailure[38f4b7b] - Fixed line number accuracy in backtraces [5b231e0]
- Made regex literals capture
$/and$![8ef7c15][ee2238f]
[4a2124a] - Fixed
«=>»crash if RHS is a List in a Scalar container
[df96fa0] - Tweaked
Range.ACCEPTSto work better with Junctions [46409c0]
[f3f7c5c][d904b70] - Made
Baggy.ACCEPTSsignature the same asSetty.ACCEPTS
[37ce147] - Fixed "No concretization found" on role-qualified method call with
inheritance [a6c8180] - Fixed use of a role by its short name in some cases [b3eb382]
[9d6e508] - Made sure that
CArraycan beSTOREd intoBuf/Blob
[ada116e][5e5c909][30fc514][84ed854][bfadefa][05b9aa0]
[b394b63] - Made CUR uninstall
.batwrapper scripts [121ca5f] - Fixed a problem with adding/subtracting negative values from
Date[91ca827] - Made sure hash slice auto-vivifies using infix metaop [616b757]
[e68e38e] - Many improvements to the JS backend [634633b][8f2d9ed][fc39f5f]
[9b20c47][822962d][e233f28][52de965][6dd723a][7b053d5]
[17a2bcc][f7ba400][ada0142] - Various improvements to produced messages [e48712a][59bafb8]
[6a8f08b][89ca56a][8095cea][d499bd4][7133b81][f770426]
- Fixed uncaught processor floating point exception on
- Additions:
- Added a candidates method to
CompUnit::Repository::FileSystem
andCompUnit::Repository::Installation, which acts as the API
for module lookup. Internals were refactored to use this API for
module lookup, which fixes some issues as a side effect (i.e.
old bin scripts being invoked instead of a newer version)
[2d007bf][07f62c6][bed3bbd][a25d5fa][29d7470][085fa19]
[78de05e][b378a15][d0a3fec][d533d45][877e7dc][270b355]
[683df8b][e1ef571][077f88a][22021fd][603010b][27e141c]
[ddb6abd][c868ca9][339ea85][3999d75][bfff01a][d998c1e]
[83f0fd6][d39e2fc][74ccb4c][67cf829][92ebc33] - Added
buf8/blob8read-(u)bits / write-(u)bits methods for
reading/writing any number of bits [45a945b] - Added
$?DISTRIBUTIONto give introspection and IO capabilities
to the currentDistribution[32d480a] - Added
addendumtoX::Method::NotFoundso that we can give
better error messages for specific cases [04dd52f][b6c8f5e] - Added HLL interface for creating
SignatureandParameter
objects [f329d6c][3d3578b][c4723cb][e116f3a][3b9fd81]
[e463518][9cd42b1][86557cf][d6b1bd2][9485dd2][7be075e]
[081b15e][eb50d8c] - Made
does X::Controlimply throwing to CONTROL [ca177e5] - Made
QuantHashesparameterizable to limit the type of value that
can be put in them [0d9e9f3][4bb5c33][e87b7af][fe38bdb]
[bcc8054][87b71c2][836c18a][71a19c6] - Allowed
is Typetrait to handle parameterization like
is Set[Int][2ed2f39] - Added a
dynamic-scopelexical pragma [871cbef][88c4667]
[9517c37]
- Added a candidates method to
- Removals:
- Build system:
- Efficiency:
- Made
postcircumfix:<[]>forCArraymore than 3x as fast
[f009cb4] - Made
Rational.floor/ceiling/Intabout 1.1x as fast [cf0a6ea] - Made
Rational.Numabout 1.05x as fast [236351a] - Made stringification of
Rat/FatRat1.2x to 2.2x as fast
[5c0ac4d] - Made constraint check on
UInt1.15x as fast [922d41b] - Made comparisons with
Rats 1.4x to 15x as fast [c11e7e6]
[4fecb72] - Made negation of
Rat/FatRatabout 3x as fast [d195e14] - Made coercion of
InttoRat/FatRat4x as fast [92321be] - Several other
Rat/FatRatoptimizations [29d7f70][6dad5ca]
[395d633][e29554f][91f6749] - Made
unival()about 2x as fast [08ae9bf][27332f0] - Made
Buf/Blob.gistabout 2.5x as fast [6d58e0b] - Made
Map/Hash.sortabout 12x as fast [8ae4310][edb5308] - Made
Str.trim-trailingabout 1.1x as fast [304feae] - Several improvements to
Date/DateTime/Instant/Duration
handling [467394b][de93365][9f28a42][9295616][3488a65] - Added return type signatures for more optimization opportunities
[ef565b2][66f8ee0][fb517b2][6af22bc][30a534d][2ce7956]
[7a68df2][5cf65b5][01d2e11][26c0e62][0368fe9][e0cd1d9]
[0797f93][cbc3e72][c45d2b8][bb84b66][50f0bb2][e58e376] - Fixed a memory leak when a Callable has a definite return
signature but the actual returned value was Nil [7aa796a] - More aggressive lexical lowering and block flattening [e73853a]
[c28a092][685f6cc][b41e9f5][b0e7e37][5bbaabb][4202453]
[2468dea][cf9e1f5][053f929][852a593][871b6f5][401a354]
[f741374][64d08ad][2a33bb1][83c2070][ab7f07d][91a4b3b]
[6b44c58][eb3917c][a4c994f][31c8fda][17bf741][8aa7330]
[11884e0][87fcda8][6b078a0][19e4ace][fcfd51b][541a4f1]
[d2df5b8][7fb098d][c0f8378][623450d][08d87f7][f71ca0d]
[c6053e6] - Many small internal optimizations [6392634][5540212][7d3b7e1]
[2d704af][1611795][cf0a6ea][236351a][501231e][a904d25]
[8769831][93b5e2e][f2ed3db][485dec4][64c88f9][839f28e]
[b4d114a][225d2f9][7dea20a][df8c578][50e1ec3][3eeb727]
[5d70797][eb8561b][f56e075]
- Made
- Internal:
The following people contributed to this release:
Elizabeth Mattijsen, Jonathan Worthington, cfa, Paweł Murias,
Will "Coke" Coleda, Aleks-Daniel Jakimenko-Aleksejev, Stefan Seifert,
Timo Paulssen, Nick Logan, Richard Hainsworth, Daniel Green,
Juan Julián Merelo Guervós, Tom Browder, Elena Merelo, Antonio, Altai-man,
Itsuki Toyota, Samantha McVey, Trey Harris, Vadim Belman, Bart Wiegmans,
Ben Davies, Martin Barth, Mike Swierczek, Alastair Douglas,
Bruce Gray, Carl Masak, Christian Bartolomäus, Clifton Wood,
Fabrice Fontaine, Michael D. Stemle, Jr, Michal Jurosz, Moritz Lenz, cygx,
finanalyst, karl yerkes
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 (#131), is tentatively scheduled for 2019-04-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? ↩