ruby-trunk-changes r57656 - r57665

nobu: r57656 2017-02-20 11:16:22 +0900

テスト用のユーティリティ EnvUtil の macOS 用に異常終了時に C のバックトレースを含んだ diagnostic report の内容を取得するための diagnostic_reports メソッドで実行形式ファイルのパスを RbConfig::CONFIG["RUBY_INSTALL_NAME"] から得るようにしています。 テストは make ruby-runner で起動されるので、それが起動する ruby の名前を探す必要があったようです。

svn: r57657 2017-02-20 11:16:23 +0900

version.h の日付更新。

nobu: r57658 2017-02-20 14:35:56 +0900

parse.y で STATIC_ID2SYM() の別名に ID2VAL() というマクロを定義して、ripper 用のコードでは TOKEN2VAL() のかわりにこれを利用するようにしています。

nobu: r57659 2017-02-20 14:35:57 +0900

parse.y で &. 演算子の処理用の関数やマクロ new_qcall_gen(), new_qcall() などを導入して本体の parser 用と ripper 用の実装をルール部で分けないですむようにリファクタリングしています。

nobu: r57660 2017-02-20 18:46:12 +0900

regparse.c の parse_char_class() で parse_depth という構造体メンバで再帰の深さをチェックしてエラーにしているところで、ポインタで受け取っている出力用の引数のポインタの参照先を未初期化なまま return する恐れがあったので初期化するように修正しています。 [ruby-core:79624] [Bug #13234]

nobu: r57661 2017-02-20 19:10:08 +0900

ruby 本体専用の test/unit の assert_separately で子プロセスの例外オブジェクトを Marshal.load したものが SystemExit だったら無視するようにしています。

naruse: r57662 2017-02-20 19:59:09 +0900

parse.y の論理演算子の NODE を生成するマクロ logop() で明示的なキャストを追加しています。

naruse: r57663 2017-02-20 19:59:10 +0900

r57658 で追加した parse.y の ID2VAL() マクロの定義に明示的な VALUE へのキャストを追加しています。

naruse: r57664 2017-02-20 19:59:10 +0900

variable.c の rb_generic_ivar_table() に NORETURN() マクロを使って明示的にこの関数は return しない関数であることを指定するようにしています。 GCC 7 で指摘されるそうです。 gcc どんどん賢くなっていく。

kazu: r57665 2017-02-20 21:20:22 +0900

doc/extension.rdoc と doc/extension.ja.rdoc の見出しのレベルの修正。 [ruby-core:79590] [Bug #13229]