なかださんかまつもとさん
遠藤です。

以下のようにすると T_ZOMBIE が見えてしまうのはバグでしょうか。


  $ ./ruby -ve '
  obj = "test"
  ObjectSpace.define_finalizer(obj, proc { begin; p obj; ensure; p $!; end })
  '
  ruby 1.9.2dev (2010-02-10 trunk 26632) [i686-linux]
  #<NotImplementedError: method `inspect' called on unexpected
T_ZOMBIE object (0x8248df0 flags=0x3e klass=0x0)>


[ruby-core:23918] で、obj への reference があるからこれは回収
されないようなことが書かれていますが、結局回収されるように
なっているようです。

[ruby-core:24095] でバグとして登録されていますが、どっちが
正しいのかよくわかりません。
rubyspec に回収されないことを確認する spec が入っていて、失敗
しています。

回収されるのが正解だとしたら、例外メッセージから unexpected は
消すべきだと思います。
見えないのが正解だとしたら、バグなんでしょう。

-- 
Yusuke ENDOH <mame / tsg.ne.jp>