ruby-trunk-changes 2023-11-02

今日は主に prism の更新と Object Shapes の機能からの続きでインスタンス変数/クラス変数削除時の too complex 対応などがありました。

[9c6dd25093] Peter Zhu 2023-11-01 12:25:09 UTC

8889992b75f85c8080fc09c7a3a1cb6123a098c1 以降の変更の続きで Object#remove_instance_variable で Object Shapes の管理外の時の処理で st_delete() が空振りだった時の対応を追加しています。

[b77148ae9f] Jean Boussier 2023-11-01 11:15:12 UTC

8889992b75f85c8080fc09c7a3a1cb6123a098c1 以降の変更の続きで Object#remove_instance_variable でインスタンス変数を削除した時に Object Shapes による管理から外れるようになった場合の考慮を追加しています。なるほどインスタンス変数を消した結果パターンの種類が増えて管理外になる可能性もあるわけか。

[e3b4fe1b76] Sergey Fedorov 2023-11-01 08:53:46 UTC

thread_pthread.c の no_pthread_threadid_np という変数の初期化を MAC_OS_X_VERSION_MAX_ALLOWED というマクロをチェックして preprocessor 分岐していたところで MAC_OS_X_VERSION_10_6 というマクロの存在チェックが削られていたので修正しています。古い macOS でのビルドがエラーになっていたようです。

[70e3e08881] Peter Zhu 2023-11-01 15:05:46 UTC

8889992b75f85c8080fc09c7a3a1cb6123a098c1 以降の変更の続きで Object#remove_instance_variable で T_OBJECT 型の時の処理で rb_st_lookup() → rb_st_delete() と呼んでいたのは冗長なので他の型の時と同様 rb_st_delete() だけ呼ぶように書き直しています。

[e6059d0c84] Peter Zhu 2023-11-01 15:37:13 UTC

8889992b75f85c8080fc09c7a3a1cb6123a098c1 以降の変更の続きで Object#remove_instance_variable の実装 rb_obj_remove_instance_variable() の型による分岐の switch 文内の共通部分を外に出して変化する部分だけ switch 文を使うようにリファクタリングしています。

[90b21b864d] Kevin Newton 2023-11-01 16:14:30 UTC

prism の gemspec の spec.files の整理と common.mk の prism 関係の依存関係の再生成。

[bdf8ce807f] Peter Zhu 2023-11-01 17:13:51 UTC

8889992b75f85c8080fc09c7a3a1cb6123a098c1 以降の変更の続きで remove_instance_variable の実装の rb_obj_remove_instance_variable() からその処理の大部分を rb_ivar_delete() に委譲するようにしてそちらに Object Shapes の管理から外れる too complex になった時の対応を追加しています。コミットログとテストをみるとここを修正することで結果的に Object#remove_class_variable の同様の不具合修正にもなっているようです。

[909afcb4fc] Peter Zhu 2023-11-01 17:47:26 UTC

8889992b75f85c8080fc09c7a3a1cb6123a098c1 以降の変更の続きで bdf8ce807ffe8e4bfd2947aba809855857b958ed で追加した Object#remove_class_variable のテストを 60e207b47f377b04d11df9a9dbb0548a578c2776 と同様にループ内でクラス変数を追加する都度別の Class を作るようにしています。

[d3ea9070bb] Mau Magnaguagno 2023-11-01 18:40:40 UTC

YJIT の --yjit-stats で統計情報のカウンタなどの数値を表示する処理で数値を 3桁ごとに "," を入れるための処理で不要な to_a の呼び出しを消しています。 https://github.com/ruby/ruby/pull/8815

[45eee0cd94] Nobuyoshi Nakada 2023-11-02 01:06:03 UTC

ast.c の rb_ast_parse_file() で引数に FilePathValue() を呼び出して文字列化するのが冗長だったので削除しています。ここから呼んでいる rb_file_open_str() の中でも同じ変換をしているため。

[ee90a7f981] Nobuyoshi Nakada 2023-11-02 01:31:13 UTC

include/ruby/ruby.h の FilePathStringValue() マクロの Doxygen 用? コメントの説明が古くなっていた? みたいなので修正しています。

[d9cb75b741] Kevin Newton 2023-11-01 18:58:50 UTC

doc/maintainers.md および doc/standard_library.rdoc に標準添付ライブラリに追加された prism のエントリを追加しています。

[e34e8b93f8] Hiroshi SHIBATA 2023-11-02 04:32:53 UTC

require での警告する gem の管理をしている lib/bundled_gems.rb での警告出力有無の判定をするメソッドで引数を File.path で文字列に変換しておくようにしています。Pathname オブジェクトが渡された時のサポートのため。

[4218e913d8] Nobuyoshi Nakada 2023-11-02 03:53:06 UTC

正規表現エンジンの実装で onig_st_foreach() のコールバックに渡す関数の宣言をキャストが不要なように引数の型をそろえておいて関数内で引数をキャストするようにしています。

[1925c6d555] lukeg 2023-04-03 20:17:10 UTC

拡張ライブラリ ripper のテストでトップレベルに Node や NodeList、DummyParser といったクラスを定義していたのを TestRipper::Node のようにテストクラス内にネストさせるようにしています。

[7149543f24] Hiroshi SHIBATA 2023-11-02 06:13:40 UTC

1925c6d555e40b7c6c36ac9665b4cffed4b1d4cb の拡張ライブラリ ripper のテストのクラス名変更(移動)の対応漏れがあったのを修正しています。

[7523ede7ba] Lars Kanis 2023-10-27 13:25:13 UTC

doc/windows.md の Windows 系の環境の名前の説明の修正をしています。

[e10f7c9d5b] Hiroshi SHIBATA 2023-11-02 06:46:42 UTC

lib/bundled_gems.rb で bundler 経由での require の警告メッセージのための gem 名を認識するために caller_location で遡るスタックトレースの数を修正しています。

[42f368ead5] Hiroshi SHIBATA 2023-11-02 06:48:28 UTC

lib/bundled_gems.rb で bundler 経由での require の警告メッセージのため require 元の gem 名が抽出できなかった時に呼び元の gem の作者への連絡を促すメッセージは省略するようにしています。

[33795931a0] Jean Boussier 2023-11-02 09:37:09 UTC

Object Shapes で Object#remove_instance_variable などでインスタンス変数削除した時の処理で不要に get_next_shape_internal() を呼び出すパスがあったのを修正しています。