From: matz@... (Yukihiro Matsumoto) Date: 2004-01-20T02:40:09+09:00 Subject: [ruby-dev:22633] Re: marshaling a object which have singleton class which have singleton method まつもと ゆきひろです In message "[ruby-dev:22631] Re: marshaling a object which have singleton class which have singleton method" on 04/01/19, Tanaka Akira writes: |> 特異メソッドが付いているとそのオブジェクトの挙動が変化するの |> でdump/loadで意味が保存される保証がない、というのが特異メソッ |> ドを持つオブジェクトがdumpできない理由なのですが、クラスに特 |> 異メソッドが付いていてもそのオブジェクトの挙動は変化しないの |> で、禁止する理由はないと思います。 | |marshal というのは、あるオブジェクトからたどれるものをすべて書き出すも |のであり、特異クラスもたどれることには違いないため、そのオブジェクトの |挙動が変化しないという理由は納得し難いものがあります。 もともとmarshalはすべてのリンクを平等に扱っているわけでなく、 クラスへのリンクはたどってもその名前だけを見て、特異性を重視 しないようにしています。でないとクラスメソッドに対応できませ んから。 |... と思ったらどうやら次のように常に失敗するようになっているようで、こ |れは意図されていない挙動ではないかと思います。 一箇所、singleton_methodのスキップを忘れてました。