ruby-trunk-changes r55540 - r55546

今日は cgi の escape の拡張ライブラリ版のリファクタリングunicode の casemap で Unicode バージョン番号のチェックの追加などがありました。

nobu: r55540 2016-06-30 13:16:43 +0900

標準添付ライブラリ cgiCGI.escape を拡張ライブラリ化したもので @@accept_charset というクラス変数の Symbol を毎回 rb_intern() していたのを初期化時に1回だけやって結果を static 変数に格納しておくようにしています。

svn: r55541 2016-06-30 13:16:44 +0900

version.h の日付更新。

nobu: r55542 2016-06-30 14:45:35 +0900

同じく ext/cgi/escape/escape.c で文字列のパターンマッチしているところでマッチさせる文字列のサイズを分岐毎にマジックナンバーで書いていたので、rb_strlen_lit() でリテラルのサイズを得て使うようにマクロ化したものを使うようにリファクタリングしています。

nobu: r55543 2016-06-30 16:31:06 +0900

common.mk で lib/unicode_normalize/tables.rb の生成を制御するためのタイムスタンプファイルをソースディレクトリ直下でなくて $(UNICODE_SRC_DATA_DIR) の下に作るようにしています。このサブディレクトリはバージョン番号を含んでいるのでバージョンアップの時に再作成されなくなるのを防いでいるようです。

nobu: r55544 2016-06-30 17:13:27 +0900

拡張ライブラリ stringio のテストで確保したメモリのアドレスに依存した不具合のテストであきらめるまでの繰り返し回数を減らしています。一部プラットフォームでタイムアウトしてしまうため。

nobu: r55545 2016-06-30 17:13:28 +0900

enc/unicode/case-folding.rb の CaseFonding と CaseMapping に @version というインスタンス変数を追加してデータファイル間でバージョン番号が一致しているかのチェックを追加しています。

nobu: r55546 2016-06-30 17:24:11 +0900

enc/unicode/case-folding.rb で生成する enc/unicode/casefold.h にバージョン番号の定数マクロを定義しておくようにしています。