ruby-trunk-changes 2019-07-30

今日は rdoc の細かい修正/リファクタリングや toplevel return に引数が渡された時の警告出力の追加などがありました。

[968c7b4398] Kazuhiro NISHIYAMA 2019-07-29 14:03:59 UTC

cont.c でせっかく構造体メンバーをローカル変数に受けているのに使ってないところがあったので利用するようにしています。

[bef398eb87] Nobuyoshi Nakada 2019-07-29 13:51:01 UTC

標準添付ライブラリ rdoc で拡張子 ".html" を削るのに正規表現を使った String#sub を使っていたのを String#chomp を利用するようにリファクタリングしています。正規表現内で "." をエスケープせずに使ってたので意味的にも間違ってましたね。

[3ee63cfe88] Nobuyoshi Nakada 2019-07-29 13:54:58 UTC

同様に rdoc の拡張子の判定で "." を含まない suffix のみのチェックをしていたところに "." もチェックに含めるようにしています。

[e62a60927e] Nobuyoshi Nakada 2019-07-29 13:56:48 UTC

同じく rdoc の正規表現で行頭/行末の ^$ を使ってたところを文字列先頭末尾の \A\z を使うように修正しています。

[c2428b8bf6] Nobuyoshi Nakada 2019-07-29 14:04:04 UTC

bootstraptest/runner.rb で出力の行頭に戻って前の出力を消すのは標準出力が tty の時だけにしています。

[aa97410b0a] Jeremy Evans 2019-07-26 22:14:49 UTC

toplevel return (require や load から抜ける) に引数が与えられていたら警告を出力するようにしています。戻り値は使われないからですね。 [ruby-core:83590] [Bug #14062]

[1a759bfe5d] Jeremy Evans 2019-06-20 18:50:22 UTC

File#path が返す文字列を常に taint するようにしていましたが、多分意図的ではないということで元の path の文字列のフラグを伝播させるだけにしています。 [ruby-core:85619] [Bug #14485]

[9170646f13] git 2019-07-29 17:48:25 UTC

version.h の日付更新

[177731aadf] Jeremy Evans 2019-07-29 18:03:32 UTC

Time の rdoc 用コメントの Timezone オブジェクトに期待する挙動について追記しています。特に dst? メソッドが呼ばれることを追記しています。

[6eab49a40a] Jeremy Evans 2019-07-29 19:10:15 UTC

1a759bfe5d554c22571d2e6e4e5998cf06a7b98f の File#path の taint の挙動変更を revert しています。いくつかの OS 上でテストが(?)失敗したからとのこと。

[1da3a31a5f] Tanaka Akira 2019-07-30 02:59:54 UTC

標準添付ライブラリ resolv の Resolv::IPv6#to_s が返すアドレスの文字列でアルファベットに大文字が使われてたのを小文字を使うように修正しています。 [ruby-core:86170] [Bug #14612]

[3805ef7fb5] Nobuyoshi Nakada 2019-07-30 03:39:28 UTC

test/ruby/test_io.rb のテストメソッド test_set_lineno を分割しています。また test_readline は test_set_lineno_readline にメソッド名を改名しています。

[2e6f777f9e] Kazuhiro NISHIYAMA 2019-07-30 03:44:38 UTC

標準添付ライブラリ rdoc の RDoc::Servlet#do_GET でインスタンス変数を式展開で埋め込んだ正規表現リテラルに o オプションを付けて初回のみ展開するようにしてしまっていたので o オプションを削っています。

[47144f91a1] Nobuyoshi Nakada 2019-07-30 07:44:29 UTC

tool/lib/vcs.rb の VCS::GIT#commit から upstream のブランチ名を取得する部分を upstream というメソッドに切り出しています。

[e25088488b] Nobuyoshi Nakada 2019-07-30 08:23:42 UTC

make check の最後に remote の master と現在の HEAD の間で preprocessor の #include の変更を含む差分がないかを表示するようにしています。 dependency の更新が必要じゃないかのチェックのためみたいです。 [ruby-core:93751] [Bug #16000]

ruby-trunk-changes 2019-07-29

今日は主に Travis-CI などの macOS でのテストの安定化のためのデバッグ作業のための変更がありました。

[61f0f71e5b] Nobuyoshi Nakada 2019-07-29 02:38:15 UTC

.travis.yml の osx_image の指定をトップレベルでなくプラットフォーム毎の設定の部分に移動しています。

[f811a5e910] git 2019-07-29 03:06:13 UTC

version.h の日付更新

[630eb04bc4] Nobuyoshi Nakada 2019-07-29 04:29:35 UTC

rdoc のテストで未使用の変数への代入を消しています。

[8c6f1715f0] Nobuyoshi Nakada 2019-07-29 04:29:42 UTC

Time のテストで未使用の変数への代入とテストで使う Class の 使わない attr_reader の定義を削除しています。

[4b4d8a662b] Takashi Kokubun 2019-07-29 10:45:25 UTC

.travis.yml や appveyor.yml で -j オプションぬきの make test-all に分離してたテストのうち test_gc_compact.rb を -j ありのほうに復帰? させています。

[5af28fec2f] Takashi Kokubun 2019-07-29 10:49:19 UTC

タイムアウトを伸ばしてもまだ失敗するようなので .travis.yml の macOS 向けの make test-all のオプションにデバッグ用に -v を追加しています。

[e05f397f08] Takashi Kokubun 2019-07-29 11:25:22 UTC

148f50fc789d59319113a1fd2897dbe552e73e73 で .travis.yml の macOS 向けで homebrew の update をするようにしていたのをやっぱりやめています。 update しないと "Your Homebrew is outdated" というエラーになってたそうですが、brew update するとそこでまた別のエラー(タイムアウト?)になることがあるので、一旦 update なしにしてみています。

[f6a6b21f09] Takashi Kokubun 2019-07-29 11:55:18 UTC

e05f397f08e98fb170e3aca885d6028b344e833c でコメントアウトした homebrew.update: true のコメントを短く書きなおしています。

[a5ea55feb4] Takashi Kokubun 2019-07-29 11:57:57 UTC

これは実際には f6a6b21f09b24955a44622e1767bf5b6630525be でコミットするつもりだったみたいですが .travis.yml の make test-all につけていた travis-wait 50 を消しています。 travis-wait をつけると出力が出なくなってしまうらしくて、デバッグ出力がみえないためとのこと。

ruby-trunk-changes 2019-07-28

今日は String#split にブロックを渡して呼び出した時にブロック内で正規表現を使った場合の不具合修正がありました。

[e3b613a669] Takashi Kokubun 2019-07-27 12:34:34 UTC

.travis.yml の macOS でのテスト時に --timeout-scale=3.0 オプションをつけてタイムアウトを延長するようにしています。

[f1b76ea63c] Nobuyoshi Nakada 2019-07-27 12:54:34 UTC

String#split にブロックを渡すとブロック内で正規表現マッチを使ってしまうとそれによって last_match が汚染されて分割に影響を与えてしまうので、ブロックが渡された場合は rb_match_busy() を呼んで保護するようにしています。 ブロック渡しは 2.6 からの機能で、単に分割結果を渡して yield するだけだけど、そのかわり結果を配列で返さなくなるので巨大な文字列を分割する時に巨大な配列をつくらなくて済むというやつですね。 [ruby-core:93940] [Bug #16024]

[adf13625ae] Takashi Kokubun 2019-07-27 14:46:39 UTC

e3b613a66986306950fc69d426d947a349b9fc8b で変更した .travis.yml の macOS 時のオプションを --timeout-scale=2.0 に短縮してかわりに travis_wait を 50分まで伸ばしています。

[1d1f98d49c] Nobuyoshi Nakada 2019-07-27 22:33:21 UTC

f1b76ea63ce40670071a857f408a4747c571f1e9 の再修正で MatchedData の MATCH_BUSY フラグを落とす rb_match_unbusy() という関数を作って使い終わった時に?フラグを落として再利用しようとしているみたいです。マッチ部分文字列用のバッファを毎回確保しないようにするためかな…。 re.c をちょっと眺めたけどそもそも BUSY がよくわからず。 [ruby-core:93940] [Bug #16024]

[bce348204f] git 2019-07-27 22:37:35 UTC

version.h の日付更新

[a6e32855d0] Nobuyoshi Nakada 2019-07-28 00:43:26 UTC

標準添付ライブラリ reline でクオート文字に対応する閉じクオートやそのエスケープ記法にマッチさせる正規表現を毎回 Regexp.escape して正規表現リテラルコンパイルしてたのを、開きクオートが出現した時点でやっておいてそれを使いまわすようにしています。

[b40589802b] Nobuyoshi Nakada 2019-07-28 00:52:07 UTC

reline のリファクタリング。 if 文を case 文にしていますが、コミットコメントによると Regexp を毎回コンパイルしないためとのことで式展開を含む正規表現リテラルに o オプションを追加しているので、こっちがメインかも。

ruby-trunk-changes 2019-07-27

今日は Time.new に timezone オブジェクトを渡した時の dst? のフラグを伝播させる不具合修正やその他ドキュメントの修正などがありました。

[4b7d7d007f] Jeremy Evans 2019-06-24 22:07:00 UTC

標準添付ライブラリ forwardable のドキュメントに定数の内容への委譲の方法について追記しています。 [ruby-core:79207] [Bug #13142]

[b1a2eddbfc] Jeremy Evans 2019-07-26 15:13:34 UTC

Process.kill の pid に負の整数を渡した場合は多くの場合 process group へのシグナル送出になるんだと思いますが、rdoc 用コメントにこの時の挙動はプラットフォーム依存だと追記されています。 [ruby-core:80838] [Bug #13501]

[4f978a1c99] git 2019-07-26 15:18:35 UTC

version.h の日付更新

[5fef46ae0d] Jeremy Evans 2019-07-26 16:56:53 UTC

SecureRandom.uuid が実装している v4 UUID にはバージョンなどを表す固定のビット部分が存在するそうで、RFC 4122 に準拠してこれらのビットをチェックするテストを追加しています。へー知らなかった。 [ruby-core:81401] [Bug #13603]

[bd32833382] Jeremy Evans 2019-07-26 21:26:59 UTC

doc/regexp.rdoc に正規表現に名前つき capture でローカル変数に代入する記法を使っていると同じ正規表現内の(名前つきでない)かっこは capture をしなくなるという挙動について追記しています。へー、そうだったんだ。けっこうただのグループ化のために (?:...) を書くことが多いけど一部だけ capture するなら named capture を使ったほうが余計な capture を気にせずすっきり書けそうですね。 [ruby-core:81913] [Bug #13716]

[6279cf8b2b] Jeremy Evans 2019-07-26 23:57:42 UTC

Object#hash の rdoc 用コメントが 7b19e6f3fdf8b0238752cb1561dfe42a283f5308 でうっかり削除されてたので復活させています。

[8bccbf3cfe] Jeremy Evans 2019-07-27 00:04:13 UTC

Object#== や #eql?, #equal? の rdoc 用コメントに eql? で一致するオブジェクトは #hash も一致しないといけないという規則を追記しています。 [ruby-core:84573] [Bug #14263]

[149e414ed5] Nobuyoshi Nakada 2019-04-23 04:09:34 UTC

tzinfo.gem の TZInfo::Timezone を timezone オブジェクトとして受け取って作った Time オブジェクトで dst? メソッドが誤った判定をしてしまうことがあるので、初期化時に dst フラグを timezone オブジェクトから取得してセットしておくようにしています。 [ruby-core:93557] [Bug #15988]

[012d39c4e6] Hiroshi SHIBATA 2019-07-27 02:23:47 UTC

95aa60f6cde1ab7bc5cfe33c95c4fd2d2154cd52 で tool/sync_default_gems.rb で default gems の upstream から cherry-pick する時に除外するコミット判定のためのファイルリストを定数にくくり出して、いくつかファイル名を追加しています。

[58bb7f0ca1] Hiroshi SHIBATA 2019-07-27 03:31:07 UTC

tool/sync_default_gems.rb で upstream から cherry-pick する時に失敗したコミットを skip して commit hash を表示した上で続きを cherry-pick するようにしています。

[f9f02e8216] Charles Oliver Nutter 2019-07-26 05:37:11 UTC

irb で RubyVM::InstructionSequence.compile を使っているところを RUBY_ENGINE で分岐して JRuby では JRuby.compile_ir を利用するようにしています。

[a06301b103] Jeremy Evans 2019-06-24 18:13:09 UTC

irbhistory ファイルの mode から外のユーザーの読み込み権限を落とすようにする File.chmod で Errno::EPERM が発生した時に黙って return するようにしています。 [ruby-core:82821] [Bug #13907]

[5c276e1cc9] Benoit Daloze 2019-07-27 10:40:09 UTC

ruby/spec に upstream からマージ。今回は差分いっぱいありますね。

[7b727e30fc] Benoit Daloze 2019-07-27 10:57:46 UTC

ruby/spec にマージもう一回。この ruby/spec の upstream からのマージが必ず 2回になるのなんでなんだろ。

[73530a9619] nagachika 2019-07-27 11:15:53 UTC

tool/merger.rb で安定版へのバックポートパッチを svn ci コマンドでコミットした直後に svn update して working copy の revision を最新に追随しておくようにしています。 svn ci だと更新されないのでその後の done サブコマンドがうまく働いてくれないのでした。

ruby-trunk-changes 2019-07-26

今日は default gems の同期処理の強化や rdoc の更新/不具合修正などがありました。

[957a29fc6e] Nobuyoshi Nakada 2019-07-26 00:03:34 UTC

Travis-CI の macOS のビルドに使うイメージのバージョンを xcode11 というのに更新しています。 darwin18 ということは Mojave 相当かな?

[300de6aec2] git 2019-07-26 01:46:31 UTC

version.h の日付更新

[82b02c131e] Koichi Sasada 2019-07-26 02:37:02 UTC

gc.c でオブジェクトの内容をダンプする主にデバッグ用途で使われる rb_obj_info() で rb_special_const_p() のチェックしてたのをやめて単に obj_info() に委譲するように変更しています。 obj_info() に既に対応があるらしい。

[51f22deadb] Hiroshi SHIBATA 2019-07-26 07:34:15 UTC

tool/sync_default_gems.rb で rdoc の同期時にテストのディレクトリ構成のコピーを変更しています。

[348c9687bf] Hiroshi SHIBATA 2019-07-26 07:45:18 UTC

tool/sync_default_gems.rb で同期すべきディレクトリがない、またはファイルだった時の例外メッセージ内のかっこをエスケープするようにしています。 VSCode でのハイライトのためとのこと。

[071bf88970] Hiroshi SHIBATA 2019-07-26 08:06:54 UTC

tool/sync_default_gems.rb で upstream の repository からコミットを cherry-pick してくる時にメッセージを出す前に Merge commit を除外するように順番を変更しています。

[95aa60f6cd] Hiroshi SHIBATA 2019-07-26 09:14:32 UTC

tool/sync_default_gems.rb で cherry-pick から除外する commit の判定に Merge commit のメッセージのほかに ruby の repository 内にはコピーされないファイル群(.travis.yml, appveyor.yml など CI 系や .gitignore, Gemfile など)の変更のみのコミットも除外するようにチェックを強化しています。

[f7cbbc7074] aycabta 2019-01-20 04:18:22 UTC

標準添付ライブラリ rdoc の RDoc::Comment#to_s を #text の alias として、RDoc::ClassModule のテストで #add_comment メソッドの引数に文字列を渡してたのを RDoc::Comment のインスタンスをそのまま渡すように変更しています。実際の使われかたに沿ったテストにしたってことかなぁ。

[a86d4eef4b] aycabta 2019-01-21 19:46:46 UTC

標準添付ライブラリ rdoc の RDoc::Text に language という属性を追加して言語(C, Ruby)に応じたコメントの処理をできるようにしているようです。RDoc::Comment ってそういう意味のコメントだったのか。

[3b0f952ec8] aycabta 2019-01-25 14:58:30 UTC

標準添付ライブラリ rdoc の RDoc::Servlet でネストした名前空間の定数への URL の処理を修正しています。 https://github.com/ruby/rdoc/issues/615

[8bb4892376] aycabta 2019-04-01 08:16:57 UTC

標準添付ライブラリ rdoc に添付してる jQuery を 3.3.1 に更新しています。

[21ce8b3298] Maxime Lapointe 2019-05-14 15:52:36 UTC

標準添付ライブラリ rdoc に含まれてる CSS の画像のパス指定の修正。

ruby-trunk-changes 2019-07-25

今日は拡張ライブラリ psych の fat gem 対応の削除ほか upstream の変更の取り込みや、test/runner.rb の復活などがありました。

[7b1893c771] Takashi Kokubun 2019-07-24 11:50:50 UTC

Travis-CI の macOS での失敗がまだ直らないそうで make touch-unicode-files 後にまた ls でタイムスタンプファイルなどの更新時刻を表示させるようにしています。

[65a9d4b0f7] Takashi Kokubun 2019-07-24 11:51:29 UTC

676df311d90990a4666adb5b1db4c7aa6b080e57 の Travis-CI の macOS 環境でのファイルのタイムスタンプをリセットするトリックのコメント部分の typo 修正。

[96b0d7cd6f] Nobuyoshi Nakada 2019-07-24 12:03:01 UTC

7b1893c771d21876884e17e8281c737bfc1c4643 のデバッグ用の ls 実行は macOS でのみ実行するようにしています。 ls の -T オプションは GNU の ls だと挙動が違うそうなので。

[538ba984c8] Nobuyoshi Nakada 2019-07-24 12:07:12 UTC

96b0d7cd6fcff7cb2f42315e39a961d84c630e9d の再修正。 YAML の記法を変えて改行を含めるようにしています。

[1cce430324] Nobuyoshi Nakada 2019-07-24 13:07:10 UTC

拡張ライブラリ zlib のテストで警告抑制のため EnvUtil.suppress_warning を利用するようにしています。

[3556cba503] Jeremy Evans 2019-07-24 17:30:56 UTC

Range#cover? の rdoc 用コメントに比較演算子 <=> が nil を返した時の挙動について追記しています。 [ruby-core:73894] [Bug #12090]

[48b4deb418] git 2019-07-24 17:36:25 UTC

version.h の日付更新

[da76c4460f] Jeremy Evans 2019-07-24 18:54:07 UTC

Thread の rdoc 用コメントに Thread 内で発生した例外を Thread#value などで再発生させる挙動について例を上げて説明を詳しくしています。 [ruby-core:74827] [Bug #12252]

[efa380b006] Nobuyoshi Nakada 2019-07-24 20:54:38 UTC

cont.c の例外メッセージやデバッグメッセージのフォーマット文字列で %zu を直接使っていたところを PRIuSIZE マクロを利用するようにしています。

[0a63c4d5fb] Nobuyoshi Nakada 2019-07-24 21:39:40 UTC

pipe で IO#seek を呼んだ時に Errno::ESPIPE を発生させる挙動が Windows では発生しないので、専用の wrapper 実装を追加して socket または pipe の時は Errno::ESPIPE を発生させるようにしています [ruby-core:74724] [Bug #12230]

[938032a790] Hiroshi SHIBATA 2019-07-21 03:16:56 UTC

拡張ライブラリ psych の .gemspec ファイルの不要な development dependency を削除しています。

[50076903ab] Hiroshi SHIBATA 2019-07-21 03:21:27 UTC

拡張ライブラリ pysch で共有ライブラリを require する時のパスを rubyAPI Version つきのパスを試すのをやめるようにしています。 fat gem のサポートをやめるとのこと。fat gem っていうのはバイナリを同梱してる拡張ライブラリコンパイル済みの gem のことかな。

[6ca7dc69ef] Jean Boussier 2019-07-22 10:02:23 UTC

拡張ライブラリ psych で load 時に Hash のキーが文字列だった時に String#-@ (があれば)を使って dedup するようにしています。 https://github.com/ruby/psych/commit/0414982ffd

[698dde525a] Nobuyoshi Nakada 2019-07-24 13:21:49 UTC

拡張ライブラリ psych のテストで定義してるクラスで未初期化のインスタンス変数参照の警告を抑制するため getter メソッドに defined? による確認を追加しています。

[414d6cf1d3] Nobuyoshi Nakada 2019-07-24 18:29:41 UTC

拡張ライブラリ psych のソースでブロックの途中で変数宣言しているところがあったので修正しています。今は C99 を使えるようになっていますが、psych は gem なので古い ruby でビルドすることもあるのでまだ C90 でビルドできるようにしておかないといけないということのようです。

[077c28887a] Nobuyoshi Nakada 2019-07-24 20:00:33 UTC

拡張ライブラリ io-console の gemspec ファイルの不要な development dependency 削除とバージョンの更新。

[82ae462113] Nobuyoshi Nakada 2019-07-24 23:19:03 UTC

tool/sync_default_gems.rb で default gems の upstream の repository を git fetch する時に tag は取得しないように --no-tags オプションを追加しています。

[a850be68a5] Nobuyoshi Nakada 2019-07-24 02:04:26 UTC

テスト中に NoMemoryError が発生した時にシステムの情報をダンプする処理は tool/test/runner.rb から tool/lib/test/unit.rb の run メソッド内に引き上げています。

[d8e90f5558] Kazuhiro NISHIYAMA 2019-07-25 07:39:28 UTC

標準添付ライブラリ csvCSV#inspect が返す文字列の先頭が普通 "#<...>" なのが "<#...>" になってたので修正しています。

[f5ea054810] Nobuyoshi Nakada 2019-07-25 05:29:15 UTC

a850be68a57dce65449766654aa1912b5fa660cb の追加変更。 テスト中の NoMemoryError 発生時の処理を Test::Unit::AutoRunner.run からさらに Test::Unit::Runner#run に移動しています。

[4c1db84d17] Nobuyoshi Nakada 2019-07-25 07:45:18 UTC

tool/lib/test/unit.rb の Test::Unit にテストファイルを探索する起点となるディレクトリを指定する --base-directory オプションを追加しています。

[46771abfe5] Nobuyoshi Nakada 2019-07-25 07:52:03 UTC

tool/lib/test/unit.rb で --base-directory を $LOAD_PATH の先頭に追加するようにしています。

[8e53d18e67] Nobuyoshi Nakada 2019-07-24 02:07:15 UTC

24712eeec39f5e9a11cfc2b940358403cda4f2b6 で削除した test/runner.rb を復活させて tool/test/runner.rb の --test-target-dir オプションの実装は削除しています。

[0f9ec4a877] aycabta 2019-07-25 08:19:11 UTC

標準添付ライブラリ reline の Reline::LineEditor の補完処理でバッファを部分文字列にする時に Encoding の文字の間で分割してしまわないように分岐を追加しています。 byteslice じゃなくて slice にすれば良さそうなものだけど、byte 単位じゃないといけない理由があるんだろうなぁ。

[a50c844645] Nobuyoshi Nakada 2019-07-25 08:15:48 UTC

1feda1c2b091b950efcaa481a11fd660efa9e717 の変更で struct vm_throw_data::throw_state の型を VALUE から int に変更してましたがそれが s390x など Big Endian の環境でまずかったので THROW_DATA_NEW() の引数の型も int に変更して obj->throw_state を明示的に初期化しなおすようにしています。

[7e33f324e1] Nobuyoshi Nakada 2019-07-25 11:57:32 UTC

tool/test/runner.rb で終了ステータスを Test::Unit::AutoRunner.run の戻り値を使ってに明示的に exit するようにしています。 simplecov がないのに COVERAGE が設定されてる時の問題のためらしいけどよくわからず。

ruby-trunk-changes 2019-07-24

今日は TracePoint の不具合修正や mkmf.rb の不具合修正、特異クラスに対する singleton_methods の不具合修正などがありました。

[676df311d9] Nobuyoshi Nakada 2019-07-23 11:51:23 UTC

0338c44bde4fe55f0507a82fe470dce2ac70127a や e8d4f0cbc78b0e06806394a93ba73b7d04eba14d のあたりの Travis CI での macOS のビルドの再修正で env のところでシェルスクリプトを動かしてソースディレクトリ? 配下のファイルのタイムスタンプを touch で更新しておくようにしています。調査用に入れた ls の結果、ファイルの mtime が未来のタイムスタンプになってることがあったそうです。

[b6f07f748a] Jesús Burgos Maciá 2019-07-19 19:59:21 UTC

prelude.rb の IO#read_nonblock メソッドの rdoc 用コメントに Windows など一部の環境では socket 以外の IO では non-blocking はサポートされてなくて Errno::EBADF が発生すると追記しています。

[325f7b6008] Jeremy Evans 2019-07-08 03:16:57 UTC

mkmf.rb の r47458 の変更で Mkmf#pkg_config で INCFLAGS に分離したフラグが結果に含まれなくなっていたのを修正しています。 [ruby-core:67137] [Bug #10651]

[c9826c20d2] Nobuyoshi Nakada 2019-07-23 15:24:12 UTC

標準添付ライブラリ net/http の Net::HTTP::Header#initialize_http_header の警告で uplevel を調節して呼び元の位置を表示するようにしています。

[f295e23e54] git 2019-07-23 15:32:43 UTC

version.h の日付更新

[afea8db8c7] Nobuyoshi Nakada 2019-07-23 16:42:05 UTC

拡張ライブラリ date のテストで DateTime.parse に不正な offset 部分を持った文字列を渡した時の警告を確認するチェックを追加しています。

[11662c70b0] Nobuyoshi Nakada 2019-07-23 16:42:35 UTC

c9826c20d204d4b8894e6fd51e5913959676776d の影響? かと思われますが net/http のテストで警告抑制のためのヘッダ追加や、逆に警告が出ることを確認する assertion の追加など。

[9aba971e42] Jeremy Evans 2019-07-08 00:58:25 UTC

Object#singleton_methods で receiver 自体が特異クラスの時にその特異クラスのインスタンスが所属するクラスにあるクラスメソッドが出現してしまうという不具合を修正しています。このために singleton_metods を呼んだら内部で singleton_class を生成して見えないようにしているんだけど、うーんまあこれはしょうがないかな。副作用があるわけだけどはっきり ruby レベルで見えるものではないし。 [ruby-core:68289] [Bug #10901]

[a4e5690760] Yusuke Endoh 2019-07-23 19:49:51 UTC

transcode.c の rb_econv_open0() で rb_enc_find_index() 呼び出し後その index で rb_enc_from_index() を呼ぶパスは通らない? らしいので削っています。 Coverity Scan が指摘してきたとのことで、結果を使ってないからかなぁ。軽く見ただけだとこれが「不要」と言いきれるのよくわからないけど Coverity Scan すごいな。

[df317151a5] Koichi Sasada 2019-07-23 20:32:09 UTC

TracePoint のイベントフック内でその TracePoint を disable すると target が特定されているイベントの場合 rb_hook_list_t を早く解放してしまって SEGV する恐れがあったので解放しないようにしています。 https://twitter.com/joker1007/status/1153649170797830144

[a39f218f22] Nobuyoshi Nakada 2019-07-24 02:51:04 UTC

make test-bundled-gems で環境変数 TEST_BUNDLED_GEMS_ALLOW_FAILURES によるエラーの無視を if 文を使ってテスト実行を分けてたのを、一時的に set -e してエラー無視させる方法に書きかえテスト実行部分のコマンドは共通のものを使うようにしています。

[5108a5dd7f] Nobuyoshi Nakada 2019-07-24 03:13:07 UTC

a39f218f22e8ec205291022f9b748d51daa8df3b の続きで make test-bundled-gems-run で -k オプションが指定されてたら最初のエラーで中断せずに全ての gem のテストを実行してエラー件数を返すようにしています。

[3a227b99e7] Nobuyoshi Nakada 2019-07-24 03:25:02 UTC

defs/gmake.mk の test_%.rb で指定したテストファイルを実行するようにしたターゲットでも test/runner.rb から test/tool/runner.rb への統合に追随させています。

[99680f81e8] Nobuyoshi Nakada 2019-07-24 04:24:18 UTC

rubygems でテスト用の Gem::TestCase というクラスの定義部分で @@project_dir というディレクトリパスを Dir.pwd を元にして作って保持してたのを必要なテストスクリプト内でファイルからの相対パスで作るように修正しています。ソースディレクトリ外でビルドしてる時を考慮。

[99fb637c41] Nobuyoshi Nakada 2019-07-24 04:57:59 UTC

99680f81e832506792cf32d830d09954acd220fc の追加修正でクラス変数を使ってたのを定数にディレクトリパスを格納するように変更しています。

[dc954cbb75] Nobuyoshi Nakada 2019-07-24 11:08:40 UTC

tool/test/runner.rb および tool/lib/test/unit/parallel.rb で Gem::TestCase クラスを定義して @@project_dir を用意してたのが 99680f81e832506792cf32d830d09954acd220fc の変更で不要になったので削っています。