ruby-trunk-changes r52686 - r52698

今日は frozen string literal のデバッグ用のオプションの変更や String#to_sym の不具合修正、2.3 で追加されていた Queue#close の仕様の変更などがありました。

nobu: r52686 2015-11-21 04:34:19 +0900

ASCII 文字以外の文字を含む文字列を String#to_sym で Symbol 作成すると副作用として freeze されてしまっていた不具合を修正しています。 [ruby-core:71611] [Bug #11721]

svn: r52687 2015-11-21 04:34:39 +0900

version.h の日付更新。

ko1: r52688 2015-11-21 08:49:31 +0900

frozen_string_literal: true で文字列リテラルが freeze されている場合に文字列リテラルから得られたオブジェクトにどのファイル・行で作られたものかを保持するデバッグ用の情報をセットする機能が r52257 で追加されていましたが、この方法を常に情報はセットしておくようにしています。また式の埋め込みを含む文字列リテラルでもこの情報を持たせるように対応しています。 このためにVM命令 freezestring を追加して使うようにしています。 [ruby-core:71616] [Feature #11725]

naruse: r52689 2015-11-21 08:51:44 +0900

テスト用のライブラリ test/lib/test/unit.rb の Test::Unit::Parallel::Worker#deal で read で読んだ文字列へのメソッド呼び出し部分で read が nil を返した場合を考慮するようにしています。

naruse: r52690 2015-11-21 09:20:53 +0900

拡張ライブラリ fiddle のテスト用の helper で mingw, mswin でテストに利用するためのライブラリを探すところで Visual C++ 14 (2015) の対応を追加しています。 msvc???.dll ではなく ucrtbase.dll というファイルを使うようになっているようです。

ko1: r52691 2015-11-21 09:32:09 +0900

r51699 で追加した Queue#close ですが、引数で閉じた Queue から pop した時の挙動を指定できるようにしていた仕様は削って、close 済みの Queue に対する Queue#pop は nil を返すようにしています。 [ruby-core:66843] [Feature #10600]

ko1: r52692 2015-11-21 09:46:53 +0900

NEWS ファイルに Queue#close の追加について追記しています。

naruse: r52693 2015-11-21 13:06:43 +0900

拡張ライブラリ openssl のヘッダ ext/openssl/ossl.h で LibreSSL 対応として LIBRESSL_VERSION_NUMBER が定義されていたら e_os2.h を #include しないようにしています。

naruse: r52694 2015-11-21 13:35:57 +0900

Windows 版で VC を使ってビルドすると拡張ライブラリ digest がビルドできない不具合を修正しています。 digest.h の前に ruby/ruby.h を #include するようにしています。 [ruby-core:29911] [Bug #3231]

naruse: r52695 2015-11-21 14:01:55 +0900

OpenSSL の SHA1 用の構造体の名前が SHA_CTX なので extconf.rb で digest_conf で構造体名の prefix を明示的に指定するようにしています。 http://openssl.org/docs/man0.9.8/crypto/SHA1.html

naruse: r52696 2015-11-21 15:36:05 +0900

r52690 の fiddle のテスト用 helper の再修正。 DLL ファイルを検索する時の正規表現を修正しています。

nobu: r52697 2015-11-21 18:41:56 +0900

コマンドラインオプションの処理部分で定義しているマクロ need_argument() で argv を overrun させて不正なメモリ領域にアクセスする可能性があったのを修正しています。

nobu: r52698 2015-11-21 18:57:31 +0900

r52257 で導入されていた --enable-frozen-string-literal-debug を --debug-frozen-string-literal に変更しています。 [ruby-core:71616] [Feature #11725]