ruby-trunk-changes r61791 - r61804

今日は parse.y のリファクタリングなどがありました。

hsbt: r61791 2018-01-12 22:05:09 +0900

template/unicode_norm_gen.tmpl のコメントの typo 修正。

shyouhei: r61792 2018-01-12 22:14:53 +0900

r61746 の tool/ruby_vm/views/_insn_stack_increase.erb で生成する C のソースコードで char に明示的に signed 修飾子をつける修正を再適用しています。

mame: r61793 2018-01-12 22:22:20 +0900

parse.y の POINTER_P() というマクロを削除しています。下位2bit が 0 じゃないかどうかで判定するマクロでしたが、これを利用しているところで判定したいのは DVARS_INHERIT と DVARS_TOPSCOPE との比較だけで充分だったそうなので DVARS_TERMINAL_P() というマクロを新規導入してこっちを使うようにしています。すごいなぁ。魔境 parse.y を開拓していく…。

shyouhei: r61794 2018-01-12 22:25:03 +0900

insns.def の adjuststack 命令の sp_inc の annotation に明示的な rb_snum_t へのキャストを追加しています。 VC12 で警告が出ていたそうなのでその対策。

mame: r61795 2018-01-12 23:25:28 +0900

parse.y の token_info_push()、 token_info_pop() などのマクロや関数に rb_code_location_t の引数を追加して、token_info の位置情報に bison の返す位置情報を利用するようにしています。

mame: r61796 2018-01-12 23:25:31 +0900

parse.y の token_info の初期化処理を setup_token_info() という関数に切り出しています。また token_info_push_gen(), token_info_pop_gen() の引数から未使用だった len を削除しています。

mame: r61797 2018-01-13 00:59:26 +0900

rb_parser_fatal() の #ifndef RIPPER での分岐が不要だったみたいで削除して1つに統一しています。

svn: r61798 2018-01-13 00:59:27 +0900

version.h の日付更新。

kazu: r61799 2018-01-13 09:30:01 +0900

common.mk と enc/depend の依存関係を更新しています。

nobu: r61800 2018-01-13 18:23:40 +0900

common.mk と enc/depend の依存関係を修正しています。 tool/update-deps ツールの依存関係検出が間違ってたのかな。

shyouhei: r61801 2018-01-13 19:47:32 +0900

iseq.c succinct bitvector の実装で導入された型 succ_index_table で構造体の最後に配列を置く手法で、配列サイズを省略する記法は C99 以降で許された方法なので __STDC_VERSION__ をチェックして必要なら 0 or 1 のサイズを明示するようにしています。

shyouhei: r61802 2018-01-13 19:47:33 +0900

tool/ruby_vm/views/_attributes.erb で生成する C ソースで __VA_ARGS__ を利用しているところがありましたが、これも C99 からの仕様なので、これを利用していた CALL_ATTRIBUTE() というマクロを定義していたのをやめて、ERB のテンプレートで直に展開するようにしています。

hsbt: r61803 2018-01-13 20:10:08 +0900

configure.ac のコメントの typo 修正。

mame: r61804 2018-01-13 20:45:25 +0900

r61801 の再修正。 配列のサイズを明示するかどうかを構造体の定義の部分で直接分岐せずに、先に分岐して定数マクロを定義しておいて、構造体の宣言部分ではこの定数マクロを参照するように書き換えています。