ruby-trunk-changes 2026-02-01

今日は主にヒープのメモリ利用情報の管理をより正確にするために SIZE_FREE() などのサイズ指定での free 関数を利用する変更や、File.basename の第2引数のチェック強化などがありました。

[4ea3d8c773] Steven Webb 2026-01-31 14:02:13 UTC

doc/jit/zjit.md に ZJIT の中間表現 HIR をダンプするオプション --zjit-dump-hir について追記しています。 https://github.com/ruby/ruby/pull/16021

[0b4b30af9e] Jean Boussier 2026-01-31 06:21:17 UTC

cont.c の xfree() などを SIZED_FREE() や SIZED_FREE_N() を使うように変更しています。

[9cc71cb909] Jean Boussier 2026-01-31 10:02:17 UTC

VM や main Thread、 main Ractor のメモリ確保を ruby_mimmalloc() で行なっていたのを static な変数を利用してヒープからメモリ確保するのを避けるようにしています。

[50e987bdca] Jean Boussier 2026-01-31 12:00:06 UTC

cont.c の xfree() などを SIZED_FREE() や SIZED_FREE_N() を使うように変更しています。

[250fdd13c7] Jean Boussier 2026-01-31 13:14:28 UTC

iseq.c の xfree() などを SIZED_FREE() や SIZED_FREE_N() を使うように変更しています。

[4292aed14b] Jean Boussier 2026-01-31 15:44:42 UTC

string.c の xfree() などを SIZED_FREE() や SIZED_FREE_N() を使うように変更しています。

[4c1120b5fd] Jean Boussier 2026-01-31 15:54:34 UTC

ractor.c の xfree() などを SIZED_FREE() や SIZED_FREE_N() を使うように変更しています。

[66fdb15abf] Jean Boussier 2026-01-31 17:59:22 UTC

Thread::Queue および Thread::SizedQueue の解放処理時に配列バッファのみ解放して構造体のメモリを解放していなかったメモリリークを修正しています。

[6019cc9dc0] BurdetteLamar 2026-01-31 02:17:17 UTC

File クラスの rdoc 用コメントのリンク切れの修正。

[64f35adaad] BurdetteLamar 2026-01-31 02:27:35 UTC

Hash クラスの rdoc 用コメントのリンク切れ修正。

[75d9c4c697] BurdetteLamar 2026-01-31 02:35:02 UTC

IO クラスの rdoc 用コメントのリンク切れ修正。

[0796c9a3ad] Burdette Lamar 2026-01-31 22:48:49 UTC

IO の rdoc 用コメントの標準入力についての指定の不要なリンク? を削除しています。 https://github.com/ruby/ruby/pull/16014

[14ccd15156] Peter Zhu 2026-01-31 22:48:09 UTC

String#-@ の rdoc 用コメントやその他 doc/ 配下のドキュメントのリンク切れの修正。

[d90f78b567] Nobuyoshi Nakada 2026-02-01 02:33:45 UTC

file.c のファイルパスを処理するコードで文字列の終端を終端文字に依存したチェックから末尾のポインタとの比較によるチェックに変更してバッファオーバーランをしないように防御的な実装にしています。

[3b2ad4b741] Nobuyoshi Nakada 2026-02-01 08:37:33 UTC

File.basename メソッドの引数で第2引数の ext が指定されてた時に NUL 文字が含まれていないかなどのチェックを常に行うようにしています。

[3fcd36ff5d] Jean Boussier 2026-01-31 17:29:39 UTC

memory_view.c の xfree() を SIZED_FREE_N() を使うように変更しています。

[b39c1af417] Jean Boussier 2026-01-31 18:08:47 UTC

cont.c の xfree() や free() を SIZED_FREE_N() や ruby_mimfree() を使うように変更しています。またこのために構造体 struct cont_saved_vm_stack に確保サイズを記録するためのメンバーを追加しています。

[dc6cdb1759] Jean Boussier 2026-01-31 19:57:10 UTC

proc.c の xfree() を SIZED_FREE() を使うように変更しています。

[d328412da8] Jean Boussier 2026-01-31 17:41:55 UTC

Hash および Set クラスのメモリ管理で xfree() などを SIZED_FREE() を使うように変更しています。

[44b5971e47] Jean Boussier 2026-02-01 09:05:21 UTC

string.c および marshal.c でもヒープメモリ解放に SIZED_FREE() や SIZED_FREE_N() を使うように変更しています。

[9fa0cdc923] Jean Boussier 2026-02-01 09:10:44 UTC

vm_method.c の xfree() などを ruby_sized_xfree() や SIZED_FREE() を使うように変更しています。

[ecb28ce3ab] Jean Boussier 2026-02-01 09:26:00 UTC

prism_compile.c の xfree() などを SIZED_FREE() や SIZED_FREE_N() を使うように変更しています。

[4d5cd81165] Jean Boussier 2026-02-01 09:35:33 UTC

ractor_sync.c の xfree() などを SIZED_FREE() を使うように変更しています。

[1276c233ea] Jean Boussier 2026-01-31 21:57:35 UTC

thread.c の一部の xfree() などを ruby_sized_xfree() や SIZED_FREE() を使うように変更しています。