ruby-trunk-changes 2021-11-26

今日は拡張ライブラリ win32ole の更新や Primitive.mandatory_only? を使って定義したメソッドの callcache が誤った method entry を使ってしまう不具合の修正、YJIT の Struct の最適化メソッド呼び出しへの対応などがありました。

[9850176984] Nobuyoshi Nakada 2021-11-25 10:12:45 UTC

GitHub Actions の Ubuntu 環境向け workflow で parallel 実行時のテストで skip したテストを並行実行なしでやりなおしているのを別の step に分離しています。

[24f8f20cc7] Hiroshi SHIBATA 2020-12-03 07:28:49 UTC

拡張ライブラリ win32ole の gemspec ファイルの spec.licenses の設定を追加しています。

[ae95939784] Nobuyoshi Nakada 2021-11-03 09:43:01 UTC

拡張ライブラリ win32ole の WIN32OLE_METHOD#invkind の rdoc 用コメントおよびテストのテストメソッド名の typo 修正。

[270c48507d] Nobuyoshi Nakada 2021-11-21 09:11:33 UTC

拡張ライブラリ win32ole のテストでイベントを待つタイムアウト環境変数によるスケーリングが効くように EnvUtil.apply_timeout_scale を利用するようにしています。

[c8da3b95e7] Nobuyoshi Nakada 2021-11-25 13:16:46 UTC

tool/sync_default_gems.rb に win32ole の upstream からの同期処理を追加しています。

[09ef048b34] git 2021-11-25 15:16:32 UTC

version.h の日付更新

[6157619bb6] Peter Zhu 2021-11-25 14:31:58 UTC

VWA(Variable Width Allocation) でオブジェクトの heap を連続した複数の slot を確保するサイズで分けるようにしたのを GC.stat_size_pool で種類毎の統計情報を返すようにしています。 [ruby-core:106279] [Feature #18364]

[b0bbcaedc7] Peter Zhu 2021-11-25 16:00:38 UTC

6157619bb68e4307cdf065cb73d5bfcec30d042dGC.stat_size_pool の追加を revert しています。まだ Feature チケットに matz などのコメントがないのでしばらく待つとのこと。 [ruby-core:106279] [Feature #18364]

[e469ebd7d3] Burdette Lamar 2021-11-25 19:14:10 UTC

numeric.c の rdoc 用コメントのインデントの修正のみ。 https://github.com/ruby/ruby/pull/5178

[de9a1e4a96] John Hawthorn 2021-11-25 19:56:58 UTC

82ea2870188d66aa75a99f03b4e7fdd1750aa196 の Struct の最適化で使われる最適化メソッド呼び出しタイプに YJIT を対応させているようです。 https://github.com/ruby/ruby/pull/5161

[b6f543d4ae] John Hawthorn 2021-11-25 23:10:42 UTC

YJIT の VM 命令 putnil と putobject に対応したコード生成の関数から汎用部分を jit_putobject() という関数に切り出し共有し最適化命令の対応部分でも使いまわすようにリファクタリングしています。 https://github.com/ruby/ruby/pull/5179

[f3320f164f] David Rodríguez 2021-11-25 20:29:56 UTC

bundler の bundle info サブコマンドで削除済みの gem についての警告を出す時に bundler 自身につては警告を出さないようにしています。

[e984c2a9ea] Koichi Sasada 2021-11-25 06:57:36 UTC

b1b73936c15fd490159a9b30ab50b8d5dfea1264 で追加された Primitive.mandatory_only? を使って引数の数によって呼び出すメソッドの ISeq を切り替える機構を利用しているメソッドの呼び出し時に誤った callcache を参照してしまうことがあった不具合を修正しています。 struct rb_class_cc_entries::entries に複数の callcache が格納されている場合に最初の要素しか使ってなかったので、cme が一致するキャッシュを選ぶようにしています。

[6586783508] Nobuyoshi Nakada 2021-11-26 02:32:38 UTC

tool/sync_default_gems.rb で拡張ライブラリ win32ole の同期時に gemspec ファイルの位置を ext/win32ole の下に移動するように対応を追加しています。

[7f7c3a0a75] Koichi Sasada 2021-11-26 02:37:28 UTC

gc.c の ractor_cached_free_region() 内でマクロ RGENGC_CHECK_MODE が真の時だけ VWA の複数 slot まとめて確保される領域全体を 0 クリアするようにしています。

[0a1b3b3a67] Nobuyoshi Nakada 2021-11-25 12:35:39 UTC

GitHub Actions の Ubuntu 向け workflow の make check の skipped_tests の指定を削除しています。OS 側の更新で readline のテストが通るようになったかもとのこと。

[04951a1226] Kazuhiro NISHIYAMA 2021-11-26 01:16:42 UTC

gc.c の size_pool_for_size() という関数が未使用になっていたので定義を削除しています。

[29877d944e] Kazuhiro NISHIYAMA 2021-11-26 01:17:28 UTC

gc.c の size_pool_idx_for_size() 内の rb_bug() のメッセージ内の関数名を修正しています。

[1c4cf43480] Nobuyoshi Nakada 2021-11-26 11:48:24 UTC

win32/Makefile.sub で MJIT 用の precompiled header をビルドする時のコンパイラオプションに -Zi が渡されていたら -Z7 に変換しておくようにしています。 e6f4a39a4de28067ff0b5dca55a8c09a8f9e2006 も関係ありそうですがコンパイル時の警告抑制のためとのこと。