ruby-trunk-changes 2021-10-18

今日はテスト用ライブラリの修正やリファクタリングのほか VM 命令 newhash のちょっとした最適化などがありました。

[c7eac1be51] Nobuyoshi Nakada 2021-10-17 13:34:23 UTC

テスト用ライブラリで parallel test の子 worker プロセスが hang up してたのを親プロセスで再実行する時に options[:verbose] を true に設定してから実行するようにしています。

[0871652f21] Nobuyoshi Nakada 2021-10-17 15:23:59 UTC

rubyspec の ENV.shift のテストで環境変数の内容を Encoding::IBM437 に encode してみようとしてるところで例外を無視するようにしています。環境変数内にマルチバイト文字が含まれてると変換できないこともあるのでその変数はスキップするようにしています。

[0381d10533] git 2021-10-17 15:24:20 UTC

version.h の日付更新

[e1e3657746] Nobuyoshi Nakada 2021-10-18 01:13:15 UTC

rubyspec の spec/default.mspec でソースディレクトリを Makefile から抽出する処理を File.read メソッドを使って 1行にまとめるように書きかえています。

[0bbfb6a37b] Nobuyoshi Nakada 2021-10-18 01:29:51 UTC

同じく rubyspec の spec/default.mspec で srcdir の解決に失敗した時にエラーになっていたのを flags のセットをスキップしてエラーにならないようにしています。

[9d2abb8e92] git 2021-10-18 07:11:44 UTC

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

[d1b8544b4d] Nobuyoshi Nakada 2021-10-18 06:42:11 UTC

テスト用ライブラリの tool/lib/test/unit/assertions.rb の Test::Unit::Assertions#exception_details メソッドがもう利用されていないとのことで削除しています。

[6c74976aef] Nobuyoshi Nakada 2021-10-18 06:43:52 UTC

テスト用ライブラリの tool/lib/test/unit/testcase.rb の Test::Unit::TestCase.make_my_diffs_pretty! というメソッドがもう利用されていないとのことで削除しています。

[dfe944bfbe] David CARLIER 2021-10-17 11:19:26 UTC

1831693c1fe4d891112c877dd52d662de66965e7 で configure から haiku 向けの LIBS の設定を削除してましたが -lssp の追加は削ったまま LIBS の再設定は復活させています。これって意味あるのかな?
[追記] Haiku 用の分岐を消すと default の分岐に fallback してしまい LIBS に -lm が追加されてしまうのでこれを避けるためとのことでした。 https://twitter.com/n0kada/status/1450083496223928324 [/追記]

[57bf354c9a] Aaron Patterson 2021-10-16 18:20:30 UTC

VM 命令の newhash の実装で、指定されたサイズが 0 の時に rb_hash_new_with_size() でなく rb_hash_new() を呼ぶようにしています。 rb_hash_new_with_size() の内容をみてもサイズが 0 の時は rb_hash_new() を呼ぶだけなので結果は同じですが引数のチェックが行なわれて、呼び元(newhash 命令の実装)にも結局その後 num による分岐があってチェックが 2重に行なわれるのでそれを削るために呼び元の分岐後に呼び分けるようにしているようです。