ruby-trunk-changes r53004 - r53024

今日は RubyVM::InstructionSequence の binary への dump/load 用のメソッド名の変更や、frozen-string-literal が有効な時に デバッグ用に文字列リテラルの生成位置がわかるようにする機能が --debug なしでも常に有効になっていたのが --debug などが指定された時だけ有効にするようする変更などがありました。

ko1: r53004 2015-12-10 00:10:57 +0900

r52949 で追加した RubyVM::InstructionSequence#to_binary_format や RubyVM::InstructionSequence.from_binary_format{_extra_data} を #to_binary や #load_from_binary に改名しています。 https://github.com/ruby/ruby/pull/1134

svn: r53005 2015-12-10 00:12:23 +0900

version.h の日付更新。

kazu: r53008 2015-12-10 00:29:31 +0900

r53004 のメソッド名改名に追随して NEWS ファイルのメソッド名も変更しています。

ko1: r53009 2015-12-10 02:02:02 +0900

オプションの --debug や --debug-frozen-string-literal で freeze された文字列を変更しようとして例外が発生した時にその生成元のファイル名や行数などの位置を表示する機能は --enable-frozen-string-literal をつけた時は常に位置情報を保持するようにしていたのを、速度への影響が大きいため --debug か --debug-frozen-string-literal の指定があった時だけ保持するようにしています。 [Feature #11725]

nobu: r53010 2015-12-10 02:21:23 +0900

拡張ライブラリ openssl のテストで OpenSSL::SSL::SSLContext#options のビットフラグをチェックする時に OpenSSL::SSL::OP_ALL のビットマスクの部分だけチェックするようにしています。他にもフラグが立っていることがあるみたいですね。

nobu: r53011 2015-12-10 02:48:26 +0900

ruby の --debug-frozen-string-literal や --debug=frozen-string-literal オプションの挙動のテストをループで書くようにリファクタリングしています。

nobu: r53012 2015-12-10 03:15:04 +0900

r52982 と同様に Dir.new の実装や io.c でも :encoding の ID を rb_intern() ではなく rb_id_encoding() を使うようにしています。

naruse: r53013 2015-12-10 04:41:47 +0900

標準添付ライブラリ net/http の環境変数 http_proxy をセットした時の Net::HTTP#proxy_from_env? の挙動のテストを追加しています。 OS XEl Capitan で失敗するテストの調査用みたいです。

normal: r53014 2015-12-10 04:58:48 +0900

struct METHOD を wrap している T_TYPEDDATA 型オブジェクトの free 用関数 bm_free() はデフォルトの挙動をしているので、削除して RUBY_TYPED_DEFAULT_FREE を指定しておくようにしています。

nobu: r53015 2015-12-10 05:06:00 +0900

r53001 で環境変数をみて IO#getpass のテストを skip するようにしていたのを、text/excludes/TestIO_Console.rb に追加して --excludes オプションで実行除外するようにしています。

normal: r53016 2015-12-10 05:07:23 +0900

拡張ライブラリ socket の Ifaddr の mark 関数は何もしていないのでこれもデフォルトの挙動にまかせるようにして 0 を渡すようにしています。

nobu: r53017 2015-12-10 05:53:21 +0900

tool/mkconfig.rb で生成する rbconfig.rb に frozen-string-literal: false の magic comment をつけるようにしています。rbconfig.rb で文字列に破壊的操作をしているところがあって…、ということみたいですね。チケットは --enable-frozen-string-literal をつけた時ってことでしょうか。 [ruby-core:72006] [Bug #11798]

normal: r53018 2015-12-10 06:34:01 +0900

r52986 と同様に T_TYPEDATA 型オブジェクトの memsize 用の関数で NULL チェックが不要になったので marshal.c の memsize_dump_arg() と memsize_load_arg() でも NULL チェックを省いています。

naruse: r53019 2015-12-10 06:54:21 +0900

r53013 で追加した Net::HTTP#proxy_from_env? のテストで原因がわかったみたいで El Capitan でのテストの失敗の対策として Net::HTTP.new の host には example だけでなく hostname.example のようにドットで連結したドメイン名っぽいものを渡すようにしています。

nobu: r53020 2015-12-10 09:32:53 +0900

標準添付ライブラリ mkmf.rb と shellwords.rb で frozen-string-literal: false の magic comment を追加して --enable-frozen-string-literal が指定された時にそれを無効化するようにしています。これらも frozen-string-literal でうまく動かないようです。 [ruby-core:72011] [Bug #11800]

normal: r53021 2015-12-10 11:35:22 +0900

r53009 で frozen-string-literal が有効な時の文字列リテラルの位置情報保持のための処理を--debug や --debug-frozen-string-literal が有効な時だけ行なうようにしましたが、文字列オブジェクトの dup と iseq_add_mark_object_compile_time() の呼び出しを、--debug や --debug-frozen-string-literal が有効な時の分岐でだけ実行するようにしています。[ruby-core:72018]

hsbt: r53022 2015-12-10 14:13:39 +0900

拡張ライブラリ tk の警告メッセージの typo 修正。 [ruby-core:71800] [Bug #11764]

hsbt: r53023 2015-12-10 14:16:17 +0900

Fiber の rdoc 用コメントの typo 修正。 [ruby-core:69749] [Bug #11313]

ko1: r53024 2015-12-10 15:00:57 +0900

GC.stat[:heap_eden_pages] のサイズが GC でオブジェクトが回収されれば大きく変化しないことをチェックするテストで許容する変化量のチェックを緩めています。環境によって失敗することの対処みたいです。