ruby-trunk-changes 2021-10-23

今日は Class/Module のインスタンス変数が main Ractor 以外からでも参照できるようにする仕様変更や拡張ライブラリ openssl のテストの OpenSSL 3.0 対応のための修正、did_you_mean の更新などがありました。

[ba4bf8a1e6] Alan Wu 2021-10-22 14:53:42 UTC

YJIT のテストで GC.verify_compaction_references を呼び出していたところを NotImplementedError 例外を無視するようにしています。

[6b9285e8d4] Koichi Sasada 2021-10-22 14:54:51 UTC

標準添付ライブラリ uri のテストに 553f234a07fe000cf5416793c1f9c0273518d906 で追加されたテストのため明示的な require 'uri/https' を追加しています。

[acb23454e5] Koichi Sasada 2021-10-22 08:24:34 UTC

Class や Module のインスタンス変数が複数の Ractor 利用時に main Ractor 以外で参照できなかったのを緩和して、設定のみ main Ractor が可能で参照はできるようにしています。ただしもちろん格納されているオブジェクトは即値か freeze されているなど Ractor shareable になっているものである必要があります。このためにインスタンス変数のテーブル操作に RB_VM_LOCK_ENTER()/RB_VM_LOCK_LEAVE() でプロセス全体で排他して行うための関数を追加しています。 [ruby-core:102305] [Feature #17592]

[df9fac5ccd] Koichi Sasada 2021-10-22 09:22:00 UTC

doc/ractor.md に acb23454e57e1bbe828e7f3114430cab2d5db44c による Class/Module のインスタンス変数の扱いについての変更に追随して記述を追加しています。

[41f6ce9f1c] git 2021-10-22 16:33:10 UTC

version.h の日付更新

[7246c5b811] Sutou Kouhei 2021-10-22 21:03:57 UTC

NEWS に拡張ライブラリ fiddle のバージョンについて追記しています。

[f80069820e] Alan Wu 2021-10-22 17:41:34 UTC

yjit_iface.c の rb_yjit_constant_ic_update() という関数で YJIT が有効でない時にすぐに return するようにしています。関数名やコミットログからみると YJIT のために定数参照の inline cache をしているところみたいですが YJIT 無効なら不要にコストがかかるだけなのでスキップするということでしょう。

[e22d293e06] Yuki Nishijima 2021-10-23 00:35:40 UTC

標準添付ライブラリ did_you_mean に upstream から最新版をマージしています。

[22249bbb37] Yuki Nishijima 2021-10-23 00:56:26 UTC

e22d293e06966733e71a7fd9725eee06c03d0177 の did_you_mean のマージを revert しています。

[66df18c55e] Yuki Nishijima 2021-10-23 01:00:23 UTC

再度標準添付ライブラリ did_you_mean の最新版を upstream から同期しています。 66df18c55e929de4d133cd9e71807a70de392ec0 との違いは DidYouMean.formatter= メソッドで警告を出すのをやめていることです。が、これ引数名を消したのに参照が残ってるのでエラーになりそう。

[905be49bf6] Yuki Nishijima 2021-10-23 01:14:01 UTC

did_you_mean のテストで DidYouMean.formatter= が警告を出すことをチェックするテストが残っていたので削除しています。

[93badf4770] Yuki Nishijima 2021-10-23 01:22:14 UTC

pattern matching のテストでエラーメッセージが変化してしまってテストが失敗するのを避けるため? did_you_mean の formatter を無効にしておくようにしています。

[e353bcd111] Yuki Nishijima 2021-10-23 01:56:26 UTC

66df18c55e929de4d133cd9e71807a70de392ec0 の did_you_mean の同期の時に DidYouMean.formatter= の引数名を消してしまっていたのを復活させています。

[37632a0ac6] Kazuki Yamaguchi 2021-05-31 02:44:05 UTC

拡張ライブラリ openssl のテストで鍵を複製する dup_public というメソッドを利用していたのをやめています。deprecated になったメソッドを利用していたため。

[0e805e73ce] Kazuki Yamaguchi 2021-09-27 06:32:39 UTC

拡張ライブラリ openssl のテストで利用している OpenSSL や LibreSSL が TLS 1.2 をサポートしていない場合を考慮した pend などを削除しています。もうサポートしてない環境はないだろうってことですね。

[5a8e1c520a] Kazuki Yamaguchi 2021-09-27 06:34:28 UTC

拡張ライブラリ openssl のテストで OpenSSL::PKey::EC の存在チェックをしていたところをなくしています。無効になっていることはほぼないだろうとのことみたいです。

[54047b6d06] Kazuki Yamaguchi 2020-05-17 17:17:28 UTC

拡張ライブラリ openssl の digest のテストで MD4、RIPEMD160 という古いアルゴリズムのテストは削っています。

[d26e64e0eb] Kazuki Yamaguchi 2020-07-10 04:56:38 UTC

拡張ライブラリ openssl のテストで OpenSSL のバージョンによって微妙にエラーメッセージが変化してしまっているところを許容するため正規表現を両方受付けるように修正しています。

[79d5abd01b] Kazuki Yamaguchi 2020-08-13 14:20:55 UTC

拡張ライブラリ openssl のテストで OpenSSL 3.0 とリンクすると失敗していた OpenSSL::PKCS12 のテストを修正しています。利用できる暗号化アルゴリズムの変化で古くなって無効になったものを使おうとして通らなくなってたみたいです。

[d67fe1e9de] Kazuki Yamaguchi 2021-03-20 15:23:31 UTC

標準添付ライブラリ openssl のテストでテスト用に証明書を作る時の extensions の間違いがあったのを修正しています。 SubjectAltName という拡張属性を 2つ指定してしまっていたけど 1つしか指定してはいけなくて、OpenSSL 3.0 でそのあたりのチェックが厳しくなってエラーになったみたいです。

[95044fa13b] Kazuki Yamaguchi 2020-05-17 17:35:35 UTC

拡張ライブラリ openssl のテストで OpenSSL 3.0 が DSA の鍵のサイズの下限が厳しくなったのでエラーになっていたのを修正しています。

[47975ece40] Kazuki Yamaguchi 2021-05-31 05:17:21 UTC

拡張ライブラリ openssl の OpenSSL::PKey::RSA のテストで OpenSSL 3.0 だと対応するメソッドが定義されないのでテストメソッド自体を定義しないように分岐を追加しています。

[35b9d8d393] Aaron Patterson 2021-10-22 17:14:00 UTC

拡張ライブラリ openssl の OpenSSL::SSL::SSLSocket.new に渡された io が T_FILE 型のオブジェクトであることをチェックするようにしています。

[cda8bc3657] Kazuki Yamaguchi 2021-10-23 04:35:04 UTC

35b9d8d39317cc5ed9eeb11d3ecbb7335b81ed91 で追加した openssl のテストで assert_raises のかわりに assert_raise を利用するように修正しています。