ruby-trunk-changes 2019-10-04

今日は CI に Drone を使う設定の追加や RubyVM::InstructionSequence.compile でメインスクリプトとして compile していたのを require されたファイルや eval されている時のように? compile するようにダミーの context を渡すようにする変更などがありました。

[711c40ebdc] Yusuke Endoh 2019-10-03 16:29:21 UTC

parse.y の struct parser_param から in_main というフラグ(トップレベル、とはちょっと違うのか。直接実行するスクリプト毎の最上位のみ?)を削除し、main のスクリプトの parse 時にも base_block を NULL にするようにしています。eval 系の時は base_block に値が入るらしい。

[b43afa0a8f] Yusuke Endoh 2019-10-03 16:48:31 UTC

711c40ebdcd0974ef3e6ac6870412dc88ae25f3e の続きでローカル変数の定義時に struct parser_param::base_block を利用せず rb_iseq_t を直接参照するようにしています。

[bb9604e18c] git 2019-10-03 17:30:54 UTC

version.h の日付更新

[b732a9f8a0] Yusuke Endoh 2019-10-03 17:33:39 UTC

b43afa0a8f82a5d806adc24afa2eaf41479da1a3 の変更で parse.y で rb_iseq_t という型を使ってましたが、ここでは typedef されてなかったということで struct rb_iseq_struct を使うようにしています。そうなのか。

[c3dd3b9553] Yusuke Endoh 2019-10-03 17:35:10 UTC

711c40ebdcd0974ef3e6ac6870412dc88ae25f3e の変更とも関連しそうですが RubyVM::InstructionSequence.compile で文字列から ISeq を作るのは eval とは違ってコンテキストは引き継がないので parent_iseq が NULL を渡しているので、通常のスクリプトのように末尾に未使用の参照があると警告が出るそうで、けどそれは抑制したい(compile した ISeq をメソッド内に埋め込むみたいに評価結果を使うようなことをしたい?)ので dummy の rb_iseq_t を作って渡すようにしています。

[bdbf8de498] Jun Aruga 2019-10-03 21:12:58 UTC

.drone.yml を追加し Drone という CI ツールで ARM のテストを実行できるようにしています。 Drone ひさしぶりにきいた。これは自前でホストするやつじゃなくてサービスとして提供されているものが使えるってことかな? https://github.com/ruby/ruby/pull/2520 [ruby-core:95201] [Misc #16234]

[12e27a411c] Jeremy Evans 2019-10-03 20:14:08 UTC

doc/syntax/methods.rdoc と doc/syntax/calling_methods.rdoc にメソッドの引数の書きかたなどについてちょっと追記しています。

[c7715a4936] Jeremy Evans 2019-10-03 20:14:45 UTC

doc/syntax/methods.rdoc と doc/syntax/calling_methods.rdoc にキーワード引数の仕様変更に関連して追記しています。

[9f24e8fdbb] Jeremy Evans 2019-10-03 21:07:32 UTC

doc/extension.rdoc にメソッドやブロック起動で keyword splat 対応した rb_xxx_kw() みたいな名前の C API の追加ぶんについて追記しています。

[804672e7b4] Takashi Kokubun 2019-10-03 21:17:36 UTC

bdbf8de4980ef54f466809ee27a9f2a00614b0f0 で追加した .drone.yml で master のみビルド対象になるようにしています。

[182336ccb5] Takashi Kokubun 2019-10-03 21:24:57 UTC

rubyspec の Gem.bin_path についてのテストを Windows 環境では常に skip するようにしています。

[ac69a051cf] Takashi Kokubun 2019-10-03 22:15:05 UTC

.drone.yml で arm32 での make test がエラーになるそうなのでこれを無視するように failure: ignore の設定を追加しています。

[a56d742e69] Takashi Kokubun 2019-10-03 22:33:10 UTC

182336ccb5a8d46fbcddbdad9e7bbca6d5d5d63f の追加修正で rubyspec の Gem.bin_path のテストの guard が guard_not + platform_is になってたのを platform_is_not を使うようにリファクタリング。 guard_not が思ったように動いてないらしいという問題もあったようです。

[7db83b04d0] Takashi Kokubun 2019-10-03 22:58:20 UTC

が a56d742e69aa8a3a1fe92fc515d93f6e51cf5fbc は revert しています。やっぱり guard_not はちゃんと動いてたらしい。

[5be2af5f90] Alan Wu 2019-10-04 01:15:24 UTC

Process::Status#to_i の rdoc 用コメントの call-seq に to_int も別名であるかのように書かれていましたが、実際には定義されていなかったので削除しています。

[113bef6976] Yusuke Endoh 2019-10-04 07:07:46 UTC

rb_mem_clear() の宣言で第1引数に register 修飾子がつけられていたのが C++ の拡張ライブラリビルドのテストで警告が出ていたので register を消しています。なんでここだけついてたんだろ。