ruby-trunk-changes 2021-09-02

今日は標準添付ライブラリ reline のダイアログ表示修正や Array#concat でのコンパイラの最適化による GC の mark 漏れの修正などがありました。

[10ebf87428] Nobuyoshi Nakada 2021-09-01 09:45:03 UTC

rb_method_entry_t の type を参照しているところで METHOD_VISI_UNDEF ではないことを確認する RUBY_ASSERT() による assertion を追加しています。

[cf2faf2e33] aycabta 2021-09-01 15:21:10 UTC

標準添付ライブラリ rdoc の Rdoc::RDoc#load_options メソッドを RDoc::Options.load_options に移動しています。

[73b22b3ce9] git 2021-09-01 15:32:28 UTC

version.h の日付更新

[cd4f5b1322] Aaron Patterson 2021-08-31 23:58:29 UTC

Array#concat などの実装で利用される ary_append() 関数内で引数に渡された Array オブジェクトが GC で解放される可能性があるらしく RB_GC_GUARD() で保護するようにしています。引数に渡されているものは machine stack かレジスタの参照がされると思いますが RARRAY_CONST_PTR_TRANSIENT() でバッファのポインタだけ取り出されて呼び元で他に使われてないと最適化で先に参照が消えることがありえるみたいです。 [ruby-core:105099] [Bug #18140]

[0729052329] Nobuyoshi Nakada 2021-09-01 16:33:30 UTC

Array#concat のテストで Array を継承したクラスについてのテストとして流用されていることを考慮して配列の生成時に @cls を利用するように修正しています。

[3c85698da2] Nobuyoshi Nakada 2021-09-01 16:36:56 UTC

test/excludes/TestArray.rb を追加して test_shared_marking というテストメソッドの実行を除外するようにしています。 GC がらみの不具合についてのテストみたいですが現在では意味がなくなっているということみたいです。 [ruby-core:61919] [Bug #9718]

[0aa82b592f] Peter Zhu 2021-09-01 14:42:22 UTC

gc.c の heap_is_swept_object() という関数を呼び元の is_swept_object() 内に展開するリファクタリング

[8db269edb3] Aaron Patterson 2021-08-31 23:58:29 UTC

cd4f5b13228879d954fa97b6aa479c4a5ef4fb0a の修正について確認するための拡張ライブラリを追加しています。 [ruby-core:105099] [Bug #18140]

[9c5ad5d42d] Nobuyoshi Nakada 2021-09-01 23:26:46 UTC

cont.c の Fiber の実装のデバッグ用の出力のための fprintf() の引数にポインタの明示的キャストを追加して警告抑制しています。

[cb5a41c0a0] Nobuyoshi Nakada 2021-09-01 23:47:33 UTC

mkmf.rb の try_func メソッドで生成する C コードをコンパイル時の警告抑制のためチェックする関数の前に変数宣言を追加できるようにしています。

[ab63f6d854] Nobuyoshi Nakada 2021-09-02 00:11:41 UTC

8db269edb3550a85dfab9b193ea115ca36912ced で追加した Array のテストの拡張ライブラリ内で使うクラスを追加していたのをやめて組み込みクラスを利用するようにするなどのリファクタリング[ruby-core:105099] [Bug #18140]

[5f23003cc2] aycabta 2021-09-01 19:31:01 UTC

標準添付ライブラリ reline の補完リストの操作時のエラー修正。

[4852d87a81] aycabta 2021-09-01 19:43:36 UTC

標準添付ライブラリ reline 補完時の空行対応。

[123fcc8c92] aycabta 2021-09-02 07:15:01 UTC

標準添付ライブラリ reline で未使用になっていた定数の削除。

[a44d28db9f] aycabta 2021-09-02 07:15:48 UTC

標準添付ライブラリ reline のダイアログ表示時の縦方向の位置のずれの修正。

[4208cd0301] aycabta 2021-09-02 07:27:00 UTC

標準添付ライブラリ reline のダイアログ表示時のサイズを表示内容にあわせた調整。

[afa4b59e06] aycabta 2021-09-02 07:54:31 UTC

標準添付ライブラリ reline のダイアログ表示クリア時の再描画処理を必要な矩形だけ実施するように最適化しています。

[137fde717b] Nobuyoshi Nakada 2021-09-02 08:12:17 UTC

complex.c の f_finite_p() でも条件分岐をまとめて、また f_infinite_p() や f_integer_p() の戻り値を VALUE から int に変更して他の f_xxx_p() 関数群とそろえています。