ruby-trunk-changes 2022-09-18

今日は主に version.h の日付を tool/make-snapshot でコミットの日付から生成する変更や、MJIT 用の ruby スクリプトの生成先ファイルパスの変更などがありました。これにより毎日 version.h の日付を更新してくれていた git さんによるコミットはなくなるようです。

[38a7a13ac6] Takashi Kokubun 2022-09-17 12:16:06 UTC

tool/make-snapshot で version.h の RUBY_RELEASE_{YEAR,MONTH,DAY} 等のマクロ定義を最新のコミットの CommitDate から生成するようにしています。git ユーザーによる毎日の version.h の更新を不要にするためみたいです。 https://github.com/ruby/ruby/pull/6382

[1825d3673f] Takashi Kokubun 2022-09-17 13:06:53 UTC

拡張ライブラリ io/wait の IO#wait のテストを MinGW 環境ではスキップするようにしています。

[33c6dd2cc8] Takashi Kokubun 2022-09-17 13:24:09 UTC

38a7a13ac6ed6bba2584def7d7121257eb85e051 で導入した version.h の RELEASE_DATE 定数生成のためのメソッドで FreeBSD の CI サーバーで git コマンドがちゃんと動かないとのことでエラー時に現在時刻を利用するようにしています。

[922e61fcc2] Takashi Kokubun 2022-09-17 14:05:06 UTC

33c6dd2cc89c27bbf406508ec39038a181fb99bc の続きで tool/lib/vcs.rb の VCS::GIT で git コマンドが起動できるかどうかチェックするようにしていましたが、.git ディレクトリの存在チェックだけにしてコマンドの実行はチェックしないようにしています。

[39f91bc24b] Takashi Kokubun 2022-09-17 14:16:55 UTC

common.mk に GNU make でない時に revision.h を空ファイルで生成するルールがあったのを削除して常に tool/file2lastrev.rb で生成するようにしています。

[67417e795a] Takashi Kokubun 2022-09-17 15:09:41 UTC

39f91bc24baa37db3c3d1485902056f43b013b54 のさらに続きで revision.h.tmp の生成ルールを変数 HAVE_BASERUBY によって変えるようにして、BASERUBY がない環境では空ファイル生成するように変更しています。

[0e816e6d30] Takashi Kokubun 2022-09-18 05:02:09 UTC

ruby 実装による組み込みメソッド定義の機構を利用していた mjit_instruction.rb を lib/mjit/instruction.rb という標準添付ライブラリとして生成するように変更しています。もともと C の関数呼び出しなどはなくて純粋な ruby スクリプトを自動生成していたみたいです。しかし組み込みメソッド定義している mjit_compiler.rb から require しているので 9faa9ced9640d23fc5dc1efd635f6b8ebc1a3ceb で prelude や組み込みメソッド定義の .rbinc から require されることで結局起動時に組込まれるようになっているようです。

[62ec621f8c] Takashi Kokubun 2022-09-18 05:16:08 UTC

0e816e6d3022892da438940b09c4d4b49ceb670f に続いて tool/ruby_vm/views/instruction.rb.erb を tool/ruby_vm/views/lib/mjit/instruction.rb.erb に移動しています。

[12023c833f] Takashi Kokubun 2022-09-18 05:21:23 UTC

62ec621f8c7457374d1f08aec97138ac1b7bdf2a のテンプレートファイル移動を revert しています。

[a988fe0b3e] Takashi Kokubun 2022-09-18 05:22:35 UTC

62ec621f8c7457374d1f08aec97138ac1b7bdf2a のテンプレートファイルの移動のリトライ。 tool/insns2vm.rb に --basedir というコマンドラインオプションを追加してネストしたディレクトリ構造の保存に対応するようにしているようです。

[0ca037b35c] Takashi Kokubun 2022-09-18 11:42:57 UTC

YJIT の Rust 実装で利用する bindgen というライブラリ(crate というらしい)のバージョンを更新しています。 https://github.com/ruby/ruby/pull/6397

[45ecc30a63] Takashi Kokubun 2022-09-18 11:49:46 UTC

0e816e6d3022892da438940b09c4d4b49ceb670f および a988fe0b3e4cd5a3955706affdc1f498ff9b5d77 で移動した lib/mjit/instruction.rb の自動生成のルールを template/Makefile.in から common.mk に移動しています。Windows 環境では生成する必要がないので template/Makefile.in に置いてたみたいですがメンテナンス性のために common.mk に移動するとのこと。

[e2e1058e66] Takashi Kokubun 2022-09-18 12:19:37 UTC

45ecc30a6342e1322f07e68280a5107db8075da0 の続きで srcs の依存関係に lib/mjit/instruction.rb を追加しています。パッケージ生成時に生成させるため。