ruby-trunk-changes r30639 - r30644

今日は長い文字列を String#% や Float() に渡した時の不具合修正などが含まれています。

kosaki:r30639 2011-01-23 22:20:58 +0900

fiddle が利用できない時にテストをまるごとスキップするようにしています。

kosaki:r30640 2011-01-23 23:03:24 +0900

pty と io/console が利用できない時に test_io_console.rb のテストをスキップするようにしています。

nobu:r30641 2011-01-24 21:04:47 +0900

"%f" % ["aaa"] #=> invalid value for Float(): "aaa"

のような例外メッセージを作る時に、rb_invalid_str() で一時的に利用している文字列の変数がコンパイラの最適化によってスタックから消えて、使用中に GC の対象になってしまう不具合を修正しています。[ruby-core:34820] [Bug #4310]

svn:r30642 2011-01-24 21:04:49 +0900

version.h の日付更新。

kosaki:r30643 2011-01-24 21:30:02 +0900

Float() にとても長い文字列を渡した時に ALLOCA_N でスタック上に大きな領域を取ろうとしてスタックオーバフローを起こす危険性があったので ALLOC_N でヒープ上にコピーを置くように変更しています。

akr:r30644 2011-01-24 21:51:13 +0900

vm_insnhelper.h の関数マクロの引数にかっこをつける修正です。