今日は 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() という組み込み関数を利用するようにしています。
[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]