以下の内容はhttps://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20251029より取得しました。


ruby-trunk-changes 2025-10-29

今日は主にリリースを前にしての default gems のバージョン更新や IO#wait_readable などのメソッドが IO#ungetc と併用できるようにする修正、ZJIT の最適化などがありました。

[b0825d78f3] Hiroshi SHIBATA 2025-10-28 11:27:53 UTC

tool/rbinstall.rb で rubygems の削除された Gem::Installer#install_with_default_gem に依存しているところがあったので独自に実装するようにしています。

[3624031bb5] Max Bernstein 2025-10-25 01:19:40 UTC

ZJIT で Kernel#nil? および NilClass#nil? を定数としてインライン展開する最適化を追加しています。

[7425520415] Max Bernstein 2025-10-25 01:22:53 UTC

ZJIT の最適化のためのメソッドの annotation で String#to_s の型 annotation が重複していた? ので削除しています。

[2a6e5d7d94] Max Bernstein 2025-10-25 01:29:15 UTC

ZJIT の Rust 実装で annotation で型の指定とインライン化のための指定を同時にできるようにしています。

[e973baa837] Max Bernstein 2025-10-25 02:06:20 UTC

ZJIT で BasicObject#== のインライン化のための annotation を追加して、関数呼び出しではなくて直接実行コード生成するように最適化しています。

[c2bef01b66] Max Bernstein 2025-10-25 02:07:04 UTC

ZJIT で Kernel#=== メソッドも直接実行コードを生成するように最適化を実装しています。

[2e2f31c836] Max Bernstein 2025-10-25 02:33:57 UTC

ZJIT で BasicObject#!= メソッドのインライン最適化を実装しています。

[7a736545e9] Aiden Fox Ivey 2025-10-28 15:44:25 UTC

ZJIT で Array#pop メソッドで直接 rb_ary_pop() を呼び出す最適化を実装しています。 https://github.com/Shopify/ruby/issues/814 https://github.com/ruby/ruby/pull/14933

[ec1b9bbd58] Takashi Kokubun 2025-10-28 16:24:04 UTC

7a736545e948ec481ba2b2c46d78470194b624ba で追加した ZJIT のテストで profiling による影響を確認するため? Array#pop を含むメソッドを 2回呼ぶようにしています。

[b66c57be18] Takashi Kokubun 2025-10-28 08:51:56 UTC

ZJIT の x86_64 向けコード生成で不正なオペランドでエラーを発生させる時にエラーメッセージにオペランドの内容を埋め込むようにしています。

[9b3df50d90] Takashi Kokubun 2025-10-28 08:53:32 UTC

ZJIT の Rust 実装で ALLOC_REGS の要素が奇数個だと異常終了してたのを許容するようにしています。

[b463c1a904] Takashi Kokubun 2025-10-28 09:00:33 UTC

ZJIT でメソッド呼び出し時にレジスタをマシンスタックに退避する最適化を実装するための準備として gen_push_opnds() 関数でスタック上のオフセットを決定するのをやめています。

[2c90da465a] Max Bernstein 2025-10-28 14:36:37 UTC

ZJIT で --zjit-stats で表示する統計情報カウンタに型に関する guard にひっかかった回数のカウンタを追加しています。

[a9d42f7c4b] Max Bernstein 2025-10-28 17:04:37 UTC

2c90da465a7ff601007b324f5ab4959ef6277a89 で追加した ZJIT の統計情報の guard_type_count の表示対応。

[882e167768] Andrew Konchin 2025-10-28 15:25:50 UTC

spec/ruby に upstream から最新版をマージしています。

[599de290a0] Takashi Kokubun 2025-10-28 20:14:47 UTC

YJIT と ZJIT の Rust 実装の小さな修正。

[d0c7234bc7] Takashi Kokubun 2025-10-28 20:18:05 UTC

ZJIT の低レイヤの中間表現 LIR の ParallelMov という命令の書き込み先としてメモリをサポートする拡張をしています。 https://github.com/ruby/ruby/pull/14975

[afb0d43181] Takashi Kokubun 2025-10-28 20:47:15 UTC

GitHub Actions で ZJIT を有効にしたテストの実行時に --seed オプションを指定して再現性を保つようにしていたのを削除しています。 https://github.com/ruby/ruby/pull/14976

[5a14999d0d] "dependabot[bot]" 2025-10-28 12:21:26 UTC

GitHub Actions の workflows で利用している actions/upload-artifact のバージョンを更新しています。

[8dc276f3e1] "dependabot[bot]" 2025-10-28 12:21:57 UTC

Windows 版でビルドのために vcpkg でサードパーティーライブラリをインストールするための vcpkg.json で vcpkg のバージョン指定の commit hash を更新しています。

[d6d095e2fc] Takashi Kokubun 2025-10-28 23:06:38 UTC

ZJIT の Rust 実装の定数名の改名するリファクタリング

[4925bec65d] Peter Zhu 2025-10-26 19:23:05 UTC

String#encode のコールバックで例外が発生した時のメモリリークについてのテストで呼び出すコールバックメソッドを引数を受け取るように定義しなおしています。テストには支障なかったかもしれないですが意図と違う例外が発生していたみたいです。

[9f4a76ff51] Peter Zhu 2025-10-26 19:24:44 UTC

4925bec65d17b1330d6b39f0c5a3ffe7ed9abde2 と同様に String#encode のテストで独自の例外クラスを定義して使うことで目的の例外が発生していることを一応チェックするようにしています。

[80be97e4a2] André Luiz Tiago Soares 2025-10-28 23:48:38 UTC

ZJIT でデバッグビルド時に C 実装のメソッドの関数呼び出し時にわざと cfp->pc に不正な値を書き込んでおいて誤って参照された時にすぐ異常終了するようにしてデバッグしやすくしています。

[f8a333ae19] Max Bernstein 2025-10-29 00:11:27 UTC

ZJIT で中間表現 HIR のオペランドの型チェックを強化しています。 https://github.com/ruby/ruby/pull/14978

[c4e090def1] Nobuyoshi Nakada 2025-10-29 01:06:02 UTC

tool/commit-email.rb のテストである tool/test/test_commit_email.rb で teardown にダミーの sendmail コマンド用のファイルの後始末を追加しています。

[d17ce4bd05] Nobuyoshi Nakada 2025-10-29 01:07:32 UTC

Marhshal.dump の rdoc 用コメントで dump できないクラスの例として古い T_DATA 型オブジェクトのことをさしていたほうの Data クラスが上げられていたので削除しています。今は Struct の一種になっているので dump できそうですね。 [ruby-core:123569] [Bug #21652]

[e4219e2742] Luke Gruber 2025-10-29 01:24:02 UTC

require のテストで一時ファイルを作成してその参照を保持していなかったので GC されて途中で削除される可能性があったので参照を残すように修正しています。

[7bc7246956] Astra 2025-10-29 01:47:11 UTC

doc/syntax/refinements.rdoc のドキュメントから Refinements と Module#include, #prepend の関係について記述したところを削除しています。これは実態にあってなかったのかな?

[e1a0bcde76] Hiroshi SHIBATA 2025-10-29 05:12:22 UTC

doc/maintainers.md の bundled gems に rubygems.org の URL も記載するようにしています。

[103e91a063] Nobuyoshi Nakada 2025-10-29 04:56:58 UTC

rubyspec の Symbol#inspect のテストで ruby 1.8 以前の古い挙動も許容するようにしてたところを削除しています。

[f8d7482d02] Nobuyoshi Nakada 2025-10-29 05:21:51 UTC

rubyspec の Symbol#inspect のテストで UTF-8 の文字を \uXXXX の記法を使うようにしています。

[4f223b72a9] Hiroshi SHIBATA 2025-10-29 06:29:10 UTC

拡張ライブラリ zlib のバージョンを 3.2.2 に更新しています。

[582475b317] git 2025-10-29 06:31:45 UTC

NEWS の default gems のバージョンリストに zlib の項目を追記しています。

[2dcf1f74a4] Hiroshi SHIBATA 2025-10-29 06:49:48 UTC

標準添付ライブラリ timeout のバージョンを 0.4.4 に更新しています。

[bb5f5a5293] git 2025-10-29 06:58:01 UTC

NEWS の default gems のバージョンリストに timeout の項目を追記しています。

[337c4bc163] Hiroshi SHIBATA 2025-10-29 07:00:40 UTC

拡張ライブラリ date のバージョンを 3.5.0 に更新しています。

[b8f7c18aa8] git 2025-10-29 07:10:08 UTC

NEWS の default gems のバージョンリストに date の項目を追記しています。

[8f0b9b27ce] Hiroshi SHIBATA 2025-10-29 07:34:26 UTC

標準添付ライブラリ fileutils のバージョンを 1.8.0 に更新しています。

[b55e91156c] git 2025-10-29 07:36:10 UTC

NEWS の default gems のバージョンリストに fileutils の項目を追記しています。

[6e618a2c79] Hiroshi SHIBATA 2025-10-29 07:48:50 UTC

doc/maintainers.md に repl_type_completor の項目を追記しています。

[12350eb9e0] Nobuyoshi Nakada 2025-10-28 12:55:18 UTC

IO#wait_readable や IO#wait_priority などのメソッドや拡張ライブラリ io/wait の代替実装や IO#nread なども、IO#ungetc により書き戻された文字列をサポートするようにしています。従来は IO#ungetc の書き戻しがあると byte 読み込みのオペレーションとしてチェックが走り IOError 例外が発生するようになっていました。 [ruby-core:123389] [Bug #21625]

[0f62908372] Nobuyoshi Nakada 2025-10-29 09:12:32 UTC

拡張ライブラリ date のテストで Time に nsec や subsec メソッドがあるかどうかのチェックに Time.allocate でインスタンスを作って respond_to? でチェックしていたのを method_defined? でクラスから直接確認するようにしています。

[e49e0bb6c9] Nobuyoshi Nakada 2025-10-29 09:40:25 UTC

0f629083722a09f0b5a75040ca0511e71eb6032a の再修正で date のテストでそもそも Time#nsec や Time#subsec の存在確認がもう不要なのでチェック自体を削除しています。

[606abf2fab] Nobuyoshi Nakada 2025-10-29 10:41:51 UTC

Namespace のテストで Namespace ごとの拡張ライブラリのために作成される一時ファイルの後始末を追加しています。

[2096ca8030] Nobuyoshi Nakada 2025-10-22 13:49:59 UTC

Windows 版のでの FILETIME という構造体の計算に共用体を使っていたのをやめる最適化。

[c90184828d] Nobuyoshi Nakada 2025-10-22 13:54:43 UTC

2096ca8030f506b2f37d0c41796c5318e8a13126 の続きで win32/win32.c で FILETIME の操作用の関数から定数をマクロとして切り出しています。

[cee4a46c96] Nobuyoshi Nakada 2025-10-29 11:35:03 UTC

606abf2faba96e301e8f7445fc9fcc272cbf6b9e の続きで Namespace のテストで拡張ライブラリの Namespace ごとの一時ファイルを作成するための一時ディレクトリの指定を元から指定されている環境変数 TMP や TMPDIR などのシステムもしくは実行元で指定された場所をそのまま使うようにしています。




以上の内容はhttps://ruby-trunk-changes.hatenablog.com/entry/ruby_trunk_changes_20251029より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14