今日は正規表現エンジン Onigmo の更新、Refinements で Module を refine した時の不具合修正などがありました。
naruse: r60966 2017-12-01 22:50:13 +0900
正規表現エンジンの Onigmo を upstream から 6.1.3 をマージしています。 チケットによると \b を使った正規表現のマッチがうまく行なわれないという不具合の修正が含まれているようです。 [ruby-core:82760] [Bug #13892]
naruse: r60967 2017-12-01 23:08:13 +0900
r60966 で enc/shift_jis.c から切り出した enc/shift_jis.h がコミット漏れしてたので追加しています。
naruse: r60969 2017-12-01 23:32:12 +0900
r60755 の正規表現の absent operator を使った時のマッチ範囲の不具合修正を再度適用しています。
naruse: r60970 2017-12-02 00:09:41 +0900
標準添付ライブラリ uri で scheme が file と postgres の URI の to_s メソッドで file:/path のように '//' が含まれていなかったのを file:///path のようになるように修正しています。慣習的にこうなるもんだと思ってましたが https://url.spec.whatwg.org/#url-serializing で明示的に file scheme については記述があるみたいです。
svn: r60971 2017-12-02 00:09:42 +0900
version.h の日付更新。
eregon: r60972 2017-12-02 00:41:23 +0900
ruby/mspec に upstream からマージしています。
eregon: r60973 2017-12-02 00:41:50 +0900
ruby/spec に upstream から最新版をマージしています。
svn: r60974 2017-12-02 00:41:52 +0900
r60973 の spec/ruby/language/fixtures/begin_file.rb でファイル末尾に改行コードがなかったので追加しています。
eregon: r60975 2017-12-02 02:51:16 +0900
ruby/spec もう一度 upstream からマージしています。 TracePont のテストで TracePoint#disable を ensure 節に移動して trace がリークするのを防いでいるようです。
nobu: r60976 2017-12-02 12:12:50 +0900
tool/enc-unicode.rb で uniname2ctype_p() や uniname2ctype_hash() の引数の size_t 型を unsigned int に変更するようにしています。コミットログによると gperf 3.1 対応だそうです。
nobu: r60977 2017-12-02 12:12:51 +0900
make update-unicode-property-files でダウンロードする Unicode のデータファイルに emoji-data.txt を追加しています。また casefold.h を gperf 3.1 を使って再生成しているみたいです。
nobu: r60978 2017-12-02 12:16:01 +0900
r60977 で make update-unicode-property-files で emoji-data.txt のダウンロード時に表示するメッセージの version を $(UNICODE_VERSION) から $(UNICODE_EMOJI_VERSION) に変更しています。
nobu: r60979 2017-12-02 16:09:16 +0900
rb_external_str_new_with_enc() で Ruby の管理していないメモリ領域をバッファとして持つ String オブジェクトを生成する時に、ptr が NULL だったら rb_tainted_str_new_with_enc() を使って普通の文字列オブジェクトを生成するようにしています。バッファ領域が NULL だったら特別扱いする必要はないし search_nonascii() を呼ぶと SEGV してしまうため。 [ruby-core:84055] [Bug #14150]
shugo: r60980 2017-12-02 19:54:39 +0900
Module#refine でモジュールに対する refinements を定義した時にその Module や include したクラスが GC で解放される時に SEGV など異常終了が起きる不具合を修正。 Module#refine で引数の klass が Module だった時に RCLASS_SET_SUPER() のかわりに rb_include_module() で Module#include 相当の処理をするようにしています。うーん Refinements 難しい。 [ruby-core:83617] [Bug #14070]