ruby-trunk-changes r65429 - r65439

今日は rb_f_system() の実装の変更や RARRAY_CONST_PTR() を極力使わないようにするリファクタリングなどがありました。

kazu: r65429 2018-10-29 22:30:01 +0900

r65411 の ISeq の binary dump で Hash のダンプの実装変更で間違ったキャストしていたのを修正しています。

ko1: r65430 2018-10-30 03:00:02 +0900

class.c, enum.c, gc.c, struct.c などで配列オブジェクトの要素でループ回す時に RARRAY_CONST_PTR() でポインタを取り出して回すのでなくて RARRAY_AREF() を使うようにしています。 RARRAY_CONST_PTR() は将来的にコストが上がるような変更をするつもりのようです。

svn: r65431 2018-10-30 03:00:14 +0900

r65430 のインデントのタブを空白に展開。

svn: r65432 2018-10-30 03:00:15 +0900

version.h の日付更新。

ko1: r65433 2018-10-30 03:03:13 +0900

vm_eval.c のローカル変数を管理するテーブルの初期化に st_init_numtable() のかわりに rb_hash_new_compare_by_id() を利用するようにしています。最近できるだけ st_xxx を直接使わないように変更しているっぽいですね。

normal: r65434 2018-10-30 08:52:39 +0900

久しぶりに Process.wait の実装がらみの変更。MJIT worker thread の実装の変更により race condition の恐れがなくなったとのことで rb_f_system() の実装で struct rb_execarg::nocldwait というフラグで子プロセスを待つ排他処理を行なってたのを、他と同じように list に入れて待つ方式に統一しています。

svn: r65435 2018-10-30 08:52:45 +0900

r65434 のインデントのタブを空白に展開。

normal: r65436 2018-10-30 10:12:38 +0900

しかし r65434 が mswin 環境で CI エラーになったとのことで revert しています。

normal: r65437 2018-10-30 10:34:48 +0900

r65434 のリトライ。 fork(2) のないプラットフォーム(つまり Windows)での対処を追加したそうです。

ko1: r65438 2018-10-30 12:21:56 +0900

r65430 に続いてあちこちで RARRAY_CONST_PTR() をやめて RARRAY_AREF() を使うようにリファクタリングしています。

svn: r65439 2018-10-30 12:22:09 +0900

r65438 のインデントのタブを空白に展開。