ruby-trunk-changes 2021-06-29

今日は標準添付ライブラリ did_you_mean の更新や addr2line.c の不具合修正などがありました。

[d795f494a8] xtkoba 2021-04-29 14:53:55 UTC

addr2line.c の uncompress_debug_section() で libz が使えなくて SUPPORT_COMPRESSED_DEBUG_LINE マクロが未定義の時に malloc(3) の呼び出しが消されるのに free(3) の呼び出しだけしていて、さらにその変数が初期化されてない可能性があったので不正なポインタで free(3) を呼び出す可能性があったので初期化を preprocessor 分岐の前に追加しています。 [ruby-core:103390] [Bug #17794]

[983c9ad3f1] git 2021-06-28 21:06:50 UTC

version.h の日付更新

[9eae8cdefb] Nobuyoshi Nakada 2021-06-28 14:01:53 UTC

benchmark やテスト、ドキュメントなどで Thread の配下に置かれる Thread::Queue や Thread::Mutex などのクラスをトップレベルの名前空間の定数のほうで参照してたのを Thread:: をつけるようにしています。

[8356d9e374] Yuki Nishijima 2020-12-22 06:14:51 UTC

標準添付ライブラリ did_you_mean のバージョン番号を 1.6.0-alpha に更新しています。upstream からの同期のはじまりのコミットですね。

[4670458af8] Nobuyoshi Nakada 2021-01-19 00:00:01 UTC

標準添付ライブラリ did_you_mean に require "rbconfig" を追加しています。

[612b6fcd37] Yusuke Endoh 2021-06-18 08:32:47 UTC

標準添付ライブラリ did_you_mean の DidYouMean::Correctable#original_message というメソッドで to_s メソッドを再定義されているのを迂回して super_method で取り出したメソッドを呼ぶようにしてましたが、mame さんが NameError に to_s メソッドを Module#prepend で上書きすることで動作する gem を作っているとのことでその影響を受けないように Method#owner が DidYouMean::Correctable になるまで super_method で辿ることを繰り返すようにしています。メタプログラミング蠱毒みたいだ。

[809f120374] Yusuke Endoh 2021-06-18 08:45:10 UTC

標準添付ライブラリ did_you_mean で候補のメソッド名などを追加するかどうかの判定に String#end_with? を使ってたのを String#include? で中間に一致する部分文字列がある時も追加を抑制するようにしています。これも mame さんが作っている gem が NameError のメッセージをいじるものみたいなので、そのせいでこの判定が間違って同じ候補が出力されてしまうようになってしまうのでその対策みたいです。

[39f99b8176] Yusuke Endoh 2021-06-18 08:54:02 UTC

標準添付ライブラリ did_you_mean のテストでこれも例外メッセージのテストで assert_equal で厳密一致をみてたのを assert_match でチェックを緩めています。

[5e75280c8e] Samuel Williams 2021-06-29 09:58:31 UTC

3deb5d7113e1fd6e4b468e09464d524d390d811e で追加された blocking fiber のための Scheduler 対応した C API rb_io_maybe_wait()、rb_io_maybe_wait_readable()、rb_io_maybe_wait_writable() などのテストのための拡張ライブラリとテストを追加しています。