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


ruby-trunk-changes 2026-01-17

今日は ZJIT の最適化や effect system という HIR の副作用を管理する機構の導入、CG の最適化などがありました。

[91744cd202] Nobuyoshi Nakada 2026-01-16 15:15:20 UTC

common.mk で rubyspec の C API 用拡張ライブラリの依存関係を保持する変数に internal/abi.h を追加しています。

[bc6c895d7b] Jacob 2026-01-16 17:08:20 UTC

ZJIT で最適化のために中間表現 HIR が持つ副作用をより細かくトレースできるようにしているようで、zjit/src/hir_effect/ というサブディレクトリを追加して、Rust コードを生成する Ruby スクリプトやその生成物を追加しています。現時点ではこれを利用した最適化は行なってないみたいですが今後のための準備という感じでしょうか。 ZJIT の HIR effect system については Blog へのリンクがコミットログに記載されています。 https://bernsteinbear.com/blog/compiler-effects/ https://github.com/ruby/ruby/pull/15359

[456ef9140a] Scott Myron 2026-01-16 01:12:41 UTC

拡張ライブラリ json で可能なら __builtin_memcpy() という組み込み関数を利用するようにしています。

[3164d4e8a2] Jean Boussier 2026-01-16 17:43:08 UTC

拡張ライブラリ jsonjson_fast_memcpy16() という関数を切り出すリファクタリング

[1c7e19f961] Jean Boussier 2026-01-16 19:37:42 UTC

T_IMEMO を使ってメモリ解放を GC にまかせる一時メモリ確保のための rb_free_tmp_buffer() で ruby_sized_xfree() を呼び出して統計情報に反映させるようにしています。

[87147ba5e9] Earlopain 2026-01-16 09:47:18 UTC

標準添付ライブラリ prism の ripper 互換の rdoc をサポートするための機能移植しているようです。

[c56ce8a6c1] John Hawthorn 2026-01-16 20:01:15 UTC

構造体 objspece::flags の has_newobj_hook という bit field メンバーがもう参照しているところがなくなっていたので削除しています。

[1f3c52dc15] Jean Boussier 2026-01-16 20:15:05 UTC

rb_interned_str() 関数が返す文字列オブジェクトの encoding を ASCII-8BIT にしています。従来 US-ASCII になっていたようです。ふーむ、これいいのかな? [ruby-core:124579] [Bug #21842]

[8a586af33b] Peter Zhu 2026-01-16 02:02:05 UTC

パフォーマンスの改善のため空きスロットが少なくなった時に major GC を起動していたのをやめまずヒープの拡張を試すようにしています。 [ruby-core:124552] [Bug #21838]

[0e0fad1e58] Nozomi Hijikata 2026-01-17 02:19:54 UTC

yjit.c で定義していた rb_optimized_call() という Proc を呼び出す関数を jit.c に移動して ZJIT でもメソッド呼び出しを使わずこの関数を直接呼ぶ最適化を実装しています。 https://github.com/Shopify/ruby/issues/865 https://github.com/ruby/ruby/pull/15859

[3e13b7d4ef] Max Bernstein 2026-01-17 04:07:00 UTC

0e0fad1e58f23ee0e12ab06c1bcd171cba2947f2 の追加修正で ZJIT の HIR の effect system のための Insn.effects_of に 0e0fad1e58f23ee0e12ab06c1bcd171cba2947f2 で追加した InvokeProc 命令の対応を追加しています。

[8ca2f6489b] Nobuyoshi Nakada 2026-01-17 04:38:55 UTC

1f3c52dc155fb7fbc42fc8e146924091ba1dfa20 で rb_interned_str() の返す文字列の encoding を ASCII-8BIT にしたのを revert しています。

[78b7646bdb] Nobuyoshi Nakada 2026-01-17 05:19:15 UTC

1f3c52dc155fb7fbc42fc8e146924091ba1dfa20 のリトライで rb_interned_str() で戻り値の文字列オブジェクトに ASCII 文字のみ含まれる場合は encoding を US-ASCII に保持するようにしています。 https://github.com/ruby/ruby/pull/15894 [ruby-core:124579] [Bug #21842]




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

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