From: "NAKAMURA, Hiroshi" Date: 2003-08-11T13:33:46+09:00 Subject: [ruby-dev:21176] marshalling ivtbl of Time なひです。 marshal_dumpと_dumpのいずれかが定義されていた場合、 ivtblの中身がdumpされないことになりましたが(そのほうが嬉しいと なひも賛成しました)、組み込みクラスの中でおそらく唯一、 デフォルトで_dumpを持っているTimeはどう扱うべきでしょうか。 t = Time.new; t.instance_eval("@a = 1"); t2 = Marshal.load( Marshal.dump(t)); p t2.instance_variables # => []? ["@a"]? 過去どうだったか、正確に覚えてはいないのですが、1.6、現行の1.8は dumpされないものの、半年くらい前の1.8はdumpされたと思います (なひが以前書いたテストケースが正しければ)。 「組み込み型については、marshal_dumpや_dumpをユーザが定義しない限り、 ivtblはdumpされる」というルールのほうがわかりやすいような気がしますが、 どうでしょうか。time_dumpはmarshal.cへ? あるいは組み込み型用API新設? あるいはTimeは特別?