ruby-trunk-changes 2020-03-30

今日は VM 終了時の SEGV の修正や rubygems の更新などがありました。

[b385f7670f] Alan Wu 2020-03-11 14:37:14 UTC

0c2d81dada88b5a3946c3162187df4223bfe6b4f の VM 終了時の処理をリファクタリングした時に TracePint の RUBY_INTERNAL_EVENT_GC_EXIT イベントのフックが残るようになってしまって SEGV することがあったようなのでその修正のため rb_ec_teardown() で全 trace_func を削除するようにしています。 [ruby-core:97416] [Bug #16682]

[f987302cf4] git 2020-03-30 03:41:46 UTC

version.h の日付更新

[ba9dcdab36] David Rodríguez 2020-03-24 18:51:43 UTC

rubygems の cosmetic な変更。Rubocop の提案にそろえたみたいです。

[b34721aa04] David Rodríguez 2020-03-27 12:47:50 UTC

rubygems の配列リテラルの空白による整形の変更。

[4cd90c7bc0] David Rodríguez 2020-03-27 12:49:17 UTC

同じく rubygems のテストの余分な空白除去。

[c16815cca7] David Rodríguez 2020-03-27 12:49:55 UTC

同じく rubygems のテストの余分な空白除去。

[061add792e] David Rodríguez 2019-05-03 17:56:58 UTC

同じく rubygems で余分な空白除去。これも rubycop の昨日によるリファクタリングかな。

[7e1e60b044] David Rodríguez 2020-03-26 17:42:48 UTC

rubygems の 1.8 サポート用のコードを削除しています。

[7f8f33ebb9] David Rodríguez 2020-03-26 17:43:34 UTC

rubygems で 1.8 サポートのためとコメントが書かれてる行が 1.8 サポートに関係なさそうということでコメントを削除。

[9d5e7d6c67] David Rodríguez 2020-03-22 11:50:56 UTC

rubygems の Gem::DependencyInstaller#find_gems_with_sources というメソッドを削除していたのを revert して復活させています。来年まで? 消すのを延期するとのこと。

[293c6d9b61] Ellen Marie Dash 2020-03-26 20:43:51 UTC

rubygems の lib/rubygems/source_local.rb というファイルを削除しています。既に deprecated になっていて require しても警告が出るだけのファイルだったみたいなので、もう不要だしそもそも壊れてるということみたいです。

[9552fa9c0d] Nobuyoshi Nakada 2020-03-30 06:51:40 UTC

tool/mkconfig.rb の RbConfig::MAKEFILE_CONFIG の rdoc 用? コメントの typo 修正。

[f2807f4ec0] Nobuyoshi Nakada 2020-03-30 07:03:38 UTC

make up の後 revision.h を更新するようにしてるようです。

[7a2177ea50] Kazuhiro NISHIYAMA 2020-03-30 08:35:49 UTC

GitHub Actions で git clone で取得する履歴が --shallow-since=yesterday で行なれていると pull request に対して実行すると履歴が足りないことがあるので --depth=50 の指定に変更しています。

ruby-trunk-changes 2020-03-29

今日は主に rubyspec の更新に追随した CI でのエラーの対策や JRuby 向けの対応などがありました。

[282c9d1bbe] Benoit Daloze 2020-03-28 11:34:45 UTC

6eb3820aad1668b6b09c68929840dff2cfda04c0 で実行除外した rubyspec の C API rb_rescue2() のテストですが、そもそも使いかたがまちがってるとのことで一旦削除しています。

[5b48686691] Benoit Daloze 2020-03-28 11:49:28 UTC

rubyspec の Process.clock_getres についてのテストを消しています。ほとんどのプラットフォームで Process.clock_getres が正しい値を返してくれないから、とのこと。 [ruby-core:97609] [Bug #16740]

[5fa12dafa8] Benoit Daloze 2020-03-28 12:03:17 UTC

C API rb_rescue2() の Doxygen 用コメントで可変長引数の最後には (VALUE)0 のように明示的に VALUE 型にキャストした 0 を渡さないといけないので記述を修正しています。

[11a381940b] Benoit Daloze 2020-03-28 13:27:13 UTC

4396ced07dca5599c022a7e86e8f046915982087 で追加した rubyspec の Process.times のテストのデバッグ出力を消しています。

[6413a26b6c] Benoit Daloze 2020-03-28 13:32:22 UTC

rubyspec の Process::Tms のテストで stime のチェックを消しています。spec 動かしているあいだシステム時間使わないから、とあるけどそうかな? まあしかしテスト内容をみると偶然エラーになる可能性が 0 ではない脆弱なテストっぽさはありますね。

[5806c54447] Benoit Daloze 2020-03-28 13:39:01 UTC

というわけで(?) Process.times のテストのループ回数を増やして偶然エラーになりにくいようにしています。

[f432b5e5cd] Nobuyoshi Nakada 2020-03-28 13:15:27 UTC

GitHub Actions の MinGW 版で TMPDIR, PATH などの環境変数? にセットするパスの相対パスを修正しています。

[2b6848af0e] Charles Oliver Nutter 2020-03-28 02:15:01 UTC

irb の RubyLex クラスで JRuby では requre "jruby" するようにしています。 JRubyJRuby.compile_ir という機能を利用するためこの require が必要なようです。

[addf43d7d5] git 2020-03-28 19:45:24 UTC

version.h の日付更新

[92c25114ab] Takashi Kokubun 2020-03-28 22:19:06 UTC

MJIT のテストで一時ディレクトリに古いオブジェクトファイルが残ってて失敗するのを避けるため setup 時に残ってるファイルを削除する処理を追加しています。

[cf191872fd] Takashi Kokubun 2020-03-28 22:23:28 UTC

5806c54447439f2ba22892e4045e78dd80f96f0c でループ回数増やした rubyspec の Process.times のテストですが、まだ通らないことがあったようでさらに試行回数を増やしています。

[6379c6af4d] Yusuke Endoh 2020-03-29 00:09:46 UTC

rubyspec の別実装向けのテストみたいなのがあるみたいですが、そこで simulate_ruby_engine "jruby" というメソッドを使ってるテストのひとつを MRI の時に skip するようにしています。

[87aebecdc2] Yusuke Endoh 2020-03-29 01:06:53 UTC

rubyspec の Time.new のタイムゾーンを指定して作るテストで、作った Time の 1時間前の zone と比較していたのを 1秒前にするようにしています。夏時間の直前などに実行するとたまたま跨ってしまってエラーになる可能性が高まっていた模様。

[2a3f45bdb3] Nobuyoshi Nakada 2020-03-29 08:43:24 UTC

cygwin/GNUmakefile.in に gnumake = yes という変数宣言を追加しています。

ruby-trunk-changes 2020-03-28

今日は File.open の不具合修正や rubyspec の更新とその修正などがありました。

[e1e4ea8fa9] Jeremy Evans 2020-03-27 17:29:00 UTC

File.open で第2引数 mode にビットフラグとして File::BINARY を渡す呼びかたで Windows 環境でちゃんとバイナリモードになっていなかった不具合を修正しています。 [ruby-core:97582] [Bug #16737]

[d214c188e4] git 2020-03-27 18:31:41 UTC

version.h の日付更新

[296f68816c] Benoit Daloze 2020-03-27 23:22:48 UTC

ruby/mspec を upstream からマージしています。

[f234d51eab] Benoit Daloze 2020-03-27 23:22:51 UTC

ruby/spec を upstream からマージしています。

[6eb3820aad] Yusuke Endoh 2020-03-28 02:12:30 UTC

rubyspec の C API rb_rescue2() のテストが CI で SEGV を起こしているとのことで一時的に実行しないようにしています。

[7072e0324e] Nobuyoshi Nakada 2020-03-28 05:57:17 UTC

rubyspec の RbConfig::CONFIG のテストで make install されていないと通らないものを windows でのみ除外していたのを RbConfig::TOPDIR の有無で判定する guard に書き換えています。

[8c80922c82] Nobuyoshi Nakada 2020-03-28 07:10:32 UTC

7072e0324ec7c083c46b7e6f566efa6a74206a07 で guard を書き換えてた rubyspec の RbConfig::CONFIG のテストを libdir が RbConfig::CONFIG['libdirname'] によって別の名前が指定されているケースを考慮するようにしています。

[476ac00e49] Nobuyoshi Nakada 2020-03-28 08:24:59 UTC

bundled gems のパッケージ展開に RUNRUBY (miniruby)を使うようにしていたのを BASERUBY を利用するように変更しています。

[34b0a7be0e] Yusuke Endoh 2020-03-28 10:31:11 UTC

7072e0324ec7c083c46b7e6f566efa6a74206a07 で guard を書き換えた rubyspec の RbConfig::CONFIG のテストですが、やっぱり Windows を除外するのも必要だったようなのでそれも復活させています。

ruby-trunk-changes 2020-03-27

今日は Hash のデフォルト値についてのドキュメント強化やテストの警告除去などがありました。

[0d5db77116] "S.H" 2020-03-26 17:14:23 UTC

appveyor.yml に git config でユーザー情報を登録するコマンドを初期化ステップに追加しています。 https://github.com/ruby/ruby/pull/2983

[18aff42670] git 2020-03-26 17:14:49 UTC

version.h の日付更新

[39c965f230] Burdette Lamar 2020-03-27 03:33:39 UTC

Hash クラスの rdoc 用コメントのデフォルト値についての説明を追加しています。

[16c90f0678] Yusuke Endoh 2020-03-27 06:31:14 UTC

拡張ライブラリ digest のテストの sleep しているところを EnvUtil.apply_timeout_scale を通すようにして環境変数 RUBY_TEST_TIMEOUT_SCALE やオプションによる倍率がきくようにしています。

[3486a460ea] Nobuyoshi Nakada 2020-03-26 15:49:49 UTC

標準添付ライブラリ reline のテストで特殊変数 $/ に nil 以外を代入した時のテストでこの代入の警告を抑制するため一時的に $VERBOSE を nil にしておくようにしています。

ruby-trunk-changes 2020-03-26

今日は標準添付ライブラリ racc, irb, reline, uri の更新の他、去年の timer thread 削除時の変更での不具合修正などがありました。

[48a5c155fa] Hiroshi SHIBATA 2020-03-25 12:39:03 UTC

標準添付ライブラリ racc を upstream の 1.5.0 に同期させています。 JRuby 向けの対応が入っているらしい。

[4adb2d655d] Nobuyoshi Nakada 2020-03-25 13:00:15 UTC

RbConfig.expand というメソッドを呼ぶと RbConfig::CONFIG の内容が変数展開結果で置換するので macOS で RbConfig::CONFIG["SDKROOT"] という項目に ENV から取得した文字列を入れていると freeze されているためエラーになるそうで、文字列展開する式を埋め込んだ文字列を入れておくようにしています。dup しないのは expand 時点での環境変数を反映させるためかな。 [ruby-core:97585] [Bug #16738]

[34d881cba2] S-H-GAMELINKS 2020-03-25 10:40:52 UTC

appveyor.yml で git clone する時のオプションの shallow_clone: true を削除して clone_depth: 10 を追加しています。

[ff98931dac] Koichi Sasada 2020-03-25 16:16:50 UTC

r66712 (23444302d9200bcc41ce279a529f73cad63c3f05) で導入された rb_nogvl() で引数 flags の論理ビットのチェックするべきところビット定数のみで条件分岐が書かれていてちゃんとチェックされていなかったのを修正しています。 [ruby-core:90865] [Bug #15499]

[eaf06f457a] git 2020-03-25 16:19:58 UTC

version.h の日付更新

[ba04678c98] Takashi Kokubun 2020-03-26 05:52:51 UTC

net/ftp のテストで --jit-wait オプションつきで実行している時にはタイムアウトしてしまうのでひとまず skip させるようにしています。

[b08c1bea36] Nobuyoshi Nakada 2020-01-30 03:08:37 UTC

標準添付ライブラリ irb の補完処理に使う正規表現で名前つき capture と名前なしの capture が混在されていて、この場合名前なしの capture は値が保存されないので明示的に (?:) で capture なしのグルーピングに変更しています。

[ffbb162f1a] aycabta 2020-02-25 11:32:07 UTC

irb で入力バッファが複数行かどうかのチェックに正規表現を使ってたのが遅いので String#inclue? で "\n" が含まれてるかチェックする方法に変更しています。

[22477128cd] aycabta 2020-03-26 07:43:16 UTC

irb で入力を parse する時に Hash リテラルのキーに不正な Encoding の文字列があった時に異常終了してしまうのを修正しています。

[f245fb1ab8] aycabta 2020-02-23 03:35:24 UTC

標準添付ライブラリ reline で無引数の String#chomp を呼んでたのを特殊変数 $/ に影響されないようにするため明示的に引数に "\n" を渡すようにしています。

[90913bfabe] aycabta 2020-03-21 09:13:50 UTC

標準添付ライブラリ reline で inputrc ファイルを指定する環境変数 INPUTRC がセットされているけど空文字列だった時にエラーにしないように修正しています。

[9339a7d9d4] aycabta 2020-03-21 09:31:20 UTC

標準添付ライブラリ reline のテストに yamatanooroti という gem があったらそれを利用した端末テストを追加しています。 yamatanooroti って端末のテスト専用のライブラリっぽいですね。

[467b665a8b] aycabta 2020-03-21 09:40:15 UTC

9339a7d9d48fe5f7ed86b51a7a96e931742f8091 で追加した yamatanooroti.gem を使ったテストのテストクラス名を変更しています。

[8911b3d3e8] aycabta 2020-03-21 09:41:14 UTC

9339a7d9d48fe5f7ed86b51a7a96e931742f8091 で追加した yamatanooroti.gem を使ったテストの LoadError を rescue しているところで、ruby リポジトリ内では通常実行されない旨コメントを追記しています。

[69cd27c98e] aycabta 2020-03-24 04:56:22 UTC

標準添付ライブラリ reline で may_req_ambiguous_char_width というメソッドで、出力が端末の時に文字幅を検出するために Unicode の U+25BD (WHITE DOWN-POINTING TRIANGLE。"▽" こんな文字)を出力する処理で Encoding::UndefinedConversionError が発生した時の対応を追加しています。

[e460c2d033] David Rodríguez 2019-12-05 15:12:51 UTC

lib/uri.rb の uri/ 配下のファイルをロードするための require を require_relative に変更しています。

[844ff7ea45] Samuel Williams 2019-12-27 22:36:41 UTC

標準添付ライブラリ uriURI::RFC2396_Parser、URI::RFC3986_Parser の処理を URI.for というメソッドに切り出して共有するようにするリファクタリング

[92a238a21c] Matt Muller 2020-02-21 21:55:07 UTC

標準添付ライブラリ URI の schema として WebSocket の ws を追加して ws://〜 のような URI を処理できるようにしています。

[5e9e16292a] Matt Muller 2020-02-26 18:10:41 UTC

92a238a21caa6e8c9e4823b8bee67e37a362a9f8 で追加した WebSocket 用 URI のファイルで subversion の(というか RCS の?)置換用文字列を削除しています。

[9e8d75e881] David Rodríguez 2020-03-13 09:54:57 UTC

さらに lib/uri の他の RCS の置換文字列も削除しています。

[b0b6d0a688] git 2020-03-26 09:06:32 UTC

844ff7ea45b79e95eaed4b725fd0cf5c33874058 の変更の行末の空白除去。

[b94f50ed91] Hiroshi SHIBATA 2020-03-26 11:27:57 UTC

92a238a21caa6e8c9e4823b8bee67e37a362a9f8 で追加した URI::WS のテストに利用している "net/http" の require を追加しています。

ruby-trunk-changes 2020-03-25

今日は Dir.glob の引数に Array が渡されて、その Array が処理中に変更された時の不具合修正などがありました。

[c7d668801b] Nobuyoshi Nakada 2020-03-24 16:23:03 UTC

Dir.glob の引数に渡した Array が ruby のメソッドを呼ばれた時に変更されてしまうと SEGV する可能性があったので、渡された配列の内容をコピーした新しいインスタンスを作ってそれを利用するようにしています。 テストみると to_path メソッドを定義してそこで渡した配列を clear したりしているのでそうそう起きるものではなさそう。

[edffe78a79] git 2020-03-24 16:45:46 UTC

version.h の日付更新

ruby-trunk-changes 2020-03-24

今日は rubygems の更新やテストの CI 対応などがありました。

[c565dfb09a] Yusuke Endoh 2020-03-24 01:45:52 UTC

拡張ライブラリ json のテストで $LOAD_PATH にパスを追加しているところで絶対パスに変換しておくようにしています。 1d996fe72fc20fbc88f07b4b8d34b99aacc688f3 でデバッグ出力を追加したテストの失敗の根本原因だったようで、詳しくは https://mametter.hatenablog.com/entry/2020/03/24/123456 にまとめられています。

[448c76be63] git 2020-03-24 01:56:10 UTC

version.h の日付更新

[6ab3664635] Nobuyoshi Nakada 2020-03-24 04:46:00 UTC

d578f1d3ea317ef8d899d0fd9a4440ba67821d17 で rb_mjit_header.h のタブ展開のために追加した common.mk の MJIT_WITHOUT_TABS という変数を configure のオプションで指定可能にしています。

[5b3157a511] Takashi Kokubun 2020-03-24 05:31:38 UTC

tool/mjit_without_tabs.rb をふたたび tool/mjit_tabs.rb という名前に改名しています。また common.mk の変数名なども変更しています。

[5c4847f191] Takashi Kokubun 2020-03-24 05:42:50 UTC

tool/mjit_tabs.rb を実行するのに BASERUBY でなく miniruby を利用するようにしています。 BASERUBY なしの環境でのビルドに対応するため。

[eff0c5bf2a] Takashi Kokubun 2020-03-24 05:53:53 UTC

rubyspec の Process.clock_getres のテストで Process.clock_gettime を呼び出す回数を増やしています。 Process.clock_gettime の返す値が rubyspec の Process.clock_getres の10倍で割り切れないことがあるということを確認していますが、10000個だとたまたま失敗してしまうことがあるので1桁増やしています。

[f6b6a7ad34] Nobuyoshi Nakada 2020-02-21 03:43:57 UTC

eff0c5bf2ad47d10a440c5211be5eddb3bbf4028 と同じテストで assertion の書きかたを変更して、割り切れた時の数値を表示させるようにしています。これかなり大量に表示されるのでは。

[930b012ad9] Kazuhiro NISHIYAMA 2020-03-24 06:36:53 UTC

bundled gem rss のテストを通すために rexml が必要とのことで test-bundled-gems-prepare でインストールする gem に追加するようにしています。 https://github.com/ruby/ruby/pull/2976

[12a3671a9b] Yusuke Endoh 2020-03-24 08:21:55 UTC

96064e6f1ce100a37680dc8f9509f06b3350e9c8 で rubygems のテストで再び /usr/bin/env を使うように決め打ちに戻ってしまったので /bin/env とどちらか使えるほうを選ぶようにしています。

[1b3339528c] Yusuke Endoh 2020-03-24 08:43:33 UTC

rubygems のテストでカレントディレクトリが削除された状態になった時のテストが Solaris でも動かないそうで skip するようにしています。