ruby-trunk-changes r48907 - r48916

今日は主に fiddle のビルドプロセスの修正がありました。

nobu: r48907 2014-12-21 08:35:33 +0900

configure の --with-jemalloc オプションや --without-jemalloc オプションが正しく効いていなかった不具合を修正しています。 まずそもそも --without-jemalloc が指定された時のことが考慮されていなかったのでそれを修正して、LIBS に -ljemalloc を追加するタイミングを後のほうにずらしています。 [ruby-core:66994] [Bug #10625]

svn: r48908 2014-12-21 08:35:42 +0900

version.h の日付更新。

suke: r48909 2014-12-21 10:56:04 +0900

拡張ライブラリ win32ole の WIN32OLE_EVENT.new のテストを 'WbemScripting.SWbemSink' という OLE が利用可能な時だけ実施するようにしています。

nobu: r48910 2014-12-21 11:35:44 +0900

SIGSEGV, SIGBUS, SIGILL などのシグナルハンドラ内でさらに同じシグナルが発生した時の特別処理があるシグナルでシグナル名を保存しておく変数を関数内 static 変数からソースファイルの static 変数にスコープを広げて、スタックオーバフロー検出時にクリアしておくようにしています。SystemStackError を発生させる時にこれが残っていると次の SIGSEGV などの発生時にちゃんと本来の処理が走らないからだと思われます。

nobu: r48911 2014-12-21 11:35:48 +0900

ruby_thread_stack_overflow() で GC 途中で例外オブジェクトの設定ができない時は TH_JUMP_TAG() で事前に確保されている例外オブジェクトをそのまま上げるようにしています。多分バックトレースの情報がなくなってしまうんですね。

nobu: r48912 2014-12-21 14:26:20 +0900

拡張ライブラリ fiddle の未使用変数の警告除去。

nobu: r48913 2014-12-21 14:45:01 +0900

拡張ライブラリ fiddle の depend および extconf.rb ファイルで nmake でのビルドエラー修正や、バンドルされた libffi ライブラリを使う時に不要なチェックをスキップするようにしているそうです。

nobu: r48914 2014-12-21 14:51:23 +0900

拡張ライブラリ fiddle のマクロ CHECK_DLERROR() で if の条件部に代入文が書かれていてコンパイラ警告になることがあるので明示的に比較するようにしています。

nobu: r48915 2014-12-21 16:15:04 +0900

ext/fiddle/extconf.rb の再修正。 libffi のインクルードパスの追加を他のチェックに影響しないように create_makefile の直前に移動したり static-linked-ext の時のために $LOCAL_LIBS に拡張ライブラリへのパスを追加したり。

nobu: r48916 2014-12-21 17:12:18 +0900

拡張ライブラリ fiddle の extconf.rb の追加修正。 libffi がみつからなかった時の例外発生を早めています。