ruby-trunk-changes r58245 - r58254

今日は 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]