ruby-trunk-changes r57152 - r57159

nobu: r57152 2016-12-23 05:58:55 +0900

ruby.c の FL_XXXX のビットフラグの定数に VALUE への明示的なキャストを含めるようにしています。 その他 RB_ALLOC_N() などメモリ確保のマクロや MEMZERO() などのメモリ操作のマクロでも明示的なキャストを追加しています。 また Qtrue, Qfalse, Qnil, Qundef などのマクロ名に RUBY_ と接頭語を付けていいます。従来の名前も #define はされています。

svn: r57153 2016-12-23 05:58:55 +0900

version.h の日付更新。

nobu: r57154 2016-12-23 07:16:19 +0900

String#casecmp? の rdoc 用コメントに非 ASCII 文字列が含まれていたのが Visual C++コンパイラで警告が出るそうなので \u{} 記法を使ったサンプルコードに書き直しています。

nobu: r57155 2016-12-23 07:34:18 +0900

r57142 でデバッグ用 rb_fatal() を仕込んだ time.c の cmp() ですがさらに詳しく x, y それぞれのアドレスが不正アクセスになるかどうか調べて詳しい情報を込みで rb_fatal() を呼ぶように専用の関数を定義して調査用コードを追加しています。 CI でしか起きてないんだろうなぁ。

nobu: r57156 2016-12-23 08:20:00 +0900

test/-ext-/string/test_modify_expand.rb の文字列サイズの拡張のオーバフローについてのテストで size_t が long よりもサイズが大きい環境ではスキップするようにしています。

nobu: r57157 2016-12-23 09:05:40 +0900

r57155 の調査の続きだと思われますが time.c に追加した inquire_value() に GC からの保護や即値オブジェクトの判定などを追加して、time_arg() でも vtm->subsecx をチェックするようにしています。

nobu: r57158 2016-12-23 12:22:35 +0900

test/lib/test/unit/assertions.rb で文法のチェックをするための assertion assert_valid_syntax と assert_syntax_error でチェックのため eval するかわりに RubyVM::InstructionSequence.compile を利用するように書きかえています。

nobu: r57159 2016-12-23 12:22:36 +0900

r57158 の assert_valid_syntax と assert_syntax_check から共通部分を prepare_syntax_check というメソッドに切り出しています。