ruby-trunk-changes 2023-02-08

今日は Backtrace や Time などのオブジェクトを WB-protected にする変更や複数 Thread で同時に同じファイルを require した時に誤った警告が出ることがあった不具合修正などがありました。

[a66bc448a4] Charles Oliver Nutter 2023-01-26 16:07:14 UTC

拡張ライブラリ psych のバージョンを 5.1.0 に更新しています。

[740b45a4df] git 2023-02-07 12:27:05 UTC

a66bc448a40929207fcf6e97107d7183ec6350dd に対応して NEWS の default gems のバージョンリストの psych のバージョンも更新しています。

[31d37e2406] Hiroshi SHIBATA 2023-02-07 12:36:58 UTC

31d37e2406d1aa10265944e56807343f91da98fb に依存ライブラリとして gmp も追記しています。 T_BIGNUM の実装であれば利用するやつですね。

[8fc69a0a7e] ima1zumi 2023-01-22 12:28:01 UTC

標準添付ライブラリ reline の定数に互換性のために存在していることを示すコメントを追加しています。

[df2e36aeeb] Peter Zhu 2023-02-03 21:25:34 UTC

Binding オブジェクトと Proc オブジェクトの GC.comact による移動に対応するための compact 関数の実装を rb_gc_mark_and_move() という関数を利用して mark 関数と同じ実装を使うようにしています。 rb_gc_mark_and_move() についてよく憶えてない(追加された時によく読んでなかった?)ので詳細わかりませんが、実装のシンプルさのためか性能などに影響があるのかどうなんだろう。

[046807102f] Peter Zhu 2023-02-03 21:33:32 UTC

UnboundMethod および Method オブジェクトも GC.compact での移動に対応する compact 関数を rb_gc_mark_and_move() を利用した mark 関数と共通の処理にするようにしています。

[6eae8e5f51] Jean Boussier 2023-02-07 14:21:40 UTC

6e4c242130965de1cf00703c99f8821b0bd19e5b で T_DATA 型オブジェクトを mark 関数がないものは WB-protected にするようにしたのを revert しています。

[a641f6422c] Burdette Lamar 2023-02-07 14:53:31 UTC

標準添付ライブラリ net/http の rdoc 用コメントの手直し。

[2c7fe9c0a6] BurdetteLamar 2023-02-07 15:40:05 UTC

標準添付ライブラリ net/http の rdoc 用コメントの手直し。

[0ee4fec988] Peter Zhu 2023-02-07 18:39:34 UTC

internal/gc.h のコメントの typo 修正。

[91b18dc88c] John Hawthorn 2023-02-06 17:41:36 UTC

Backtrace オブジェクトの構造体メンバーの参照更新時に RB_OBJ_WRITTEN() を付けるようにして WB-protected にしています。

[826067b0f9] Benoit Daloze 2023-02-07 19:22:14 UTC

doc/distribution.md のセクション分けを変更しています。

[779092508c] Benoit Daloze 2023-02-07 19:27:53 UTC

doc/distribution.md にパッケージからのビルドについてのセクションを追加して contributing/building_ruby.md のほうを参照するようにしています。というか doc/distribution.md が何のための/誰のためのドキュメントなのかよくわからないですね。

[08c2094715] Benoit Daloze 2023-02-07 19:30:47 UTC

doc/contributing/building_ruby.md の英文修正。

[e9090eb64d] Peter Zhu 2023-02-03 19:22:44 UTC

time.c のコメントアウトや preprocessor で常に利用されなくなっていたコードを削除しています。

[1c0127ed5e] Peter Zhu 2023-02-03 19:23:00 UTC

Time オブジェクトを WB-protected にしています。 Time ってまだ shady (WB-unprotected) だったんだ!?

[fd71a76f55] Daniel Colson 2023-02-06 03:09:40 UTC

bundler の Gemfile に記述する ruby_version の対応に 3.2 と 3.3 を追加しています。

[4713b084da] Jean byroot Boussier 2023-02-07 14:44:16 UTC

6eae8e5f514db716e52ad06a2ac97e2cc3910d836e4c242130965de1cf00703c99f8821b0bd19e5b の T_DATA 型オブジェクトを WB-protected にしたのを revert したのを再度 revert して入れなおしています。うーん、どうしたんだろ。

[1e71143976] Jean Boussier 2023-02-07 18:24:59 UTC

GC のチューニングに使う環境変数 RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR を使ったテストで設定値を変更して影響が出やすいようにしています。

[899ea35035] Nobuyoshi Nakada 2023-02-06 11:50:06 UTC

include/ruby/internal/attr/packed_struct.h というヘッダファイルを追加して PACKED_STRUCT() というマクロを RBIMPL_ATTR_PACKED_STRUCT_BEGIN()/RBIMPL_ATTR_PACKED_STRUCT_END() というマクロのペアを利用するようにしています。主に使ってるのは configure とか win32/Makefile.sub でコンパイラの挙動チェックする箇所かな。

[fefe37f98d] Nobuyoshi Nakada 2023-02-06 12:56:04 UTC

899ea35035c5bfb78fcdbc9fbfaafba24aee49c1 の続きで include/ruby/io.h で追加した RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_BEGIN()/RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_END() を PACKED_STRUCT_UNALIGNED() のかわりに利用するようにしています。なるほどまだ使う場所を書き換えてなかっただけか。

[a56d959ed5] Nobuyoshi Nakada 2023-02-08 03:21:58 UTC

その他の数カ所でも PACKED_STRUCT_UNALIGNED() を RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_BEGIN() と RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_END() のペアを利用するように書きかえています。

[6e7990144f] Hiroshi SHIBATA 2023-02-08 05:29:16 UTC

tool/make-snapshot で subversionリポジトリから checkout する削除しています。

[3ab3455145] Jean Boussier 2023-02-03 08:46:14 UTC

GC というか ObjectSpace の管理をチューニングする環境変数RUBY_GC_HEAP_INIT_SIZE_###_SLOTS のようなのを追加して、slot サイズごとの HEAP の slot 数を個別に指定できるようにしています。

[8ce2fb9bbb] Jean byroot Boussier 2023-02-06 22:30:42 UTC

c19defd02665492de7147572714ebe692260c849 で一旦 revert された複数 Thread からの同じファイルの require で誤って再帰的 require の警告が出ることのある問題の対策を再度入れています。主に rubyspec のテストの対応が前回から追加されているのでテストのほうの問題で通らなかったのでやりなおしたみたいですね。 [ruby-core:112220] [Bug #19415]

[63e1769b16] Nobuyoshi Nakada 2023-02-08 08:12:43 UTC

defs/gmake.mk で GNU Make 利用時に make tags でエディタなどで利用するための tags 生成するルールを追加しています。

[3a0f6ce1d3] Jean Boussier 2023-02-08 10:23:25 UTC

8ce2fb9bbbaea14737c84385b1573f743a30f773 の続きで rubyspec のテストで子 Thread の処理が block するまで待つのに Thread#wakeup を呼んでたのを Thread.pass で処理を別 Thread に明け渡す方法に変更しています。 [ruby-core:112220] [Bug #19415]

[6aa196149a] Nobuyoshi Nakada 2023-02-08 11:11:40 UTC

doc/contributing/building_ruby.md の必要ライブラリの利用目的の追加や gperf の依存バージョンの更新などの追記をしています。