The weekly watch on fresh Raku code.
Every Monday, unattended, Raku++ is measured
against what the Raku world published that week — Weekly Challenge solutions, new ecosystem
releases, and the raku-corpus golden battery —
with Rakudo as both control and speed reference.
Updated 2026-09-07 at rakupp 1c559dd0c.
| where | program | last week → this week | what differs |
|---|---|---|---|
| raku-corpus | ./books/raku-one-liners/12-renaming-files.raku | byte-identical → exit status differs | exit 1, reference 0stderr: Index out of range. Is: -1, should be in 0..^Inf |
| raku-corpus | ./snippets/perl6-play/1/bool.pl | byte-identical → output differs | line 4 — reference False, rakupp True |
| raku-corpus | ./snippets/raku-test/012/any-2.raku | byte-identical → output and exit status differ | line 1 — reference There are negative ints, rakupp (no more output)exit 1, reference 0stderr: ===SORRY!=== Parse error at line 6: Unable to parse expression in quote words; couldn't find fin… |
Fixed since 2026-08-31: ./challenges/advent-of-code/2020/04/04-2.raku (output differs), ./programs/languages-in-raku/stack-based/stacky.raku (exit status differs), ./snippets/perl6-play/1/bare-sigil.pl (output differs), ./snippets/perl6tests/parallel/channel4.pl (output differs), ./snippets/perl6tests/regex/20.pl (output differs) — they match the reference again.
New solutions since the last run, the open set re-run, and a rotating 10% of past passes.
Hover a chart for that week's numbers; click a name in the legend to switch its line off.
1,800-odd curated programs against committed Rakudo reference outputs. This line should hold or climb; any dip names the file that broke, above.
Above 1× means rakupp is faster. Measured back-to-back on the same runner each week; dashed lines mark a Rakudo release or toolchain change. Ratios are the series — absolute times from shared CI hardware are stored in the ledger but not headlined.
| kernel | interp | native | rakudo | speedup-interp | speedup-native | flags |
|---|---|---|---|---|---|---|
| startup | 4.5ms | 3.8ms | – | – | – | |
| loopsum | 171.3ms | 24.0ms | – | – | – | |
| fib | 722.1ms | 104.3ms | – | – | – | |
| strcat | 15.8ms | 5.1ms | – | – | – | |
| arrayops | 109.8ms | 110.7ms | – | – | – | |
| arraypush | 332.2ms | 127.1ms | – | – | – | |
| sortnums | 58.3ms | 32.6ms | – | – | – | |
| sortby | 71.3ms | 46.1ms | – | – | – | |
| regex | 103.3ms | 57.7ms | – | – | – | |
| hash | 58.4ms | 14.1ms | – | – | – | |
| hashfill | 329.3ms | 134.2ms | – | – | – | 143.7 |
| bigint | 12.3ms | 10.7ms | – | – | – | |
| streq | 652.4ms | 41.7ms | – | – | – | |
| textsplit | 132.9ms | 82.5ms | – | – | – | 20.6 |
| rats | 452.9ms | 222.2ms | – | – | – | |
| objects | 953.6ms | 635.0ms | – | – | – |
Every distribution the ecosystem published since the last run, installed and run against its own test suite by rakupp test — with Rakudo as the control for anything that failed.
| new | pass | self-fail | dep-fail | timeout | other | upstream-broken | ours |
|---|---|---|---|---|---|---|---|
| 23 | 7 | 8 | 8 | 0 | 0 | 3 | 5 |
rakupp test, and the distribution’s own test suite came out green.zef install under Rakudo: if that fails too, the distribution is broken on its own account and is out of scope here.The control runs over self-fail, build-fail, timeout and other only — a dep-fail is charged to the dependency, and shows up under its own name in a later week.
| distribution | verdict | first error |
|---|---|---|
Lingua::Stem::Portuguese | self-fail | FAILED: 01-stem-word.rakutest | Undefined routine 'ns' |
Lingua::Stem::Portuguese | self-fail | FAILED: 01-stem-word.rakutest | Undefined routine 'ns' |
CSS::Minifier | self-fail | FAILED: 01-plugins.rakutest | Cannot resolve caller uc(Any:U); the invocant is a type object, not an instance |
LLM::Resources | dep-fail (Data::Importers) | FAILED: 03-harwell-boeing-roundtrip.rakutest | # Failed test 'g05.rua round-trip is byte-identical' at t/03-harwell-boeing-roundtrip.rakutest line 16 |
BSON | self-fail | FAILED: Document-all-types.rakutest | ===SORRY!=== Parse error at line 182: Error while compiling module BSON::Decode (line 182): expected ] (got ';') |
LLM::Graph | dep-fail (LLM::Functions) | FAILED: 04-LLM-chats.rakutest | # Failed test at t/04-LLM-chats.rakutest line 50 |
ORM::ActiveRecord | dep-fail (NativeLibs) | FAILED: 02-cannon-name.t | # Failed test 'In CWD' at t/02-cannon-name.t line 19 |
Sitemap | dep-fail (IO::Socket::Async::SSL) | FAILED: client-server.rakutest | The socket was closed during negotiation |
LLM::Graph | dep-fail (LLM::Functions) | FAILED: 04-LLM-chats.rakutest | # Failed test at t/04-LLM-chats.rakutest line 50 |
NotoFonts-OT | dep-fail (OO::Monitors) | FAILED: BUILD.rakutest | Variable '$cond' is not declared |
Syndicate | self-fail | FAILED: 01-roundtrip.rakutest | No such method 'new' for invocant of type 'FeedFormat' |
Syndicate | self-fail | FAILED: 01-roundtrip.rakutest | No such method 'new' for invocant of type 'FeedFormat' |
Dawa | dep-fail (LibraryCheck) | FAILED: 010-basic.t | # Failed test 'not ok for a bogus one' at t/010-basic.t line 11 |
CellularAutomata | self-fail | FAILED: 03-scan-1D.rakutest | ===SORRY!=== Parse error at line 143: Error while compiling module CellularAutomata::Scan (line 143): unexpected operato… |
Syndicate | self-fail | FAILED: 01-roundtrip.rakutest | No such method 'new' for invocant of type 'FeedFormat' |
Draku | dep-fail (Log::Async) | FAILED: 12-context.rakutest | # Failed test 'Got context' at t/12-context.rakutest line 23 |
Mechanically grouped by normalized error signature; ranked by files affected.
| files | signature |
|---|---|
| 9 | (output differs) |
| 4 | # Failed test '…' at <file> line N |
| 4 | # Failed test at <file> line N |
| 1 | # Failed test '$(\ |
| 1 | # Failed test '…'[this] [this]'), a common problem <- \ |
| 1 | Cannot convert string to number: '…' is not a valid base-N number |