ruby-trunk-changes r60101 - r60106

今日は内部的な Hash 生成時のちょっとした最適化と parse.y で ripper 向けの修正などがありました。

nobu: r60101 2017-10-02 21:23:17 +0900

iseq_build_from_ary_body(), gc_count_add_each_types(), rb_reg_named_captures() など内部的に固定長の Hash オブジェクトを生成しているところで rb_hash_new_with_size() を使ってあらかじめ容量確保して生成するように最適化しています。

nobu: r60102 2017-10-03 10:38:52 +0900

parse.y で TOKEN2EID() というマクロを ripper 向けにも定義して演算子トークンの C コード部分で ifndef_ripper() を使っていたところを TOKEN2EID() で変換して $$ に代入するようにしています。

svn: r60103 2017-10-03 10:38:54 +0900

version.h の日付更新。

nobu: r60104 2017-10-03 13:47:13 +0900

parse.y で KWD2EID() というマクロを追加して(ripper 版でも)、keyword_variable というノードの C コード部分でも ifndef_ripper() のかわりにこのマクロを利用して ripper でも $$ に代入するようにしています。

nobu: r60105 2017-10-03 13:56:23 +0900

undef の引数リストやブロックパラメータリストなどの部分が拡張ライブラリ ripper で NODE が見えてしまっていたみたいなので get_value() で Ruby オブジェクトを取り出して渡すようにしています。

nobu: r60106 2017-10-03 16:51:37 +0900

特殊変数 $` への代入文をエラーにする時の拡張ライブラリ ripper のコールバックのテストに戻り値のチェックも追加しています。