ruby-trunk-changes r57014 - r57027

今日は Refinements とメソッド可視性の変更による不具合の修正や irb の字句解析器の不具合修正などがありました。

shugo: r57014 2016-12-07 21:59:48 +0900

標準添付ライブラリ webrickWEBrick::Utils::General の :ServerName の値に Utils.getservername の呼び出しをロード時に行ってたのを、Hash の default proc に包むことで必要になった時に呼ぶように遅延して不要な名前解決を避けるようにしています。 [ruby-core:78492] [Bug #13007]

svn: r57015 2016-12-07 21:59:49 +0900

r57014 で新規追加したファイルの svn property 設定。

nobu: r57016 2016-12-07 23:26:44 +0900

test/unit の子プロセスを起動する assertion のエラー時の子プロセスのステータスを表示する FailDesc (Proc オブジェクト)で message 引数に Proc オブジェクトが渡された時に call して結果を使うようにする対応を追加しています。

nobu: r57017 2016-12-07 23:39:24 +0900

rubyコマンドラインオプション --dump が複数指定されていた時に、処理上の最初の種類のみが有効になっていたのを、指定された全ての dump を実施するようにしています。

kazu: r57018 2016-12-08 00:30:01 +0900

IO#write_nonblock の rdoc 用コメントのサンプルコードの typo 修正。 https://github.com/ruby/ruby/pull/1496

svn: r57019 2016-12-08 00:30:02 +0900

version.h の日付更新。

shugo: r57020 2016-12-08 08:27:51 +0900

cont.c, thread.c, vm_eval.c などの変数や引数の宣言に volatile 修飾子をいくつか追加しています。 FreeBSDNetBSD 上の clang でビルドした時に最適化で不具合が発生するのを回避するためだそうです。 [ruby-core:78531] [Bug #13014]

shugo: r57021 2016-12-08 08:47:59 +0900

r57020 の続き。 cont.c で警告除去のため volatile 修飾子をさらに追加しています。

nobu: r57022 2016-12-08 09:45:13 +0900

拡張ライブラリ ripper で入力元のオブジェクトに gets メソッドがあれば何でも渡せるようにしています。

nobu: r57023 2016-12-08 14:16:33 +0900

private メソッドを Refinements で public 変更したものを using して呼ぶと無限再帰になる? のを修正しています。 [ruby-core:77161] [Bug #12729]

nobu: r57024 2016-12-08 15:19:06 +0900

メソッド定義の rest 引数(*args) とキーワード rest 引数(**kw) で両方ともアンダースコア変数を指定すると、型が異なるオブジェクトに対して merge することになって SEGV していたのを修正。 core_hash_from_ary() で引数の ary に Check_Type() を呼んで配列に変換するようにしています。また core_hash_merge() と m_core_hash_merge_ary() でオブジェクトの型チェックを追加しています。 [ruby-core:78536] [Bug #13015]

nobu: r57025 2016-12-08 16:54:58 +0900

AST に true, false, nil などのリテラルに直接対応する NODE_TRUE, NODE_FALSE, NODE_NIL を配列のリテラル? の中の要素のコンパイル時にその他のリテラルと同様に扱うようにして最適化しています。

nobu: r57026 2016-12-08 17:25:21 +0900

test/lib/test/unit.rb でテストを除外するテストメソッドや実行するテストメソッドの指定のパターンを Regexp オブジェクトにコンパイルするのを忘れていたところを修正しています。

nobu: r57027 2016-12-08 17:31:01 +0900

irb の字句解析器で識別子の後に ":" が続いているものをラベルとして扱い、予約語などの時に特別な挙動(ブロックのインデントの増減など)をしないように修正しています。 [ruby-core:78526] [Bug #13012]