ruby-trunk-changes 2021-05-14

今日は拡張ライブラリ objspace に objspace/tracer というライブラリを require すると Kernel#p がオブジェクトの確保場所も表示するようにする機能追加などがありました。

[0aa4ca1477] John Hawthorn 2021-05-12 21:17:43 UTC

configure で sys/user.h というシステムヘッダのチェックを macOS で強制的にないものとするようにしています。 jemalloc を使ってビルドする時にエラーになるためとのことです。

[4155a93c2d] git 2021-05-13 15:14:52 UTC

version.h の日付更新

[879cc64d06] Burdette Lamar 2021-05-13 17:09:07 UTC

Kernel モジュールの rdoc 用コメントにメソッド一覧などを追記しています。 https://github.com/ruby/ruby/pull/4488

[434cd3c399] Burdette Lamar 2021-05-13 22:19:07 UTC

BasicObject の rdoc 用コメントにメソッド一覧を追加しています。 https://github.com/ruby/ruby/pull/4499

[a168c47728] Nobuyoshi Nakada 2021-05-14 00:31:09 UTC

gc.c の USE_MMAP_ALIGNED_ALLOC をマクロとしてでなく static const な変数として定義するように変更しています。デバッガで見るためかな?

[7cf90f99f5] Nobuyoshi Nakada 2021-05-14 00:33:20 UTC

0aa4ca1477e76c7ea0b5d76b4afbc226297dd874 の再修正。 やっぱり configure で sys/user.h は macOS でもチェックして gc.c で PAGE_SIZE マクロが未定義で sys/user.h があったら #include するようにしています。そのかわり(?) configure で gc.c の malloc 関連のヘッダファイルを include したりマクロ定義している部分を切り出して configure でのチェックのためのコンパイルするソースコードでも同じものを挿入するようにしています。

[cf1e1879f1] Yusuke Endoh 2021-05-14 04:40:32 UTC

拡張ライブラリ objspace に objspace/trace というライブラリを追加して Kernel#p メソッドを再定義してそのオブジェクトが確保されたファイルと行番号を表示するようにしています。 [ruby-core:103102] [Feature #17762]

[f691c15792] Yusuke Endoh 2021-05-14 06:39:57 UTC

cf1e1879f12ad547f95fe94ab62b4d960e804eb8 の追加修正で Kernel#p を再定義する前に Kernel#p を remove_method で削除しておいて再定義の警告が出ないようにしています。

[702961a88b] Yusuke Endoh 2021-05-14 06:44:13 UTC

refinements のテストで未使用の変数の警告の抑制のため変数名の先頭に "_" を追加しています。

[f210d456a8] Yusuke Endoh 2021-05-14 09:07:58 UTC

cf1e1879f12ad547f95fe94ab62b4d960e804eb8 の objspace/tracer での Kernel#p 再定義のテストで stderr のチェックを先にするようにしています。エラー時のメッセージのわかりやすさのため。

[5f8bca3257] Yusuke Endoh 2021-05-14 09:10:07 UTC

rubygems のテストに minitest から Object#stub が移植された関係で tool/lib/minitest/mock.rb で定義されている Object#stub は定義済みだったら再定義しないようにしています。