Rakudo compiler, Release #155 (2022.04)
2022-04-24
Announce: Rakudo compiler, Release #155 (2022.04)
On behalf of the Rakudo development team, I’m very happy to announce the April 2022 release of Rakudo #155. Rakudo is an implementation of the Raku1 language.
The source tarball for this release is available from https://rakudo.org/files/rakudo. Pre-compiled archives will be available shortly.
New in 2022.04:
Changes:
- Improve error when
make
encounters non-Match $/ (#4834) [2da9eb22] [540c7365]
- Improve error when
Additions:
- Make previous values in REPL accessible with
$*N
[190e303d][1292357d] - Add
INSIDE_EMACS
environment variable for better embedding of the REPL inside Emacs [76035de0] - Add an
IO::Path.dir-with-entries
method, returning aBool
indicating if the directory has any entries (without danger of resource leaking) [8a1e7788] - Implement
will complain
trait [a203a5af][2c2c5306][beeb9ffc][2baf8bc6]
- Make previous values in REPL accessible with
Removals:
- Remove the $?COMPILATION-ID constant as it was not documented and not tested [b2a8bfc9]
Efficiency:
- Make IO::Path.mkdir 2x as fast if dir already exists [57a65562]
- Shortcut many methods on
Empty
(returningEmpty
without needing to set up an iterator and aSeq
[1b4977c6][8f5a07d0][943c443c] [1afc3f4f][78ca49eb] - Some optimizations for regex substitution [79cd9d97][55c833ad] [72f2f400][4503faac]
- Micro-optimizations to make compilation of Raku code faster [3b692b1b][9a860ca8][9b07b66c][f6d9e90f][6736bd74][2555660b][f00fa82a] [a0303b18][0cb12fee][c74b1275][7c1e80c6][3187922b][5dfa9c4e][c891075f] [91185079][0fe48931]
- Micro-optimizations to make module loading faster [f19d36b3][412c4625] [ec20a3f0][173a75b0][97ad3f79][04c8bd6b][55685572][397145a6][83bf9d26] [1c73cb8d][fc5ee2b0][1fd2d843]
- Micro-optimize creation of
IO::Special
objects a bit (3x at each Raku startup) [3e217a0d]
Fixes:
- Add mention of 'sub' potentially missing [a56d239d]
- Revert "An object will never work if native is expected" compile-time error [94d4820a]
- Only assign to caller's
$/
during a regex substitution if it's writable [aed27864] - Make sure we serialize exports [f4cba21c]
- Ignore any dot files in "dist" directory [07b4422b]
- Make
*CWD
initialization non-lazy, it is almost always needed and making it non-lazy prevents a race-condition [e9575349] - Don't initialize PROCESS:: variables more than once [e7143e00]
- Protect setting loading with a lock [5dd82a62][07d3030a][d53d2da9]
- Don't treat
!=
as a meta-op of==
[f3b1e95d][12dd09e1] - Fix race condition in Rakudo::Supply::BlockState [5658f4da]
- Fix for a lexical being localized while used in a nested scope [19c6c52f]
- Fix typed named argument arrays not reporting type correctly [dcb0ac09]
- Make
uniprop
/uniprops
thread safe [2bd2ca0f] - Correctly check for writeable containers [90d876a3]
Internal:
The following people contributed to this release:
Elizabeth Mattijsen, Will "Coke" Coleda, Altai-man, Daniel Green, JJ Merelo, Vadim Belman, Justin DeVuyst, Stefan Seifert, Patrick Böker, Jonathan Worthington, Nick Logan, Daniel Sockwell, Will Coleda, Antonio Juan Querol, Christian Bartolomäus, Jan-Olof Hendig, Luca Ferrari, Richard Hainsworth, raiph, rbt
This release implements 6.c and 6.d versions of the Raku 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 2022 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.
If you would like to contribute or get more information, visit https://raku.org, https://rakudo.org/community, ask on the [email protected] mailing list, or ask on IRC #raku on Libera.
Additionally, we invite you to make a donation to The Perl Foundation to sponsor Raku development: https://donate.perlfoundation.org/ (put “Raku Core Development Fund” in the ‘Purpose’ text field)
The next release of Rakudo (#156), is tentatively scheduled for 2022-05-27.
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.
See https://raku.org/ ↩