ruby-trunk-changes r67282 - r67294

今日は $ や @ ではじまる変数名の不正な名前のエラー処理の修正や MJIT が worker に inline cache をコピーする処理のリファクタリングなどがありました。

kazu: r67282 2019-03-17 22:51:30 +0900

r67279 の NEWS 追記の typo 修正。

kazu: r67283 2019-03-18 01:32:49 +0900

mjit.c のコメントの typo 修正。

svn: r67284 2019-03-18 01:32:51 +0900

version.h の日付更新。

kazu: r67285 2019-03-18 01:35:20 +0900

mjit_worker.c のコメントの typo 修正。

k0kubun: r67286 2019-03-18 02:12:47 +0900

MJIT の JIT コンパイル時に inline cache 情報を mjit worker にコピーするための機構の構造体 mjit_copy_job_t から struct rb_mjit_unit を削除しかわりに rb_iseq_t を直接格納するようにしています。また C99 を利用可能になったので mjit.c や mjit_worker.c で変数の宣言をブロックの途中でするようにリファクタリングしています。

k0kubun: r67287 2019-03-18 03:07:06 +0900

MJIT の inline cache のコピーの処理の一部を mjit_worker() から copy_cache_from_main_thread() に移動して関連処理を copy_cache_from_main_thread() の中にかためておくように? リファクタリングしています。

k0kubun: r67288 2019-03-18 03:29:30 +0900

r67286 および r67287 のリファクタリングを経て copy_cache_from_main_thread() を mjit_copy_cache_from_main_thread() に改名して呼ぶのを mjit_worker() から mjit_compile() に移動し、JIT Compile 時に inline cache を取得するように遅延しています。

nobu: r67289 2019-03-18 10:18:25 +0900

r67278 の Numbered parameter 実装で parse_atmark() に追加したチェックを parser_numbered_param() という関数に切り出すリファクタリング

nobu: r67290 2019-03-18 10:42:20 +0900

構造体 struct rb_iseq_constant_body のメンバーの順序を入れ換えてサイズ縮小を図っています。 https://github.com/ruby/ruby/pull/2099

k0kubun: r67291 2019-03-18 10:52:45 +0900

r67287 と r67288 を revert しています。 CI が失敗したとのこと。

nobu: r67292 2019-03-18 15:42:19 +0900

parse.y のグローバル変数($ ではじまる変数)や @ ではじまる変数を parse する関数で不正な名前だった時に return 0 してたのを、yylval.id に keyword_nil をセットしておいてトークンは返すようにしています。よくわかりませんが、コミットログもあわせて読むと、実際には終端ではないのに "unexpected end-of-file" というエラーメッセージが出るのを修正していると思われます。

k0kubun: r67293 2019-03-18 20:46:21 +0900

rubygems のテストで通信エラー類を skip 扱いにするところで捕捉する例外に SocketError も追加しています。 CI でたまにこの例外でエラーになるとのこと。 https://github.com/rubygems/rubygems/pull/2684

k0kubun: r67294 2019-03-18 21:07:21 +0900

r67281 の .travis.yml で ~/.download-cache や ~/config_2nd を削除するようにしたのを revert しています。 CI のエラー回避に効果がなかったとのこと。