ruby-trunk-changes 2022-06-04

今日は主に GVL の確保/解放のコールバック関数を登録する C API の追加や標準添付ライブラリ rdoc の ri の実装のリファクタリングなどがありました。

[9125374726] Jean Boussier 2022-01-27 16:12:22 UTC

rb_internal_thread_add_event_hook() と rb_internal_thread_remove_event_hook() という C API を追加して内部的な Thread の切り替え時に GVL の確保前後と解放後に呼び出される C のコールバック関数を登録できるようにしています。ただし Windows 版では C API は用意されるものの中身は空になっています。コールバック関数から ruby のメソッド呼び出しや例外発生などはできないという規約とのこと。チケットのほうをみると Thread を使ったアプリケーションのチューニングのためのメトリクスを得るためということみたいです。 [ruby-core:106069] [Feature #18339]

[e4fe347302] Alan Wu 2022-03-29 17:38:55 UTC

rb_vm_bugreport() でバックトレースなどの表示中に再度異常終了が発生して無限再帰状態に陥るのを防ぐために static 変数を導入して同じ箇所に再入したらすぐに処理を抜けるようにする guard を追加しています。

[c19a842e1c] git 2022-06-03 17:50:50 UTC

version.h の日付更新

[76479de159] Nobuyoshi Nakada 2022-06-04 07:21:35 UTC

標準添付ライブラリ rdoc の lib/rdoc/ri/driver.rb に win32console を require してるところがありましたが使ってないとのことで削除しています。

[323acd263a] Nobuyoshi Nakada 2022-06-04 05:39:07 UTC

標準添付ライブラリ rdoc の lib/rdoc/ri/driver.rb でドキュメント表示用に起動する pager コマンドの存在チェックをしてたのを冗長とのことで削除しています。

[d4c7e4d5bb] Nobuyoshi Nakada 2022-06-04 07:13:36 UTC

標準添付ライブラリ rdoc の ri のテストで pager コマンドを使ったテストメソッドの先頭に "_" をつけて実行されないようにしていたのを元に戻しています。ひとつコメントを消し忘れてるみたいだけどわざとかな。

[9a7be959b1] Nobuyoshi Nakada 2022-06-04 07:14:26 UTC

標準添付ライブラリ rdoc の 323acd263aff3cc29786a55d4604f240a9cbab46 の変更で不要になった RDoc::RI::Driver#in_path? メソッドの実装も削除しています。

[2e6aee6ef2] Nobuyoshi Nakada 2022-06-04 07:51:59 UTC

標準添付ライブラリ rdoc の .gemspec ファイルで spec.extra_rdoc_files に加えるため列挙していたドキュメントファイル群を spec.files から拡張子で自動的に抽出するように変更しています。

[5460675bbc] Nobuyoshi Nakada 2022-06-04 11:32:23 UTC

標準添付ライブラリ rdoc の lib/rdoc/ri/driver.rb でコマンド実行の JRuby 向けの独自の実装をしていたのを常に IO.popen を利用するように変更しています。