ruby-trunk-changes r47823 - r47832

今日は主に universal binary 生成用の configure.in の処理の修正や、昨日の signal の処理の再修正などがありました。

nobu: r47823 2014-10-07 10:37:41 +0900

configure.in で universal binary を作るために CFLAGS や LDFLAGS からアーキテクチャコンパイルオプションを取り除く部分の sed の引数を [ ] で囲んでいます。んー、これは shell でのクオート用じゃないですよね。どう parse すればいいのかよくわからないけど、これは Apple が適用しているパッチから取ってきたそうです。 http://www.opensource.apple.com/source/ruby/ruby-104/patches/configure.diff
[追記]configure.in から m4 でマクロ展開する時に [ と ] がクオートとして解釈されて消えてしまうので、それを防ぐためにさらにクオートしたということだそうです。configure.in でシェルスクリプト書くの大変ですね…[/追記]

svn: r47824 2014-10-07 10:37:54 +0900

version.h の日付更新。

nobu: r47825 2014-10-07 10:48:18 +0900

configure で struct stat のメンバ st_size や st_blocks の方をチェックする時に最初に off_t でチェックするようにしています。これも Apple パッチからみたいですね。 http://www.opensource.apple.com/source/ruby/ruby-104/patches/config.h.ed

nobu: r47826 2014-10-07 11:17:10 +0900

拡張ライブラリ etc の Etc.systmpdir で Mac OS X では confstr(3) でユーザの temp directory の指定を利用するようにしています。 http://www.opensource.apple.com/source/ruby/ruby-104/patches/ext_etc_etc.c.diff

nobu: r47827 2014-10-07 11:28:13 +0900

configure で universal binary のために CFLAGS と LDFLAGS からアーキテクチャを指定するオプション(-arch=xxx や -m32, -m64) を削る処理を CXXFLAGS についても行うようにしています。

suke: r47828 2014-10-07 21:44:53 +0900

拡張ライブラリ win32ole で Data_Get_Struct() を wrap した olemethod_data_get_struct() という関数を定義して ext/win32ole/win32ole_param.c からこれを呼び出すようにしています。うーんこれはなぜだろう。

svn: r47829 2014-10-07 21:45:10 +0900

r47828 の行末の空白除去。

suke: r47830 2014-10-07 21:47:58 +0900

ext/win32ole/win32ole_param.c の関数定義のコーディングスタイルの修正。

suke: r47831 2014-10-07 22:44:45 +0900

拡張ライブラリ win32ole の WIN32OLE_METHOD でも struct RTypedData を利用するように変更しています。

nobu: r47832 2014-10-07 23:40:16 +0900

r47818 で signal handler を設定していなくてデフォルトでプロセスが終了されないシグナル(SIGTRAP, SIGCONT, SIGCHLD, SIGWINCH など)は実際に ruby_kill() を呼び出すようにしましたが、ruby_kill() は割り込みを受けてタイマースレッドがシグナルを配信するのを待ちますが、signal handler を設定されていないシグナルはシグナル用のバッファに入らないので配信もされずデッドロックになってしまうので、直接 kill(2) を呼ぶように修正しています。 [ruby-dev:48606] [Bug #9820]