[ruby-dev:39848] Re: [ruby-cvs:33238] Ruby:r26022 (trunk): * marshal.c (w_object): dump instance variables when using

From: Yukihiro Matsumoto <matz@...>
Date: 2009-12-06 22:13:24 UTC
List: ruby-dev #39848
まつもと ゆきひろです

In message "Re: [ruby-dev:39845] Re: [ruby-cvs:33238] Ruby:r26022 (trunk): * marshal.c (w_object): 	dump instance variables when using"
    on Sun, 6 Dec 2009 09:29:34 +0900, Tanaka Akira <akr@fsij.org> writes:

|そうやって dump すると、dump できないものが入っていたときに
|dump 不能になります。

|以前、[ruby-dev:21475] でも指摘したことがありますが。

本来ならオブジェクトの復元に必要な情報はすべてmarshal_dumpで
供給されるべきなんでしょうね。そういう意味では、インスタンス
変数の復元は行わない方がよいということになるわけですが、すで
に行ってきているわけで、互換性も気になりますねえ。これは私の
設計ミスです。

互換性との兼ね合いを考えると「dumpできないオブジェクトを指す
インスタンス変数は無視」というのがひとつのやり方ですが、現在
の実装では実際にdumpしないとdumpできないかとうかわからないわ
けですし、一度dumpしてしまったものをキャンセルする機能も提供
していませんし、いろいろ面倒ですね。

In This Thread