今日は数は少ないですがおもしろいコミットがあったのでちょっと遊んでみました。 nobu:r29518 2010-10-17 10:40:22 +0900 こちらも次の r29519 に絡んで発覚したものと思われますが、ネストした Module や Class を定義した時に rb_gc_register_mark_object を呼んでそれを GC のルートに追加しています。テストを見ると、 assert_normal_exit('File.__send__(:remove_const, :Stat); at_exit{File.stat(".")}; GC.start') こんな感じなので、「C で実装されているメソッドからは定数を(VALUE 型の変数で直接)アクセスできてしまうけど、remove_const で消されていると GC で回収されていて SEGV」みたいな状況なのだろうと