On behalf of the Rakudo development team, I’m very happy to announce the
November 2026 release of Rakudo #198. Rakudo is an implementation of
the Raku1 language.
The source tarball for this release is available from
https://rakudo.org/files/rakudo.
Precompiled archives will be available shortly.
In addition to the many fixes and additions, the 2026.11 release of Rakudo also contains a security fix
in the module installation process that would technically allow executable scripts to be installed outside
of the repository prefix (See: Security Advisory).
None of the module distributions in the Raku ecosystem were found to take advantage of issue.
Any future attempt to use this attack vector will fail starting with this Rakudo release.
Thanks to Erik Johansen (@uniejo) for reporting and providing the initial remedy and testing and collaboration of the included solution.
New in 2026.11:
-
Improvements:
- Add support for Unicode 18.0
- Make
.sorton lists consisting of justInt/Str/Numup to 2.1x as fast - Make
num cmp num/Num cmp Numup to 2x as fast - Make
.sort(&mapper)up to 60% faster if the mapped values are justInt/Str/Num - Make
List/Array.EXISTS-POS3 - 70% faster - Make
List.joinupto 40% faster - Make
List/Array.sumabout 14% faster - Make
List.tailabout 13% faster - Improve dispatch logic for lexically defined method
- Fully support
IO::Path.resolveon Windows as well + various fixes - Improve various error messages and warnings
- Bump Żmij to v1.2
-
Removals:
- Removed support for the JS backend
-
Additions:
- Add support for shaped, ragged arrays
- Implement multidimensional shaped hashes
- Add
IO::Path.resolve-insidemethod
-
Fixes:
- Fix issue with installing scripts outside of the repository prefix
- Fix issue with adding operators in the REPL
- Fix issue with
.race/.hyperin the REPL - Fix line number annotations in the remote debugger
- .clone with twiddles can now handle native unsigned integer attributes[9adc19c]
- Any.AT-POS(Int:D) wasn't returning a container when it should
- Make
ddproperly report about the current scope - Refuse a native value as a type for a hash
- Fix issue with
next/last label - Fix support for
shellon Windows MSYS2 - Fix quoting issue in
Proc::Asyncon Windows - Fix slurping of files of exactly 1MB
- Fix an issue in GC collection
- Fix issue in shell escaping
- Fix issue in rendering script name
- Fix issue with
:r,:gand positional capture in regex - Fix error reporting on
use libinside a package - Fix using coercive types in typed arrays / hashes
- Fix issue with semicolon separated argument lists
- Fix issue with parameter defaults consisting of code
- Fix issue with
constant &MAIN = ... - Fix issue with signature literals
- Fix issue with coercion
- Allow
sinkas aforprefix - Parse
Int(Str:D)andInt(Array[Int])as coercion types - Keep
EVALof a RakuAST node from running its MAIN - Instantiate a generic array or hash where it is declared
- Prime a Whatever under a meta-operator as any operator does
- Various vivification issues
- Various
EVALissues - Various
BEGINissues - Various object hash issues
- Various priming issues
- Various issues with loop structures
- Various scoping / thunking fixes
- Various "Useless use warning" fixes
- Various invocant marker fixes
- Various JIT and spesh fixes
- Various macro-like method fixes (
.VAR,.WHERE) - Various
enumfixes and improvements - Various heredoc fixes
- Various RakuDoc fixes
- Various smartmatch fixes
-
Internal:
- Various RakuAST speed/maintainability improvements
- Other core speed/maintainability improvements
- Fix named argument in helper script
- Optimized accesses to
$?CLASSin NQP
The following people contributed to this release:
Elizabeth Mattijsen, Nick Logan, Will Coleda, Matt D, Richard Hainsworth,
Daniel Green, Faye, Coleman McFarland, Marco Ladermann, 曾奥然, Brian Duggan,
Erik Johansen, finanalyst, habere-et-dispertire, jeevanabhi-r
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 2026 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, or join us
on IRC (#raku on Libera), or the Discord.
Additionally, we invite you to make a donation to The Raku Foundation
to sponsor Raku development: https://raku.foundation/Donations.
The next release of Rakudo (#199), is tentatively scheduled for 2026-12-26.
The development team appreciates feedback! If you’re using Rakudo, do See https://raku.org/ ↩
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback are welcome
through the channels listed above.
Footnotes