ruby-trunk-changes 2026-01-20

今日は主に File.dirname や File.extname の最適化などがありました。

[e85fd7c878] Benoit Daloze 2025-12-14 14:07:21 UTC

prism の node のドキュメントを修正。

[ae5efb55d1] Benoit Daloze 2025-12-14 20:36:45 UTC

prism の Prism::Node#tunnel の最適化。

[859920dfd2] Benoit Daloze 2025-12-15 09:46:24 UTC

prism の Prism::Source#line_to_byte_offset というメソッドの追加するリファクタリング

[6f890976e0] Alan Wu 2026-01-19 20:17:11 UTC

YJIT および ZJIT の arm64 アーキテクチャ向けの Rust 実装のコメントでスタックのアドレスの伸びる方向が間違ってたところを修正しています。

[c939330b7a] Peter Zhu 2026-01-18 22:26:24 UTC

拡張ライブラリ coverage の rdoc 用コメントで一般名詞としての Coverage をクロスリファレンス化を抑制するためのバックスラッシュによるエスケープを追加しています。

[16adb9303f] Earlopain 2026-01-19 21:31:13 UTC

標準添付ライブラリとしての prism の ripper 互換対応の State の memo 化による最適化。

[fa910e2bba] Peter Zhu 2026-01-19 02:09:21 UTC

GC の mmtk 実装のオブジェクトの解放処理で slot をゼロ埋めするデバッグ用の処理を MMTK_DEBUG マクロでデバッグ時のみ実行するようにしています。デバッグ完了したみたいですね。

[826dbcfb2b] Alan Wu 2026-01-17 03:39:36 UTC

ZJIT の arm64 アーキテクチャで不要な nop 命令を削除する最適化。

[27bb1623cd] Jean Boussier 2026-01-19 06:32:09 UTC

File.dirname の実装の最適化で Encoding のチェックに対象が文字列オブジェクトであるという前提を置いてチェックを省いた rb_str_enc_get() という関数を導入したり重複したチェックを削ったりしています。

[11d29d32d2] Jean Boussier 2026-01-19 07:43:57 UTC

File.dirname で文字列の Encoding によって可能なら検索時のインクリメントをバイト単位にする最適化やファイルパスのデリミタを後ろから検索する関数の strrdirsep() を inline 関数として定義する最適化。

[240a58ecc6] Jean Boussier 2026-01-19 07:52:57 UTC

file.c の skiproot() という関数の第3引数 enc が未使用になってたので削除しています。

[990cf1286a] Jean Boussier 2026-01-19 07:56:41 UTC

11d29d32d270d2a98642858fdca25a5272563995 の再修正で Encoding によってカーソルのインクリメントを分岐していたのを Inc() というマクロ自体に分岐を取り込むリファクタリング

[2d10f15118] Jean Boussier 2026-01-19 08:03:42 UTC

11d29d32d270d2a98642858fdca25a5272563995 で file.c に導入した strrdirsep() という inline 関数を File.dirname の第2引数に 2以上の数を指定した時にも使うように最適化しています。

[6fb50434e3] Jean Boussier 2026-01-19 16:04:15 UTC

file.c で Next() や Inc() マクロの引数の enc に US-ASCII などの最適化対象の時に NULL を渡すようにしてたのをやめています。 rb_encoding* が nonnull として定義されていて(?) enc での分岐がコンパイラの最適化によって消されてしまうことがあったようです。

[53fe9933fd] Jean Boussier 2026-01-20 07:56:17 UTC

File.extname の実装でも Encoding の前提を置いて ASCII-compatible な場合にデリミタの検索などを高速化する最適化を適用しています。

[35a7b5159f] Benoit Daloze 2026-01-20 07:53:39 UTC

標準添付ライブラリとしての prism の ripper 互換性の改善。

[58f1127b51] Hiroshi SHIBATA 2026-01-20 10:10:16 UTC

直前の 35a7b5159f39de2cac848c072674e5350cc41aa4 での prism の ripper 互換対応を revert しています。 syntax_suggest のテストがエラーになってしまったようです。

[300927b4bb] Nobuyoshi Nakada 2026-01-20 09:37:24 UTC

ext/extmk.rb で依存関係の追加。よくわかってませんが RUBY_ABI_VERSION を更新した時に拡張ライブラリの default gems の再ビルドをするためみたいです。 [ruby-core:124596] [Bug #21845]