ruby-trunk-changes r60180 - r60184

今日は macOS の High Sierra での fork 後のプロセスでの不具合修正などがありました。

nobu: r60180 2017-10-15 00:35:05 +0900

libruby の共有ライブラリのファイル名のバージョン部分を RUBY_API_VERSION からつけるように戻しています。 r56905 とか r53474 とか r60018 で何度かこのへん試行錯誤してるんですが、うーんこれなにが正解なのかよくわからない。 [Bug #13931] [ruby-core:83208] [Bug #14002]

svn: r60181 2017-10-15 00:35:06 +0900

version.h の日付更新。

nobu: r60182 2017-10-15 00:55:14 +0900

macOS の High Sierra で Kernel#fork するとクラッシュしてたそうで、CoreFoundation のかわりに Foundation framework にリンクするように変更しています。 High Sierra で fork した子プロセスで Objective-CAPI の扱いに変更があったみたいで、親プロセスで先に Objective-Cフレームワークを利用するための初期化が行なわれていないと子プロセスでは実行できないようになっているそうです。 [ruby-core:83239] [Bug #14009]

nobu: r60183 2017-10-15 11:20:20 +0900

テスト用のライブラリの EnvUtil.invoke_ruby のキーワード引数に precommand というのを追加して、spawn する ruby コマンドの前に挿入するコマンドを指定できるようにしています。 sudo 経由の実行などを想定しているみたいです。

nobu: r60184 2017-10-15 11:31:29 +0900

r60180 の再修正。 やっぱり RUBY_API_VERSION じゃなくて MAJOR/MINOR を利用して teeny 部分は 0固定にするようにしています。 [ruby-core:83208] [Bug #14002]