ruby-trunk-changes 2021-08-11

今日も readline のテストの修正続きと String#strip! などの不具合修正などがありました。

[7de7e9fdb7] Nobuyoshi Nakada 2021-08-10 13:06:05 UTC

8df1ace64a7695c855bf0a774e3fd70edfab0bf3 で追加された ARGF.read のテストでファイル毎に異なる内容を書き出して読み込まれた順序もチェックするようにしています。 [ruby-core:104855] [Bug #18074]

[c3964a313e] Nobuyoshi Nakada 2021-08-10 13:06:43 UTC

8df1ace64a7695c855bf0a774e3fd70edfab0bf3 で追加された ARGF.read のテストに ARGV.class.new で新たに作ったインスタンスのテストも追加しています。 [ruby-core:104855] [Bug #18074]

[7560bf6f47] git 2021-08-11 01:54:56 UTC

version.h の日付更新

[a0a8f2abf5] Nobuyoshi Nakada 2021-08-05 11:09:25 UTC

rb_id_table_lookup() の引数に &演算子(ポインタ演算子っていうのかな)の結果を (VALUE *)にキャストして渡していたところをちゃんと VALUE 型の変数を使って結果をキャストして取り出すように修正しています。環境によっては SEGV することがあったようです。 [ruby-core:104780] [Bug #18062]

[84bf4d2ce5] Jeremy Evans 2021-08-10 21:19:33 UTC

String#strip!, #{lr}strip! メソッドの実装で、文字列オブジェクトのバッファの共有を文字列の途中でも可能にする(文字列オブジェクトの末尾が NUL 文字で終端していない場合を許容する) SHARABLE_MIDDLE_SUBSTRING マクロを定義してビルドした時に終端文字を埋める処理を削るようにしてましたが、これらのメソッドでは str_modify_keep_cr() を呼び出していて共有解除するようになってたのでバッファの内容を変更しても問題ないので preprocessor による分岐を消しています。 [ruby-dev:49704] [Bug #12540]

[7319b1fa2c] aycabta 2021-08-09 21:51:32 UTC

readline のシグナルハンドラのテストの子プロセスのログに開始時点のログを追加しています。デバッグのためでしょうね。

[7b10f55354] aycabta 2021-08-09 21:54:08 UTC

同じく readline のシグナルハンドラのテストで assert false の後に break 文を追加しています。 assert で大域脱出すると思うのでここには行かないと思いますがまあこれもデバッグのためでしょうね。

[67e06102a3] aycabta 2021-08-09 21:54:32 UTC

readline のシグナルハンドラのテストで IO からの読み込みのループを while で書いてたのを Kernel#loop で無限ループするようにしています。うーんけどこれだと IO#read が nil を返した時の break がないので期待した文字列がみつからなかった時に無限ループしそうですね。

[7d84251500] aycabta 2021-08-11 05:02:28 UTC

readline のシグナルハンドラのテストで書きこみの都度 IO#flush を呼んでたのを IO#sync= で true をセットしておくようにしています。

[2217b82af1] aycabta 2021-08-11 05:03:55 UTC

readline のシグナルハンドラのテストで pipe への書き込みで Errno::EPIPE が発生した時のログを追加しています。

[01e49af81d] aycabta 2021-08-11 05:05:17 UTC

readline のシグナルハンドラのテストで Kernel#exit! を使ってたのを削除しています。ですよねー。

[4f324514aa] aycabta 2021-08-11 05:07:28 UTC

readline のシグナルハンドラのテストで assert false で常に落としてたところを子プロセスからのメッセージによって期待した出力があったら成功にするようにしています。なるほどここを assert false にしてたのは一時的なデバッグのための対応だったのかな。

[c59da370a5] aycabta 2021-08-11 05:08:39 UTC

readline のシグナルハンドラのテストで子プロセスで実行するスクリプトに実行順のコメントを追加しています。

[c06b39d1d1] aycabta 2021-08-11 08:45:31 UTC

readline のシグナルハンドラのテストメソッドに通らない環境向けの対応について TODO コメントを残しています。