ruby-trunk-changes r35098 - r35110

今日はビルドプロセスとテストの修正が主でした。

usa:r35098 2012-03-22 11:14:42 +0900

r35095 で追加した IO#pos でファイルポジションが変化しないことを確認するテストに open するモードの指定のバリエーションの追加と、サンプルのファイル内容に改行を含めるようにしています。 [ruby-core:43550]

svn:r35099 2012-03-22 11:14:47 +0900

version.h の日付更新。

nobu:r35100 2012-03-22 11:17:26 +0900

lib/mkmf.rb で定数マクロの検出のためのメソッドで conftest を実行後に conftest ファイルを削除するようにしています。

nobu:r35101 2012-03-22 11:17:30 +0900

同じく lib/mkmf.rb の try_link0, try_compile, try_cpp などでコンパイル/リンク/プリプロセスしてみて結果をチェックするところで、生成物のファイルが実際にできているかのチェックを挟むようにしています。コミットログによると cygwin のコマンドがエラーになったのにその終了ステータスがうまく取得できなくて、正常終了したものとして進んでしまうことがあるそうで、そのための回避策だそうです。

nobu:r35102 2012-03-22 13:43:38 +0900

拡張ライブラリ openssl の rsa_generate() という関数の引数 exp の型を int から unsigned long に修正しています。

nobu:r35103 2012-03-22 13:57:04 +0900

try_link で使うコマンドラインの生成物オブジェクトのファイル名には $EXEEXT を付加しないといけなかった(クロスコンパイルの時のため)ので追加しています。

nobu:r35104 2012-03-22 14:59:45 +0900

configure.in にて Makefile を生成するルールで '>>' による append モードのリダイレクションで繋げているところが(おそらく) make の -j オプションによる並列ビルドに影響があったらしくその前のコマンド(サブシェル)とまとめられています。

nobu:r35105 2012-03-22 14:59:48 +0900

configure.in でソースツリーのリポジトリの種類(svn, git+svn, git, リポジトリではない)の検出をするためにソースディレクトリの .svn サブディレクトリの存在をチェックしていたのですが、svn 1.7 からは .svn はチェックアウトされた working copy のトップレベディレクトリにしか存在せず、trunk の他複数のブランチを一度にチェックアウトしている working copy などでは .svn がソースディレクトリに存在しない場合があるので、svn info コマンドを叩いてみてチェックするように変更しています。

nobu:r35106 2012-03-22 15:04:09 +0900

r35105 で if の条件に test コマンドの呼び出しが抜けていたのを追加。

nobu:r35107 2012-03-22 18:37:44 +0900

regint.h の関数マクロにおいて明示的なキャストを入れて警告除去しています。

nobu:r35108 2012-03-22 18:37:47 +0900

test/ruby/test_m17n.rb の test_env で ENV の内容のエンコーディングが locale エンコーディングと一致しているチェックのための assertion に対象の文字列(環境変数またはその内容)をメッセージとして渡すようにしています。

nobu:r35109 2012-03-22 19:55:11 +0900

Windows 版でファイルの更新時刻などの情報を UNIX Time に変換するためにタイムゾーンを考慮していたのをやめているそうです。どういうことかよく理解していませんが、Windows での時刻がシステム時刻とファイルシステムの属性の時刻で別々の表現を持っているみたいですね。またファイルの更新時刻などの時刻の情報は fstat(2) ではなく GetFileInformationByHandle() から取ってくるようにしています。

nobu:r35110 2012-03-22 20:47:19 +0900

r35109 で関数マクロ名が重複していたようで改名しています。