ruby-trunk-changes r58458 - r58467

今日は newhash 命令の最適化とそれに続く修正の revert や、あるパターンの SyntaxErorr が SEGV になる不具合の修正などがありました。

nobu: r58458 2017-04-23 23:47:31 +0900

テストライブラリの assert_syntax_error が発生した例外オブジェクトを返すようにしています。

nobu: r58459 2017-04-23 23:51:08 +0900

テストライブラリの assert_ruby_status や assert_separately でエラー時に出力するメッセージに macOS の場合に別途 Diagnostic Report のファイルの内容を読み込む場合にその内容を出力する前に "Diagnostic reports:" という行を追加するようにしています。

naruse: r58460 2017-04-24 01:19:22 +0900

template/configure-ext.mk.tmpl でブロックパラメータによるローカル変数の遮蔽の警告除去。

naruse: r58461 2017-04-24 01:19:23 +0900

標準添付ライブラリ net/http の Net::HTTP#proxy_user, #proxy_pass で Linux, FreeBSD, macOS など環境変数を利用しても安全な環境では環境変数 http_proxy から proxy の認証情報を取得できるようにしています。 [ruby-core:78075] [Bug #12921]

svn: r58462 2017-04-24 01:19:23 +0900

version.h の日付更新。

shyouhei: r58463 2017-04-24 10:40:51 +0900

r58427 からはじまる newhash 命令の最適化とその GC mark 漏れや write barrier 漏れの修正などの一連の修正 r58428, r58434, r58435, r58452 を revert しています。まだいくらか不具合が残っていたみたいなので、一旦 revert することにしたようです。

nobu: r58464 2017-04-24 13:20:02 +0900

gc_report() や WARN_CALL()、 WARNING_CALL()、 thread_debug() など format 文字列と可変長の引数を受け取る関数マクロ定義で __VAR_ARGS__ が空の場合に対応していたのを、引数 fmt も可変長部分に入れることで gcc の拡張を使わずに定義できるようにしています。

nobu: r58465 2017-04-24 15:17:54 +0900

parse.y でエラー時に呼び出す rb_parser_fatal() という関数を追加して rb_bug() のかわりにこちらを呼び出して追加の parser 独自の情報を出力するようにしています。 vtable_xxx() の関数群の定義を移動しているのはなんででしょう。

nobu: r58466 2017-04-24 15:17:55 +0900

ううーん? よくわかってませんがメソッドのキーワード引数のデフォルト値のところにさらにメソッド定義を書いたような書きかたをすると SyntaxError が発生せずに SEGV するという不具合を修正しているようです。 これは 2.4, 2.3 でも起きるのかな。

nobu: r58467 2017-04-24 20:52:14 +0900

tool/git-refresh で取得するブランチの指定を受け付けるようにしています。というかオプションは用意されていたけど処理されていなかったので考慮するようにしたみたいです。