ruby-trunk-changes 2023-10-17

今日は ruby -v で M:N Thread の有無を表示させる変更や拡張ライブラリ socket で名前解決の呼び出しを GVL を解放して行うようにする変更などがありました。

[ab5c1230db] Nobuyoshi Nakada 2023-10-16 11:53:04 UTC

GitHub Actions の YJIT を有効にした macOS 環境の workflow でテスト結果を集約する result ジョブの実行は macOS を使う必要ないので Ubuntu を利用するようにしています。 macos-arm-oss というのは ruby/ruby の Actions じゃないと使えないそうなので fork したリポジトリでも結果の集約は動くようにするため。

[d1f781b0d4] Hiroshi SHIBATA 2023-10-16 11:53:26 UTC

拡張ライブラリ psych のバージョンを 5.1.1 から 5.1.1.1 と 4番目の fragment? を追加しています。

[598af0e73a] git 2023-10-16 11:56:30 UTC

NEWS の default gems のバージョンリストの psych のバージョンも更新しています。

[06a4011964] Nobuyoshi Nakada 2023-10-16 11:11:08 UTC

irb の補完処理のテストの setup で IRB.conf[:VERBOSE] = false を設定して警告を抑制するようにしています。

[5b5643ae8b] Takashi Kokubun 2023-10-16 15:12:54 UTC

GitHub Actions の workflow の YJIT を有効化した Ubuntu 環境で make test-all に --repeat-count=2 オプションを渡して実行するステップを削除しています。 https://github.com/ruby/ruby/pull/8669

[8f33d801c2] Takashi Kokubun 2023-10-16 16:18:51 UTC

ab5c1230dbf1c1da213aa4d9746d52330990f75fGitHub Actions の YJIT を有効化した macOS 版の workflow で macos-arm-oss を利用するために result ステップ自体を ruby/rubyリポジトリでのみ実行するように if: を追加しています。

[3dec5dc346] Jeremy Evans 2023-10-16 19:58:55 UTC

標準添付ライブラリ net/http のテストで openssl でリンクしているのが LibreSSL の新しめのバージョンの場合に Net::HTTP#ssl_version= で TLS v1 を設定していたのを TLS v1.2 に更新しています。コメントと実際の設定が食い違ってた模様。

[448e8b5ebb] yui-knk 2023-10-16 09:35:10 UTC

common.mk の parse.y のビルド時に bison への -d オプションを削っています。

[908f8fffa2] David Rodríguez 2023-10-16 19:06:36 UTC

bundler のテストの spec_helper.rb でテスト全体の終了処理時に一時ファイル削除するときに FileUtils.rm_r ではなく FileUtils.rm_rf を利用してエラーを無視させるようにしています。

[aee1bfd88e] Nobuyoshi Nakada 2023-10-17 06:48:05 UTC

configure の --enable-shared の処理に変数 rb_cv_symbols_in_emptylib が空だと set コマンドが無引数で実行されて意図しない挙動になるので dummy というダミーの引数つきで実行してから後で shift で dummy を消す? ようにしています。

[c9990c8d0f] Koichi Sasada 2023-10-17 00:51:53 UTC

ruby -v で表示するバージョン文字列に M:N Thread が有効化されている場合に "+MN" という文字列を追加するようにしています。昨日の f6e2f32a962c2c19a0418dfd2020c8c9ab32c8b0 でのバージョン文字列組立ての変更はこの変更を入れるための準備だったんですね。

[7362c484c8] Yusuke Endoh 2023-10-17 08:00:45 UTC

拡張ライブラリ socket で getnameinfo(3) を直接呼び出してたところを GVL を解放して呼び出す rb_getnameinfo() という関数を利用してインタプリタ全体(または所属している Ractor)がブロックしないようにしています。

[2a8ac8ead5] tompng 2023-09-11 17:53:23 UTC

標準添付ライブラリ rdoc の ri の実装で did_you_mean を利用した候補の生成を Proc オブジェクトで wrap して必要になるまで遅延させるようにしています。

[03ac10898f] Nobuyoshi Nakada 2023-10-17 07:58:55 UTC

common.mk の program/wprogram のターゲットの依存関係で showflags と $(PROGRAM)/$(WPROGRAM) のあいだに $(DOT_WAIT) を追加しています。 並列実行時に showflags の実行が完了するまでビルドをしないようにしてメッセージが混ざるのを防ぐためみたいです。

[4c54492770] Nobuyoshi Nakada 2023-10-17 11:09:59 UTC

common.mk の yes-test-all-precheck というターゲットから一部の依存関係を test-precheck というターゲットに切り出しています。 テスト時の不要な再ビルドを抑制するためみたいです。