ruby-trunk-changes 2020-05-10

今日は VMソースコード生成の専用のスクリプトを tool/generic_erb.rb を利用するようにテンプレート化する変更や子プロセスの終了待ちが漏れることがある不具合修正などがありました。

[889b0fe46f] 卜部昌平 2020-05-08 09:03:14 UTC

.github/workflows/compilers.yml に GCC 10 でのビルドを追加しています。

[3bf0d2bb92] Yusuke Endoh 2020-05-10 05:18:25 UTC

rubygems のテストで cmake を使ったビルドのテストで cmake が存在しない時の skip の条件に Open3.capture2e が例外を発生させず単にエラーの終了ステータスを返した場合も含めるようにしています。

[18f22490e8] git 2020-05-10 05:19:58 UTC

version.h の日付更新

[a6f8589914] Takashi Kokubun 2020-05-10 05:36:30 UTC

rubygems の cmake を使ったビルドのテストで Open3 を利用した時に MJIT が有効な場合子プロセスが残ることがあるので MJIT が有効な時は Process.waitall を追加するようにしています。

[191cfcc407] 卜部昌平 2020-05-05 08:09:42 UTC

VM 用の C ソースコードを生成するためのスクリプト tool/mk_call_iseq_optimized.rb を削除してかわりに template/call_iseq_optimized.inc.tmpl を追加して tool//generic_erb.rb でコード生成させるようにしています。 https://github.com/ruby/ruby/pull/3097

[4fca592e8c] 卜部昌平 2020-05-05 09:00:59 UTC

同じく VM 用のコード builtin_binary.inc の生成も tool/mk_builtin_binary.rb というスクリプトで生成していたのを template/builtin_binary.inc.tmpl というテンプレートを追加して tool/generic_erb.rb で生成するように変更しています。 https://github.com/ruby/ruby/pull/3097

[50a6d292c0] 卜部昌平 2020-05-09 13:39:58 UTC

191cfcc407e83ddd99212db4ba7b3df9f4608a05vm_call_iseq_optimized.inc 生成のコマンドで nmake でうまくいかなかったようなので $< 変数でテンプレートファイルを参照してたのをやめてちゃんとテンプレートファイルパスを書くようにしています。

[967ae6278f] Takashi Kokubun 2020-05-10 07:52:54 UTC

a6f85899144607606c114e95104fa7e8ec8d95d9rubygems のテストで子プロセスがリークするのを防ぐためとりあえず Process.waitall するようにしていた件ですが、fork_check_err() で waitpid_state に a2264342063260d660b99872eaf5080f6ab08e81 で導入された WAITPID_LOCK_ONLY という定数だった時も rb_syswait() を呼び出して子プロセス終了を待たせるように修正しています。 2.6 あたりから timer thread を不要な時に消すために子プロセスの終了待ちの実装が複雑になったので、その時の考慮不足かなぁ。

[42e8de8db9] Nobuyoshi Nakada 2020-05-10 08:26:28 UTC

4fca592e8c707c76e8afea2a0b5dd4d17e97cd8f で追加(専用スクリプトから移行)した template/builtin_binary.inc.tmpl で RubyVM.enum_for(:each_builtin) の呼び出しもクロスコンパイルじゃない時の分岐内に移動しています。 RubyVM.each_builtin メソッドが miniruby にのみ追加あれるメソッドでクロスコンパイル時には使えないので。

[dd830fab69] Nobuyoshi Nakada 2020-05-10 09:40:47 UTC

4fca592e8c707c76e8afea2a0b5dd4d17e97cd8f で追加(専用スクリプトから移行)した template/builtin_binary.inc.tmpl でクロスコンパイルかどうか判断するのにチェックするオプション引数の typo 修正。