ruby-trunk-changes 2019-06-28

今日は主にテストの fd, thread などの leak 修正や警告除去などの修正がありました。

[310a42e89c] Takashi Kokubun 2019-06-27 13:32:26 UTC

2c02d5714e401159f0221d3c2d461bc79db61e3a で .travis.yml で rubyspec を ruby 2.4 で実行するジョブが失敗した時のメッセージ追加してましたが、そもそもジョブの名前に version guard 漏れチェック用を書くようにしています。

[c940397116] Benoit Daloze 2019-06-27 19:02:33 UTC

ruby/mspec を upstream からマージしています。サポートする ruby のバージョンを 2.4 以降に変更しています。

[d80e44deec] Benoit Daloze 2019-06-27 19:02:36 UTC

rubyspec を upstream からマージしています。

[632a97227e] git 2019-06-27 19:04:45 UTC

version.h の日付更新

[a2091c3023] Benoit Daloze 2019-06-27 19:21:33 UTC

再度 rubyspec を upstream からマージ。

[14b0c94ac3] Jeremy Evans 2019-06-27 23:57:19 UTC

標準添付ライブラリ net/smtp の Net::SMTPServerBusy の rdoc 用コメントで 420 と 450 に対応するエラーだと書かれてましたが 4xx 系全体に対応すると記述を修正しています。 [ruby-core:71243] [Bug #11628]

[ff7f71b288] Nobuyoshi Nakada 2019-06-28 03:02:33 UTC

rb_io_stdio_file() という C API で IO オブジェクトに対応した stdio の FILE* 構造体を wrap して作る時に mode から O_EXCL フラグを落とすようにしています。この API は本体では使われてなくて拡張ライブラリ objspace と fiddle から使われてて objspace のテストでたまにファイル open に失敗することがあるため skip するようにしていたのを根本修正になるみたいです。

[c9bbcaccf2] Nobuyoshi Nakada 2019-06-28 03:27:11 UTC

ff7f71b28889e043798dddfec568083cc7db204a で修正したテストで未使用変数の警告が出てたのをかっこを追加して修正しています。あー String#force_encoding は receiver を破壊的に変更するので結果は変わらないけど、これは GC 避けのために代入する必要があるってことかなぁ。

[dc7da30bed] Nobuyoshi Nakada 2019-06-28 03:31:21 UTC

標準添付ライブラリ scanf のテストで IO の close 漏れの修正。 IO.pipe で例外発生した時のためには r&.close のほうがいいのではないかな。まあでも元は r 側は一切 close してなかったんですね。

[3120252f01] Nobuyoshi Nakada 2019-06-28 03:33:24 UTC

autoload のテストで定数を無駄に参照しているところが警告になってたので論理式に組み込むことで警告抑制しています。

[5627f744cc] Kazuhiro NISHIYAMA 2019-06-28 03:37:07 UTC

scanf のテストスクリプトに明示的な require "test/unit" を追加しています。

[7eaedda557] Kazuhiro NISHIYAMA 2019-06-28 03:37:36 UTC

scanf のテストで開いたファイルや pipe を ensure で閉じるようにしてたのをブロックを渡したメソッド呼び出しを使うようにして明示的な close を不要にしています。 元の File.new というのに古さを感じますね。

[4562dad94c] Nobuyoshi Nakada 2019-06-28 03:36:03 UTC

tool/mkconfig.rb で未使用の変数代入を削っています。

[be14f62caf] Nobuyoshi Nakada 2019-06-28 03:41:03 UTC

tool/vcs.rb のコマンドオプションの parser で debug オプションのデフォルトを $DEBUG の設定を使うようにしています。

[ef45fd53e4] Nobuyoshi Nakada 2019-06-28 05:08:29 UTC

標準添付ライブラリ optparse の zsh completion のテストのテストクラス名が bash completion のほうと重複してたのでたぶん混ざってしまってたのを修正しています。内容ほぼ同じで若干 bash のほうがテストメソッドが多いくらいだったのでテスト漏れはなかったかも。

[951f80f2dd] Nobuyoshi Nakada 2019-06-28 05:09:02 UTC

irb のテストで未使用の変数代入を削除。

[2d1728b9ce] Nobuyoshi Nakada 2019-06-28 05:23:22 UTC

標準添付ライブラリ singleton で Singleton を include した各クラスで動的にクラスメソッドの instance を定義するようにしていたのを、再定義を避けるため include 時に自動で extend される Singleton::SingletonClassMethods 内で定義しておくようにしています。

[023360ee4b] Nobuyoshi Nakada 2019-06-28 05:37:52 UTC

標準添付ライブラリ singleton の instance というメソッドについての rdoc 用コメントを追加しています。正確には Singleton を include したユーザーのクラスに生えるクラスメソッドですね。

[c52dad0ecf] Nobuyoshi Nakada 2019-06-28 05:51:23 UTC

標準添付ライブラリ monitor のテストで Thread の終了を待ってないところがあったので Thread#join を追加しています。

[f8b64e5f2c] Nobuyoshi Nakada 2019-06-28 06:04:25 UTC

RubyVM::InstructionSequence のテストで readability のためにローカル変数に受けたのにその後使ってないところがあったので使うようにしています。

[a0c141b6d0] Nobuyoshi Nakada 2019-06-28 06:09:14 UTC

Kernel#caller_locations のテストで子プロセスを起動したテストで警告を抑制するためオプションに -W0 を追加しています。

[e0c4cb2ea1] Nobuyoshi Nakada 2019-06-28 06:22:27 UTC

拡張ライブラリ stringio のテストで to_str メソッドが定義されたオブジェクトが渡された時にテストで Object の特異メソッドとして to_str を定義したテストで同じオブジェクトを使いまわしているところがあったので作りなおすように修正しています。

[11571b0e95] Nobuyoshi Nakada 2019-06-28 06:25:12 UTC

a0c141b6d04482ebfc4b3abf3f00a476d073226a で修正したテストで EnvUtil.invoke_ruby のかわりに assert_separately を使うようにしてもうちょっと自然に assertion 書けるようにしています。

[f8b528ba92] Nobuyoshi Nakada 2019-06-28 06:26:25 UTC

test/ruby/test_settracefunc.rb で未使用変数の警告除去のために "_" ではじまる変数名に変更したりしています。

[35b7e8eed8] Nobuyoshi Nakada 2019-06-28 06:26:54 UTC

TracePoint のテストでテストメソッドの途中で return して TODO コメントを書いてたところをそのコメントをメッセージとして skip するようにしています。

[566e6b0546] Nobuyoshi Nakada 2019-06-28 07:02:03 UTC

test/ruby/enc/test_emoji_breaks.rb と test/ruby/enc/test_grapheme_breaks.rb で同じクラス名を使ってしまっていたので、名前空間をネストさせて衝突を解消しています。

[e9bce55c12] Nobuyoshi Nakada 2019-06-28 07:02:47 UTC

test/ruby/enc/test_emoji_breaks.rb と test/ruby/enc/test_grapheme_breaks.rb の initialize メソッドの定義でかっこのまえに余計な空白があったのを削除。

[8d04f90da4] Nobuyoshi Nakada 2019-06-28 08:07:17 UTC

ripper のテストでブロックが yield されたことを確認するために初期化しておいた変数の名前がブロック内で代入されるものと違ってしまっていたので修正しています。同じ変数を使いまわしてたので再初期化ミスってても前の assertion で代入されたのが残ってて通ってしまってたのですね。

[5331932cd2] Nobuyoshi Nakada 2019-06-28 08:08:21 UTC

TracePoint のテストで未使用の変数の削除。

[3dba16a5d6] Nobuyoshi Nakada 2019-06-28 08:08:47 UTC

拡張ライブラリ ripper のテストでインデント除去つきヒアドキュメントを parse した時のテストでヒアドキュメントの内容のチェックを追加。

[8ec877d183] Nobuyoshi Nakada 2019-06-28 08:09:18 UTC

ripper のテストで警告除去のためメソッド呼び出しのかっこを明示的につけるようにしています。