なひです。

どうもこのネタはなひだけ噛み合ってないのですが、間違いがあれば
早めに教えてもらいたいので出てきました。

> From: <m_seki / mva.biglobe.ne.jp>
> Sent: Thursday, October 09, 2003 7:06 AM

> 2003-10-02にてインスタンス変数はすべてダンプするように
> なっていますが、どうしてこうなったんでしたっけ?

たぶんこれは、r1.91(7/29)にmarshal_dumpが入った時に
実装された機能だと思います。で、LL Saturday前日(8/8)に
なひがヘンなこと言ったせいで一旦削除されて、10/2に復活、と。
8/8移行の経緯については、なひは付いていけてません。

> Marshalのカスタマイズって、出力するオブジェクトを制御するんですよね。
> 一般的な目的って
> 
>  * あるインスタンス変数は出力したくない。
>    (たとえばキャッシュデータとか)
>    * そんで、別のオブジェクトを出力しておいたりもする。
> 
> だと思うんですがどうでしょう。

こういう用途については、従来どおり#_dump/_loadを使う、という
ことかな、と思っています。

> 現状の作戦は、入力するオブジェクトを制御せよ、ってとこですか?
> 
>  dump
>  * なんでも出力
>  * 追加情報も出力
> 
>  load
>  * なんでも復元
>  * 追加情報も復元
>    * これを使って復元してしまって出力したくなかったものを置き換え!?

marshal_dump/marshal_loadでは、そういうことだと理解しています。

> どっちが使いやすいのかよくわからないのですが、現状の作戦って
> すこし奇妙(なんていうの?びっくり??)な感じがします。
> 
> ところで、ダンプできないものがあったことを知れないのが
> なんとなく不安です。

なひも[ruby-dev:21478]に書いてみたのですが、
marshal_dump/marshal_loadの導入の意図が今ひとつ理解できて
いません。咳さんの書かれている通り、なひも、わりとびっくりな
仕様だと思うんですが、誰がどのように使うために導入されたの
かな。。。