ruby-trunk-changes r53710 - r53718

今日は Windows 版でのパス操作の細かな最適化などがありました。

nobu: r53710 2016-02-02 00:06:17 +0900

win32/win32.c の opendir_internal() を w32_wopendir() に改名し、第2引数の filename を削除して、ドライブレターのチェックは第1引数の wpath を使ってチェックするようにしています。

svn: r53711 2016-02-02 00:06:18 +0900

version.h の日付更新。

hsbt: r53712 2016-02-02 09:11:34 +0900

r53707 の RubyGems の 2.5.2 のマージの時に magic comment の coding の前に frozen-string-literal が入っていたのを、順番を逆にしています。 coding の magic comment は shebang を除いた最初の行に書かないといけなかったようです。なるほどそうなのか。

nobu: r53713 2016-02-02 12:53:01 +0900

r53712 の ChangeLog エントリの英語を修正。

nobu: r53714 2016-02-02 13:39:38 +0900

enc/ 以下のビルドのための依存関係にタイムスタンプファイルを導入して不要な mkdir の実行を避けるようにしているようです。

naruse: r53715 2016-02-02 13:39:44 +0900

struct RRegexp のメンバ ptr にアクセスするマクロ RREGEXP_PTR() を定義して、既存の RREGEXP_SRC() とあわせて直接メンバにアクセスせずにこのマクロを利用するようにリファクタリングしています。 https://github.com/ruby/ruby/pull/497

nobu: r53716 2016-02-02 14:43:44 +0900

win32/win32.c の open_dir_handle() でファイルパスにワイルドカードを付加した文字列を scanname という名前で ALLOCV_N() で別途バッファを確保するようにしていたのを、fullname というバッファにあらかじめ余分なスペースを用意しておくことで余分なコピーを抑えるようにしています。

nobu: r53717 2016-02-02 16:08:13 +0900

tool/downloader.rb が 1.8 でうまく動かないので、古い BASERUBY でもインストールできるように対応。1.8 で class_variable_set が private だったので呼べなかったので、専用のクラスメソッドを定義して利用するようにしています。

naruse: r53718 2016-02-02 20:02:10 +0900

拡張ライブラリ openssl のテストで OpenSSL::Digest の各ダイジェストアルゴリズムのクラスが存在するかどうかのチェックで LibreSSL の 2.3 以降では SHA はサポートされてないらしく省くようにしています。 https://github.com/ruby/openssl/issues/40#issuecomment-159839338