ruby-trunk-changes 2022-12-23

今日は Object Shapes と GC.compact の関係での異常終了する不具合の修正や addr2line.c の DWARF5 対応の続き、拡張ライブラリ openssl の更新などがありました。

[ebd6b5d826] Yusuke Endoh 2022-12-22 11:26:32 UTC

addr2line.c の DWARF5 対応の不具合修正。

[d1d61cabbc] Yusuke Endoh 2022-12-22 11:37:40 UTC

addr2line.c の DWARF5 対応の不具合修正。

[d7388f720c] Peter Zhu 2022-12-21 20:09:27 UTC

GC.auto_compact = true にした時の Object Shapes のインスタンス管理の配列の変更処理で slot への埋め込みの判定ミスで異常終了する可能性があったので処理の順序を修正しています。 VM まわりを変更する時に Object Shapes の実装の詳細を把握してないとこういう不具合がわりと入りやすそうな気がしますね。

[303e11697d] Yusuke Endoh 2022-12-22 13:29:39 UTC

addr2line.c の DWARF フォーマットの読み込みで .debug_str_offsets と .debug_addr というセクションの情報にも対応するようにしています。 clang が利用しているとのこと。

[5234f99b76] Yusuke Endoh 2022-12-22 13:33:06 UTC

addr2line.c の DWARF フォーマットの読み込みでアドレスを uint64_t 型で保持するフィールドの型を追加しています。

[515f816b7f] Yusuke Endoh 2022-12-22 13:34:34 UTC

5234f99b76689e7cf711961a737efd4de863460a と同様に addr2line.c の DWARF フォーマット読み込みで DW_FORM_str[x1234] といった bit 幅の異なる型のデコードの処理を修正しています。

[53c82a6ce4] Yusuke Endoh 2022-12-22 13:39:04 UTC

同じく addr2line.c の DWARF フォーマットの読み込みで DW_AT_xxx という型の対応を追加しています。

[95a1d1fde8] Yusuke Endoh 2022-12-22 13:41:10 UTC

同じく addr2line.c の DWARF フォーマットの読み込みで DW_FORM_rnglistx という型の対応を追加しています。

[bba2bfc975] Alan Wu 2022-12-21 17:34:08 UTC

doc/encodings.rdoc の String#encode の universal_newline キーワード引数の記述を修正してサンプルに単独の "\r" の変換も含んでいます。

[98675ac09c] Alan Wu 2022-12-22 18:15:04 UTC

IO#read の rdoc 用コメントに常に binary モードで読み込むと書いてあったけど実際には open 時の指定に依存するので記述を修正しています。

[4f73de67ed] Peter Zhu 2022-12-22 18:16:55 UTC

Array オブジェクトのメモリサイズを返す rb_ary_size_as_embedded() でメインの構造体のサイズを得る sizeof に誤って struct RString を渡していたので修正しています。結果はたぶん同じだと思いますが。

[1679ba61f8] Takashi Kokubun 2022-12-22 19:14:58 UTC

doc/mjit.md の binding 生成の手順についての記述をシンプルにしています。

[ad1ce2b7b6] Takashi Kokubun 2022-12-22 19:17:00 UTC

doc/mjit.md を doc/mjit.mjit.md に移動しています。

[9dcee2d80e] Takashi Kokubun 2022-12-22 19:35:45 UTC

MJIT 用の組み込みメソッドの ruby 実装のファイルで rdoc によるドキュメント化を抑制するための :nodoc: タグを追加しています。

[7e8fa06022] Jeremy Evans 2022-12-20 20:44:11 UTC

Regexp.new の第3引数が渡された時に値に寄らず deprecated カテゴリの警告を出力するようにしています。将来的にこの引数を削る予定ということですね。

[dc8c5bafcf] Nobuyoshi Nakada 2022-12-22 21:06:31 UTC

MJIT のテストで中間ファイルの削除のため tmpdir による一時ディレクトリを利用するようにしています。 https://github.com/ruby/ruby/pull/6994

[cce6a30fdd] Takashi Kokubun 2022-12-22 21:39:07 UTC

NEWS の MJIT の実装の変更についてのエントリで MJIT の ruby 実装ファイルについて "standard library" と表現していたのをやめています。

[0b2aea861c] Takashi Kokubun 2022-12-22 22:30:07 UTC

mjit.rb の MJIT 用実装に rdoc 用コメントを追記しています。

[033e19dabf] Takashi Kokubun 2022-12-22 22:43:58 UTC

yjit.rb の YJIT 用のメソッド定義にも rdoc 用コメントを追記しています。

[c566c968f9] Takashi Kokubun 2022-12-22 23:03:40 UTC

shape.c の RubyVM::Shape のメソッドの rdoc によるドキュメント生成を抑制するため :nodoc: タグを追加しています。

[6ae4fe2ba6] "dependabot[bot]" 2022-12-22 23:23:14 UTC

.github/workflows/auto_request_review.yml の auto-request-review というアクションのバージョンを更新しています。

[7d700a9f5d] Koichi Sasada 2022-12-22 18:13:24 UTC

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

[31b29aad27] "dependabot[bot]" 2022-12-22 23:21:53 UTC

.github/workflows/scorecards.yml の ossf/scorecard-action アクションのバージョンを更新しています。

[fe2bcd3528] Takashi Kokubun 2022-12-23 00:33:44 UTC

gems/bundled_gems の更新をチェックする GitHub Actions の workflow .github/workflows/bundled_gems.yml で NEWS のフォーマット変更? のための対応を追加しているようです。

[f17448e8c3] git 2022-12-23 00:35:50 UTC

NEWS の bundled gems の net-imap, rbs, debug のバージョンを更新しています。

[13137236dc] Joe Truba 2022-11-19 21:46:49 UTC

拡張ライブラリ openssl の EC_GROUP_cmp() の戻り値が 0 でも 1 でもない時(エラー)に例外発生させるようにしています。

[ca7a6b1553] Joe Truba 2022-11-25 22:30:01 UTC

13137236dc34e80402489de226d3671c87a24686 の修正で発生させる例外の例外クラスの変数名を間違ってたのを修正。

[2bc7eac822] Nobuyoshi Nakada 2022-07-09 14:32:44 UTC

拡張ライブラリ openssl の extconf.rb で have_func での関数存在チェックに関数名だけでなく引数の数や型のチェックのための実引数も書くように変更しています。

[d7d1bb3e87] Nobuyoshi Nakada 2022-07-08 15:17:25 UTC

拡張ライブラリ openssl で OpenSSL の 3.0 とリンクする時の警告抑制のため一部の変数に cost をつけるため OpenSSL のバージョンによって切り替わる OSSL_3_const というマクロを定義してこれを変数宣言に追加するようにしています。

[6df4d272c3] Nobuyoshi Nakada 2022-07-09 15:15:46 UTC

拡張ライブラリ openssl の extconf.rb でコンパイルオプションに -DOPENSSL_SUPPRESS_DEPRECATED を追加して OpenSSL 3 での deprecation warning を抑制するようにしています。

[5591e4935d] Kazuki Yamaguchi 2022-10-17 07:50:01 UTC

拡張ライブラリ openssl の OpenSSL::ASN1::UTCTime のテストの一部が LibreSSL で失敗するとのことで LibreSSL 利用時に早期 return でスキップするようにしています。

[7c073cc112] Kazuki Yamaguchi 2022-10-17 07:50:10 UTC

拡張ライブラリ openssl の OpenSSL::ASN1::ObjectId のテストで OpenSSL::ASN1::ASN1Error 例外を捕捉してスキップしていたのをやめています。

[d6c16dd3e6] Kazuki Yamaguchi 2022-10-17 07:52:46 UTC

拡張ライブラリ openssl の TLS 1.3 のサポートの確認のため LibreSSL のバージョンをチェックするのに OSSL_LIBRESSL_PREREQ マクロを利用するようにリファクタリングしています。

[dd6f3276e0] Kazuki Yamaguchi 2022-10-17 08:33:37 UTC

拡張ライブラリ openssl で SSL_get0_next_proto_negotiated() などの関数が利用できるかどうかの判定に OPENSSL_NO_NEXTPROTONEG という非定型のマクロを使っていたのを OSSL_USE_NEXTPROTONEG というマクロに変更しています。

[a4b4997c69] Kazuki Yamaguchi 2022-12-22 19:06:12 UTC

拡張ライブラリ openssl のテストで defined? で OpenSSL の定義をチェックしていたところを OpenSSL::SSL をチェックするように変更しています。拡張ライブラリ部分がなくても OpenSSL は定義されるのかも。

[e6ca644329] Kazuki Yamaguchi 2022-12-22 19:34:43 UTC

拡張ライブラリ openssl の OpenSSL::ExtConfig という内部的な Module を削除しています。

[782777a803] Yuta Saito 2022-10-31 11:07:57 UTC

拡張ライブラリ openssl の socket が利用可能な時だけ OpenSSL::SSL::Socket が定義されるように修正しています。また ruby スクリプトによる実装で defined?(OpenSSL::SSL) で拡張ライブラリ部分が利用可能な時だけ Module/Class 定義するように分岐を追加しています。

[0e11d2c3f8] Joe Truba 2022-11-20 00:54:32 UTC

拡張ライブラリ openssl の OpenSSL::PKey.check_key メソッドで誤って private 鍵が渡された時に例外を発生させるようにしています。 OpenSSL 3 で関数内でのチェックが省かれたので呼び出し前に openssl の実装側でチェックするようにしたようです。

[75e7b85e3e] Kazuki Yamaguchi 2022-12-22 21:04:20 UTC

拡張ライブラリ openssl のテストで OpenSSL::PKey.generate_parameters が OpenSSL 3.0.5 以前でコールバックを呼んでくれない不具合があるそうなのでテストをスキップするようにしています。

[046aadb89b] Kazuki Yamaguchi 2022-12-22 23:40:26 UTC

拡張ライブラリ openssl の ext/openssl/History.md にバージョンを 2.2.3 のエントリを追加しています。

[a778305919] Kazuki Yamaguchi 2022-12-22 23:49:36 UTC

拡張ライブラリ openssl の ext/openssl/History.md にバージョンを 3.0.2 のエントリを追加しています。

[2d2baaf2f4] Kazuki Yamaguchi 2022-12-22 23:52:24 UTC

拡張ライブラリ openssl のバージョンを 3.1.0 に更新しています。また ext/openssl/History.md にバージョンを 3.1.0 のエントリを追加しています。

[6438f3cad6] Johnny Willemsen 2022-12-20 18:44:00 UTC

拡張ライブラリ racc の C ソースコードのヘッダコメントにあった RCS? CSV? の展開用の行を削除しています。

[ba34208800] Hiroshi SHIBATA 2022-12-23 00:11:59 UTC

拡張ライブラリ racc のバージョンを 1.6.1 に更新しています。

[3ade713967] Hiroshi SHIBATA 2022-12-23 00:42:51 UTC

さらに拡張ライブラリ racc のバージョンを 1.6.2 に更新しています。 racc は C のマクロ RACC_VERSION と ruby の定数 Racc::VERSION の両方が別々に定義されてるんですね。

[5507b32d19] git 2022-12-23 00:52:44 UTC

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

[2fb6b39142] "dependabot[bot]" 2022-12-22 23:21:56 UTC

GitHub Actions の ruby/setup-ruby アクションのバージョンを一部? 更新しています。

[fe2c996adb] git 2022-12-23 01:01:00 UTC

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

[9c4472935b] "dependabot[bot]" 2022-12-22 23:22:05 UTC

GitHub Actions の github/codeql-action アクションのバージョンを更新しています。

[def8ad4072] "dependabot[bot]" 2022-12-22 23:21:51 UTC

Cirrus CI の通知用の GitHub Actions の workflow の octokit/request-action アクションのバージョン更新。

[792c50e917] Nobuyoshi Nakada 2022-12-23 01:46:25 UTC

標準添付ライブラリ rdsoc のテストで一時ファイルに tmpdir を使ってましたが明示的に teardown での削除もするようにしています。

[d2847009db] Marco Costa 2022-12-23 02:12:16 UTC

Range#cover? の rdoc 用コメントのサンプルコード部分のインデント修正。

[d2cd903c85] Nobuyoshi Nakada 2022-12-23 02:18:33 UTC

拡張ライブラリ openssl の ossl_ec_key_check_key() 内の変数に const を追加。警告抑制のため?

[cc35d3ccb7] "dependabot[bot]" 2022-12-22 23:22:01 UTC

GitHub Actions の actions/cache アクションのバージョンを更新しています。

[4d05a96d14] "dependabot[bot]" 2022-12-23 02:47:56 UTC

GitHub Actions の workflow で利用している actions/checkout アクションのバージョンを更新しています。

[5bb43aeb89] Nobuyoshi Nakada 2022-12-23 03:28:32 UTC

標準添付ライブラリ syntax_suggest のテストで子プロセスを起動すための ruby コマンドを決め打ちで書いていたので環境変数 RUBY を参照するようにしています。

[bf3b376522] Nobuyoshi Nakada 2022-12-23 03:29:53 UTC

標準添付ライブラリ syntax_suggest のテストに残っていた Kernel#puts でのデバッグ出力を削除しています。

[4aeea3cc09] Hiroshi SHIBATA 2022-12-23 04:10:26 UTC

標準添付ライブラリ syntax_suggest のテストで ruby 本体のリポジトリでは skip していたのをやめています。

[2192f2e6bc] Shugo Maeda 2022-12-23 05:48:35 UTC

gems/bundled_gems の net-imap のバージョンを 0.3.4 に更新しています。

[0d75d403ab] git 2022-12-23 05:49:37 UTC

2192f2e6bc361396f6a81ead955a0de31a2e164c に追随して NEWS の bundled gems のバージョンリストの net-imap のバージョンも更新しています。

[970b26fb71] Koichi Sasada 2022-12-23 06:29:33 UTC

NEWS の C API の変更のセクションに rb_debug_inspector_current_depth() と rb_debug_inspector_frame_depth() という C API の新規追加について追記しています。

[9c1f03a38a] Nobuyoshi Nakada 2022-12-23 07:55:50 UTC

標準添付ライブラリ rdoc のテストで RubyCI の zlinux の環境での失敗のデバッグのため assertion の出力を追加しています。

[c5eefb7f37] Yuta Saito 2022-12-23 04:58:45 UTC

configure で macOS の時にリンカオプションに -bundle_loader を付けるのを --disable-shared の時だけにしていたのを常に -buindle_loader をつけて、一緒に -Wl,-flat_namespace も指定して flat namespace を利用するようにしています。拡張ライブラリの symbol 解決で ruby 本体と拡張ライブラリで --{enable,disable}-shared が異なると -bundle_loader の有無が変化して? symbol がみつからないというので load がエラーになってしまうのでその対策みたいです。

[d40064d184] Hiroshi SHIBATA 2022-12-23 10:32:35 UTC

標準添付ライブラリ erb の gemspec ファイルの spec.email の fa64889abbad727d31bb927604d87679825dcd37 での変更を revert しています。erb のバージョン更新後の変更だったので ruby のリリース前に erb.gem と内容を揃えておくため。

[eb8d4d7b51] Hiroshi SHIBATA 2022-12-23 10:36:43 UTC

標準添付ライブラリ net/http でも最後のバージョン更新後のドキュメントの変更を revert しています。

[edb83dc3a2] Hiroshi SHIBATA 2022-12-23 10:37:24 UTC

d2cd903c85f38f42c6aefc6d97a1558f74d8d9db で拡張ライブラリ openssl も 3.1.0 に更新後の const の追加は revert しています。

[17b63ab6b1] Nobuyoshi Nakada 2022-12-23 11:27:58 UTC

標準添付ライブラリ rdoc のテストで生成したドキュメントの行末の "-" を数えてたところがファイルパスの長さに依存して折り返した結果偶然行末に "-" が出現して失敗する可能性があったのでチェック内容を少し変更しています。

[cae5384273] Nobuyoshi Nakada 2022-12-23 03:02:31 UTC

make check で make test-syntax-suggest も実施するようにしています。

[540b67da4d] Nobuyoshi Nakada 2022-12-23 03:57:31 UTC

cae53842735237ccf71a13873fd0d1ae7f165582 で make check が test-syntax-suggest を内包するようになったので GitHub Actions で別途 make test-syntax-suggest していたステップを削っています。