ruby-trunk-changes 2021-10-30

今日は thread の実装を configure 時に切り替えるオプションの追加などがありました。将来的に別の選択肢を追加するための準備のようで現状では pthread か win32 なので環境によって使えるのは固定だと思います。

[5e52fd4bd1] Nobuyoshi Nakada 2021-10-29 12:40:11 UTC

Ractor.make_shareable に Proc オブジェクトを渡して共有できない変数参照があった時の例外メッセージに埋め込むオブジェクトを inspect 結果を %s で埋め込んでたのを PRIsVALUE にしてエンコーディング保持するようにしています。

[ed8540ebf4] Matt Valentine-House 2021-10-29 09:38:41 UTC

gc.c の rb_objspace_t::size_pools の各要素へのアクセスを SIZE_POOL_XXXX() といったマクロ群を利用するようにリファクタリングしています。 size_pools ってなんだっけ、と思ったけど複数 slots をまとめて割当てる VWA で割り当てサイズごとにまとめて heap を作るようにした時のものかな。

[d7279f0894] Matt Valentine-House 2021-10-29 13:23:29 UTC

gc.c の obj_free() の戻り値を反転させて、解放に成功した時に真(TRUE)を返すようにしています。従来は 0/1 のマジックナンバーを返していて真偽が逆でした。なので呼び元の gc_plane_sweep() での分岐も逆転しています。

[6cee10d8fd] git 2021-10-29 15:58:38 UTC

version.h の日付更新

[99c60d4b25] Nobuyoshi Nakada 2021-10-29 15:40:21 UTC

tool/mkconfig.rb および tool/rbinstall.rb で変数名を置換するのに使っている正規表現が CodeQL で効率が悪いと指摘されていたそうで少し修正しています。 "*" を使ってるところに "+" をつけることで対策になるんだなぁ。ちょっと不思議。

[800dad6297] Benoit Daloze 2021-10-29 19:54:17 UTC

rubyspec の GC.auto_compact のテストでこのメソッドが NotImplementedError を発生させる環境で before/after でのバックアップからの復旧も例外を起こしてしまうので it のなかにまとめて例外時に skip するようにしています。 https://github.com/ruby/spec/pull/891

[a954f273a8] Benoit Daloze 2021-10-29 19:59:35 UTC

800dad62970989c0afeb26f1780c53683335a8d9 の続きで GC.auto_compact= のテストで使えるかどうかのテスト時には GC.auto_compact の値を変更しないように同じ値を代入するようにしています。

[f634d1ee00] David Rodríguez 2021-10-29 13:51:07 UTC

bundler の gem インストールを git リポジトリから直接行う時のエラーの例外発生箇所と条件を調整しています。

[09bdb43567] Peter Leitzen 2021-10-18 15:33:04 UTC

doc/syntax/comments.rdoc の magic comment についての記述で書ける位置についての記述を encoding コメントのみ 1行めまたは 2行目(1行目が shebang の場合)という縛りがあるのでその言及する位置を encoding コメントについての記述に移動しています。

[2898805535] Jeremy Evans 2021-10-12 19:31:50 UTC

README.md の他のファイルへのリンクを rdoc-ref をつけるようにしています。 rdoc で生成したファイルでクロスリファレンスになるようにするため。 [ruby-core:86948] [Bug #14743]

[6c812c6f4e] 180909 2021-10-15 08:42:58 UTC

標準添付ライブラリ net/http の rdoc 用コメントにいくつか新しい HTTP Response のステータスと対応するクラス名を追記しています。

[ccda26efe7] Yuta Saito 2021-10-28 06:48:45 UTC

configure.ac から Thread の実装に使う native thread の指定を検出する部分を tool/m4/ruby_thread.m4 という独立した m4 ファイルに分離しています。 thread model を切り替えできるようにする予定があるみたいですね。

[8590d61ea9] Yuta Saito 2021-10-28 06:51:40 UTC

native thread の実装によって切り替える thread_pthread.c と thread_win32.c を THREAD_IMPL_SRC というマクロで指定しておいて thread.c からこのマクロ指定で #include するようにしています。これも新しい実装を選択可能にするのに向けた地均しのようですね。

[4e0747a8a2] Yuta Saito 2021-10-28 12:08:35 UTC

8590d61ea9b6b91c89a14a8d0f6829c8a3a8c6c8 の続きで configure に --with-thread オプションを追加して thread 実装を指定できるようにしています。現状だと環境によって win32 か pthread かどっちかしか選べないと思いますが、こうしておくことで新しい thread model 実装ブランチで容易に切り替えしてビルドできるようにしておくとかそういうことかなと。

[1d0ce1a349] Ulysse Buonomo 2021-09-25 15:28:48 UTC

TracePoint.trace の rdoc 用コメントから rdoc の Document-method タグの指定を削っています。

[99dad28b7c] Nobuyoshi Nakada 2021-10-30 03:26:06 UTC

File#flock のテストでのタイムアウトの時間に環境変数 RUBY_TEST_TIMEOUT_SCALE の影響をかけるようにしています。

[a46c220320] "S.H" 2021-10-30 10:24:41 UTC

error.c で例外オブジェクトに Module を extend する rb_extend_object() と rb_exc_raise() を連続して呼び出す処理が頻出だったので rb_mod_exc_raise() という関数に切り出すリファクタリング