ruby-trunk-changes r67195 - r67200

今日は拡張ライブラリ ripper の不具合修正などがありました。

nobu: r67195 2019-03-09 09:00:26 +0900

gc.c の gc_mark_children() でオブジェクトの型が T_FLOAT、T_BIGNUM、T_SYMBOL だったらなにもしないので、switch 文の先頭のほうに移動してすぐ return するようにしています。処理としては変わりはないですがこうすると最適化されるってことかな。 https://github.com/ruby/ruby/pull/2091

svn: r67196 2019-03-09 09:00:35 +0900

version.h の日付更新。

nobu: r67197 2019-03-09 09:12:52 +0900

variable.c にオブジェクトが T_MODULE か T_CLASS であることを確認する rb_namespace_p() という関数を切り出して同じような条件分岐していたところの条件部で利用するようにしています。 RB_SPECIAL_CONST_P() でのチェックを先にして即値オブジェクトは early return するようにしているので若干最適化されているかも。

svn: r67198 2019-03-09 09:12:53 +0900

r67197 のインデントを空白に展開しています。

nobu: r67199 2019-03-09 19:14:16 +0900

拡張ライブラリ ripper のテストで respond_to? のチェックに assert_respond_to を利用するようにリファクタリングしています。

nobu: r67200 2019-03-09 19:17:33 +0900

拡張ライブラリ ripper でインデント除去つきヒアドキュメントを Ripper::Lexer でスキャンした時に :ignore_sp というイベントが使われていますが、定数 Ripper::SCANNER_EVENTS にこれが含まれていないので、追加するようにしています。 [ruby-core:91727] [Bug #15648]