ruby-trunk-changes 2023-03-17

今日は主に rubygems と bundler の更新や if/unless 文などの条件分岐の ISeq へのコンパイル時に静的に条件が判定できる場合に不要な部分をコンパイルしない最適化などがありました。

[364364c3bd] Mau Magnaguagno 2023-03-14 02:04:58 UTC

rubygems の Gem::Package::TarHeader#calculate_checksum メソッドでバイト列を uint8 の配列とみなして和を取る計算に String#unpack を使ってたのを String#bytes を使うように変更しています。

[89f7acba3c] Mau Magnaguagno 2023-03-15 18:37:29 UTC

364364c3bd1067f37e4ce4e275b2c8c97984588f と同様に rubygems のテストでもバイト列を uint8 の配列とみなして和を取る処理に String#unpack を使ってたのを String#bytes を使うように書き換えています。

[671ddb1eee] Burdette Lamar 2023-03-16 13:59:41 UTC

TrueClass の rdoc 用コメントにサンプルを追加しています。 https://github.com/ruby/ruby/pull/7521

[e0cf80d666] Peter Zhu 2023-03-15 21:40:50 UTC

ObjectSpace::WeakMap の finalizer 処理で realloc() するバッファサイズが 1つぶん多かったのを修正しています。多いぶんには異常終了したりはしないでしょうけど。

[2f81bb793f] Alan Wu 2023-03-15 18:19:22 UTC

rb_bug() などで異常終了する時の出力に Ractor の数や Thread の数などの情報を追加しています。

[a8e7fee801] Takashi Kokubun 2023-03-16 16:22:42 UTC

cae4342dd559e34c1ce6219593f77f0ad80286da正規表現マッチの計算量のテストのための assert_linear_performance メソッドの引数の受け取りかたを変更していたのを revert しています。

[9947574b9c] Takashi Kokubun 2023-03-16 17:41:12 UTC

VM 命令のメソッド呼び出しやブロック起動する系の命令で JIT コンパイルしたコードを関数として呼び出す処理を JIT_EXEC() というマクロに切り出しています。また jit_func_t という型を rb_jit_func_t に改名しています。

[ed18093200] Takashi Kokubun 2023-03-16 17:48:17 UTC

9947574b9cad74fbf04fa44d49647c591590c511 の追加修正で JIT が有効でない場合の preprocessor 分岐で jit_func_t を rb_jit_func_t に変更し漏れていたのを修正しています。

[182f4f0d1c] Takashi Kokubun 2023-03-16 18:05:54 UTC

RJIT 用の C binding を再生成して rb_jit_func_t 型を参照できるようにしています。

[d454a590cc] John Hawthorn 2023-03-15 01:19:21 UTC

RubyVM::RJIT::Instruction に opes というプロパティを追加しています。オペランドの情報かな?

[8dbddd5bf8] John Hawthorn 2023-03-16 20:08:13 UTC

d454a590ccdcf50d681aeb0aacfe2a0e424481b1 の続きで RubyVM::RJIT::Instruction の opes を operands に改名しています。やっぱりオペランドの情報だったみたいですね。

[617c9b4656] John Hawthorn 2023-03-16 20:13:19 UTC

d454a590ccdcf50d681aeb0aacfe2a0e424481b1 および 8dbddd5bf8a2f36b0cd32d97f7f7fa383bbc5b64 の続きで tool/ruby_vm/ 配下のテンプレートなどで VM 命令のオペランド情報についての名前も opes から operands に改名しています。

[473009d7cb] Maxime Chevalier-Boisvert 2023-03-16 21:24:08 UTC

YJIT の --yjit-stats で出力する統計情報に分岐の命令についての項目を追加しています。 https://github.com/ruby/ruby/pull/7544

[5825d7d4a1] Jimmy Miller 2023-03-16 21:40:36 UTC

YJIT でメソッド呼び出しの引数の渡しかたによって JIT コードをあきらめるための分岐をひとつ削っています。 https://github.com/ruby/ruby/pull/7546

[d2c6dca8f4] lukeg 2023-03-13 22:13:21 UTC

テストで Object に追加したメソッドが残ってしまってたのを ensure 節で削除して元に戻す後始末を追加しています。

[f29c9d6d36] Koichi Sasada 2023-03-16 10:45:37 UTC

if/unless 文などの VM 命令へのコンパイル時に条件が常に真/偽とわかっているような条件で不要な分岐のほうの ISeq を作らないようにする最適化を追加しているようです。

[53ebd484c4] "dependabot[bot]" 2023-03-17 03:00:28 UTC

GitHub Actions の workflow で利用している ruby/setup-ruby アクションのバージョンを更新しています。

[c7ae6f6ae8] "dependabot[bot]" 2023-03-17 03:39:37 UTC

GitHub Actions の workflow で利用している actions/checkout アクションのバージョンを更新しています。

[c0866f8adb] "dependabot[bot]" 2023-03-17 04:18:32 UTC

GitHub Actions の workflow で利用している actions/cache アクションのバージョンを更新しています。

[f22765f535] David Rodríguez 2022-04-27 19:03:03 UTC

bundler のテストで lockfile_platforms_for というメソッドに配列を渡していたのを展開して普通の引数として渡すように変更しています。

[8a8ade7e5e] David Rodríguez 2022-04-27 19:05:33 UTC

bundler のテストで使っている platform 名をより一般的なものに変更しています。

[9492efbe71] David Rodríguez 2022-07-08 16:59:22 UTC

bundler のテストのヘルパーメソッドを削除して呼び元に展開しています。

[2d8b55fcd2] David Rodríguez 2022-07-09 11:11:28 UTC

bundler のテストの lockfile_platforms_for という helper を削除して lockfile_platforms を直接呼ぶように展開しています。

[d5121992dc] David Rodríguez 2023-03-13 17:57:38 UTC

bundler のテストで specific_local_platform という helper メソッドも削除して呼び元で local_platform を呼ぶように展開しています。

[8371c0eac4] David Rodríguez 2023-03-13 17:56:54 UTC

bundler の Bundler::SpecSet#dependencies で結果を uniq するように修正しています。

[37c2e903e8] David Rodríguez 2023-03-14 12:27:52 UTC

rubygems のテストでエラー時のデバッグのために? メッセージを強化しているようです。

[5733828734] David Rodríguez 2023-03-14 12:28:28 UTC

37c2e903e89b9e2d7f1dc771da4143d9f041ef8f に対応して? rubygems のテストで Gem::TestCase を継承したテストクラスで明示的に setup/teardown を空っぽに定義して親クラスの setup/teardown の実行を抑制するようにしています。

[123bedd295] David Rodríguez 2023-03-14 14:13:12 UTC

rubygems のテストに Gem::Specification.all_names の内容をチェックするための helper メソッドを導入しています。

[dd0f0a5e6e] David Rodríguez 2023-03-14 14:27:15 UTC

rubygems の gem uninstall サブコマンドに --install-dir オプションを追加しています。

[a47c54131d] David Rodríguez 2023-03-14 15:10:38 UTC

rubygems が上書きしている Kernel#require メソッドで RUBYGEMS_ACTIVATION_MONITOR という Monitor での排他処理が以上な状態になった時のデバッグのために追加していた ensure 節を削除しています。起きなくなったからかと思ったけど、起きるけど警告や例外が邪魔ということみたいです。それはいいのかな。

[8e40d1e153] Hiroshi SHIBATA 2023-03-15 07:30:50 UTC

rubygems の gem environment サブコマンドで表示する RUBY_PATCHLEVEL 定数の有無のチェックを削除しています。もうそんな古い ruby はサポートしていないので。

[b09973a995] Hiroshi SHIBATA 2023-03-15 23:53:26 UTC

8e40d1e153e8ee79da18b3691f5543e55c2f7dba と同様に bundler の bundle env サブコマンドでも RUBY_PATCHLEVEL 定数の有無のチェックを削除しています。

[fe1b0661cb] Hiroshi SHIBATA 2023-03-15 23:57:26 UTC

rubygems の Gem.ruby_version でも RUBY_PATCHLEVEL 定数の有無のチェックを削除しています。

[2dddac0475] Hiroshi SHIBATA 2023-03-15 23:59:08 UTC

rubygems のテストの test/rubygems/helper.rb に rubocop によるスタイルの修正を適用しています。

[2eb99350f4] Hiroshi SHIBATA 2023-03-16 01:52:25 UTC

lib/rubygems/command.rb にコメントで rubocop:disable というのをつけて rubocop の警告抑制したいたのが冗長? とのことで削除しています。

[65752b61e7] Hiroshi SHIBATA 2023-03-16 01:32:05 UTC

ここから rubygems の rubocop によるスタイル修正の変更が続きます。

[139f0927f5] Hiroshi SHIBATA 2023-03-16 01:33:44 UTC

rubygems の rubocop によるスタイル修正の変更。

[7ab4ede4f5] Hiroshi SHIBATA 2023-03-16 01:35:15 UTC

rubygems の rubocop によるスタイル修正の変更。

[05208c3875] Hiroshi SHIBATA 2023-03-16 01:46:45 UTC

rubygems の rubocop によるスタイル修正の変更。

[eb80f51c6d] Hiroshi SHIBATA 2023-03-16 01:47:37 UTC

rubygems の rubocop によるスタイル修正の変更。

[ab2278eb34] Hiroshi SHIBATA 2023-03-16 01:50:35 UTC

rubygems の rubocop によるスタイル修正の変更。

[23150e0274] Hiroshi SHIBATA 2023-03-16 02:34:50 UTC

rubygems の rubocop によるスタイル修正の変更。

[7c1d590a8a] Hiroshi SHIBATA 2023-03-16 02:26:53 UTC

rubygems の rubocop によるスタイル修正の変更。

[dab1d0ed20] Hiroshi SHIBATA 2023-03-16 02:43:28 UTC

rubygems の rubocop によるスタイル修正の変更。

[85fd33c526] Hiroshi SHIBATA 2023-03-16 02:46:06 UTC

rubygems の rubocop によるスタイル修正の変更。

[d9f92511ad] Hiroshi SHIBATA 2023-03-16 02:48:15 UTC

rubygems の rubocop によるスタイル修正の変更。

[c480a0c46a] Hiroshi SHIBATA 2023-03-16 02:48:53 UTC

rubygems の rubocop によるスタイル修正の変更。

[583fbc627c] Hiroshi SHIBATA 2023-03-16 02:49:24 UTC

rubygems の rubocop によるスタイル修正の変更。

[9ffd73523d] Hiroshi SHIBATA 2023-03-16 02:58:13 UTC

rubygems の rubocop によるスタイル修正の変更。

[4b285e5c6f] Hiroshi SHIBATA 2023-03-16 03:00:41 UTC

rubygems の rubocop によるスタイル修正の変更。

[f8daae91c4] Hiroshi SHIBATA 2023-03-16 03:01:04 UTC

rubygems の rubocop によるスタイル修正の変更。

[3233b1fe3f] Hiroshi SHIBATA 2023-03-16 03:06:00 UTC

rubygems の rubocop によるスタイル修正の変更。

[ce21ce6f23] Hiroshi SHIBATA 2023-03-16 03:07:13 UTC

rubygems の rubocop によるスタイル修正の変更。

[41f304d5bf] Hiroshi SHIBATA 2023-03-16 03:11:44 UTC

rubygems の rubocop によるスタイル修正の変更。

[26d6604343] Hiroshi SHIBATA 2023-03-16 03:17:40 UTC

rubygems の rubocop によるスタイル修正の変更。

[9a1269eaaa] Hiroshi SHIBATA 2023-03-16 03:22:17 UTC

rubygems の rubocop によるスタイル修正の変更。

[ae81ff0c9b] Hiroshi SHIBATA 2023-03-16 03:22:51 UTC

rubygems の rubocop によるスタイル修正の変更。

[f4d1f660d0] Hiroshi SHIBATA 2023-03-16 03:23:40 UTC

rubygems の rubocop によるスタイル修正の変更。

[83f9aa8f02] Hiroshi SHIBATA 2023-03-16 03:55:30 UTC

rubygems の rubocop によるスタイル修正の変更。

[4bb5ce8188] Hiroshi SHIBATA 2023-03-16 04:00:54 UTC

rubygems の rubocop によるスタイル修正の変更。

[3d4c3f9e4f] Hiroshi SHIBATA 2023-03-16 04:07:05 UTC

rubygems の rubocop によるスタイル修正の変更。

[567db6064b] Hiroshi SHIBATA 2023-03-16 04:08:18 UTC

rubygems の rubocop によるスタイル修正の変更。

[0b632b9cdd] Hiroshi SHIBATA 2023-03-16 04:08:50 UTC

rubygems の rubocop によるスタイル修正の変更。

[712d6e675b] Hiroshi SHIBATA 2023-03-16 04:09:46 UTC

rubygems の rubocop によるスタイル修正の変更。

[d2cebb4e31] Hiroshi SHIBATA 2023-03-16 04:10:30 UTC

rubygems の rubocop によるスタイル修正の変更。

[03b82d1865] Hiroshi SHIBATA 2023-03-16 04:28:31 UTC

rubygems の rubocop によるスタイル修正の変更。

[bd57322bfe] Hiroshi SHIBATA 2023-03-16 04:30:25 UTC

rubygems の rubocop によるスタイル修正の変更。

[9ab860f9af] Hiroshi SHIBATA 2023-03-16 04:32:43 UTC

rubygems の rubocop によるスタイル修正の変更。

[52ea7afa5f] Hiroshi SHIBATA 2023-03-16 04:35:34 UTC

rubygems の rubocop によるスタイル修正の変更。

[66bd2c1a1c] Hiroshi SHIBATA 2023-03-16 04:36:06 UTC

rubygems の rubocop によるスタイル修正の変更。

[d8c5fa963f] Hiroshi SHIBATA 2023-03-16 04:38:45 UTC

rubygems の rubocop によるスタイル修正の変更。

[b8914a9d5d] Hiroshi SHIBATA 2023-03-16 04:39:24 UTC

rubygems の rubocop によるスタイル修正の変更。

[4ab23df2c4] Hiroshi SHIBATA 2023-03-16 04:40:35 UTC

rubygems の rubocop によるスタイル修正の変更。

[f86296fa0a] Hiroshi SHIBATA 2023-03-16 04:41:32 UTC

rubygems の rubocop によるスタイル修正の変更。

[3fe5909ef1] Hiroshi SHIBATA 2023-03-16 04:43:00 UTC

rubygems の rubocop によるスタイル修正の変更。

[7b8a24ad08] Hiroshi SHIBATA 2023-03-16 04:44:13 UTC

rubygems の rubocop によるスタイル修正の変更。

[4cd8a46f45] Hiroshi SHIBATA 2023-03-16 04:45:00 UTC

rubygems の rubocop によるスタイル修正の変更。

[38664ede7e] Hiroshi SHIBATA 2023-03-16 04:45:25 UTC

rubygems の rubocop によるスタイル修正の変更。

[fef0313ec7] Hiroshi SHIBATA 2023-03-16 04:45:57 UTC

rubygems の rubocop によるスタイル修正の変更。

[70164eec0f] Hiroshi SHIBATA 2023-03-16 04:48:03 UTC

rubygems の rubocop によるスタイル修正の変更。

[6ad269dc39] Hiroshi SHIBATA 2023-03-16 04:47:12 UTC

rubygems の rubocop によるスタイル修正の変更。

[4868cfcf1d] Hiroshi SHIBATA 2023-03-16 04:50:31 UTC

rubygems の rubocop によるスタイル修正の変更。

[f4b073ef7a] Hiroshi SHIBATA 2023-03-16 04:53:44 UTC

rubygems の rubocop によるスタイル修正の変更。

[bf69d1fc5d] Hiroshi SHIBATA 2023-03-16 04:55:04 UTC

rubygems の rubocop によるスタイル修正の変更。

[ee7475734f] Hiroshi SHIBATA 2023-03-16 05:01:16 UTC

rubygems の rubocop によるスタイル修正の変更。

[be4cc74e26] Hiroshi SHIBATA 2023-03-16 05:05:21 UTC

rubygems の rubocop によるスタイル修正の変更。

[2db7673825] Hiroshi SHIBATA 2023-03-16 05:06:47 UTC

rubygems の rubocop によるスタイル修正の変更。

[a532e9dc37] Hiroshi SHIBATA 2023-03-16 05:07:35 UTC

rubygems の rubocop によるスタイル修正の変更。

[72d09a568f] Hiroshi SHIBATA 2023-03-16 05:10:30 UTC

rubygems の rubocop によるスタイル修正の変更。

[ab644ae497] Hiroshi SHIBATA 2023-03-16 05:11:12 UTC

rubygems の rubocop によるスタイル修正の変更。

[866831d8e9] Hiroshi SHIBATA 2023-03-16 05:16:30 UTC

rubygems の rubocop によるスタイル修正の変更。

[b6d3c06936] Hiroshi SHIBATA 2023-03-16 01:27:57 UTC

rubygems の rubocop によるスタイル修正の変更。

[3e1f767cd5] Hiroshi SHIBATA 2023-03-16 02:24:14 UTC

rubygems の rubocop によるスタイル修正の変更。

[0373615948] Hiroshi SHIBATA 2023-03-16 02:57:00 UTC

rubygems の rubocop によるスタイル修正の変更。

[b304cf324a] Hiroshi SHIBATA 2023-03-16 03:21:48 UTC

rubygems の rubocop によるスタイル修正の変更。

[5211900d37] Hiroshi SHIBATA 2023-03-16 03:57:49 UTC

rubygems の rubocop によるスタイル修正の変更。

[1ca67f13cd] Hiroshi SHIBATA 2023-03-16 04:12:38 UTC

rubygems の rubocop によるスタイル修正の変更。

[31c572f4fa] Hiroshi SHIBATA 2023-03-16 04:32:03 UTC

rubygems の rubocop によるスタイル修正の変更。

[f8fe151ca9] Hiroshi SHIBATA 2023-03-16 04:52:28 UTC

rubygems の rubocop によるスタイル修正の変更。

[7800d4eeb5] Hiroshi SHIBATA 2023-03-16 04:58:06 UTC

rubygems の rubocop によるスタイル修正の変更。

[ddc4fd5644] David Rodríguez 2023-01-17 19:53:52 UTC

bundler に Bundler::URINormalizer という Module を追加して URL の末尾に "/" を追加する処理をまとめています。

[12f0be14e2] David Rodríguez 2023-03-03 12:34:08 UTC

bundler の依存関係解決で spec が 1つしかみつからなかった時にはそれが prelease 版でも利用するようにしているようです。

[0b9e51c429] David Rodríguez 2023-03-07 17:05:41 UTC

bundler の依存関係解決時に force_ruby_platform という指定があった時に platform を考慮した処理をスキップするようにしているようです。コミットログをみる感じだと TruffleRuby 向けの対応?

[c65d7b4bea] David Rodríguez 2023-03-09 16:34:17 UTC

bundler で git リポジトリで gem を指定した時の bundle lock --update で更新する処理で git clone するコマンドに --branch オプションをつけないようにする変更。