ruby-trunk-changes 2022-06-11

今日は主に bundler のリファクタリングや修正などがありました。

[c54f4264c2] "Eileen M. Uchitelle" 2022-06-10 14:12:58 UTC

yjit.c の rb_yjit_get_stats() の prototype 宣言が重複していたのでひとつ削除しています。 https://github.com/ruby/ruby/pull/5997

[1e528e8cbe] Koichi Sasada 2022-06-10 06:40:12 UTC

デバッグログ出力の機構の初期化 setup_debug_log() からフィルタリング関係のものを setup_debug_log_filter() として切り出して、初期化時に標準エラー出力に動作モードの出力をするようにしています。

[e777ac9161] Noah Gibbs 2022-06-10 16:29:26 UTC

YJIT の Rust 実装の jit_guard_known_klass() という関数の戻り値を bool から戻り値なしにしています。 https://github.com/ruby/ruby/pull/6000

[46333f59d4] git 2022-06-10 16:29:47 UTC

version.h の日付更新

[9ed9cc9852] Noah Gibbs 2022-06-10 17:52:43 UTC

YJIT の Rust 実装で未使用になっていた string_p() という関数の定義を削除。また String を継承した子クラスを使った YJIT のテストを追加しています。 https://github.com/ruby/ruby/pull/5999

[fc484be5e5] Jemma Issroff 2022-06-10 19:19:53 UTC

object.c の rb_obj_copy_ivar() に RUBY_ASSERT() による struct RBasic::flags のチェックを追加しています。コピー元が ROBJECT_EMBED フラグが立ってない時にコピー先のオブジェクトも ROBJECT_EMBED が立ってないはず、というのをチェックしています。

[44b3daa0d7] Burdette Lamar 2022-06-10 21:41:13 UTC

標準添付ライブラリ fileutils の rdoc 用コメントの手直し。

[f4747958e5] John Hawthorn 2022-06-08 22:21:42 UTC

thread.c の exec_recursive() で現在呼ばれているメソッドの ID を関数内で取得していたのを引数として受け取るようにして、呼び元で rb_frame_last_func() を呼ぶようにリファクタリング? しています。

[52da90acee] John Hawthorn 2022-06-10 16:43:05 UTC

f4747958e546a5d3f2c0033b19c6ad69ce7278b1リファクタリングで引数を追加した exec_recursive() の呼び元のひとつである rb_exec_recursive_outer() を rb_exec_recursive_outer_mid() と改名してここも引数でメソッドの ID を受け付けるようにして、関数 exec_recursive_outer() からの呼び出し時に "exec_recursive_outer" の ID を明示的に渡すようにしています。 VM の最適化命令 opt_aref や opt_aset が hash メソッドを呼び出す時に control frame を積まないため再帰チェックが 1回ぶん漏れてしまうことがあったのを修正しているようです。

[7e1788e180] Jaeson Lauritzen 2022-06-11 05:22:16 UTC

Dir クラスの rdoc 用コメントの単語間の空白が足りなかったのを修正しています。 https://github.com/ruby/ruby/pull/6002

[4a75849680] David Rodríguez 2022-03-25 19:58:13 UTC

bundler の Bundler::Source::Rubygems#fetch_gem の先頭で spec.remote のチェックをしてたのが冗長とのことで削っています。

[572f3240fe] David Rodríguez 2022-03-26 07:59:06 UTC

bundler の Bundler::Source::Rubygems#spec_from_gem の先頭で require "rubygems/security" してたのが不要とのことで削っています。

[692fec4e72] David Rodríguez 2022-06-08 20:08:44 UTC

bundler の Bundler::RubygemsIntegration#spec_from_gem で Exception で全ての例外を rescue して rescue 節内で if 文でメッーセージ内容などで判定してたのが Gem::Security::Exception を rescue するだけで良くなってたとのことで変更しています。

[870e5a39d5] David Rodríguez 2022-03-26 09:00:42 UTC

bundler の Bundler::RubygemsIntegration#spec_from_gem の先頭で require "psych" してたのも不要になったとのことで削除しています。

[a9077af75b] David Rodríguez 2022-06-08 23:19:45 UTC

詳細わかりませんが bundler の Bundler::Source::Rubygems#install で cache されている gem を使う条件を少し修正しています。

[3f69774b76] David Rodríguez 2022-03-26 11:25:12 UTC

bundler の Bundler::Source::Rubygems#fetch_gem で cache されている gemspec ファイルが既に存在していた時に早期 return して不要な通信を抑制するようにしています。

[95f5194b3c] David Rodríguez 2022-03-26 11:37:10 UTC

bundler の bundle cache サブコマンドの --no-install オプションを判定するのを Bundler::Source::Rubygems#install 内から Bundler::CLI::Cache#run 内に移動しています。

[22c97ab8ae] David Rodríguez 2022-04-06 08:32:01 UTC

bundler の Bundler::Source::Rubygems で cache のファイルパスを組み立てるのを package_path というメソッドに切り出すリファクタリング

[52cc76d134] David Rodríguez 2022-06-08 20:29:37 UTC

bundler の Bundler::Source::Rubygems#install で spec.loaded_from を設定するパスがありましたが、呼び元で既に設定されているはずだからとのことで削っています。

[6292b36529] David Rodríguez 2022-06-08 23:04:54 UTC

bundler の lib/bundler/source/rubygems.rb にあったコメントが適切じゃないとのことで削っています。

[bf8dc36e40] David Rodríguez 2022-06-09 09:06:32 UTC

bundler の Bundler::Source::Rubygems#install で Bundler::RemoteSpecification#__swap__ を呼び出しているところを rescue 節つきの begin の中から外に出しています。捕捉対象の例外発生しないはずだからとのこと。コミットログみるとエラーが発生しなはずって書いてあるけど Bundler::RemoveSpecification#__swap__ の実装みたらおもいっきり raise している(例外クラスが異なるのでこの変更は問題なさそうだけど)けど。

[965c314e34] David Rodríguez 2022-06-09 09:22:45 UTC

bundler の Bundler::RubygemsIntegration#spec_from_gem で Gem::Security::Exception 例外を捕捉してたのをやめて呼び元の Bundler::Source::Rubygems#install で捕捉するようにリファクタリングしています。

[7f9eb888a3] David Rodríguez 2022-03-26 08:34:25 UTC

bundler の Bundler::RubygemsIntegration から Bundler::RubyGemsGemInstaller や Gem::Package の実装を利用するようにリファクタリングしています。

[28e27ee76e] Takayoshi Nishida 2022-06-11 12:26:03 UTC

yjit.c のコメントの typo 修正。