今日は USE_LAZY_LOAD を有効にした時の修正や、FileUtils#mkdir_p の Cygwin での不具合修正などがありました。
nobu: r57637 2017-02-16 11:47:21 +0900
win32/win32.c でコマンドラインの処理に strlcpy() を使っていたところを memcpy() を使うように修正しています。
svn: r57638 2017-02-16 11:47:22 +0900
version.h の日付更新。
ko1: r57639 2017-02-16 17:24:37 +0900
proc.c の rb_block_min_max_arity() でブロックの rb_iseq_t を参照するときに rb_iseq_check() を呼ぶようにしています。 USE_LAZY_LOAD が有効な時に rb_iseq_t が NULL の可能性があるので rb_iseq_complete() で遅延したロード(r52949 で ISeq のロード機能カスタマイズを追加した時に追加されてた)する時に必要だったようです。
nobu: r57640 2017-02-16 17:42:22 +0900
標準添付ライブラリ fileutils の FileUtils#mkdir_p でルートディレクトリは作る必要がないので mkdir する対象から外しています。 Cygwin で root は mkdir できなくなっていたそうです。 [ruby-core:79529] [Bug #13214]
ko1: r57641 2017-02-16 18:15:26 +0900
vm_core.h の vm_block_iseq()、vm_insnhelper.c の vm_invoke_iseq_block() などでも rb_iseq_t の利用時に rb_iseq_check() を挟むようにして USE_LAZY_LOAD 対策しています。
nobu: r57642 2017-02-16 23:48:12 +0900
もう不要になったはずの(?) rb_generic_ivar_table() の中身を ONLY_FOR_INTERNAL_USE() マクロを使って rb_fatal() で異常終了させるようにしています。