ruby-trunk-changes r59414 - r59417

今日は文字列リテラル内の \u{xxxx} 記法が長すぎる時の不具合修正などがありました。

nobu: r59414 2017-07-25 10:08:51 +0900

拡張ライブラリ socket の extconf.rb で cross compile の時と同様に mingw や mswin の環境で getaddrinfo() と getnameinfo() のが利用できるかのチェックを skip するようにしています。 Windows 環境で なんらかの理由で extconf.rb でチェック用にコンパイルしたものが異常終了することがあるそうです。

svn: r59415 2017-07-25 10:08:52 +0900

version.h の日付更新。

normal: r59416 2017-07-25 14:55:22 +0900

dir.c の ruby_brace_expand() に引数 VALUE var を追加して、その中で RB_GC_GUARD() で保護するようにしています。呼び元の push_glob() などで第1引数に渡す char * を持っている String オブジェクトが一時的に生成されたオブジェクトの可能性があるので、最適化による mark 漏れで操作中のバッファのメモリが解放されないように保護するためみたいです。

nobu: r59417 2017-07-25 17:30:11 +0900

文字列リテラル内の \u{xxxx} 記法で長すぎる codepoint は例外を発生させるようにしています。 r57050 で空っぽの \u{} を許容するようにした時に意図せず6桁ごとに複数の文字に分割するようになってしまっていたようです。