今日は主に Object Shapes 関係の不具合修正や revision.h を更新するツール tool/file2erv.rb のリファクタリングや修正がありました。
[a70f90e1a9] Alan Wu 2022-11-01 15:39:13 UTC
YJIT の Rust 実装で Context の初期化に Context::new() というメソッドを定義して使っていたのを Context::default() を使うように変更しています。
[cbf15e5cbe] Alan Wu 2022-11-01 15:44:55 UTC
YJIT の Rust 実装にデバッグ用の assertion を追加しています。
[0d1e1987d1] Takashi Kokubun 2022-11-01 19:05:36 UTC
YJIT の Rust 実装の中間表現で想定外の状態になった時のデバッグのためにレジスタの状態を出力する処理を追加しています。 https://github.com/ruby/ruby/pull/6651
[70173a72a2] Aaron Patterson 2022-11-01 19:31:24 UTC
Object#dup などの実装でインスタンス変数のコピーを行うのを Object Shapes の情報の設定前に行うようにしています。ちょっとよく理解できてないのですがコミットログによると GC による mark の処理が走ったタイミングで中途半端に Object Shapes の情報がセットされていると誤動作する可能性があるので shapes の設定前に GC が走る可能性のある rb_obj_copy_ivar() の呼び出しをしておくということみたいです。しかし逆に shapes の設定前に ivar のコピーをしてもいいのかな。
[265a96b005] Nobuyoshi Nakada 2022-11-01 04:32:54 UTC
common.mk の revision.h のルールを revision.tmp を作ってそこからコピーするようにしてたのを file2lastrev.rb に --timestamp オプションを渡してツール内で更新の必要性を判定させるようにしているようです。
[60f12c7d2e] Nobuyoshi Nakada 2022-11-02 02:33:08 UTC
template/Makefile.in の Makefile 自身の更新ルールの依存関係の $(srcdir)/revision.h を $(REVISION_H) に変更しています。ソースディレクトリ以外でのビルド時に依存関係の循環が起きてしまっていたようです。
[ac06951c31] Nobuyoshi Nakada 2022-11-02 02:37:54 UTC
6bf458eefdac6e03fe4f2989b6cf08ad6a838520 の続きで tool/file2lastrev.rb で a2e7b11f2ae13f96171cb8a5aa6ae3cc75f6f083 で切り出した tool/lib/output.rb の Output クラスによるコマンドラインオプションを追加する位置を移動して、さらに --srcdir オプション指定時に tool/lib/vpath.rb の VPath にも反映させるようにしています。
[3475b66160] Nobuyoshi Nakada 2022-11-02 03:18:17 UTC
tool/lib/output.rb の Output#write メソッドに overwrite キーワード引数を追加して tool/file2lastrev.rb から revision.h を出力する時に更新チェックのために内容を読み込んだファイル自体の上書きをするようにしているようです。 outpath と @path の違いがよくわかりませんが VPath でソースディレクトリとビルドディレクトリを切り替えてる時にソースディレクトリのほうを上書きしなくなってたのを修正しているのかな?
[8e2c70af14] Nobuyoshi Nakada 2022-11-02 04:31:42 UTC
tool/file2lastrev.rb で余分な改行の出力の抑制をしています。
[d9cf038859] Sampat Badhe 2022-11-02 05:05:54 UTC
doc/regexp.rdoc の typo 修正とクロスリファレンスのリンク追加。 https://github.com/ruby/ruby/pull/6658
[875b7b3361] "dependabot[bot]" 2022-11-01 00:17:02 UTC
rubygems の Rust 製拡張ライブラリを含む gem のテスト用のプロジェクトの rb-sys パッケージの依存関係を更新しています。