ruby-trunk-changes 2025-12-25

今日は Ruby 4.0.0 がリリースされました。

Ruby 4.0.0 リリース | Ruby

今日の master ブランチではこのリリースに向けて主にドキュメントの修正や一部の bundled gems の更新などがありました。

[17e4f28c27] Yusuke Endoh 2025-12-24 08:43:22 UTC

Ruby::Box のテストで早期 return で一部の assertion をスキップしていたのが残っていたので return 文を削除しています。

[f00abcfdc3] Yusuke Endoh 2025-12-24 08:43:37 UTC

ローカル変数 it がある時の暗黙のブロックパラメーター it の遮蔽をテストするテストメソッドで未使用のローカル変数の警告を抑制するために重複した代入を追加しています。

[8de2622c12] Nobuyoshi Nakada 2025-12-20 12:37:45 UTC

rubygems のテストで make の -j オプションを確認するために " -j" と空白も含めてチェックすることでファイルパスでたまたま一致してしまうのを防ぐようにしています。

[ba2f697219] "NARUSE, Yui" 2025-12-24 13:47:02 UTC

9b576cd6255aba97e5e2f55f4b09f00c7dd0e839 の --help で表示するリンクのバージョン番号の部分を組み立てる処理を関数に切り出しているのを revert しています。

[285e22edc5] "NARUSE, Yui" 2025-12-24 13:52:23 UTC

31ff07ed1eb05d01f7da3c017d542137a3db1e94 で --help で表示するヘルプメッセージにドキュメントサイトへの URL を埋め込んでたのを revert しています。バージョンを 4.0.0 に更新した時にバージョンを埋め込んでるところのテストがエラーになってしまうため、というのとそもそも --help の行数は切り詰めているので追加するなということみたいです。

[29ffc5d624] "NARUSE, Yui" 2025-12-24 14:07:35 UTC

ba2f6972193cdbd7c1e77e26212513e47926b115 で revert した 9b576cd6255aba97e5e2f55f4b09f00c7dd0e839ruby_api_version_name() という関数を切り出しているところは復活させています。 Ruby::Box の実装でも警告に含める URL を組み立てる時に利用しているため。

[479f8682c8] "NARUSE, Yui" 2025-12-24 14:39:23 UTC

285e22edc55522f3466357c4c27615a6015d84dc のリトライでコマンドラインオプションの --help でドキュメントサイトの URL を埋め込む部分だけ削除しています。

[96d876534e] Stan Lo 2025-12-24 18:54:39 UTC

gems/bundled_gems と NEWS の bundled gems のバージョンリストの rdoc のバージョンを 7.0.3 に更新/追記しています。

[d0193e9240] Soutaro Matsumoto 2025-12-24 16:40:57 UTC

gems/bundled_gems の test-unit のバージョンを 3.7.5 に更新しています。あれ、これ昨日明示的に 3.7.3 に戻したんじゃなかったかな。

[b92bc96541] Soutaro Matsumoto 2025-12-24 16:41:18 UTC

と、思ったら tool/rbs_skip_tests に rbs のテストの test-unit の更新でこけるもの? を skip する指定を追加しています。

[8caea03213] Soutaro Matsumoto 2025-12-24 17:13:09 UTC

b92bc9654120547f9dd261ce04dacdb17bf720e1 の続きで skip するテストの指定を tool/rbs_skip_tests_windows のほうに移動しています。 Windows でのみ失敗するみたいですね。

[26a1a522b7] Hiroshi SHIBATA 2025-12-24 20:47:34 UTC

NEWS の bundled gems のバージョンリストの test-unit の項目に 3.7.4, 3.7.5 を追記しています。

[8d097bc472] Hiroshi SHIBATA 2025-12-24 20:52:41 UTC

gems/bundled_gems と NEWS の bundled gems のバージョンリストの minitest のバージョンを 6.0.0 から 5.27.0 に戻しています。

[3e82da7232] Max Bernstein 2025-12-24 22:37:25 UTC

ZJIT において VM 命令 jump, branchif, leave などのジャンプ系命令はローカル変数の invalidate を行うかどうかの判定時に leaf な命令として扱って invalidate しないようにしています。 VM ではこれらの命令は割り込みチェックが行なわれるため任意の ruby コード実行が挟まる可能性があるのですが、ZJIT で生成したコードを実行する時には割り込みがあったらこれらの命令を実行せずに side-exit するように実装されているため、これらの命令を non-leaf として扱う必要がないみたいです。 https://github.com/ruby/ruby/pull/15694

[3c4cda10eb] Godfrey Chan 2025-12-25 00:06:50 UTC

NEWS の ZJIT の項目に ZJIT を有効にするようビルドするのに必要な Rust のバージョンについて追記しています。 https://github.com/ruby/ruby/pull/15728

[84edb8456e] Hiroshi SHIBATA 2025-12-25 02:47:08 UTC

8d097bc472fc66221dee23bb8f9e0dddac16db23 で minitest のバージョンを 5.27.0 に戻してたのを revert して再度 6.0.0 に更新しています。

[b908306f99] Nobuyoshi Nakada 2025-12-25 02:45:27 UTC

688c1f6c5e96dfa3e4f6b16c617545ded7c8c0b4 でドキュメント内の正規表現の機能についての語彙として "Pattern Match" という語を文法としての pattern match が導入されたのであいまいさ回避のため "Regular Expression" と変更してましたが、再度 "Matched Data" というタイトルに変更しています。

[d375bcc965] Nobuyoshi Nakada 2025-12-25 02:56:41 UTC

doc/language/globals.md の一般名詞としての "Data" がクラスへのクロスリファレンスにならないようにエスケープを追加しています。

[6a66129d6c] "NARUSE, Yui" 2025-12-25 06:31:50 UTC

リリースメールのドラフトを作成するツール tool/releng/gen-mail.rb で現在のリポジトリruby/www.ruby-lang.org であることを確認する時に remote のプロトコルまでチェックしていたのを緩めて組織/プロジェクト名までのチェックだけにしています。