From: nobu.nakada@... Date: 2003-10-14T12:52:35+09:00 Subject: [ruby-list:38545] Re: marshal_dump (was Re: ) なかだです。 At Tue, 14 Oct 2003 12:34:22 +0900, Yukihiro Matsumoto wrote: > |こんなことをしておくと、Fooのserialized formatを読み込む際、 > |readObjectで新たなFooインスタンスが生成されたあと、そいつの > |readResolveメソッドが呼ばれ、返ってきたsingletonが、読み込む > |オブジェクトグラフ中に代わりに埋め込まれます。readObjectで > |作られた新たなFooインスタンスはすぐに捨てられます。 > |readResolveが呼ばれるタイミングは、serialize formatを読み込んで > |いく最中、readObjectを呼んでオブジェクトの構築が終わった直後です。 > |http://java.sun.com/j2se/1.3/docs/guide/serialization/spec/input.doc6.html > > だいたい理解できました。私の理解が正しいとすると、Rubyなら > marshal_loadがちょうどreadResolveに相当するのではないでしょ > うか。readObjectがないぶん簡単と言うか、柔軟性が低いと言うか。 marshal_loadの戻り値を使うようにするということでしょうか。 marshal_dumpされたものだけでなくてすべてについてreadResolveして くれると、古いバージョンでダンプしたFile::Statなんかもそのまま ロードできるようになるんじゃないかなぁ、と思いました。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦