ruby-trunk-changes r29680 - r29683

毎日コミットを見ていると、twitter などで Ruby のバグを踏んだらしいツイートをみると「それはきっとあれだ! trunk では直ってます」というようなパトロールスキルがアップしている気がします。また通常はプログラムが SEGV するとがっかりしたりイラッとしたりするものですが、ruby が SEGV するとちょっと嬉しかったりします。立派なマゾですね。

mame:r29680 2010-11-04 02:08:25 +0900

Fiber はその Fiber の実行中に自分自身を resume しようとすると例外を発生させますが、root fiber の時は最初の1回だけ例外にならなかったそうです。[Bug #4019]

svn:r29681 2010-11-04 02:08:30 +0900

version.h の日付変更

mame:r29682 2010-11-04 02:08:35 +0900

Fiber#initialize を(無理矢理)何度も呼ぶとその度 rb_fiber_t を確保してポインタをすりかえてたので、二度目以降の initialize で例外を発生させるようにしています。[Bug #4020]
initialize を複数回呼ぶというのは通常は想定しないと思うので拡張ライブラリをチェックするとこの手のバグは他にもありそうな気がしますね。いつかネタにしよう……。

shyouhei:r29683 2010-11-04 10:34:35 +0900

configure の --with-valgrind というオプションのデフォルトが on になっています。
このオプションは valgrind でメモリチェックをする時に、GC ではポインタかもしれない値がRubyが管理しているヒープの中に入るかどうか判定するところで本来ポインタでないものをポインタっぽく扱うために memcheck が誤検出してエラーを沢山報告してしまうので、valgrind にそれを無視させる命令を埋め込むようにするというもののようです。