ruby-trunk-changes 2020-09-21

今日はメモリ管理の効率についての不具合修正や Ractor の細かな修正、blocking fiber の Thread#join の対応などがありました。

[d5fa66156a] Quang-Minh Nguyen 2020-09-18 05:15:32 UTC

Ractor#inspect の出力に Ractor#status を含めるようにしています。

[398da71175] Quang-Minh Nguyen 2020-09-18 06:02:14 UTC

Ractor.new に渡した名前の Encoding が ASCII-incompatible だった場合に ArgumentError を発生させるようにしています。

[be2efb118f] Quang-Minh Nguyen 2020-09-20 06:17:18 UTC

bootstraptest/test_ractor.rb の Ractor の基本的なテストにテストケースを追加しています。

[b6d599d76e] Peter Zhu 2020-08-26 16:16:17 UTC

メモリ管理で未使用の heap を free(3) でシステムに返す heap_pages_free_unused_pages() で heap 解放後に全 heap 内のアドレスの最高の位置を保持する heap_pages_himem の更新をするようにしています。ポインタが Object かどうかの判定で最初のふるいに使うアドレス範囲のものですね。

[501fff14c7] Samuel Williams 2020-09-19 23:34:02 UTC

Thread#scheduler= で新たな Scheduler もしくは nil がセットされた時に元々設定されてた Scheduler の close メソッドを呼ぶようにしています。

[596173155a] git 2020-09-20 21:51:54 UTC

version.h の日付更新

[70f08f1eed] Samuel Williams 2020-09-20 21:54:08 UTC

blocking fiber で Thread#join の終了待ちで Fiber を切り替えできるように Scheduler 対応しています。またこのために Scheduler#block メソッドに省略可能な timeout 引数を追加して一定時間で待ちを解除する機能も追加しています。

[f7aa51b2b8] Samuel Williams 2020-09-21 01:36:34 UTC

NEWS に blocking fiber とそのための Thread#scheduler の追加についての項目を追記しています。 また doc/fiber.rdoc を削除してかわりに? doc/scheduler.md を追加して blocking fiber の使いかたについて記述しています。

[10d795cfca] Samuel Williams 2020-09-21 04:26:39 UTC

NEWS に Fiber#backtrace や Fiber#backtrace_locations について追記しています。 [ruby-core:98049] [Feature #16815]