ruby-trunk-changes 2019-08-21

今日は標準添付ライブラリ monitor のメモリ使用量を抑える対策や、bundler のテストの並列テスト対応などがありました。

[9557069299] Akira Matsuda 2019-08-20 13:08:41 UTC

f91879a7b548284c93743168acfd11e3d2aeefac で追加した標準添付ライブラリ monitor の Monitor#wait での Thread.handle_interrupt の引数にオプション引数で例外の処理の指定を渡す記法が毎回 Hash オブジェクトを生成するためメモリ使用量に影響したので、定数に Hash オブジェクトを保持しておいてそれを渡すようにしています。あーこれ 2.6 にも既に backport したなぁ。 Pull Request のほうをみるとかなり影響大きいみたいなので、これも一緒に入れたほうがいいかも……。 https://github.com/ruby/ruby/pull/2393 [Bug #15992]

[235d810c2e] Takashi Kokubun 2019-08-20 13:31:41 UTC

.travis.yml および appveyor.yml から slack 通知を複数のチャンネルにしていたのを削っています。

[d10e28b875] Takashi Kokubun 2019-08-20 14:58:36 UTC

.github /workflows/ の GitHub Actions の設定でコミットログに "[ci skip]" という文字列が含まれてたら make check や make test-bundler などのタスク実行を抑制するようにしています。そもそもジョブ全体を抑制する設定というのはないみたいなので、個別にテストだけ skip するようにしています。

[88b1f2dac4] Koichi Sasada 2019-08-20 16:04:08 UTC

rb_obj_info_dump_loc() というデバッグ用の関数を追加して、rp() 関数でオブジェクトの情報表示を C のソースコード上のどの位置で出力されたものかも含めてダンプするようにしています。 https://github.com/ruby/ruby/pull/2394

[864f23a457] git 2019-08-20 16:04:27 UTC

version.h の日付更新

[5ea08883cf] David Rodríguez 2019-08-17 20:00:52 UTC

bundler の bundle exec の実装で古い ruby 向けの分岐を削除しています。

[bcc4ac924d] David Rodríguez 2019-08-17 20:03:26 UTC

bundler のテストで 1.8 の時代の ruby 向けの Encoding 関連の条件分岐があったのを削除しています。

[1120bacd8b] David Rodríguez 2019-08-17 21:11:38 UTC

bundler のテストで rubyspec のタグで :ruby というので ruby のバージョンをチェックして除外するやつを無効にしています。

[ede77d82e7] David Rodríguez 2019-08-15 14:47:18 UTC

bundler のテストのコメントの typo 修正。

[ace88852f2] David Rodríguez 2019-01-24 16:28:02 UTC

bundler のテストで標準出力が tty であるように偽装したり環境変数 TEST_ENV_NUMBER を使って一時ファイルの位置を変えるようにしたりしています。並列テスト対応のためのようです。

[10011f4371] Hiroshi SHIBATA 2019-08-19 02:36:17 UTC

spec/bundler/support/parallel.rb というファイルを追加して bundler のテストの並列対応するようにしています。

[1c2774526e] Hiroshi SHIBATA 2019-08-19 03:51:19 UTC

ace88852f2c2dae52118d80cbf5800ea99e409e6 の追加対応で環境変数 TEST_ENV_NUMBER が未設定だった時に番号の部分を空文字列にせず 1 と設定されてたものとして扱うようにしています。空文字列が明示的にセットされてた時も "1" にするようにしているので。

[a230e65e8b] lolwut 2019-08-16 13:12:40 UTC

bundler のテストで時間帯によって失敗することがあるテストで Time.now メソッドをスタブして固定するようにしています。

[81dfe3c47b] Jeremy Evans 2019-08-21 04:26:12 UTC

Time の timezone 関係のテストで openbsd でもテストを実行するように設定しています。

[4419b5dbc2] Nobuyoshi Nakada 2019-08-21 04:30:43 UTC

bundler の GitHub Actions でのエラーを調査するために NoMethodError を rescue して表示するというコードが dd58c4ba3576d5dc1489767a25de9540b79b0ef9 で追加されてましたが、表示する位置をさらに奥の vendoring されてる molinillo の中に移動しています。

[3df9f3cc13] Nobuyoshi Nakada 2019-08-21 07:20:31 UTC

拡張ライブラリ digest で識別子の ID を初期化するところだけを Init_digest() にして、メソッド定義などは InitVM_digest() に分離するようにしています。 InitVM_xxx() は VM/ObjectSpace 毎の初期化で呼ぶのでってことですね。複数の VM が動くようになった時のための対応だと思いますが、現在って実際に呼び分ける意味あるんだっけ。