立山と申します.

ruby 本を読んでからニワカに ruby を使いはじめた者です.

ちと不思議に思っていることがあります.
主に ruby-1.4.2 を linux-ix86 redhat 6.0 で使っているのですが,
ruby-1.4.3 でも多分同じ現象が起こると思われます.

ビルトインクラスのサブクラスのインスタンスを Marshal
しようとしているのですが,
dump した後, load しても, 新たに追加したインスタンス変数の値が
元に戻ってくれません.

このあたりはどうなっているのでしょうか.

1) 立山の勘違いである.
2) こういうポリシーである.
3) こういう仕様である.
4) この説明は〜にある.
5) これには実装上の深い理由がある
6) バグかも.
	前に ruby-1.4.2/marshal.c をちらっと見たことがあったのですが,
	すぐに読む気がなくなっちまいました.

「subclassing はよくない. object composition を使え」と
言われてしまいそうですが, あればあったで便利そうな機能だと思うのです.
御存知の方, よろしく御回答のほどお願いします.

# 1 - 4 だと ruby-list ネタになってしまうのかもしれませんが,
# 流量の多さにビックリして, こちらに寄せさせていただきました.

					たてやま

class Test1<Hash
  def set(d)
    @data = d
  end
  def printme
    print @data, "\n"
  end
end

a = Test1.new
a.set("aoeu")
a.printme

a = Marshal.load(Marshal.dump(a))
a.printme