Rakudo compiler, Release #196 (2026.08)

2026-08-21

On behalf of the Rakudo development team, I'm happy to announce the August 2026 release of Rakudo #196. 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.

New in 2026.08:

Much of this release's work went into the RakuAST frontend: several dozen fixes, largely found by testing modules from the ecosystem, that bring its behavior in line with the current frontend, plus a round of code generation improvements that make the code it compiles faster.

Additionally, generic types instantiated with native types now work correctly and are interned rather than duplicated, making some typed dispatch dramatically faster; asynchronous processes with merged output now report spawn failures on that stream and keep it open until both streams finish; loop controls now work in hyper/race; threads now report unhandled exceptions; and a handful of everyday fixes landed, including cmp comparing collections by value, min/max calling their key function only once per element, and MAIN accepting enum values that aren't in scope.

  • Improvements:

    • Switch from Ryu to Żmij for our double-to-ascii implementation
    • Update to mimalloc 3.4.4
    • Make explicitly-manage return the managed string
    • Refactor error X::Syntax::InfixInTermPosition
    • Call min/max key functions once per value
    • Increase MVM nursery size, MasterDuke++
    • Carry a declared native return without settled arguments
    • Make MAIN recognize enum values that are not in scope
    • Report unhandled exceptions from threads like any other
    • Box generic attributes, parameters and returns instantiated with native types
    • Instantiate generic container descriptors for is copy parameters
    • Intern curried roles created by generic instantiation
  • Fixes:

    • Don't count handler calls to test an operator wrap
    • Do not apply unspace to whitespace inside regexes
    • Deliver spawn failures to the merged output supply
    • Remove bin wrapper scripts on uninstall
    • Make .split and .trans honor capture markers
    • Make coercions check subset refinements on every value
    • Defer array parameterization for generic types
    • Carry native return types on compile-time resolved calls
    • Give a literal the native representation of its context
    • Bind generic class parameter types via the full binder
    • Fix lookbehind for patterns that cannot be flipped
    • Dispatch register fix for uints
    • Remove undocumented and deprecated "gethostname"
    • Make cmp compare collections by their values
    • Port two missed fixes to the 6.e Grammar
    • Complete the merged output supply on its last stream EOF
    • Make loop controls work in hyper and race iteration
    • Make Hash::Ordered.raku produce pairs in correct order
    • NQPClassHOW.roles fix
  • Additions:

    • %a/%A (C99 hex float) support

The following people contributed to this release:

Nick Logan, Elizabeth Mattijsen, Richard Hainsworth, Dan Kogai, Will Coleda, Daniel Green

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://rakufoundation.org/donate (put “Raku Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#197), is tentatively scheduled for 2026-09-26.

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 are welcome through the channels listed above.