ruby-trunk-changes r53446 - r53452

今日は主に Thread の初期化途中で大域脱出がおきると SEGV する可能性のある不具合修正などがありました。

nobu: r53446 2016-01-07 11:34:33 +0900

ruby --copyright オプションを処理する ruby_show_copyright() 関数はその中で exit(3) を呼んでプロセスを終了させていましたが、これをやめて process_options() で ruby_show_copyright() を呼んだ後 return することで終了させるようにしています。が RUBY_NO_OLD_COMPATIBILITY というマクロが未定義だと exit() するマクロとしての ruby_show_copyright() の定義が有効になるようになっています。

svn: r53447 2016-01-07 11:34:34 +0900

version.h の日付更新。

nobu: r53448 2016-01-07 12:06:58 +0900

標準添付ライブラリ mkmf.rb で生成する Makefile で do-install-rb{-default} というルールを追加して、実際にライブラリのインストールを行う時にのみインストールのメッセージを出力するようにしているそうです。

nobu: r53449 2016-01-07 14:49:31 +0900

Thread の初期化途中で例外や Kernel#exit などで大域脱出させると rb_thread_t::pending_interrupt_queue が未初期化の状態になり、SEGV が発生する可能性があった不具合を修正。 threadptr_check_pending_interrupt_queue() という関数を追加して未初期化だと例外発生させるようにしています。 [ruby-core:72732] [Bug #11959]

nobu: r53450 2016-01-07 15:37:44 +0900

r53448 の追加修正。 bsdmake での変数展開のエラーを修正しているそうですが、もうよくわからないですね…。

naruse: r53451 2016-01-07 15:51:09 +0900

r53448 と r53450 のさらに追加修正。こちらも変数置換の記法を変更しています。

naruse: r53452 2016-01-07 16:11:33 +0900

さらに r53448 で ext/ripper/depend で .eventids2.check というファイルの依存関係が追加されたのですが、これが "." で始まるファイル名だったので bsdmake で拡張子によるルールと解釈されてしまってビルドに失敗していたのを修正。変数に格納して変数展開するようにしています。