ruby-trunk-changes r55385 - r55391

今日は OS X でのファイルパスのエンコーディング正規化の漏れの修正や OpenSSL の暗号化方式のサポート追加などがありました。

nobu: r55385 2016-06-12 09:24:36 +0900

OS X 向けに file.c に NORMALIZE_UTF8PATH というマクロを導入してこれが 1 の時はファイルパスを得る時に UTF-8 エンコーディングの正規化を行うようにしています。 Dir.pwd で正規化されないパスがあったみたいです。 https://github.com/rails/rails/issues/25303#issuecomment-224834804 [ruby-core:75957] [Bug #12483]

svn: r55386 2016-06-12 09:24:37 +0900

version.h の日付更新。

rhe: r55387 2016-06-12 13:48:10 +0900

拡張ライブラリ openssl の OpenSSL 1.1.0 対応の一環というかその影響でテストで OpenSSL::Engine.cleanup を呼ばないようにしたので OpenSSL::Engine.load を重複して呼ばないようにしています。 [ruby-core:75225] [Feature #12324]

rhe: r55388 2016-06-12 14:06:18 +0900

拡張ライブラリ openssl で OpenSSL 1.0.1 でサポートされている AES-GCM AEAD という暗号化形式をサポートするようにしています。 ossl_cipher_get_auth_tag() で EVP_CIPHER_CTX_flags() を使って得たフラグをチェックするようにしています。

duerst: r55389 2016-06-12 14:48:04 +0900

test/ruby/enc/test_case_comprehensive.rb のテストケースの動的作成時に Hash.new のブロックつきの呼び出しの使いかたが誤ってて毎回ブロック利用してしまっていたのを修正して、また ASCII 文字のみ対応した encodin の swapcase のテストを生成するようにしています。

nobu: r55390 2016-06-12 18:45:09 +0900

r55385 で追加した File.expand_path のテストを OS X でのみ実行するようにしています。

nobu: r55391 2016-06-12 23:20:50 +0900

r55377 の ObjectSpace.dump_all のテストで結果を文字列オブジェクトとして返すのではなく標準出力に出させるようにしています。文字列オブジェクトにすると hang up するそうで、出力先するための文字列オブジェクトの確保がさらに出力対象になって…っていうことが起きているのかな。