ruby-trunk-changes 2022-04-23

今日は VM の Thread まわりの実装で構造体のレイアウトを変更するリファクタリングなどがありました。

[702dc116c4] Koichi Sasada 2022-04-22 13:58:15 UTC

vm.c の ruby_thread_init() と th_init() という rb_thread_t の初期化をする似たような関数があったのを th_init() に集約して th_init() には引数に rb_vm_t と rb_ractor_t のポインタを追加してそれぞれ vm/ractor メンバーの初期化も行うようにしています。さらに rb_thread_t の top_wrapper, top_self, value などのメンバーの初期化も追加しています。

[69d41480ec] git 2022-04-22 15:50:32 UTC

version.h の日付更新

[03d21a4fb0] Koichi Sasada 2022-04-22 12:19:03 UTC

rb_thread_t の native_thread_data メンバーを削除して、かわりに nt というメンバーで struct rb_native_thread という新しく定義した構造体へのポインタを保持して代替とするようにリファクタリングしています。コミットログに今は Ruby の Thread は 1つの natgive thread を持つとわざわざ書いているので、1:M(N:M) thread 化しようと考えているのかも。

[79fa27acc4] Alan Wu 2022-04-22 17:18:11 UTC

tool/rbinstall.rb で Gem のインスタンス変数 @ruby を上書きするモンキーパッチを Zlib が定義されている時だけ実施していたのをトップレベルで常に行うようにしています。また環境変数 RUBYOPT を削除して tool/fake.rb 経由で実行される子プロセスにビルド中のホスト環境の ruby の拡張ライブラリを読み込ませないようにしているようです。 AppVeyor での CI の失敗の調査のため? みたいです。

[c2d38a0d2d] Jeremy Evans 2022-04-22 21:26:26 UTC

03d21a4fb099da7c52e6591e17704c297871b7db の rb_thread_t::native_thread_data から nt メンバーへの移行の漏れがあったのを修正しています。

[ab3cb29bd9] Jeremy Evans 2022-04-22 20:01:43 UTC

主にライブラリのテストで複数のファイルにテストが分かれている時にテストクラス名を同じものを使っているため並列テストで一部のテストメソッドが実行されない可能性があったのを修正するため、ファイル毎にテストクラスを分けるようにしています。 [ruby-core:108238] [Bug #18731]

[e142bea799] Kazuhiro NISHIYAMA 2022-04-22 04:41:18 UTC

標準添付ライブラリ mkmf.rb でソースファイルを Dir.glob で検出した結果などを sort するようにしていたのですが Dir.glob が sort 済みの結果を返すようになったため重複しているので削除しています。