ruby-trunk-changes r49557 - r49567

今日は主に configure での LDFLAGS の設定の修正(?)や拡張ライブラリ digest への CommonDigest 版実装の追加などがありました。

kazu: r49557 2015-02-10 22:50:54 +0900

r49543 の ChangeLog エントリの typo 修正。

nobu: r49558 2015-02-11 07:24:24 +0900

r49555 で configure で CPPFLAGS に -isystem を追加するようにしたところを -iquote に変更したうえで /usr/local/include もやっぱり追加しています。 -iquote は #include では利用されず #include "header.h" とダブルクオートで括られたヘッダのみ探索するオプションみたいです。うーむ知らなかった。

svn: r49559 2015-02-11 07:24:36 +0900

version.h の日付更新。

suke: r49560 2015-02-11 07:54:39 +0900

拡張ライブラリ win32ole のテストでテストをスキップするために独自の実装をしていたのを skip メソッドを利用するようにしています。

nobu: r49561 2015-02-11 08:37:08 +0900

拡張ライブラリ digest の各種アルゴリズム毎の初期化関数で rb_intern("metadata") を呼んでいたのを rb_iv_set() を使うようにして削除しています。

nobu: r49562 2015-02-11 11:01:36 +0900

拡張ライブラリ json で generate_json() という関数がオブジェクトが JSON 化できない時に to_s メソッドを呼び出してから自分自身を再帰的に呼び出していていたのを、直接 generate_json_string() を呼び出すようにしています。 String 自体でなく継承したクラスのインスタンスだったりすると無限再帰する可能性があったのを修正しています。 というかこの関数での分岐はクラスが rb_cString かどうかというチェックになっていて、RB_TYPE() とかで判定したほうがよさそうですよね。

nobu: r49563 2015-02-11 11:08:50 +0900

拡張ライブラリ digest の各種アルゴリズム毎の extconf.rb から openssl の機能チェック部分を ext/digest/digest_conf.rb というファイルに切り出して共有させています。しかし ext/digest/md5/md5init.c でチェックしているマクロ名に typo がありますね。 r49566 で修正されています。

nobu: r49564 2015-02-11 11:09:23 +0900

拡張ライブラリ digest で各種アルゴリズムの XXX_Finish() を生成するマクロ DEFINE_FINISH_FUNC_FROM_FINAL() を ext/digest/digest.h に追加して、これで定義するようにしています。

nobu: r49565 2015-02-11 11:09:55 +0900

拡張ライブラリ digest の extconf.rb で --common-digest というオプションに対応して、md5sha1, sha2 に Apple の CommonCrypto/CmmonDigest.h というヘッダを利用した実装を追加しています。これも Apple の独自パッチの適用ですかね?

nobu: r49566 2015-02-11 13:58:22 +0900

r49563 での digest の extconf.rb のリファクタリングの時に ext/digest/md5/md5init.c でチェックするマクロ名を typo していたのを修正。

nobu: r49567 2015-02-11 15:50:24 +0900

r49555 や r49558 の再修正。 configure でデフォルトでヘッダファイルの探索先になる include ディレクトリに対応する lib ディレクトリへの -L オプションを LDFLAGS に追加するようにしています。 ふむーなんか探索の優先順位についての調整なのでしょうか。