ruby-trunk-changes 2022-10-04

今日は Data の子クラスからクラスメソッド define を undef して孫ができないようにする変更や bundled gems の test-unit のバージョン更新などがありました。

[8218cb73ba] Nobuyoshi Nakada 2022-10-03 13:59:22 UTC

b6b9a6190def53aa53ac816a51034fa1c96ed70bmacOS 環境で utimensat(2) というシステムコールの利用可能性を実行時に weak 参照の utimensat の symbol 解決の結果をみて判定していたのは configure 時のチェックの結果 HAVE_UTIMENSAT が偽の時には実施しないようにしています。macOS 10.12.6 では utimensat(2) が未定義になったためビルドエラーになるようになったそうです。 [ruby-core:110165] [Bug #19034]

[c198cf4329] Nobuyoshi Nakada 2022-10-03 14:19:39 UTC

b6b9a6190def53aa53ac816a51034fa1c96ed70b の追加時に不要だったマクロ定義を削除しています。

[cbd82f5250] Nobuyoshi Nakada 2022-10-03 14:28:01 UTC

Data.define などで生成される Class のインスタンスに new や members などのクラスメソッドを追加するのに rb_define_singleton_method() を使っていたのを rb_singleton_class() で特異クラスを作ってそれに対して rb_define_method() るようにしています。また define メソッドは Data から作った子クラスでは undef するようにしています。

[efc7766244] Jimmy Miller 2022-10-03 20:57:27 UTC

YJIT の arm64 環境向けの機械語生成で cmp 命令のオペランドを bit 幅に応じたマスクする処理を追加するようにしているっぽいです。 https://github.com/ruby/ruby/pull/6484

[b2668248b6] David Rodríguez 2022-09-16 11:40:32 UTC

bundler のテストの rspec の設定で max_formatted_output_length というのを 1000 に指定しています。差分を表示する時に行数が多すぎて閲覧できなくなることがあるみたいでその対策みたいです。 https://rspec.info/documentation/3.8/rspec-expectations/RSpec/Expectations/Configuration.html#max_formatted_output_length=-instance_method

[7726f6bfff] Vaevictusnet 2022-09-29 18:03:14 UTC

String#swapcase! の rdoc 用コメントのサンプルの結果が間違っていたのを修正しています。

[6378825df5] git 2022-10-04 07:09:33 UTC

gems/bundled_gems と NEWS の test-unit のバージョンを 3.5.5 に更新しています。