mutsu 0.26.1 released

mutsu 0.26.1 が出た。なんで.1かというと、リリースに失敗したからもう一回タグ打ったというやつ。

0.24.0 から一ヶ月ちょっと、0.26.1 が出た。0.25.0 は version だけ上げてタグを打ち忘れていたので、欠番ということにしてある。。

この間にマージされた PR は 3,700 本くらい。ほとんどは AI が書いているわけですけども、方向を決めるのは自分の仕事なわけで、今回は大きなキャンペーンを二つ回した。AIってやつは、明示的に指示しなければ、新しいことをやらないで、細かいことを淡々と続けがちですからねぇ。。

env の件

一つ目は env。mutsu は関数を呼ぶたびに、呼び出し元の環境をそのまま親にした Env を作っていた。名前は「呼んだ側」をたどって探すわけで、rakudo の「字句的に外側」をたどる動きとは違う。 やっているのは地味な話で、メソッド呼び出しで書き込みがなければ Env を作らない、のような積み重ね。速くなるのは副産物で、本丸は正しさ。

RakuAST の件

二つ目は RakuAST。rakudo が 2026.09 で RakuAST を既定のフロントエンドにしたので、mutsu も同じ形に寄せている。パーサーが型付きの RakuAST を作り、それを内部の AST に落とす。mutsuでめこれがデフォルトになった。 .AST の出力は、roast の 10,407 文のうち 9,124 文が rakudo と同一。EVAL($ast) が通るテストファイルは 8,722 本中 7,932 本(91%)。通らない 786 本は、これまで見えていなかった本物のバグなので、原因別に issue にしている。

エコシステムのカバー率

zef のモジュール 1,300 個ほどについて、各モジュール自身のテストを rakudo と mutsu の両方で走らせて比べている。 モジュール単位で「rakudo と同じ結果」になった割合が、0.24.0 のときは 69%、今日の時点で 91.6%(1,196 / 1,305)。ファイル単位は 94.4%、assertion 単位は 98.4%。roast も 1,454 本中 1,428 本が通る。 古いコンパイラの内部 API ($*W とか)に依存したモジュールは、rakudo でも動かないので、対象から外した。

総括

おおむね順調か。現段階では、ecosystem を動かしてみてバグだししてるからチケットが減らないのだが、エコシステム部分についてはゴールが見えてきている感じある。

パフォーマンスについては、正規表現周り以外は rakudoより速いみたい。まだまだ高速化の余地はありそう。

Published: 2026-11-03(Tue) 09:25