ruby-trunk-changes r53408 - r53413

今日は拡張ライブラリ ripper の不具合修正や ERB を拡張しやすくするためのリファクタリングなどがありました。

svn: r53408 2016-01-02 08:47:24 +0900

version.h の日付更新。

nobu: r53409 2016-01-02 11:11:09 +0900

parse.y の ripper 用の set_yylval_num() というマクロで struct NODE の u3 メンバを利用するようにしています。 ripper で parse できないスクリプトがあるということでその修正みたいですが、これは次で revert されています。 [ruby-core:72638] [Bug #11932]

naruse: r53410 2016-01-02 13:39:56 +0900

r53409 は SEGV を引き起すということで revert されています。 [ruby-core:72638] [Bug #11932]

nobu: r53411 2016-01-02 14:44:41 +0900

r53409 のリベンジ。 正規表現リテラルの parse 時に nd_state (u3.state) を参照していたところが nd_tag (u1.id) の間違いだったみたいです。 また ripper のテストでリポジトリに含まれている ruby スクリプトを parse してみるというテストで、デフォルトでは約5% のファイルだけテストするようにしていますがこれを環境変数で割合を調整できるようにしています。 TEST_RIPPER_RATIO=1 と指定すれば全てのファイルについてテストすることも可能ということですね。 [ruby-core:72638] [Bug #11932]

seki: r53412 2016-01-02 16:19:58 +0900

標準添付ライブラリ erb の ERB を継承したクラスを作って拡張することができるように、いくつか決め打ちで書かれていた正規表現インスタンス変数に保持してそれを参照するようにリファクタリングされています。 [ruby-core:72647] [Feature #11936]

normal: r53413 2016-01-02 21:08:34 +0900

thread_sync.c でいくつか不要なキャストを消してコードを読みやすくしています。