ruby-trunk-changes r65085 - r65097

今日は正規表現の \X の警告抑制の対応などがありました。

nobu: r65085 2018-10-15 21:31:22 +0900

正規表現の文字クラスの範囲に重複があった時の警告を WARN_ALL_CC_DUP というマクロが定義されている時は1回だけに抑制せず全て表示するようにしています。 WARN_ALL_CC_DUP というマクロはここ以外で定義している箇所はみあたらないので、CPPFLAGS で指定してビルドするデバッグ専用と思われます。たぶんこの後の修正のための調査用だと思います。

nobu: r65086 2018-10-15 21:31:25 +0900

正規表現内の Unicode の1文字にマッチする \X というメタキャラクタが Unicode 10 での定義の変化によって? 警告が出るようになってしまっていたみたいなので、Unicode のバージョンの 9 と 10 の差異を吸収するようにしているようです。

nobu: r65087 2018-10-15 22:48:20 +0900

r65086 に関連して? regparse.c の node_extended_grapheme_cluster() の関数内にあったテーブルを enc/unicode.c に括り出しています。

nobu: r65088 2018-10-16 14:14:59 +0900

r65086 で Unicode のバージョンによる差分を吸収していたところはやめています。

svn: r65089 2018-10-16 14:15:01 +0900

version.h の日付更新。

duerst: r65090 2018-10-16 15:41:47 +0900

Unicode のデータファイルからヘッダを生成する enc/unicode/case-folding.rb のフラグの設定のところにコメントを追加しています。

duerst: r65091 2018-10-16 16:01:55 +0900

対応する Unicode を 11.0.0 に更新しています。がこれは後に revert されています。

naruse: r65092 2018-10-16 16:12:26 +0900

r65077 の addr2line.c で debug_info セクションを読んで行番号の情報を得る対応で DWARF フォーマットのバージョンが対応してるバージョンじゃなかったらうまくいかないのでチェックして使わないようにしています。

duerst: r65093 2018-10-16 16:53:37 +0900

r65090 と r65091 での Unicode の更新は CI が失敗したとのことで revert しています。

nobu: r65094 2018-10-16 17:13:58 +0900

regparse.c の \X で Grapheme cluster の展開? をしているところで頻出している propname2ctype() してから add_ctype_to_cc() を呼ぶ、という処理を add_property_to_cc() という関数に切り出して、propname2ctype() がエラーを返した場合の処理を追加しています。

nobu: r65095 2018-10-16 18:10:56 +0900

regerror.c の MAX_ERROR_PAR_LEN というエラーメッセージ用のバッファのサイズを拡張しています。

nobu: r65096 2018-10-16 18:11:12 +0900

string.c の get_reg_grapheme_cluster() で onig_new() がエラーを返した時に rb_bug() で異常終了していたのを rb_fatal() に変更して、エラー内容に OnigErrorInfo の情報を利用するようにしています。

k0kubun: r65097 2018-10-16 18:29:23 +0900

tool/downloader.rb で捕捉してリトライする例外に Net::ReadTimeout を追加しています。