ruby-trunk-changes 2022-07-16

今日は T_OBJECT 型のオブジェクトにも Variable Width Allocation による slot サイズの拡張を利用できるようにする変更や拡張ライブラリを含む bundled gems のビルドプロセスの再修正などがありました。

[7424ea184f] Peter Zhu 2022-07-11 14:09:39 UTC

Variable Width Allocation に T_OBJECT 型のオブジェクトも対応するようにしています。インスタンス変数の slot への埋め込みできる数を増やせるようにしているようです。これにより struct RObject の定義が変化するので RUBY_ABI_VERSION マクロの値を 2 に変更しています。

[c53439294e] Jemma Issroff 2022-07-15 14:12:51 UTC

benchmark/ 配下に 7424ea184f9d67c1c7f3ee97494ed3bd1aa60833インスタンス変数の埋め込み数が拡張したことに対応してインスタンス変数についてのベンチマークで initialize でインスタンス変数へのセットをしていたのを別のメソッドで動的に(というか後から)設定することでインスタンス変数テーブルの拡張に伴なうベンチマークが取れるように変更しています。

[280b805d04] Peter Zhu 2022-07-14 20:45:03 UTC

ARGF.readlines の rdoc 用コメントがひとつのファイルのみ読むと書かれてたのを全ファイルのぶんを読むと記述を実際の挙動に合わせて修正しています。 [ruby-core:109193] [Bug #18909]

[36ca0e58b6] st0012 2022-06-28 13:39:56 UTC

標準添付ライブラリ reline のダイアログの色づけについてのメソッド群の名前が頻出していたのを定数に入れて使うリファクタリングと、色の指定をマジックナンバーでしていたのを名前で指定できるようにしています。

[77ec1cd472] git 2022-07-15 17:30:36 UTC

version.h の日付更新

[aed1539ec5] Noah Gibbs 2022-07-15 17:52:47 UTC

YJIT のテストに send メソッドを使ったメソッド起動についてのテストを追加しています。 https://github.com/ruby/ruby/pull/6143

[f375280d5a] Jemma Issroff 2022-07-15 19:18:30 UTC

benchmark/ にインスタンス変数の代入についてのベンチマークを追加しています。 c53439294e390595c88c6f3094021ffc7c0147e1 で変更したベンチマークと一部被ってそうだけど。

[78d2be69b5] Nobuyoshi Nakada 2022-07-14 02:59:46 UTC

tool/ln_sr.rb というスクリプトを追加して、環境や BASERUBY (fileutils)のバージョンに応じて symbolic link 作成またはコピーを行なうことができるようにして、ext/extmk.rb で生成する Makefile で拡張ライブラリを含む bundled gems のビルド時にこれを利用するようにしています。また make clean 時にソースディレクトリでのビルドかどうかで gemspec ファイルの削除するかどうかを変化させるようにしています。拡張ライブラリを含む bundled gems をちゃんとビルド/インストールするのものすごく大変みたいですね。

[b536ac2cd0] Nobuyoshi Nakada 2022-07-16 02:22:36 UTC

common.mk の test-bundled-gems-run というターゲットのコマンドに $(gnumake_recursive) という変数の利用を追加しています。GNU make の場合に先頭に "+" を追加するようです。

[5101671cbc] Nobuyoshi Nakada 2022-07-16 06:28:05 UTC

b536ac2cd085a7f14b91959c1a8e8d7db43f1c4a を revert してかわりに make test-bundled-gems で環境変数から GNUMAKEFLAGS を削除するようにしています。test-bundled-gems で並列テストを無効化しようとしているみたいです。 b536ac2cd085a7f14b91959c1a8e8d7db43f1c4a は並列テスト時のために変数を sub-make に伝播させるためにやっていたようなので、並列化のほうをあきらめるという方針に変更したみたいですね。

[c093e7d645] Nobuyoshi Nakada 2022-07-16 07:37:26 UTC

78d2be69b500e4552e0e75fdefd26606a0506009 の続きで tool/ln_sr.rb でディレクトリへの symblic link を作る時に既に同名のディレクトリがあった時にそのディレクトリの下に symbolic link を作ってしまわないようにしています。

[6c1d7dab52] Nobuyoshi Nakada 2022-07-16 08:58:52 UTC

さらに tool/ln_sr.rb の修正で symbolic link を張る時に絶対パス相対パスに変換する処理の不具合を修正しているようです。

[5ae83151b1] Nobuyoshi Nakada 2022-07-11 14:04:56 UTC

rubygems の Gem::Specification#to_ruby で生成する gemspec で古い rubygems のバージョンでも動くようにメソッドを respond_to? でチェックしたりしていたところをもう不要として削っています。