ruby-trunk-changes r36664 - r36675

今日は Windows 環境での File.stat の速度を改善する変更などがありました。

svn:r36665 2012-08-09 02:03:29 +0900

version.h の日付更新。

kosaki:r36666 2012-08-09 12:42:00 +0900

OpenSSL の OpenSSL::Config::DEFAULT_CONFIG_FILE で返ってくる openssl.conf のパスが OpenSSL 内で固定値が書かれていて Mac OS X 上で homebrew を使ってインストールした openssl パッケージを使ってビルドしていたり、Windows 環境でファイルパスが異なるためテストに失敗することがあるため、RUBY_PLATFORM を見てテストを skip するようにしています。 Mac OS X に同梱の OpenSSL では独自のパスを返すようにパッチが当てられているようですね。 [ruby-core:46974] [Bug #6830]

nobu:r36667 2012-08-09 18:33:49 +0900

コマンドラインオプションに -v (Verbose モード。最初にバージョン情報を表示して実行する)と --version (バージョン情報を表示してすぐに終了する)を両方指定すると、バージョン情報が2度表示されるのを修正して合わせて1回しか表示しないようにしています。

shirosaki:r36668 2012-08-09 20:34:48 +0900

Windows 環境で File#stat のために FindFirstFileW() という API を使っていたのを GetFileAttributeExW() を先に利用するようにしてパフォーマンス改善しています。 GetFileAttributeExW() はより高速な代わりにシステムファイル(*.sys)等に対して利用するとエラーを返すことがあるらしいのですが、そういう時は FindFirstFileW() を利用する方法に fallback することでエラーを起こさず、たいていの場合はより高速にできるようにしているようです。チケットに詳しく方針が書かれています。 require の Windows での処理高速化のための修正だそうです。 [ruby-core:47083] [Feature #6845]

nobu:r36671 2012-08-09 23:46:44 +0900

template/fake.rb.in というファイルでビルドディレクトリを取得する処理を繰り返していたのをリファクタリングしています。 この fake.rb.in というファイルはなにものなんでしょうかね。 make fake というターゲットがあってそれに関係しているようですが。

nobu:r36672 2012-08-09 23:46:48 +0900

configure.in で miniruby の名前を取得するために fake.rb を実行する際にシンボリックリンクなどを解決したカレントディレクトリのパスを -I オプションに渡すようにしています。クロスコンパイル時に使うみたいですね。

nobu:r36673 2012-08-09 23:46:53 +0900

r36537 あたりで tool/mkrunnable.rb で mklink を使ったコマンドを表示するようにしたのですが、プラットフォームの判定を RUBY_PLATFORM ではなくて CONFIG["build_os"] で判定するようにしています。クロスコンパイルしている場合ビルドしたプログラムの platform ではなくてビルド環境で判定するべきなので、とのこと。クロスコンパイルしたらコンパイルした実行体をビルド環境で実行不可能なこともあると思うのでそもそも make runnable しないとは思いますけど。

svn:r36675 2012-08-10 00:16:43 +0900

version.h の日付更新。