ruby-trunk-changes 2020-09-16

今日は Complex.polar の不具合修正や deprecated だったメソッド URI.escape/URI.unescape の削除、frozen-string-literal: true でも式の埋め込みがあった文字列リテラルは freeze しないようにする仕様変更などがありました。

[3dd9e12b51] Ashwin Maroli 2020-09-10 17:58:35 UTC

標準添付ライブラリ fileutils の FileUtils#mkdir_p で引数のリストを先に map で変換してから each でループしていたのを単一のループにしてその中で変換するようにリファクタリング

[7f9f5f5723] Hiroshi SHIBATA 2020-05-28 12:11:12 UTC

標準添付ライブラリ securerandom のテストでエラーメッセージを作るのに message メソッドのかわりに build_message メソッド(tool/lib/test/unit に同梱している test/unit のヘルパー)を使うように変更しています。

[abbd324152] Jeremy Evans 2020-07-18 13:55:06 UTC

標準添付ライブラリ uriURI::Escape という Module の定義を削除してずっと deprecated だった URI.escape と URI.unescape をついに削除しています。おお、ついに。

[ee10efdcf0] Hiroshi SHIBATA 2020-09-15 12:44:59 UTC

7f9f5f5723cd723dee578b0681066c8393ee45d0 の securerandom のテストでの build_message 利用を revert しています。

[86087a1527] Aaron Patterson 2020-09-15 00:45:13 UTC

gc.c の gc_mark_stack_values() から呼び出す gc_mark() を gc_mark_and_pin() に変更して VM スタック上から参照されているオブジェクトは GC.compact で移動不可とするようにしています。

[a0d50465de] git 2020-09-15 16:09:49 UTC

version.h の日付更新

[fbba6bd4e3] Jean Boussier 2020-09-10 11:17:53 UTC

拡張ライブラリ objspace の ObjectSpace.dump_all を ruby 実装にして引数の処理をしてから拡張ライブラリ実装のメソッドに委譲するようにしています。 C 実装だと引数の処理のために Hash オブジェクトを生成してしまうのでそれが Objecpace.dump_all の結果にも入ってしまうのでそれを避けるためとのこと。うーむなるほど。 [ruby-core:99297] [Feature #17045]

[9b535f3ff7] Benoit Daloze 2020-08-31 19:24:36 UTC

magic comment frozen-string-literal: true が指定されていても式の埋め込みのある文字列リテラルは freeze しないように仕様変更しています。Matz 承認済みのようですね。 [ruby-core:99485] [Feature #17104]

[1af0319fc8] Benoit Daloze 2020-09-15 19:54:31 UTC

rubyspec のバージョンによる分岐や guard の 2.8 を 3.0 に変更しています。

[344304c89f] Hiroshi SHIBATA 2020-09-15 22:45:01 UTC

7f9f5f5723cd723dee578b0681066c8393ee45d0 の securerandom のテストでの build_message 利用のリトライ。 build_message メソッドの使いかたが間違ってたみたいです。 https://github.com/ruby/ruby/pull/3543

[889bbbaf52] Koichi Sasada 2020-09-16 06:44:26 UTC

9b535f3ff7c2f48e34dd44564df7adc723b81276 の magic comment frozen-string-literal の仕様変更の影響で RubyVM::InstructionSequence#to_binary が動かなくなっていたようで、VM 命令列へのコンパイルを実行する RubyVM::InstructionSequence.compile のコンパイルオプションのテストがデバッグ用のフックつきの時に失敗していたそうなので、環境変数RUBY_ISEQ_DUMP_DEBUG=to_binary が設定されていた時に skip するようにしています。

[9e813c1fc4] Benoit Daloze 2020-09-16 09:17:23 UTC

9b535f3ff7c2f48e34dd44564df7adc723b81276 の再修正。なんですが本体の修正ではなくて問題になってたテストの assertion を環境変数 RUBY_ISEQ_DUMP_DEBUG が定義されてたら実行しないという変更。うーんこれでいいのかな? RubyVM::InstructionSequence#to_binary がうまく動かないっていうことかと思ったのですが。

[10290da54d] Benoit Daloze 2020-09-16 09:36:39 UTC

blocking fiber のテストスクリプトにここで実装されている Scheduler はテストのための簡易版でパフォーマンスを考慮していない(IO.select メソッドを使っている)ので、production での利用には epoll()/kqueue() を使った拡張ライブラリ実装が必要というコメントを追加しています。うーんそうなのか。

[68b5f14d53] Kenta Murata 2020-09-16 10:27:16 UTC

Complex.polar の引数に Complex を渡した時に assert() にひっかかっていたのを修正しています。実数部のみ取り出す処理を追加しています。 https://github.com/ruby/ruby/pull/3551 [ruby-core:100020] [Bug #17172]