ruby-trunk-changes 2022-09-27

今日は Object Shapes というインスタンス変数管理のテクニックの実装が一旦入ったのですが、不具合があって revert されてしまいました。また修正後に入るだろうと思います。

[9ddfd2ca00] Jemma Issroff 2022-09-23 17:54:42 UTC

インスタンス変数の管理にオブジェクト指向のプロパティ管理のテクニックの Object Shapes というのを導入しています。インスタンス変数の代入の都度現在の状態から子ノードを作るという tree 構造を作ってオブジェクトの状態を管理するというものみたいで、主な利点は inline cache が効率的になるというものみたいです。詳細はチケット参照。かなり大規模な変更なので shape.c のトピックに絞ってコードを呼んでみるのもいいかもしれません。なんでこれが効率的になるのかちょっとよくわかってないんですよね。 [ruby-core:108522] [Feature #18776]

[830b5b5c35] git 2022-09-26 16:21:58 UTC

9ddfd2ca004d1952be79cf1b84c52c79a55978f4 の変更のインデントのタブを空白に展開しています。

[aa2a428cfb] Peter Zhu 2022-09-26 15:39:36 UTC

string.c の rb_str_subseq() と str_substr()、str_byte_substr() から共通部分を str_subseq() という関数に切り出すリファクタリング

[b39690df3a] Jeremy Evans 2022-09-26 17:53:45 UTC

キーワード引数の splat keywords 渡しのテストで引数に渡すメソッド名を y から yo に改名しています。 require "yaml" すると Kernel#y というメソッドが追加されるのでそれと衝突してしまうので並列テストで不具合が起きることがあるとのことです。

[06abfa5be6] Aaron Patterson 2022-09-26 23:09:50 UTC

インスタンス変数管理に Object Shapes を実装した 9ddfd2ca004d1952be79cf1b84c52c79a55978f4 およびそのタブの展開の 830b5b5c351c5c6efa5ad461ae4ec5085e5f0275 を revert しています。 RGenGC 用の Write Barrier の不足があって異常終了することがあったみたいです。

[95d5b33ea0] Hiroshi SHIBATA 2022-09-27 03:44:30 UTC

標準添付ライブラリの syntax_sggest の upstream を https://github.com/zombocom/syntax_suggest から https://github.com/ruby/syntax_suggest に移動したとのことでコメントのリンクや gemspec の spec.homepage などの URL を更新しています。tool/sync_default_gems.rb は……と思ったらこちらはもう ruby/syntax_suggest になってました。