ruby-trunk-changes 2021-10-25

今日は拡張ライブラリ openssl の OpenSSL 3.0 で deprecated になった関数などの対応のための変更や拡張ライブラリ coverage で Coverage.suspend, Coverage.resume メソッドなどを追加して一時的に測定を止めることができるようにする機能追加などがありました。

[32d49e93cf] Kazuki Yamaguchi 2021-09-27 04:32:03 UTC

拡張ライブラリ openssl のリンクしている OpenSSL/LibreSSL のバージョンをチェックするためのマクロ OSSL_IS_LIBRESSL、OSSL_OPENSSL_PREREQ()、OSSL_LIBRESSL_PREREQ() などを追加しています。

[3d16401508] Kazuki Yamaguchi 2020-02-22 09:58:29 UTC

拡張ライブラリ openssl で ERR_get_error_all() という関数が利用可能ならこちらを使うようにしています。 OpenSSL 3.0 でこちらを使うのが推奨になったそうなので OpenSSL 3.0 対応のためのようです。

[19ef7082ba] Kazuki Yamaguchi 2020-02-21 20:37:01 UTC

拡張ライブラリ openssl で TS_VERIFY_CTX_set_certs() という関数が利用可能か調べて可能なら TS_VERIFY_CTS_set_certs() のかわりにこちらを利用するようにしています。

[d5aa3fcae6] Kazuki Yamaguchi 2020-02-21 20:47:58 UTC

拡張ライブラリ openssl で SSL_CTX_load_verify_file() という関数が利用可能だったら SSL_CTX_load_verify_locations() のかわりにこちらを利用するようにしています。

[fa24e7a57e] Kazuki Yamaguchi 2021-03-19 10:18:25 UTC

拡張ライブラリ openssl で SSL_get_fd() のかわりに SSL_get_rbio() という関数を利用するようにしています。この関数 rbio という名前だから openssl (拡張ライブラリ)側で定義してる関数かなと思ったらそうじゃないようですね。 rbio は何の省略形なんだろう。

[cfa4fa636e] Kazuki Yamaguchi 2020-02-21 21:37:00 UTC

拡張ライブラリ openssl で BN_check_prime() という関数が利用可能だったら BN_is_prime_fasttest_ex() のかわりに利用するようにしています。

[040387d265] Kazuki Yamaguchi 2021-04-22 04:57:47 UTC

拡張ライブラリ openssl で EVP_MD_CTX_get0_md() という関数が利用可能だったら EVP_MD_CTX_md() のかわりに利用するようにんしています。

[16272d9ae9] Kazuki Yamaguchi 2021-06-22 09:50:17 UTC

拡張ライブラリ openssl で EVP_MD_CTX_get_pkey_ctx() という関数(マクロ?)が利用可能だったら EVP_MD_CTX_pkey_ctx() のかわりにこちらを利用するように変更しています。

[555788b622] Kazuki Yamaguchi 2020-06-30 07:12:14 UTC

拡張ライブラリ openssl の OpenSSL::PKey::EC::Point#make_affine! を deprecated 警告を出力するようにしています。 EC_POINT_make_affine() が OpenSSL 3.0 で deprecated になったため。

[ee7131614c] Kazuki Yamaguchi 2020-02-21 20:52:01 UTC

拡張ライブラリ openssl で EC_GROUP_clear_free() のかわりに EC_GROUP_free() という関数を利用するようにしています。これも OpenSSL 3.0 対応のため。

[1b5ccc8a0c] Kazuki Yamaguchi 2021-05-17 07:18:45 UTC

拡張ライブラリ openssl で EVP_PKEY_eq() という関数が利用可能なら EVP_PKEY_cmp() のかわりにこちらを利用するようにしています。

[e19186707a] Kazuki Yamaguchi 2021-03-20 15:20:04 UTC

拡張ライブラリ openssl で BN.pseudo_rand と BN.pseudo_rand_range メソッドをそれぞれ rand と rand_range メソッドの alias として定義しなおしています。 それぞれの実装になってた BN_pseudo_rand() と BN_pseudo_rand_range() という関数が OpenSSL 3.0 で deprecated になったため。

[e10dfdf623] Kazuki Yamaguchi 2021-10-23 10:24:02 UTC

拡張ライブラリ openssl の OpenSSL::BN.rand と OpenSSL::BN.rand_range の実装をマクロで展開してたのをやめています。 e19186707a78e6e739646dac1430dc3066cf9bad で同じような実装を pseudo 版と共有しないといけないのでマクロにしていたけどそれがなくなって不要になったからシンプルにしようとしたということでしょう。

[df4445128b] git 2021-10-24 15:43:45 UTC

version.h の日付更新

[4fb71575e2] Nobuyoshi Nakada 2021-10-24 15:55:45 UTC

Enumerable#zip や Range クラス、Struct#[] の rdoc 用コメントなどで n-th という表現の n のマークアップがミスしていたのを修正しています。

[aa09c8dae0] Kazuhiro NISHIYAMA 2021-10-24 23:38:44 UTC

NEWS のチケット参照のリンクのための footnote が漏れていたのをいくつか追加しています。

[dfb47bbd17] TSUYUSATO Kitsune 2021-10-25 03:13:44 UTC

Enumerable#each_slice、Enumerable#each_cons などのメソッドが nil を返していたのを receiver をそのまま返すように変更しています。少し探したんですが対応するチケットがないみたいでした。

[66d09501c2] 180909 2021-10-25 03:15:55 UTC

rubyspec のテスト名の typo 修正。

[b74f9d656a] Tanaka Akira 2021-10-25 03:25:13 UTC

Array#pack の rdoc 用コメントに buffer キーワード引数を渡した時の挙動についてサンプルを追記しています。

[7864efa105] Koichi Sasada 2021-10-25 06:43:46 UTC

parallel test 時の子プロセスと通信する pipe を close する時に例外が発生したら標準エラー出力に例外の内容を出力しておくようにしています。

[a1c4cab11d] Koichi Sasada 2021-10-25 08:34:35 UTC

7864efa105921eb3900c843126f2e0db02b9c6ae の続きで ensure 節での pipe の close だけでなく正常時の close も例外を捕捉して標準エラー出力に表示するようにしています。 CI でのエラーのデバッグのため。

[7394514bde] Daniel Colson 2021-10-22 19:43:27 UTC

rubygems の不要になっていたメソッドの削除。

[54379e3d7d] Yusuke Endoh 2021-10-25 07:05:24 UTC

gems/bundled_gems の typeprof のバージョンを 0.20.1 に更新しています。

[86e3d77abb] Yusuke Endoh 2021-10-25 11:00:51 UTC

拡張ライブラリ coverage に Coverage.suspend と Coverage.resume というメソッドを追加して、coverage 測定を一時的に停止したり再開したりできるようにしています。またこのため Coverage.start から準備部分を Coverage.setup というメソッドに切り出して、setup してから Coverage.resume で開始するという使いかたもできるようにしています。さらに現在の状態を得る Coverage.state というメソッドも追加されています。 https://github.com/ruby/ruby/pull/4856 [ruby-core:105321] [Feature #18176]