ruby-trunk-changes 2020-11-08

今日は標準添付ライブラリ resolv の IPv6 の link local address 対応などがありました。

[640fd94eff] Kazuki Tsujimoto 2020-11-07 13:05:20 UTC

rubyspec の pattern match のテストで in のパターンに同じ変数名を重複して使った時にその値を使うのは結果が未定義なので避けるようにしています。rubyspec ってそういう「未定義」というのを許容せずに今の実装の挙動をそのまま反映するテスト書くことが多いので、たぶんわざとやってたんでしょうね。

[5823f6c25b] Kazuki Tsujimoto 2020-11-07 13:12:22 UTC

rubyspec の pattern match のテストのインデント修正のみ。

[9682db0651] Jeremy Evans 2020-09-11 21:28:20 UTC

標準添付ライブラリ resolv の Resolv::DNS::Requester#request_for でマッチした要素をインスタンス変数 @senders から削除するようにしています。 [ruby-core:77616] [Bug #12838]

[fcde1e0e62] git 2020-11-07 21:12:48 UTC

version.h の日付更新

[2f12af42f7] Jeremy Evans 2020-08-24 19:39:08 UTC

標準添付ライブラリ resolv で IPv6 の fe80: ではじまる link local address の対応を追加しています。 [ruby-core:99539] [Bug #17112]

[afe3cb782b] Samuel Williams 2020-11-08 03:12:55 UTC

doc/scheduler.md のサンプルコードで Fiber.new に blocking: false を明示的に渡しているところを引数省略するようにしています。現在は省略時は blocking: false (従来の Fiber と同じ)なので。

[f73135233b] Samuel Williams 2020-11-08 03:14:43 UTC

thread_sync.c の sync_wakeup() で Thread に scheduler がセットされている時に rb_thread_t::status のチェックの外になっていて既に終了した Thread の fiber への切り替えが走ってしまう可能性があったのを修正しています。

[c39984ec5c] Samuel Williams 2020-11-08 03:17:04 UTC

rb_thread_t::keeping_mutexes を操作する関数 thread_mutex_insert() と thread_mutex_remove() に切り出すリファクタリング。 thread_mutex_remove() のほうは切り出し元の rb_mutex_unlock_th() での処理よりも少しチェックが厳しくなっていて削除しようとする要素がリスト内にない時に対応するようにしていますね。これは意図的なんだろうか。

[57b83dad4c] Samuel Williams 2020-11-08 03:19:39 UTC

blocking Fiber のテストで使っている Scheduler の kernel_sleep で block メソッドを再利用するように書きかえています。duration に nil が渡された時にメインループが抜けるようになってしまっていたとのこと。

[bed4848661] Samuel Williams 2020-11-08 06:55:27 UTC

blocking Fiber のテストで Scheduler のインスタンス変数 @urgent に IO.pipe で生成した pipe を入れるタイミングをオブジェクト初期化時に早めています。

[54ac1d7717] Jeremy Evans 2020-11-08 07:41:01 UTC

2f12af42f7f26d570219b87a89294532a86a8ae2 で標準添付ライブラリ resolv の IPv6 の link local address 対応のために定義した正規表現の末尾に許容する文字に "." を追加しています。 s390 でのテスト修正らしいです。