ruby-trunk-changes 2023-01-12

今日は主に Class/Module の名前の管理のための実装の変更や irbリファクタリングやテストの整理、bundled gems の rbs や typeprof のバージョン更新/commit hash の指定などがありました。

[4222083cbd] Phillip Hellewell 2023-01-10 17:06:48 UTC

標準添付ライブラリ reline のテストで teardown で Reline#test_mode を呼び出して状態を復帰させる後始末を追加しています。

[d831b1d5ce] Phillip Hellewell 2023-01-10 20:26:32 UTC

4222083cbd71c6b25d5c4ed3f4beb49e7d501fdf の標準添付ライブラリ reline の teardown の処理追加を revert して teardown から元々呼んでた test_reset メソッドのほうに同様の処理を書くようにリファクタリングしています。

[6abe20e87b] Benoit Daloze 2023-01-06 14:07:39 UTC

Encoding#replicate メソッドを削除して dummy encoding を自由に作れないようにしています。

[327cf5ec40] Benoit Daloze 2023-01-11 11:36:16 UTC

tool/rbs_skip_tests で bundled gems の rbs のテストで 6abe20e87b74a5a672dc59f72fa1f550ceab430c の Encoding#replicate 削除で失敗してしまうテストを skip するようにしています。

[ac8cf010bc] Peter Zhu 2023-01-10 21:08:00 UTC

variable.c の Class/Module の名前を取得する関数 classname() で RCLASS_EXT() の NULL チェックをしていた if 文を削除しています。NULL はありえないからとのこと。

[a468213917] Nobuyoshi Nakada 2023-01-11 12:56:42 UTC

doc/regexp.rdoc に条件つきマッチの記法についてのドキュメントを追記しています。うーむ、これ知らなかった。

[d86833e717] Peter Zhu 2023-01-11 14:19:11 UTC

構造体 rb_classext_t の variation_count メンバーの型を uint32_t から unsigned char に変更しています。Object Shapes の variation の数の上限は 8bit でおさまるので小さくしたそうです。

[abff5f6203] Peter Zhu 2023-01-11 14:23:03 UTC

Class/Module の名前は定数に代入した時に(class 文や module 文の場合は文の実行時に)決定されるため割と複雑な処理をしていて、名前を Class/Module の内部的な("@" ではじまらない)インスタンス変数に格納していたのですが、それを構造体 rb_classext_t のメンバーとして追加しています。 Module#const_set でベンチマークしていますが、定数代入そんなにたくさんするかな……とはいえインスタンス変数で保持していた実装はトリッキーな気がしてたのでこれは素直な実装になって良かった気はします。ただなんで元はインスタンス変数にしてたのかな、というのが実はなにか落し穴があったりして、というのが気になります。

[ad5ab0c3ea] Jemma Issroff 2023-01-06 17:53:07 UTC

vm_call_method_each_type() 内で struct rb_callcache の flags メンバーへの代入で不要な INVALID_SHAPE_ID の埋め込みを削除しています。 T_IMEMO 型オブジェクトなので不要ということかな。

[3642006872] Takashi Kokubun 2023-01-11 19:12:15 UTC

YJIT の JIT コードの disasm 出力時のコメントを追加しています。 https://github.com/ruby/ruby/pull/7105

[c693dfd7ef] Stan Lo 2023-01-11 21:26:12 UTC

標準添付ライブラリ irbIRB::RubyLex#set_input の省略可能な第2引数を削除してブロックのかわりに Proc オブジェクトを受け取る仕様を削除しています。

[c7bb8d67b7] Hiroshi SHIBATA 2023-01-11 04:42:40 UTC

標準添付ライブラリ irb のファイルのヘッダに CSV? RCS? の置換用文字列が残ってたのを削除しています。

[128398e7cd] Hiroshi SHIBATA 2023-01-11 04:44:20 UTC

標準添付ライブラリ irb の lib/irb/lc/ja/error.rb に script encoding を指定するマジックコメントが残ってたのを削除しています。デフォルトが UTF-8 になったので不要になっているので。

[7e283c585e] Hiroshi SHIBATA 2023-01-11 04:54:09 UTC

標準添付ライブラリ irb のファイル群のヘッダコメントを整形して余分なコメント行を削除しています。

[11e15b4d48] Masataka Pocke Kuwabara 2021-09-13 10:00:53 UTC

標準添付ライブラリ racc の生成する ruby スクリプトに Ractor.make_shareable の呼び出しを追加して複数 Ractor 対応するようにしているようです。

[bcdc058e50] Jean Boussier 2023-01-11 10:17:43 UTC

標準添付ライブラリ racc でも class_eval する時に引数でファイル名と行番号の指定を追加して eval する文字列内の位置情報が得られるようにしています。

[048751dd73] Hiroshi SHIBATA 2023-01-11 22:54:39 UTC

bcdc058e50674aedb180eea91e0fdb15bcf529db に続いて標準添付ライブラリ racc の別の箇所でも class_eval にファイル名と行番号を渡すようにしています。

[0abb4b6348] tomoya ishida 2023-01-12 00:14:48 UTC

標準添付ライブラリ reline の Reline::LineEditor で check_multiline_prompt メソッドに色付けのための? エスケープシーケンスを含んだ文字列でなく元の文字列を渡すようにしています。

[cc15963aa3] Nobuyoshi Nakada 2023-01-12 00:28:54 UTC

YJIT の Rust のソースコードGitHub Actions の workflow の YAML ファイルの行末の空白除去。

[617b3f697d] 卜部昌平 2023-01-11 08:26:17 UTC

GitHub Actions の workflow .github/workflows/baseruby.yml と .github/workflows/spec_guards.yml の対象の ruby バージョンに 3.2 を追加しています。

[fe11bee507] Hiroshi SHIBATA 2023-01-12 01:46:54 UTC

make test-bundler-prepare で bundle install 相当のコマンド実行する時に --quiet オプションを渡してメッセージを抑制するようにしています。

[0e21c9f57e] Hiroshi SHIBATA 2023-01-12 05:32:19 UTC

標準添付ライブラリ mutex_m の gemspec ファイルに spec.required_ruby_version を追加して 2.4 以前のサポートを切っています。

[a8537eae2a] Jean Boussier 2023-01-11 13:56:47 UTC

標準添付ライブラリ mutex_m で alias を定義するためだけに module_eval を利用していたのを Module#alias_method メソッドを利用するようにリファクタリングしています。

[d4a3882c1c] Takashi Kokubun 2023-01-12 07:14:58 UTC

hash.c 内の hash_stlike_lookup() という関数で関数ポインタで保持している st_table::type::hash の関数が 3種類のいずれかであることを確認する RUBY_ASSERT() を追加しています。コミットログを読んだ感じだとドキュメントとしてここで hash メンバーが持つ関数はこの 3つだけだぞ、というのを明示するためという意図みたいです。 https://github.com/ruby/ruby/pull/7107

[aa66595876] elfham 2023-01-12 09:40:29 UTC

標準添付ライブラリ reline の lib/reline/unicode/east_asian_width.rb で保持している Unicode テーブルを Unicode 15.0.0 に対応するよう更新しています。

[019c65828b] Stan Lo 2023-01-12 10:30:12 UTC

標準添付ライブラリ irbIRB::RubyLex#check_state や #process_continue, #check_code_block などの tokens という引数を省略可能にしていたのが不要だったみたいで必須の引数に変更しています。

[633fde4152] Hiroshi SHIBATA 2023-01-12 07:05:50 UTC

gems/bundled_gems の rbs の指定に commit hash を追加しています。テストのメッセージの量を減らすための変更を取り込むためみたいです。 https://github.com/ruby/rbs/pull/1207

[b7598b535e] Hiroshi SHIBATA 2023-01-12 08:46:42 UTC

gems/bundled_gems の typeprof のバージョンを 0.21.4 に更新しています。

[3faecaaa60] git 2023-01-12 10:34:00 UTC

b7598b535e49d316110aa96542a74619ef60b030 に追随して NEWS の bundled gems の更新バージョンリストに typeprof を追加しています。