ruby-trunk-changes 2020-09-03

今日は昨日の Warning.warn のキーワード引数 category 対応の追加修正や configure での C++コンパイラの検出の不具合修正などがありました。

[cc5b7ed1dc] Jeremy Evans 2020-09-02 17:34:33 UTC

拡張ライブラリ pathname の Pathname#relative_path_from の rdoc 用コメントでファイルシステムがファイルパスの大文字小文字を区別しないものでも区別する(正確には OS のデフォルトの挙動を用いる)ことを追記しています。 [ruby-core:90543] [Bug #15417]

[0938bad0a5] git 2020-09-02 17:38:01 UTC

version.h の日付更新

[d9b8411a7b] Jeremy Evans 2020-09-02 17:40:17 UTC

拡張ライブラリ strscan の StringScanner#matched_size の rdoc 用コメントの戻り値の記述をより正確にしています。 [ruby-core:99820] [Bug #17139]

[54fb8fb62a] Burdette Lamar 2020-09-02 19:02:34 UTC

Array の rdoc 用コメントの変数名の細かい変更。 https://github.com/ruby/ruby/pull/3506

[eada635033] eileencodes 2020-09-02 12:56:13 UTC

rb_warn_deprecated() から Warning.warn が定義されてたら呼び出す対応を追加しています。また rb_warn_deprecated_to_remove() で Warning.warn でなく Warning#warn のほうを呼んでたのを修正しています。 [ruby-core:99582] [Feature #17122]

[0b81a484f3] John Hawthorn 2020-08-26 06:42:15 UTC

rb_class_allocate_instance() で T_OBJECT 型のオブジェクトを生成する時に struct RBasic::flags に ROBJECT_EMBED フラグを立てるようにしています。これまでは初期化直後にインスタンス変数のテーブルが NULL ということになってて最初にインスタンス変数をセットする時に ROBJECT_EMBED が立てられるようになってて、よくわかりませんがインラインキャッシュに悪影響があったようです。

[933035d303] Aaron Patterson 2020-09-02 23:42:14 UTC

misc/lldb_cruby.py の lldb_inspect コマンドで RUBY_T_MATCH 型のオブジェクトの対応を追加しています。

[3fb255625b] Aaron Patterson 2020-09-02 23:42:56 UTC

misc/lldb_cruby.py にメモリ管理の情報を出力する heap_page、heap_page_body というコマンドを追加しています。

[50b18e8129] 卜部昌平 2020-09-03 06:06:56 UTC

configure で CXX 変数のチェックをする時に組み込みの AC_PROG_CXX は C++コンパイラがひとつもみつからなかった時も CXX に g++ をセットしてしまうそうなので、チェックして使えなかったら AS_UNSET() で変数を削除しておくようにしています。

[7b9ef66747] Alan Wu 2020-09-02 17:58:29 UTC

定数への代入する C API rb_const_set() でネストした名前空間の定数への代入の時に Module/Class へ rb_funcall() で to_s メソッドを呼び出してたところを rb_tmp_class_path() を直接呼び出して名前空間のパスを得るようにしています。最適化かなと思いましたが 5e16857315bf55307c5fc887ca6f03bfa0630a93 の追加修正で、to_s メソッドが再定義されてたりした場合を考慮してということのようです。

[705b908f7d] Kazuhiro NISHIYAMA 2020-09-03 08:54:00 UTC

doc/maintainers.rdoc の default gem の readline のリポジトリ URL がおかしかったのを修正しています。

[eeb5325d3b] Nobuyoshi Nakada 2020-09-02 07:08:51 UTC

rb_warn_deprecated() および rb_warn_deprecated_to_remove() で Warning.warn を呼び出すあたりの処理が共通だったので warn_deprecated() という関数に切り出すリファクタリング