ruby-trunk-changes 2019-10-25

今日は ruby2_keywords の修正や、VM 命令へのコンパイル時のオプションで tailcall optimization を有効にしても効かなくなっていた不具合の修正などがありました。

[8439caab0a] Nobuyoshi Nakada 2019-10-24 14:37:19 UTC

misc/lldb_cruby.py の rp での表示の整形。

[1fb4584825] Jeremy Evans 2019-10-21 20:08:22 UTC

標準添付の irbIRB::Context.new の第3引数 output_method を削除しています。 使ってないため、とのこと。 [ruby-core:62834] [Bug #9876]

[6279e45cde] Nobuyoshi Nakada 2019-10-24 15:06:43 UTC

62d43828770211470bcacb9e943876f981b5a1b4 の m(...) で任意の引数を委譲する記法は lambda の仮引数には使えないように変更しています。 [ruby-core:95338] [Feature #16253]

[2ea698969e] git 2019-10-24 15:16:26 UTC

version.h の日付更新

[8d0c5eb805] Nobuyoshi Nakada 2019-10-24 15:54:24 UTC

test/ruby/test_syntax.rb で instance_eval を使ってスクリプト片を実行する時に __FILE__ と __LINE__ をファイル名/行番号として渡すようにしています。

[ed65e2d5ae] Nobuyoshi Nakada 2019-10-24 15:56:27 UTC

test/ruby/test_syntax.rb の m(...) のテストにブロックを渡さない呼び出しのケースも追加しています。

[4b3e007e07] Nobuyoshi Nakada 2019-10-24 16:03:08 UTC

同じく m(...) の記法のテストでキーワード引数がないケースも追加しています。

[b609bdeb53] Nobuyoshi Nakada 2019-10-24 16:16:05 UTC

m(...) 記法での委譲しているメソッドの引数の最期に Hash を渡すとそれが keyword parameter になったりまた通常引数として変換されたりと警告がたくさん出るので ruby2_keywords つきで宣言されたかのようにマークするようにしています。

[b86af95c5b] Nobuyoshi Nakada 2019-10-24 17:04:14 UTC

.github/workflows/windows.yml の vcpkg でのパッケージインストールのリトライのためにコマンドを || で連結して制御してたのをやめています。 PowerShell ではこれが動かないらしいので。

[967b924aa0] Nobuyoshi Nakada 2019-10-24 17:08:03 UTC

同じく .github/workflows/windows.yml でコマンドライン環境変数を %var% のように展開する記法を使ってましたがこれも PowerShell で動かないそうで直接値を展開して書いておくようにしています。

[826bbf9837] Nobuyoshi Nakada 2019-10-24 17:24:00 UTC

同様に .github/workflows/windows.yml でコマンドを && で連結してたところを複数行の run にしています。複数行はいけるのか。

[b7c8874b62] Nobuyoshi Nakada 2019-10-24 17:24:42 UTC

.github/workflows/windows.yml で openssl のインストールを vcpkg から chocolatey というパッケージマネージャ経由に変更しています。 chocolatey のほうが新しいバージョンの openssl が入るからみたいです。

[e8f90e7397] Koichi Sasada 2019-10-24 19:01:02 UTC

Method#inspect メソッドで klass に T_ICLASS のオブジェクトが入ってた時(どうしてそんなことになってるのかはささださんにもわからないっぽい)にクラス階層をさらに辿っておくようにしています。

[5fe8943fda] Jeremy Evans 2019-10-24 16:35:02 UTC

拡張ライブラリ date の Date.new に 2引数だけ渡された時に参照する変数名を間違えてて異常終了するおそれがあったのを修正しています。

[8c59b9250c] Jeremy Evans 2019-10-24 16:35:48 UTC

70ca56dedaa7ced969269ed70112ebb8da653ec2 で rubyspec の date のテストを一部 2.7 で実行しないようにしてましたが、新しい仕様に合わせて 2.7以降向けのテストを追加しています。

[d6a2507e49] Jeremy Evans 2019-10-24 16:47:30 UTC

vm_insnhelper.c の CALLER_SETUP_ARG() で *args で受け取った引数の最期のオブジェクトが Hash でさらに ruby2_keywords 用のフラグが立ってた時(ruby2_keywords つきのメソッドから委譲されたもの)、それを dup してフラグのない Hash を呼び出した先には渡すようにしています。

[58b363bf0d] Koichi Sasada 2019-10-24 19:37:46 UTC

RubyVM::InstructionSequence#to_binary でダンプする時に ISeq のメソッドの引数のフラグに追加した ruby2_keywords 用のものも対応するようにしています。

[4ff2c58f91] wanabe 2019-10-24 19:40:39 UTC

f62f90367fc3bce6714e7c34cbd040e14e43fe07 の tailcall optimization の復活のリトライ。本体の修正は前のままでテストコードの修正で実際に再帰版の fact を呼んでみて SystemStackError が起きないというので確認する方法にしています。 https://github.com/ruby/ruby/pull/2529

[5040eea959] Nobuyoshi Nakada 2019-10-24 23:53:03 UTC

.github/workflows/windows.yml で chocolatey でパッケージインストールする時に --no-progress オプションをつけてプログレス表示を抑制しています。

[fb15e79403] Jeremy Evans 2019-10-24 19:36:49 UTC

6081ddd6e6f2297862b3c7e898d28a76b8f9240b で Kernel#ruby2_keywords で修飾したメソッドから別のメソッドに委譲した時に keyword 引数の Hash につくフラグを落とすため、そこからさらに別のメソッドに委譲した時に dup する変更で、呼び先がまた ruby2_keywords で修飾されている時に空の Hash を消す処理を抑制するようにしています。

[09936d1d74] Hiroshi SHIBATA 2019-08-03 09:56:41 UTC

標準添付ライブラリ tracer の gemspec ファイルの development dependency を削除しています。

[7bcc639c72] aycabta 2019-10-25 01:07:17 UTC

6df6611ce77d1bb7d50375a1399e1d5101a3a616 で lib/reline/windows.rb の Reline::Windows.getc の変数 alt を meta に改名したのに一箇所 alt のままだったところがあったので追随して変更しています。

[a7ec88ad61] Kazuhiro NISHIYAMA 2019-10-25 01:45:46 UTC

.github/workflows/windows.yml の run を持つステップに shell: cmd という項目を追加しています。 Windows 版で cmd.exe を使ってコマンド実行させるための設定っぽい。 あー今日の GitHub Actions の Windows 環境向け変更は、デフォルトのシェルが Power Shell に変更になったからだったようですね。参考 URL: https://github.blog/changelog/2019-10-17-github-actions-default-shell-on-windows-runners-is-changing-to-powershell/

[356e203a3a] 卜部昌平 2019-10-24 09:08:52 UTC

89e7997622038f82115f34dbb4ea382e02bed163 の struct rb_call_info と struct rb_call_cache を両方まとめた struct rb_call_data の導入をさらに押し進めて、構造体宣言を internal.h に移動して、両方を受け取る関数は常に rb_call_data にまとめたものを渡すようにリファクタリングしています。

[f3f1d89d46] 卜部昌平 2019-10-25 07:44:15 UTC

GC のテストで GC.stress = true にしてあるとうまくいかない GC.stat 系のテストなどを GC.stress だったら skip するようにしています。

[88135845f1] Koichi Sasada 2019-10-25 08:58:54 UTC

vm_core.h で定義している inline 関数 def_iseq_ptr() で VM_CHECK_MODE が1以上の時だけ実行している rb_method_definition_t::type のチェックを一時的に常に実行するようにしています。 CI でのエラーの調査のためのようです。