ruby-trunk-changes 2022-03-25

今日は主に拡張ライブラリ psych から同梱されていた libyaml のソースコードを消す変更や標準添付ライブラリ ostruct の更新などがありました。

[ad5754162b] Marc-André Lafortune 2022-01-29 23:13:45 UTC

標準添付ライブラリ ostruct でブロックが渡されているかどうかのチェックに block_given? を使うため block_given! という alias を定義して使っていたのを、ブロック引数として受け取ってその値をチェックすることで block_given! の定義を不要にして削除しています。

[4c4a1e2035] Marc-André Lafortune 2022-03-24 12:38:11 UTC

標準添付ライブラリ ostruct のバージョンを 0.5.4 に更新しています。

[04591e1be7] git 2022-03-24 12:39:01 UTC

NEWS の default gems のバージョンリストの ostruct のバージョンを追随させています。

[5f10bd634f] Peter Zhu 2022-03-23 19:19:48 UTC

構造体 rb_iseq_t のメンバー body にアクセスするためのマクロ ISEQ_BODY() を vm_core.h に定義してこれを使うようにリファクタリングしています。 Variable Width Allocation によってメモリ上のレイアウトを変更する予定みたいでその時に書きかえが必要な範囲を減らすための準備みたいです。

[629908586b] Kevin Newton 2021-11-24 15:31:23 UTC

定数の inline cache が VM 全体のカウンタでキャッシュの有効性をチェックしていてなにか定数の追加や変更があると全定数のキャッシュが invalidate されていたのを、定数名の ID をキーとしたテーブルで管理して同じ名前の定数のみキャッシュがクリアされるようにしています。うーむキャッシュクリアのための処理がだいぶ複雑になっていますね。ベンチマークが追加されていますがどのくらい効果があるんだろう。 https://github.com/ruby/ruby/pull/5000 [ruby-core:107603] [Feature #18589]

[8f6eaca2e1] Kevin Newton 2022-03-10 02:21:21 UTC

629908586b4bead1103267652f8b96b1083573a8 の追加修正で定数の inline cache 管理用のテーブルが空になったら st_table 自体を解放するようにしています。 https://github.com/ruby/ruby/pull/5000 [ruby-core:107603] [Feature #18589]

[33b13bd9f1] git 2022-03-24 16:14:55 UTC

version.h の日付更新

[343ea9967e] Jeremy Evans 2022-02-17 18:24:01 UTC

Kernel#binding が ruby 実装の ISeq の control frame 内でない所(C 実装のメソッド内とか)で呼ばれた場合に RuntimeError を発生させるようにしています。また TracePoint などでトレース用メソッドに Binding を渡す第5引数を c_call/c_return などの C 実装のメソッド内のイベントでは作らないようにしています。 [ruby-core:107106] [Bug #18487]

[465edb96f0] Burdette Lamar 2022-03-25 00:40:58 UTC

String#chop, #chomp などのメソッドの rdoc 用コメントも doc/string/*.rdoc に切り出して :include: で取り込むようにしています。 https://github.com/ruby/ruby/pull/5707

[8e3fbf9432] Hiroshi SHIBATA 2022-03-23 08:06:15 UTC

拡張ライブラリ psych に同梱されていた libyaml のソースコードを削除しています。

[829754b329] Hiroshi SHIBATA 2022-03-23 08:21:21 UTC

8e3fbf943236aa3c78c8320f8ab11944e1c861de で拡張ライブラリ psych に同梱されてた libyaml が削除されたのにあわせて GitHub Actions でインストールしておくライブラリに libyaml-dev を追加。 [ruby-core:107481] [Feature #18571]

[bfdceab313] Hiroshi SHIBATA 2022-03-23 11:24:57 UTC

8e3fbf943236aa3c78c8320f8ab11944e1c861de で拡張ライブラリ psych に同梱されてた libyaml が削除されたのにあわせて ext/psych/depend を更新。 [ruby-core:107481] [Feature #18571]

[0292a34c9c] Hiroshi SHIBATA 2022-03-24 05:38:10 UTC

8e3fbf943236aa3c78c8320f8ab11944e1c861de で拡張ライブラリ psych に同梱されてた libyaml が削除されたのにあわせて ext/psych/depend を更新。libyaml 自体のソースコードに対応したオブジェクトファイルのエントリが残ってたので削除。 [ruby-core:107481] [Feature #18571]

[033d979640] Hiroshi SHIBATA 2022-03-24 09:01:25 UTC

8e3fbf943236aa3c78c8320f8ab11944e1c861de で拡張ライブラリ psych に同梱されてた libyaml が削除されたために、GitHub Actions のいろんな環境のコンパイラを試す workflow で cross compile する条件でのビルドが失敗したそうなのでコメントアウトしています。 [ruby-core:107481] [Feature #18571]

[7ee26740e4] Hiroshi SHIBATA 2022-03-25 11:12:43 UTC

拡張ライブラリ readline の readline-ext.gemspec ファイルから add_development_dependency による開発時の依存関係の指定を削除しています。

[69967ee64e] Nobuyoshi Nakada 2022-03-25 11:29:09 UTC

629908586b4bead1103267652f8b96b1083573a8 からの定数の inline cache の invalidate の粒度を名前毎にする変更を revert しています。 AppVeyor での mswin 版のビルドが失敗しているとのこと。 チケットあったんですね。直接参照されてなかったので一応検索してたんですけど見つけられてなかった。 [ruby-core:107603] [Feature #18589]