ruby-trunk-changes 2022-09-06

今日は主に MIT の実装の修正の続きや FreeBSD で失敗するテストのスキップ追加などがありました。

[6bc6c8d031] David Rodríguez 2022-09-05 06:54:22 UTC

bundler のテストで Windows 環境で default gems の fiddle の不具合回避のために入れてたコードが不要になったとのことで削除しています。

[27eb7158ee] Takashi Kokubun 2022-09-05 15:23:53 UTC

MJIT の実装で Primitive.cexpr! に渡すための変数が ruby レベルでは未使用のため警告されてしまうので変数を介さないようにしたりアンダースコアではじまる変数名に変更したりして回避しています。

[ca172540d0] git 2022-09-05 15:27:06 UTC

version.h の日付更新

[63ed61e322] Takashi Kokubun 2022-09-05 15:37:07 UTC

mjit_init() の先頭で RubyVM::MJIT::Compiler という定数が定義されているかチェックして、未定義だったら MJIT 無効化するようにしています。

[2657d8efb9] Hiroshi SHIBATA 2022-09-06 01:40:56 UTC

標準添付ライブラリ set の gemspec ファイルの version を 1.0.3 に更新しています。

[6d10865cc2] git 2022-09-06 01:42:25 UTC

2657d8efb9d38761c1e09f54fadea41fcc08d090 に追随して NEWS の default gems のバージョンリストの set のバージョンも更新しています。

[f4dbfa0f04] Takashi Kokubun 2022-09-06 06:40:12 UTC

定数の再代入時の警告のテストが MJIT を有効にすると失敗するとのことで調査のあいだ一時的にスキップするようにしています。

[f6925fab85] Takashi Kokubun 2022-09-06 02:43:46 UTC

コマンドラインオプション --mjit-wait が指定されて JIT コンパイルを待つ場合は子プロセスを fork せずにそのまま実行するようにしています。

[5b3bd91fcb] Takashi Kokubun 2022-09-06 03:33:51 UTC

コマンドラインオプション --mjit=pause を追加して pre-compiled header の生成などの MJIT の起動時の準備を遅延させることができるようにしています。

[341b40bd0c] Takashi Kokubun 2022-09-06 03:57:24 UTC

MJIT の C 実装の関数で RubyVM::MJIT::Compiler や RubyVM::MJIT::C などの定数の値を毎回 rb_const_get() しているのを mjit_init() 内で取得した結果をグローバル変数に格納してこれを使いまわすようにしています。

[b726c06e7e] Takashi Kokubun 2022-09-06 04:31:07 UTC

MJIT で RubyVM::MIT::Compiler に compile という特異メソッドを定義した場合に JIT コンパイルの処理をこのメソッドの実装に委譲するようにしています。

[4214023309] Takashi Kokubun 2022-09-06 06:59:05 UTC

5b3bd91fcba7224e9ece54c862dc96461cf4bf79 および b726c06e7eeafff52e368179dbe79a11b1aff975 で MJIT のオプション情報を保持する構造体 struct mjit_options にメンバーを追加したので MJIT の ruby 実装からの C の binding のためのスクリプト lib/mjit/c_32.rb および lib/mjit/c_64.rb をこれに追随させています。 lib/mjit/c_32.rb のほうのメンバー名が1つ typo してますね。

[3f9125aaba] Takashi Kokubun 2022-09-06 07:09:29 UTC

4214023309ec68f49b30d8a1ee691b05ce75e287 の lib/mjit/c_32.rb の変更でメンバーのオフセットが間違ってたみたいで修正しています。

[03ae415d50] Takashi Kokubun 2022-09-06 07:22:43 UTC

ということで 4214023309ec68f49b30d8a1ee691b05ce75e287 の lib/mjit/c_32.rb の変更の typo 修正。

[8cd6f2a087] Hiroshi SHIBATA 2022-09-06 07:02:06 UTC

標準添付ライブラリ drb と socket のテストで FreeBSD でランダムに失敗するものは FreeBSD ではスキップするようにしています。

[29bc3e0daf] Hiroshi SHIBATA 2022-09-06 07:24:55 UTC

bootstraptest/test_io.rb でも FreeBSD でランダムに失敗するものをスキップするようにしています。

[c664264c07] David Rodríguez 2022-09-05 05:05:44 UTC

bundler のテストで default gems の syntax_suggest の追加に対応しています。

[1f77cc3894] David Rodríguez 2022-09-06 04:46:21 UTC

bundler のテストで ruby core でテストしている時の失敗の対策のために default gems の set のバージョン指定を追加しています。コメントの Molinillo ってなんだろ? [追記] bundler で利用している依存関係解決のためのライブラリみたいですね。[/追記]