Breaking News
NixOS release of Rakudo 2025.12 is live by habere-et-dispertire
State of the Onion 2025
Many thanks to all authors for the wonderful posts in this year’s Raku Advent. I hope that you enjoyed reading them as much as I did. Particular thanks to Elizabeth Mattijsen for her Raku 2025 Review, which I refer to as State of the Onion 2025 in homage to the Larry Wall annual reports of old.
Rakudo compiler, Release #188 (2025.12)
Kudos to the Core Dev team for the release of 2025.12 in time for Christmas. Here are the release notes…
On behalf of the Rakudo development team, I’m happy to announce the December 2025 release of Rakudo #188. Rakudo is an implementation of the Raku language.
New in 2025.12:
-
Improvements:
- Improve help message wrt –optimize [04a36dd1]
- Support Unicode 17 (up from 15) [4d62268a][1e66a50c]
- varargs logic updates [f4cb406b][159288a3]
-
Fixes:
- Cleanup for installing scripts on win [cd3b612c][635279c8]
- Normalize rakudo-home path in script wrappers [ee706010]
- Fixed several issues with loading of precompiled files from different threads [b85fb8c0][002dac33][040d145a]
- Fix memory issue in script runner [bed55b51][2d4a8c83]
- Make CORE.c setting build reproducibly [5154f2a1]
- Fix bug in one(…).defined [5a742811]
-
Additions:
- Add variable number of arguments (varargs) support to NativeCall [488783a7][61f09188][7a302e08][820a4a94]
- Add support for pseudo-terminals (PTY) [1d6aae34][029cb9fd][1dfd3b5e] [f347d084][e246fc23][fd386dbc][81a6e768]
-
RakuAST:
- fix issue with role composition [3e9f2527]
- allow “constant” to be localizable [6b47541e]
- fix subset type defaults in containers [bb4e88a2]
- allow ≔ (2254 COLON EQUALS)as a unicode alternative for := [41a1b3cd]
- introduce =restart RakuDoc directive [6f557f1e]
-
Internal:
- Some refactoring around leap seconds [3b80351f][6432643b]
The following people contributed to this release:
Patrick Böker, Elizabeth Mattijsen, Will Coleda, Faye, Eric Forste, librasteve, Geoffrey Broadwell, Timo Paulssen, ab5tract, David Simon Schultz, David Schultz, rir, Daniel Green
Weeklies
Weekly Challenge #354 is available for your enjoyment.
Raku Tips ‘n Tricks
One great thing about writing this newsletter is that I learn something new every time. This week, inspired by the recents improvements to the -MSIL compiler flag, is a deeper dive into the Raku internals than usual…
use MoarVM::SIL;
if SIL() -> $SIL {
LEAVE $SIL.exit;
# do testing, or just show the report:
say $SIL.report;
}
Run this code and you get the Spesh Inline Log report that the Raku MOARVM virtual machine creates as it specialises code – placing basic blocks (BBs) inline to speed up execution, like this:
Spesh Inline Log Report of Process #53115 (2025-12-29T17:56:23Z)
Executing: scum.raku
Successful inlines
--------------------------------------------------------------------------------
2x empty-string BB(5, 90 bytes) -> BB(9)
int-zero BB(6, 88 bytes) -> BB(11)
write_uint32_at BB(7, 80 bytes) -> add-internal BB(178)
signature BB(8, 46 bytes) -> sort_dispatchees BB(4)
types BB(10, 46 bytes) -> sort_dispatchees BB(4)
write_uint8 BB(10, 80 bytes) -> add-internal BB(178)
definednesses BB(11, 46 bytes) -> sort_dispatchees BB(4)
has-captures BB(14, 62 bytes) -> MATCH BB(140)
onlyname BB(17, 46 bytes) -> MATCH BB(140)
nominalizable BB(24, 18 bytes) -> !find_wrappee BB(80)
CAPS BB(24, 46 bytes) -> MATCH BB(140)
coercive BB(31, 18 bytes) -> BB(143)
...
Your contribution is welcome, please make a gist and share via the raku channel IRC or Discord.
New Problem Solving Issues
New Pull Requests
- using Failures: discussion and examples Eric Forste
- Output JITDUMP format with MVM_JIT_PERF_DUMP Timo Paulssen
- Fix building MoarVM with a system provided libuv Patrick Böker
- Simplify handing of RAKUDO_OPT environment variable Elizabeth Mattijsen
- Add :by support to Range.min/max/minmax Elizabeth Mattijsen
Core Developments
- Remove meaningless command-line argument "parsetrace" Elizabeth Mattijsen
- Make -MSIL cleaner by excluding any core BBs Elizabeth Mattijsen
- Test .from-posix versus .from-posix-nanos (#6035) rir
- Add infix + – / * candidates for mixed int / num (#6040) Elizabeth Mattijsen
Questions About Raku
- Does Raku have a counterpart to the Camel Book by Profoundly Nerdy
Comments About Raku
- Liz wrote a very long blog with a lot of information by Wendy van Dijk
- Programming languages that change how you think about programmin by Profoundly Nerdy
- The start of JITDUMP support for MoarVM by timo
- Go, Raku, and Swift all worked. R didn’t. by nicholaides
- love of complexity, which led to the disaster that was Raku by clay_shirky
New Raku Modules
- Graph::RandomMaze, Jupyter::Converter by Anton Antonov
Updated Raku Modules
- GnomeTools by Marcel Timmerman
- Sparky by Alexey Melezhik
- Raylib::Bindings, Raygui::Bindings by zef:vushu
- Chess by github:grondilu
- String::Utils by Elizabeth Mattijsen
- YAMLScript by Ingy döt Net
- Air, Air::Examples by Steve Roe
- CSS::Writer, CSS::Specification, HTML::Canvas, CSS::Font::Resources, CSS::Module by David Warring
- App::Backup, Terminal::Gauge by Francis Grizzly Smit
- Text::MiscUtils, Terminal::Widgets by Geoffrey Broadwell
- Math::NumberTheory, Graph, Markdown::Grammar, Data::Translators by Anton Antonov
- AI::Gator, Terminal::UI, App::samaki by Brian Duggan
Winding down
On, 2025.12 – particularly noteworthy are the upgrade to Unicode 17 and the support for NativeCall varargs. Very nice!
This is the last of 2025. I hope that the year has been good to you. Despite our polarised world, I take some solace that we can all gather around and work together on our -Ofun project.
Please keep staying safe and healthy, and keep up the good work! Even after week 49 of hopefully only 209.
Meanwhile, still: Слава Україні! Героям слава!
~librasteve
