ruby-trunk-changes 2022-12-10

今日は主に Object#inspect のインスタンス変数の内容の文字列化の方法の修正や YJIT の VM 命令 getconstqant の対応追加などがありました。

[181d4bee5e] Matt Valentine-House 2022-12-07 16:01:37 UTC

Object#inspect でインスタンス変数の内容を再帰的に文字列化する時に値を rb_str_catf() のフォーマット指示子 PRIsVALUE で埋め込んでいたのを rb_inspect() を呼び出してその結果を利用するようにしています。インスタンス変数に NilClass, TrueClass, FalseClass などのクラスが入っていた時の表示のためとのこと。 https://github.com/ruby/ruby/pull/6872 [ruby-core:111135] [Bug #19167]

[11acb7f7bc] Nobuyoshi Nakada 2022-12-08 16:14:43 UTC

181d4bee5e03a30596e78b2d7aa0396887a53881 の追加修正で文字列へのフォーマット文字列を使ったオブジェクトの埋め込みの処理で Qnil/Qfalse/Qtrue などの即値はそのまま比較する case 文を使うようにしています。けどここ元は value が T_CLASS 型で rb_cNilClass などのクラスを保持しているグローバル変数と比較するようになっていて意味が変わっているのですが、NilClass の時に "nil" を返すようにしていたので元のが間違っていた(というか 181d4bee5e03a30596e78b2d7aa0396887a53881 で修正した問題をここでカバーしていたのが不要になった?)ということかな。 [ruby-core:111135] [Bug #19167]

[fe67998816] Nobuyoshi Nakada 2022-12-09 13:15:38 UTC

rubyspec の 6fd5d2dc003bda5ce0685abd2b975d7ac7079d46 で追加した IO#path のテストで一時ファイルの消し忘れがあったのを修正しています。

[12b5268679] Matt Valentine-House 2022-12-08 13:42:19 UTC

メモリ管理の構造体 struct heap_page の未使用になっていたメンバー pinned_slots を削除しています。

[d7812d1949] Jean Boussier 2022-12-09 14:22:10 UTC

73771e4b192f3db62efb854affdfc95babba1d35 で追加された拡張ライブラリ objspace の ObjectSpace.dump_shapes などでの Object Shapes の出力に capacity の項目を追加しています。

[1c057cfc2f] Takashi Kokubun 2022-12-09 21:14:19 UTC

yjit.rb の --yjit-stats で出力する統計情報の最後の JIT から抜けた理由の Top 20 を出力するときに 0件だったものは除外するようにしています。 https://github.com/ruby/ruby/pull/6892

[daa893db41] Maxime Chevalier-Boisvert 2022-12-09 22:12:15 UTC

YJIT で VM 命令の getconstqant の JIT 対応のため rb_vm_get_ev_const() という関数を追加して生成したコードからこの関数呼び出しするようにしています。 https://github.com/ruby/ruby/pull/6884

[381e128c13] Stan Lo 2022-12-09 23:39:12 UTC

irb の debugger 用組み込みコマンド step で irb の stack frame から抜けるためにまず next コマンドを実行してから step の処理をしていたのを debugger 利用時に irb のファイルの stack frame を常にスキップするようにしています。

[24043031be] Takashi Kokubun 2022-12-10 00:45:38 UTC

YJIT の実装でメソッド呼び出しの引数渡しが対応していない形式なのでコンパイルをあきらめる時の理由をより細かく分けてカウントしておくようにしています。 https://github.com/ruby/ruby/pull/6895

[22d391dc63] Samuel Williams 2022-12-10 00:54:53 UTC

Fiber local storage の実装の Fiber#storage= で nil が渡されるのを許容するようにしています。また freeze された Hash が渡されたらセット時点で例外を発生させるようにしています。 また rubyspec に Fiber local storage のテストを追加しています。 https://github.com/ruby/ruby/pull/6896

[5404e2fd31] Alan Wu 2022-12-10 02:56:02 UTC

File クラスの rdoc 用コメントで "Data" という単語が誤って Data クラスへのクロスリファレンスになってしまってたのをエスケープして抑制しています。

[7a976c1060] Nobuyoshi Nakada 2022-12-06 07:47:42 UTC

Unicode のデータファイルを更新するために common.mk などの依存関係の書きかたを改善しているようです。 [ruby-core:111204] [Bug #19181]

[fc8d22f891] Nobuyoshi Nakada 2022-12-09 19:24:01 UTC

win32/setup.mak にあった HAVE_BASERUBY の変数定義を win32/Makefile.sub に移動しています。判定方法も微妙に順番などが変化している気がしますがたぶん内容はほぼ同じ?

[c33615b654] nagachika 2022-12-10 07:10:39 UTC

NEWS に c0dc717c45fc3abc64a337c3481bc4555b675d87 で String#to_c が連続したアンダースコアの扱いを変更したことについて追記しています。 [ruby-core:110523] [Bug #19087]

[fd440b09fc] Nobuyoshi Nakada 2022-12-10 09:57:20 UTC

String#to_r で文字列を Rational に変換する時に分母側にマイナス符号がついているのは解釈されない(そこで文字列が終わりとみなされて分母が 1 になる)という挙動についてのテストを追加しています。

[0645c8b3c1] Nobuyoshi Nakada 2022-12-10 10:01:29 UTC

bcd8b2f00aef8fdaa54f1d76ca841ae8d10e5e0f で追加した NEWS のチケット参照用 footnote の追加のための tool/update-NEWS-refs.rb に URL のほうのチケット番号にも # がついてしまう不具合があったので修正して再生成しています。