ruby-trunk-changes r57637 - r57642

今日は 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() で異常終了させるようにしています。