今日は parse.y のリファクタリングやビルドプロセス回りの修正などがありました。
akr: r58245 2017-04-04 21:54:42 +0900
標準添付ライブラリ pp で Object#inspect メソッドを Method オブジェクトとして取り出して Kernel のメソッドかどうかチェックするのに文字列化してから正規表現でチェックしていたのを Method#owner メソッドというのがあるのでそれを利用するようにリファクタリングしています。
nobu: r58246 2017-04-04 23:13:46 +0900
parse.y の show_bitstack() を rb_parser_show_bitstack() に、trace_lex_state() を rb_parser_trace_lex_state() に改名して flush_debug_buffer() という関数の呼び出しを追加しています。この関数では parser->debug_buffer に文字列があったら標準出力に書き出してバッファをクリアするようです。
nobu: r58247 2017-04-04 23:19:04 +0900
parse.y の rb_parser_trace_lex_state() と rb_parser_show_bitstack() を static をはずして、ripper でも利用するようにしているようです。
nobu: r58248 2017-04-05 08:42:00 +0900
parse.y の ">=" のルールで TOKEN2ID() で ID を得ているところを事前に定義されている idGE を参照するように修正しています。
svn: r58249 2017-04-05 08:42:01 +0900
version.h の日付更新。
nobu: r58250 2017-04-05 09:12:43 +0900
parse.y で論理演算子のルールで使う logop() という関数で token じゃなくて ID を引数に受け取るように変更しています。
nobu: r58251 2017-04-05 10:36:21 +0900
spec/default.mspec で make の jobserver 機能を利用するために MSpecScript#cores を上書き定義して渡された fd を IO オブジェクトとして開いてトークンをやりとりして並列度を決めるようにしているようです。
nobu: r58252 2017-04-05 16:07:51 +0900
configure に --with-jemalloc が指定されていた時に HAVE_MALLOC_CONF マクロを定義しておくようにしています。なんか r57490 の [Bug #13175] あたりと関係があるのかなぁ(安定版メンテナ的な観点)。
nobu: r58253 2017-04-05 17:34:18 +0900
compile.c のデバッグ用のマクロ debugi()、debugp()、debugp_verbose()、debugp_verbose_node()、debugp_param() などをなにもしないように定義をかえています。元々なにもしない inline 関数の呼び出しに展開してたのですが、コンパイラの最適化などに影響があるのを避けるようにしたのかな。
shyouhei: r58254 2017-04-05 17:52:31 +0900
r57490 で configure.in で libgmp のチェックに AC_SEARCH_LIBS() を使うようにした影響で --with-gmp で HAVE_LIBGMP が定義されなくなっていたそうなので明示的に定義するように修正しています。 [ruby-core:80569] [Bug #13402]