ruby-trunk-changes r31119 - r31124

今日は拡張ライブラリから使えるように ruby.h に公開APIのプロトタイプが追加されています。また FileUtils.cp の挙動の修正がありました。

nobu:r31119 2011-03-18 00:54:22 +0900

rb_funcall_passing_block() を ruby.h で公開するようにしています。 [ruby-core:35501] [Feature #4504]
rb_funcall_passing_block() は r29335 で導入された API で、これにより拡張ライブラリで渡されたブロックをそのまま別のメソッドに渡す呼び出しができるようになります。テストコードを参照するとその効果がよくわかります。

svn:r31120 2011-03-18 00:54:25 +0900

version.h の日付更新。

nobu:r31121 2011-03-18 00:59:40 +0900

拡張ライブラリ win32ole の extconf.rb で環境に応じて動的に .document ファイルを生成しているのをやめて ext/.document に記述するようにしています。ソースツリーのディレクトリが書き込みできない状態でのビルドが失敗することへの対処みたいです。 [ruby-core:35495] [Bug #4503]

nobu:r31122 2011-03-18 01:07:58 +0900

.gitignore のエントリの /ext/ の下のファイル群などをまとめて記述するなどコンパクトにまとめています。
なのですが Linux の git 1.7.1 および 1.7.3.3 では "**" の表記に対応していないみたいで、/ext/ の下2つ以上ネストしたサブディレクトリ内の mkmf.log, extconf.h, Makefile が git status で Untracked files として表示されてしまっていました。

nobu:r31123 2011-03-18 08:48:13 +0900

FileUtils.cp に :preserve => true オプションを付けていない時に元のファイルの権限情報がコピーされていないのを修正。[ruby-core:35518] [Bug #4507]
少し意外だったのですが、コマンドラインツールの cp も -p をつけなくても、権限情報はオリジナルのファイルのものが引き継がれるので、それを模倣するということです。

akr:r31124 2011-03-18 20:45:43 +0900

ext/openssl/ossl_x509req.c の関数マクロの引数にかっこをつける修正です。