ruby-trunk-changes r56474 - r56478

今日は Numeric のメソッドでの暗黙の変換用メソッド呼び出しの再帰チェックが誤検出して例外を発生することがあった不具合の修正がありました。

nobu: r56474 2016-10-22 22:33:34 +0900

r55891 の Numeric からの暗黙のメソッド呼び出しで無限再帰を検出する方法に問題があって Comparable を include して独自の数値クラスを定義していた場合に == で比較すると例外が発生することがあったのを修正しています。 num_funcall_op_1() に渡す引数の順番が逆だったみたいです。 [ruby-core:77713] [Bug #12864]

nobu: r56475 2016-10-22 23:33:58 +0900

parse.y の正規表現コンパイルに失敗した時に、rb_thread_t::errinfo がセットされていたらそこの例外メッセージに追加していたのを、常に parser_compile_error() を呼び出して struct parser_params::error_buffer に Syntax Error のメッセージを追記するようにしています。

nobu: r56476 2016-10-23 11:03:56 +0900

Symbol を to_proc で Proc にするブロック引数と Refinements のテストで渡したブロックを返すメソッドから返された Proc オブジェクトを呼び元で呼び出す時は呼び元の Refinements が影響すること(つまりこのテストの場合だと return_proc が定義されているクラスのコンテキストの Refinements の影響は受けないこと)を確認するテストを追加しています。 [ruby-core:60109] [Feature #9451]

svn: r56477 2016-10-23 11:03:57 +0900

version.h の日付更新。

nobu: r56478 2016-10-23 11:41:43 +0900

include/ruby/encoding.h に #include "ruby/ruby.h" を追加しています。 ruby_fl_type と VALUE のために必要だったようです。