ruby-trunk-changes 2022-07-14

今日は主に拡張ライブラリを含む bundled gems のビルド/インストールのためのビルドプロセスの修正や標準添付ライブラリ un.rb の cp のオプション追加などがありました。

[268269687c] Jean Boussier 2022-07-13 11:13:33 UTC

GVL のイベントコールバック関数登録の C API のテストで setup 時に main Thread だけになるよう動いている Thread を kill しておく前処理を追加しています。別のテストで Thread leak したまま実行すると失敗してしまうことがあるからということですね。

[8290d76647] Jean Boussier 2022-07-13 11:48:21 UTC

標準添付ライブラリ timeout で監視用の Thread を作った時にその Thread#name を設定しておくようにしています。

[d5c5fcb80a] Nobuyoshi Nakada 2022-05-11 10:26:43 UTC

tool/update-deps で .bundle/ ディレクトリの下のファイルパスは無視するようにしています。

[081bd061a8] Burdette Lamar 2022-07-13 15:44:22 UTC

String#split の rdoc 用コメントで call-seq のタグの記法のミスを修正しています。 https://github.com/ruby/ruby/pull/6131

[13d2ae6d4a] git 2022-07-13 15:44:39 UTC

version.h の日付更新

[664c23db79] Jean Boussier 2022-07-13 16:49:27 UTC

GVL のイベントフックの EXITED イベントを発行するのを thread_sched_to_dead() という関数(thread_start_func_2() 内から呼ばれる)からさらに呼び元の thread_start_func_1() に移動しています。またテストで EXITED イベントの回数をチェックする assertion がなぜか失敗する(想定より多くなる)ということで assertion 削除しています。テストのチェックを消しつつリファクタリングっぽいコードの変更をする、なんか一貫性のない変更だな……。

[8c74eaa08d] David Rodríguez 2022-07-13 17:10:47 UTC

rubygems の gem update --system が例外で失敗することがあった不具合の修正。古い bundler の(?) gemspec ファイルの削除時に同時に不要なファイル群も消すようにしているみたいです。

[e1a4e44f14] Nobuyoshi Nakada 2022-07-13 08:47:36 UTC

tool/gem-unpack.rb で bundled gems の gemspec ファイルを書き出す先のディレクトリを各 gem 毎のサブディレクトリの下にするようにしています。拡張ライブラリを含む gem のビルドのために必要とのこと。

[a2c66f52f4] Nobuyoshi Nakada 2022-07-13 09:58:32 UTC

tool/gem-unpack.rb で同じく拡張ライブラリを含む bundled gems のビルド時に、その gem が依存している default gem の gemspec がまだインストール先にコピーされていないため依存関係が満たされてないと判定されてしまうのに対処するため spec から dependencies をクリアして gemspec ファイルを上書きしてしまうということをしています。で ext/extmk.rb で gemspec ファイルをコピーして復旧している? みたいです。

[b249178398] Nobuyoshi Nakada 2022-07-13 11:15:22 UTC

a2c66f52f402cb58372e271226f3341065561e53 の続き? で ext/extmk.rb で bundled gems の lib ディレクトリへの symbolic link をビルドディレクトリの .ext/ ディレクトリ内のパスに作るようにしています。これもおそらく拡張ライブラリを含む bundled gems のビルド対応のため。

[416cba90c1] Nobuyoshi Nakada 2022-07-13 13:17:18 UTC

tool/rbinstall.rb で .bundle/specifications/ 内に対象の gem の gemspec ファイルが存在しなかった時に .bundle/gems/xxx/ の下も探してみるようにしています。 e1a4e44f14482814a0540ae0a4b31d858ff56f53 で tool/gem-unpack.rb が gemspec ファイルの展開先を変更したのに追随させているのだろうと思います。

[9d900620ca] Nobuyoshi Nakada 2022-07-13 14:50:02 UTC

tool/runruby.rb で環境変数 GEM_PATH にソースディレクトリの .bundle/ を設定しておくようにしています。

[76de7a92b9] David Rodríguez 2022-07-12 10:33:12 UTC

bundler のファイルコピーするヘルパーメソッドを導入して事前に権限があるかのチェックをするようにしています。エラーメッセージの改善のためみたいです。

[7c58c55c11] Olle Jonsson 2022-07-13 11:52:26 UTC

標準添付ライブラリ timeout の gemspec ファイルの spec.bindir と spec.executables を削除しています。

[025677560a] Nobuyoshi Nakada 2022-07-14 00:52:57 UTC

標準添付ライブラリ un.rb の cp サブコマンド(っていうのかな)でサポートするオプションに -l を追加して hard link の作成をサポートするようにしています。

[8b64e8f2ed] Nobuyoshi Nakada 2022-07-08 13:29:23 UTC

標準添付ライブラリ set のテストで skip するための判定で RUBY_VERSION が 3.2.0 未満かどうかチェックするところで Gem::Version を利用していたのが uninitialized constant になることがあったそうで Gem::Version を使わないように書きなおしています。