ruby-trunk-changes 2022-06-17

今日は主に標準添付ライブラリ net/http の Content-Range の不正なフォーマットの扱いの再修正や特殊変数 __ENCODING__ の振舞いの修正、rubygems の更新などがありました。

[1cc64a5514] Nobuyoshi Nakada 2022-06-16 10:52:51 UTC

標準添付ライブラリ racc で Regexp.new の第3引数に渡すべき Encoding の指定を第2引数に渡していたので修正しています。

[2223eb082a] Nobuyoshi Nakada 2022-06-16 13:10:59 UTC

63546bfc1581d4abec2a0d846106a1c0afc0efa9 で標準添付ライブラリ net/http の Content-Range のフォーマットが不正だった時に例外を発生させず nil を返すようにしたのを revert しています。

[52d42e7023] Peter Zhu 2022-06-14 18:37:21 UTC

GC.compact をサポートしているかどうかのマクロ GC_COMPACTION_SUPPORTED を GC_CAN_COMPILE_COMPACTION と改名しています。 [ruby-core:108908] [Bug #18829]

[79eaaf2d0b] Peter Zhu 2022-06-14 19:54:16 UTC

GC.compact がサポートされているかをコンパイル時に切り替えるのではなく実行時に GC_COMPACTION_SUPPORTED マクロの定義によって関連メソッドの定義を切り替える(未サポートの時に rb_f_notimplement() で定義する)ようにしています。ふーむ、これはどういう動機によるものなんだろう。 [ruby-core:108908] [Bug #18829]

[c310691dd8] Shishir Joshi 2022-06-16 11:16:47 UTC

2223eb082afa6d05321b69df783d4133b9aacba6 で revert された 63546bfc1581d4abec2a0d846106a1c0afc0efa9 の標準添付ライブラリ net/http の Content-Range ヘッダの不正フォーマット時の処理の変更のリトライ。Content-Range ヘッダの単位のところに bytes 以外の文字列がきても受け付けるようにしています。

[0ab2bca11c] Burdette Lamar 2022-06-16 14:56:33 UTC

標準添付ライブラリ fileutils の rdoc 用コメントの修正。

[af425b6d66] Jemma Issroff 2022-06-16 15:01:22 UTC

benchmark ディレクトリにインスタンス変数が slot に埋め込まれる時のインスタンス生成のベンチマークを追加しています。

[cfe9c24db4] git 2022-06-16 15:47:33 UTC

version.h の日付更新

[c49fde351f] Jemma Issroff 2022-06-15 14:18:17 UTC

Object#clone と Object#dup のテストに freeze されたオブジェクトやインスタンス変数の内容の同一性がどうなるかなどのテストを追加しています。このへんのテストなかったの意外ですね。

[51835135a0] Jemma Issroff 2022-06-15 19:18:55 UTC

さらに freeze されたオブジェクトのインスタンス変数を Object#instance_variable_set で変更しようとした時のテストを追加しています。

[278fefb962] Nobuyoshi Nakada 2021-12-03 14:13:27 UTC

ENV.update の引数に Hash#update と同様に複数の Hash を受付けるように拡張しています。 [ruby-core:105876] [Feature #18279]

[cd5cafa4a3] Nobuyoshi Nakada 2022-06-14 03:27:25 UTC

Source Encoding を返す __ENCODING__ という特殊変数が返す Encoding が SCRIPT_LINES__ という特殊な定数や RubyVM::AbstractSyntaxTree.parse のキーワード引数 keep_script_lines: true が指定された時にスクリプトの Encoding でなく locale? encoding を返してしまっていた不具合を修正しています。 [ruby-core:108886] [Bug #18827]

[ae163cae6b] John Hawthorn 2022-05-27 20:47:06 UTC

Refinements で再定義したメソッドから protected メソッドの呼び出しができることが期待されるのに呼べないことがあった不具合を修正しています。 [ruby-core:108705] [Bug #18806]

[e46292197f] Alan Wu 2022-06-16 20:34:14 UTC

278fefb96294adf9d27a78f919c714a31b65ef58 の ENV.update の仕様変更時に追加した rubyspec の新しいテストが 3.1 で実行されるようになっていたので 3.2 から実行されるように修正しています。

[2c19086323] Nobuyoshi Nakada 2022-06-16 14:43:22 UTC

79eaaf2d0b641710613f16525e4b4c439dfe854e の変更で GC_CAN_COMPILE_COMPACTION マクロが偽の時に未使用のままの static 変数が残るようになってたので再び preprocessor の分岐で囲むように修正しています。

[f3b54d5fc2] Jeremiah Gowdy 2022-06-15 17:31:15 UTC

configure に $target_cpu が aarch64 の時に -mbranch-protection=pac-ret や -msign-return-address=all といったコンパイラオプションを追加するようにチェック追加しています。

[1dfe007e16] Jeremiah Gowdy 2022-06-16 17:29:28 UTC

f3b54d5fc236d01c0e34650b797820e4b09e2a41 の再修正。AS_FOR というマクロを使うようにリファクタリング? しています。

[51a3ebf4ec] S-H-GAMELINKS 2022-06-14 12:49:24 UTC

compar.c の cmp_between() で RBOOL() を使って簡易に書くようにリファクタリングしています。

[420f3ced4d] S-H-GAMELINKS 2022-05-01 14:13:59 UTC

文字列の coderange が ENC_CODERANGE_7BIT かどうかチェックしている部分を is_ascii_string() という関数の呼び出しにリファクタリングしています。

[20d4168250] Nobuyoshi Nakada 2022-06-17 05:37:15 UTC

FreeBSD で File#flock の File::LOCK_SH を渡すテストが失敗するそうで skip するようにしています。

[b6c1e1158d] Jean Boussier 2022-06-15 12:37:41 UTC

9125374726fbf68c05ee7585d4a374ffc5efc5db で GVL の取得/解放時に呼び出すコールバック関数を登録する C API を追加した続きで 、Thread の終了時に管理用のデータの解放のためにそのイベントを知る必要があるとのことでイベントを追加しています。 [ruby-core:106069] [Feature #18339]

[5a385677f3] David Rodríguez 2022-06-14 13:26:08 UTC

rubygems の Gem::Ext::ExtConfBuilder.build というメソッドで生成するスクリプトに RbConfig::CONFIG の内容を書き変える行を追加していたところを削っています。このクラスはなにをしてるところだろう。

[1aaeff8e36] David Rodríguez 2022-06-15 08:14:23 UTC

rubygems で不要な分岐があったのを削っています。

[8855b68f97] David Rodríguez 2022-06-14 13:26:37 UTC

5a385677f366fa093dc35ad69045bf183603427c の続き? で rubygems で RbConfig::CONFIG の書き換えがそもそも不要なようにしている? みたいです。

[5450b409fc] David Rodríguez 2022-06-14 14:47:55 UTC

rubygems で古くなって内容と合っていないコメントを削っているようです。

[1e8bf48fd5] David Rodríguez 2022-06-15 08:19:14 UTC

rubygems の TODO コメントで RubyGems 3 で消す、と書かれてるところがありましたが、既に 3 なので RubyGems 4 で消す、という TODO コメントに更新しています。

[78425d7e74] David Rodríguez 2022-06-15 18:54:29 UTC

bundler のテストの helper で環境変数 BUNDLE_APP_CONFIG と BUNDLE_SILENCE_ROOT_WARNING が設定されているとテストに影響あるようなので前処理でクリアしておくようにしています。

ruby-trunk-changes 2022-06-16

今日は主に MJIT の worker の Ractor による実装化による不要なコードの削除などの追随変更と標準添付ライブラリ net/http の Content-Range ヘッダの不正な内容の扱いの変更などがありました。

[d417c1ddc5] David Rodríguez 2022-06-15 10:42:12 UTC

e09bdc11ec74272eb9165b777fea43bbb99ae8bf の bundler のテストで環境変数 RUBYLIB の内容を変更する処理を revert しています。不要だったのか別の問題があったのか……。

[bb12aa4d15] Nobuyoshi Nakada 2022-06-15 06:25:48 UTC

parse.y の no_blockarg() で引数の node の NULL チェックは不要とのことで削っています。

[d154d5d281] Jemma Issroff 2022-06-15 13:25:07 UTC

misc/lldb_cruby.py の初期化処理で enum imemo_type の型の値を取得しておくようにしています。

[64fb3279d2] git 2022-06-15 16:04:32 UTC

version.h の日付更新

[1162523bae] Takashi Kokubun 2022-06-15 16:40:54 UTC

MJIT でコンパイラを起動するための Thread ではない native thread を立てていたのをやめて Ractor を利用して並列処理させるように変更しています。 https://github.com/ruby/ruby/pull/6006 [ruby-core:108925] [Misc #18830]

[23459e4dbb] Takashi Kokubun 2022-06-15 17:19:33 UTC

vm.c から RubyVM::MJIT のメソッド群を mjit.rb という ruby 実装に移行させています。

[a327ce8b07] Takashi Kokubun 2022-06-15 17:57:37 UTC

1162523bae926cfa6128043b635e28c14b732754 で MJIT の実装が native thread を別に起動しなくなったために不要になった rb_thread_create_mjit_thread() と mjit_worker() という関数の実装を thread_pthread.c および thread_win32.c から削除しています。

[acee714ce0] Matt Valentine-House 2022-06-15 13:06:36 UTC

misc/lldb_cruby.py に rb_rclass_ext という関数を追加して T_CLASS 型のオブジェクトを指定して rb_classext_t 構造体の内容を表示する機能を追加しています。

[9eabc57584] Matt Valentine-House 2022-06-15 20:41:15 UTC

misc/lldb_cruby.py の rb_backtrace という関数で lldb_init() による初期化がまだ呼ばれてなかったら呼ぶという guard を追加しています。

[1e8fed2d2a] Burdette Lamar 2022-06-15 20:56:36 UTC

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

[5310147bb8] Takashi Kokubun 2022-06-15 22:57:27 UTC

MJIT のコンパイラを子プロセスとして起動した時のエラー処理が抜けていたのを修正しています。

[17d260a87f] John Hawthorn 2022-06-15 06:52:20 UTC

52da90aceefd9f8de06666796f6a2d484ca18036 で rb_exec_recursive_outer() という関数を rb_exec_recursive_outer_mid() と改名していたのを revert して、別途 rb_exec_recursive_outer() という wrapper 関数を定義するように変更しています。公開 API だったので消すのはまずかったということみたいです。

[15a6dd56e0] Takashi Kokubun 2022-06-15 23:50:45 UTC

MJIT でコンパイラのプロセスのエラーハンドリングを追加しています。

[332985c178] Takashi Kokubun 2022-06-16 00:18:19 UTC

MJIT の mswin 版での実装で生成された関数のポインタを rb_iseq_body_t::jit_func にセットする処理がスキップされる条件があった不具合を修正しています。

[1ffc6c43f6] Takashi Kokubun 2022-06-16 04:32:29 UTC

MJIT の実装で子プロセスのコンパイラの終了による SIGCHLD の受信からの通知を受け取る mjit_notify_waitpid() で current_cc_unit->iseq が NULL のケースというのを考慮するように分岐を追加しています。

[66f0ce34f1] Takashi Kokubun 2022-06-16 04:58:00 UTC

MIT の実装で JIT コンパイル中の ISeq を保護するため格納しておく配列の compiling_iseqs という static 変数を削除しています。独自の native thread でなく Ractor を利用するようになったので rubyGC にまかせることができるようになったからですかね。

[b5079794fd] Takashi Kokubun 2022-06-16 05:09:37 UTC

MJIT のコンパイル処理停止時の mjit_wait() の呼び出しに struct rb_mjit_unit::compact_p のフラグを考慮する mjit_wait_unit() という wrapper 関数を定義して stop_worker() からこれを使うように修正しています。

[30ca4a8263] Takashi Kokubun 2022-06-16 05:10:54 UTC

66f0ce34f12ed710c97aad30b083017c73f399ad の static 変数 compiling_iseqs 削除時に mswin 版実装での free_compiling_iseqs() の呼び出し箇所が残ってたので追加で削除しています。

[8ef312fc5b] Takashi Kokubun 2022-06-16 07:47:16 UTC

mjit_notify_waitpid() でコンパイラのプロセスがエラーを返した時の処理で current_cc_unit->compact_p のチェックを追加しています。

[63546bfc15] Shishir Joshi 2022-06-16 11:16:47 UTC

標準添付ライブラリ net/http の Content-Range ヘッダのフォーマットが不正だった時に Net::HTTPHeaderSyntaxError 例外を発生させていたのを nil を返すように変更しています。コミットログによると Net::HTTPHeader#initialize_http_header の変更もしたつもりっぽいですが含まれていないですね。 pull request をみると変更したけど master ブランチで既に同じ変更がされていたのでその差分は消えたみたいですね。 https://github.com/ruby/ruby/pull/1018 [Bug #11450]

[714a4942fd] Alan Wu 2022-06-16 11:20:20 UTC

56cc3e99b6b9ec004255280337f6b8353f5e5b06 で Variable Width Allocation によるサイズの異なる slot の pool 間を T_STRING 型オブジェクトを埋め込みバッファの必要なサイズに応じて移動できるようにした時に不要になってた rb_str_shared_root_p() という関数の定義を削除しています。

ruby-trunk-changes 2022-06-15

今日は主に YJIT のコード領域のメモリ管理戦略の変更や bundled gems の minitest のバージョン更新などがありました。

[9b9cc8ad34] Burdette Lamar 2022-06-14 13:52:18 UTC

標準添付ライブラリ fileutils の rdoc 用コメントのちょっとした変更。

[9f09397bfe] Alan Wu 2022-06-14 14:23:13 UTC

YJIT の機械語命令を格納するメモリ領域の確保戦略を変更して、起動時に必要なメモリ領域を全て初期化していたのを必要に応じてページごとに(?)初期化するように変更しているらしいです。実装はよく読めてないですが。 https://github.com/ruby/ruby/pull/5944

[9357e310fb] Alan Wu 2022-06-14 16:05:33 UTC

拡張ライブラリ psych の extconf.rb で libyaml をダウンロードする処理が digest の LoadError で失敗していたそうなので LoadError を rescue して手動での libyaml のインストールを促すメッセージの例外を発生させるようにしています。

[ab10f111c3] git 2022-06-14 16:06:06 UTC

version.h の日付更新

[788a5e14fa] Burdette Lamar 2022-06-14 20:42:23 UTC

標準添付ライブラリ fileutils の FileUtils.cp_r の rdoc 用コメントのサンプルの表示などを変更しています。

[46706e7808] Takashi Kokubun 2022-06-15 05:40:49 UTC

MJIT のテストに Process.waitall の呼び出しが MJIT の worker プロセスの影響を受けないことを確認するテストを追加しています。

[daf086c0e1] git 2022-06-15 07:01:39 UTC

gems/bundled_gems と NEWS の bundled gems のバージョンリストの minitest のバージョンを 5.16.0 に更新しています。

[e09bdc11ec] David Rodríguez 2022-05-20 13:04:04 UTC

bundler のテストの helper で環境変数 RUBYLIB から git リポジトリ内のファイルパスだけを残すようにしてく前処理を追加しています。 asdf-ruby という bundler のプラグイン? が RUBYLIB を設定するのでその影響を受けないようにするためだそうです。

ruby-trunk-changes 2022-06-14

今日は拡張ライブラリ ripper の不具合修正や MJIT の MinGW 環境のサポート停止などがありました。

[753da6deca] Burdette Lamar 2022-06-13 12:11:32 UTC

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

[9a381c240c] Burdette Lamar 2022-06-13 15:39:41 UTC

標準添付ライブラリ fileutils の rdoc 用コメントにファイルパスに文字列以外にも Pathname のように to_path, to_str で変換できるものが受付けているというのを追記しています。

[c3ee80ff46] git 2022-06-13 15:39:59 UTC

version.h の日付更新

[f8502a2699] Takashi Kokubun 2022-06-13 16:28:28 UTC

MJIT の MinGW でのサポートを停止してそのための分岐などを削除しています。 https://github.com/ruby/ruby/pull/6012 [ruby-core:108867] [Feature #18824]

[56cc3e99b6] Matt Valentine-House 2022-04-06 08:55:23 UTC

文字列オブジェクトのバッファの埋め込みが Variable Width Allocation でサイズの異なる slot の heap pool 間の移動が GC.compact で可能になるように対応しているようです。

[048f14221c] Nobuyoshi Nakada 2022-06-14 01:21:55 UTC

56cc3e99b6b9ec004255280337f6b8353f5e5b06 の変更で USE_RVARGC マクロによる preprocessor 分岐が if 文のブロックの開きブレースのみ含んでいるのがエディタかなにかの解釈を難しくしているからか、先頭に if(0){} を置いて preprocessor 分岐の内容を else if 節にするようにしています。

[1a70973f75] Nobuyoshi Nakada 2022-06-14 09:28:22 UTC

parse.y で無名の引数で def m(*); forward(*); end みたいに受け取った引数をそのまま別の引数に委譲しつつ変数名は与えないという記法でメソッドの引数に無名引数がないのに委譲する呼び出しを書いた時の SyntexError エラー(キーワード引数とブロック引数の無名版も)が拡張ライブラリ ripper 経由だと発生しないという不具合を修正しています。エラーチェック部分が ripper 用とコア用のアクションを分離する特別なコメント /*%%%*/ の後に書かれてたのでその前に移動しています。 [ruby-core:108902] [Bug #18828]

ruby-trunk-changes 2022-06-13

今日は標準添付ライブラリ reline の更新や IO.binwrite の実装の修正などがありました。

[670de71628] Yusuke Endoh 2022-06-13 01:37:26 UTC

YJIT のテストで未使用の変数の警告抑制のため使わない変数への代入の変数名の先頭に "_" を追加しています。

[54be0e4fd3] git 2022-06-13 01:38:06 UTC

version.h の日付更新

[abc828bc67] Yusuke Endoh 2022-06-13 01:38:32 UTC

rubygems のテストで Kernel#system の第1引数に * で配列を展開する記法が使われていたのが二項演算子メソッドの * とあいまいなので警告が出ていたので引数をかっこでくくるようにしています。

[d9ccb6b372] Nobuyoshi Nakada 2022-02-05 09:18:48 UTC

標準添付ライブラリ reline で文字の表示幅の検出をするためのメソッドで出力が端末かどうか判定するのに File のインスタンスかどうかで判定していたので IO#tty? メソッドを利用するように変更しています。

[425a46131a] Samuel Williams 2022-06-13 03:33:54 UTC

io.c の io_binwrite_string() で io_binwrite_string_internal() の文字列が 0 で1バイトも書き込めなかった時に errno に EWOULDBLOCK をセットしておくようにしています。後の rb_io_maybe_wait_writable() でブロックさせるためみたいですね。

[5060c9d852] Yusuke Endoh 2022-06-13 05:03:57 UTC

cont.c の cont_restore_0() でスタック用に確保したメモリ領域がコンパイラがその領域への読み書きがされないというのを解析して誤った? 最適化でメモリ確保自体を取り消すということがあったみたいで、その抑制のため確保したメモリ領域の先頭に 0 (Qfalse) を書き込んでおくようにしています。

[b2e58b02ae] Yusuke Endoh 2022-06-13 03:14:03 UTC

compile.c の add_adjust_info() の if 文の条件で呼び元でチェックして渡さないようにしている引数チェックが冗長だと GCC 12.1 で警告されたそうでその条件を消しています。すごいなそんなの解析するんだ。呼び元が1つしかないし inline 展開してるんでしょうね。

[a80f5c5365] Jun Aruga 2022-05-18 12:24:18 UTC

common.mk の make test-annocheck ターゲットを Linux でのみコマンド実行されるようにしていたのを常に実行するようにしてます。他のプラットフォームでも実行可能だった? みたいです。 macOS だと実行ファイルのフォーマットが ELF じゃないので失敗するみたいですけど。

[b1397e96da] st0012 2022-06-13 08:17:38 UTC

標準添付ライブラリ reline の Reline::Terminfo で d020334e9ee6d978bbed09ce96a03a6d6d2490a6 でロードするライブラリとして libncursesw.so.6 と libncurses.so.6 を追加していたのを revert しています。

ruby-trunk-changes 2022-06-12

今日は rubygems の修正だけでした。

[d0bf31e6cf] David Rodríguez 2022-03-27 11:19:49 UTC

rubygems の Gem::Specification.from_yaml で require_paths という項目が配列の配列になってしまっている場合があるとのことで flatten! しておくという workaround を追加しています。修正は rubygems ですがテストは bundler の spec のほうに追加されていますね。

[ee7aca31f5] git 2022-06-11 17:02:35 UTC

version.h の日付更新

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 修正。