今日は主にテストの coverage 測定のための整備や bundled gems のビルドプロセスまわりの変更などがありました。
Object Shapes の機構でインスタンス変数を管理する Shape をインスタンス変数の数が 50 までの時に限り、それを越えたらひとつのクラス内でたくさん Shape がある時の fallback と同様に st_table で管理する方法を使うようにしています。
bundled gems のビルド用のディレクトリのタイムスタンプファイルの依存関係を追加しています。gems/bundled_gems の更新によって再ビルドが必要な時に実施するためかな?
make test-all のテスト時の coverage を取るための tool/test-coverage.rb で除外するファイルパスに tool/lib や lib/bundler/vendor などを追加しています。
さらに tool/test-coverage.rb の coverage 測定除外するディレクトリの指定を tool/ 配下全て無視するように追加しています。
make test-syntax-suggest でも環境変数 COVERAGE の指定で coverage 測定できるようにしています。
make test-spec つまり rubyspec でも環境変数 COVERAGE が設定されたら coverage 測定するようにしています。
configure で BASERUBY にオプションを追加するのに RUBY_APPEND_OPTION というコマンドを利用して重複したオプション追加を抑制するようにしています。
defs/gmake.mk で rubyspec の C API テストのための拡張ライブラリのビルドの時の ld に -L. オプションを追加するようにしています。
tool/mkconfig.rb で rbconfig.rb を生成する時に(主に macOS の?) universal binary でビルドされている時の "target_cpu" の項目の設定のしかたを変更しているみたいですが、難しくてよくわからない。