ruby-trunk-changes 2019-06-23

今日は Module#const_source_location の追加や Array#unshift の不具合修正などがありました。

[f738eeabc2] Nobuyoshi Nakada 2019-06-22 14:38:07 UTC

golf_prelude.rb でメソッド再定義の警告除去のため一時的に $VERBOSE をクリアするようにしています。

[f5e2904471] Nobuyoshi Nakada 2019-06-22 14:44:19 UTC

minitest/unit で diff コマンドの利用可能なコマンド名を探すところで RbConfig::CONFIG["EXEEXT"] をみて ".exe" の有無は判定するようにして分岐を減らしています。

[f3c81b4e90] Nobuyoshi Nakada 2019-06-22 15:31:16 UTC

ObjectSpace::WeakMap に freeze したオブジェクトを格納しようとするとチェックで弾かれてエラーになるのを修正しています。 finalizer の設定の時のチェック関数を利用していたので frozen チェックも一緒にしてしまっていたようです。 [ruby-core:80835] [Bug #13498]

[fd9ac1e76b] git 2019-06-22 15:37:11 UTC

version.h の日付更新

[c033dc3073] Luke Gruber 2019-06-22 15:25:52 UTC

Array#rindex の実装で rb_equal() を呼んだ結果 receiver の配列のサイズが変化した場合を考慮して再度サイズチェックするようにしています。 https://github.com/ruby/ruby/pull/2250 [ruby-core:93319] [Bug #15951]

[151843b981] Nobuyoshi Nakada 2018-12-13 09:12:07 UTC

rb_autoloading_value() から処理の大部分を autoloading_const_entry() という関数に切り出して rb_const_search() かこちらを呼び出すようにリファクタリングしています。

[5084233b88] Nobuyoshi Nakada 2018-12-13 09:27:32 UTC

定数探索の関数 rb_const_search() から retry で繰り返してるところを rb_const_search_from() という関数に切り出して呼び直すようにリファクタリングしています。

[9384383019] Nobuyoshi Nakada 2018-12-13 12:49:05 UTC

定数の宣言のソース上の位置を返す Module#const_source_location を追加しています。あれ、これまだなかったっけ? [ruby-core:67745] [Feature #10771]

[ef524c13d9] Nobuyoshi Nakada 2019-06-22 16:44:07 UTC

93843830198ba436e2ea21a60a11758d47cf521b の Module#constant_source_location の追加について NEWS ファイルに追記しています。 [ruby-core:67745] [Feature #10771]

[c5c3486340] git 2019-06-22 16:47:40 UTC

93843830198ba436e2ea21a60a11758d47cf521b のインデントのタブを空白に展開。

[aa2f505825] Nobuyoshi Nakada 2019-06-22 17:49:39 UTC

151843b9816b52b1ddb1e9b2040991a7de4173c6 で切り出した autoloading_const_entry() を static 関数にしています。

[2ad7a7f801] "MSP-Greg (Greg L)" 2019-06-22 22:33:15 UTC

標準添付ライブラリ cgi のテストでリクエストの改行(LF)を CR+LF に変換するのに String#gsub! を使っていたので文字列が freeze されてるとエラーになるのに対策しています。 [ruby-core:84313] [Bug #14194]

[bebe8d13f8] Nobuyoshi Nakada 2019-06-22 22:42:11 UTC

ObjectSpace のテストで子プロセスを起動する時にコマンドラインオプションに --disable=frozen-string-literal を付けておくようにしています。 [ruby-core:84313] [Bug #14194]

[3840791b7e] Nobuyoshi Nakada 2019-06-22 22:56:43 UTC

テストで frozen-string-literal が有効にされるとエラーになるところを修正したり、マジックコメントを追加したりしています。 [ruby-core:84313] [Bug #14194]

[ec8e5f5aa6] Luke Gruber 2019-06-22 22:37:08 UTC

Array#unshift の実装でバッファを共有した配列の時に rb_ary_modify() がスキップされてしまっていたのを修正しています。 https://github.com/ruby/ruby/pull/2251 [ruby-core:93322] [Bug #15952]

[5a187e26ad] Luke Gruber 2019-06-23 02:22:23 UTC

ec8e5f5aa64e2a54cf1e303f2b012c98e8d521ba の修正は共有配列の時の最適化処理の意味がなくなってしまうので revert して、実際にバッファの書き換えが起きる条件に入ったところで rb_ary_modify() を呼ぶように再修正しています。 https://github.com/ruby/ruby/pull/2252 [ruby-core:93322] [Bug #15952]