Issue #1711 has been updated by Yusuke Endoh.

Status changed from Open to Rejected

Hi,

In 1.9, proc is called for each node of object tree,
even if the node is recursive.

> $ ruby -e 'a=[1]; a << a; Marshal.load(Marshal.dump(a), proc {|e| p e})'
> 1          # First element
> [1]        # Second element (recursive node; array itself)
> [1, [...]] # Generated array

In 1.8, the recursive node is passed to proc just once.

> $ ruby -e 'a=[1]; a << a; Marshal.load(Marshal.dump(a), proc {|e| p e})'
> 1          # First element
>            # Second element is not called because it is recursive
> [1, [...]] # Generated array

According to matz, this is intended spec change.

There is no problem anywhere.  So I close this ticket.

-- 
Yusuke Endoh <mame / tsg.ne.jp>
----------------------------------------
http://redmine.ruby-lang.org/issues/show/1711

----------------------------------------
http://redmine.ruby-lang.org