ruby-trunk-changes 2023-07-14

今日は主に Transient Heap という短命オブジェクトによる GC 圧力を低減するための実装の Variable Width Allocation の拡充に伴なう削除がありました。

[0454887a0e] "B. Burt" 2023-07-12 23:02:20 UTC

標準添付ライブラリ getoptlong の rdoc 用コメント内のサンプルコードのインデントを修正。

[fff4773085] Shane Becker 2023-07-12 23:57:03 UTC

Thread::Queue クラスの rdoc 用コメントの英文の修正。

[1e7b67f733] Peter Zhu 2023-06-13 20:19:33 UTC

短命なオブジェクトのためのメモリ管理のしくみ Transient Heap の機構を完全に削除しています。 Variable Width Allocation により slot 内に埋め込めるデータが増えたので使わなくなったため。 [ruby-core:113899] [Feature #19730]

[1c2a4d9682] Nobuyoshi Nakada 2023-07-13 07:58:48 UTC

コマンドラインオプションの情報を格納する構造体 ruby_cmdline_options_t の sflag と xflag というメンバーに bit field を使って構造体サイズを小さくしています。

[dbbc3583ba] Nobuyoshi Nakada 2023-07-13 08:08:55 UTC

コマンドラインオプションの処理で Encoding 関係や features 関係のオプションの処理の位置を移動するリファクタリング

[db3b8f84f5] Nobuyoshi Nakada 2023-07-13 08:59:19 UTC

コマンドラインオプションの --backtrace-limit の指定を shebang や RUBYOPT 環境変数による設定よりもコマンドラインで直接指定されたものを優先するようにしています。

[6a62b9b200] Matt Valentine-House 2023-07-13 11:43:25 UTC

gc.c の不要になってた prototype 宣言を削除しています。

[4999a53fe9] Stan Lo 2023-07-13 16:52:08 UTC

irb のダイアログ表示についてのテストの skip 条件を緩めています。

[5ebc133116] Peter Zhu 2023-07-13 13:40:46 UTC

配列のバッファ領域を直接参照コード上の範囲を指定するための rb_array_ptr_use_start()/rb_array_ptr_use_end() という C API を削除しています。 Transient Heap の廃止により不要になったためみたいですね。

[de327ccb63] Peter Zhu 2023-07-13 13:42:24 UTC

同じく Transient Heap の削除で不要になった RARRAY_PTR_USE_TRANSIENT() というマクロを削除して、利用箇所では RARRAY_PTR_USE() を使うように変更しています。

[3223181284] Peter Zhu 2023-07-13 13:45:35 UTC

同じく RARRAY_CONST_PTR_TRANSIENT() というマクロを削除して代替として RARRAY_CONST_PTR() を利用するようにしています。

[87e1486d31] Peter Zhu 2023-07-13 13:47:33 UTC

Transient Heap の実装に関するコメントやマクロ定義などを削除しています。

[62ecf78b87] Peter Zhu 2023-07-13 14:36:49 UTC

array.c の ary_heap_alloc() という関数の第1引数の Array オブジェクトがもう不要になっていたので削除しています。これも Transient Heap 削除によって使われなくなったためみたいです。

[e850181acf] Takashi Kokubun 2023-07-13 20:41:40 UTC

gems/bundled_gems の rbs に commit hash の指定を追加しています。 CI のエラー対応のため。

[d814722fb8] Takashi Kokubun 2023-07-13 22:14:43 UTC

YJIT で YJIT_STATS というマクロが真の時だけ集計していた ratio_in_yjit という項目を YJIT が有効にビルドされた時は常に作るようにしています。 https://github.com/ruby/ruby/pull/8064

[5d4fff8456] Jeremy Evans 2023-06-22 21:31:57 UTC

Time.new に文字列を渡す場合に年月だけ("2023-07")とか日付だけ("2023-07-07")とか前後に空白文字が含まれていても受付けていたのを全て弾くようにしています。日付だけもだめなのか。文字列表現を受付けるようになった仕様自体が 3.2 かららしいので直すかどうか悩ましいですね(デグレではないので)。 [ruby-core:111565] [Bug #19293]

[c227ae7e64] Kazuhiro NISHIYAMA 2023-07-14 00:01:10 UTC

NEWS のチケット参照リンクのための footnote をチケット番号順にソートしなおしています。

[ed3d8f74ec] Nobuyoshi Nakada 2023-07-14 05:03:34 UTC

util.c でのマクロ S_ISDIR の代替定義を削除しています。ファイル内で未使用のため。

[cfc564ac40] Nobuyoshi Nakada 2023-07-14 05:25:37 UTC

util.c で qsort(3) の利用時に使うヘッダの #include を必要な時だけにするよう preprocessor 分岐を追加しています。

[bc8cc68aef] Nobuyoshi Nakada 2023-07-14 05:33:21 UTC

missing/dtoa.c の dtoa(3) の代替実装にヘッダの #include を追加し、xmalloc/xfree を利用していたところを malloc/free の標準ライブラリ関数を利用するようにしています。単体でコンパイルできるようにするためとのこと。