Rakudo compiler, Release #148 (2021.07)
2021-07-24
On behalf of the Rakudo development team, I’m very happy to announce the July 2021 release of Rakudo #148. Rakudo is an implementation of the Raku1 language.
This release deprecates Proc.status method (use signal and exitcode instead), improves map performance, improves the cmp routine to support more things and includes some nice fixes. On top of that we now offer an MSI installer for monthly releases!
Detailed changes in 2021.07:
- Additions:
- Make
cmp
routine work properly onIterator
,Seq
,Uni
, native arrays and emptyList
s [efb3116a][f3ff0621][76714ca4][39ba8884] - Add the
ACCEPTS(Uni)
method onUni
candidate [6b6459f3] - Implement
last
andnext
with a value for6.e
language revision [402ea056][2542a0ac][a5d81353][0761d4b2][47ebc86c][a2faac4b] [e777fc4f][4f190875][21576423] - Properly support nearly all HTML5 entities in Pod
E<>
formatting code [910179d7] - Allow
Ctrl-C
to stop entry in REPL [cf7b4f18] - Add
⩶
and⩵
as Unicode synonyms for===
and==
[eab780f3]
- Make
- Deprecations:
- Deprecate the
status
method onProc
in place ofexitcode
andsignal
methods [249fdba2][2fd458cc]
- Deprecate the
- Build System:
- Tidy and improve cleanup rules [e771bd8a]
- Support creating an MSI installer [4e93b84e]
- Changes:
- Allow
add
method onIO::Path
to take multiple values (e.g."foo".IO.add(<bar baz>)
) [b4d33982]
- Allow
- Efficiency:
- Optimize calls to
map
[a8f144cc][38626c68] - Optimize loops without phasers for one and two arguments case [265888ce]
- Make for / map with 2+ arguments up to 2x as fast [4c417f31][4f5fb9e6][bfa6b295]
- Make
List cmp List
about 25% faster [50bd1717] - Reduce overhead of loops with phasers by at least 5% [5ecc8308][7a1b729b]
- Make the
grep(Callable)
method about 3% faster [52ffc125][bb09bbb8][71f6bada]
- Optimize calls to
- Fixes:
- Fix
rakuw.exe
to be a non-console app [57885f66] - Fix CURI probing and installation edge case issue on Windows [2839cef6][d668d992]
- Clean up sockets created by
IO::Socket::INET.new
on error [bee5c7af][271f17b0] - Fix freezes caused by concurrently produced iterators [8eae05b9][2d396ae7][6e66c2e5][24b0df8a]
- Fix
unimatch
for non-base properties [0a1256af]
- Fix
- Internal:
- Implement support for
moar::hllincludes
config variable [a96bfdc2][552f2810] - Fix binary release
set-env.*
scripts with space in path [a4a46e3c] Rakudo::Iterator::UnendingValue
no longer aPredictiveIterator
[917d674b]- Separate
Rakudo::Iterator::IntRange
into two classes [03aef65c] PredictiveIterator
provides ownpush-until-lazy
[7cf3927d]- Various internal fixes and improvements [5976e30e][bdc5092f][1bd0411c][f2959ad5][ddc7c9ff][9c69b7d5] [941349d0][eae82f09][2efe4302][7f5f60e8][22f78f4e][9bf1e1c2]
- Implement support for
The following people contributed to this release:
Elizabeth Mattijsen, Vadim Belman, Will "Coke" Coleda, Oleksandr Kyriukhin, Stefan Seifert, Daniel Green, Patrick Böker, raydiak, Juan Julián Merelo Guervós, Michal Bozon, Michael Ruigrok, Ben Davies, Christian Bartolomäus, Daniel Sockwell, Patrick Spek, Stoned Elipot, Jimmy Zhuo, Mustafa Aydın, Nguyễn Gia Phong, Nicholas Clark, Nick Logan, jubilatious1
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 2021 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 (#149), is tentatively scheduled for 2021-08-21.
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/ ↩