From: Yukihiro Matsumoto Date: 2012-03-18T00:26:12+09:00 Subject: [ruby-dev:45381] Re: Marshal.dumpにおけるインスタンス変数の取り扱いについて まつもと ゆきひろです In message "Re: [ruby-dev:45377] Re: Marshal.dumpにおけるインスタンス変数の取り扱いについて" on Sat, 17 Mar 2012 15:06:10 +0900, keiju@ishitsuka.com (石塚圭樹) writes: |>あと、むしろNumericのサブクラスであるBignumとFloatでインスタンス変数 |>を無視するようにしたいくらいですね。 | |私も後者だろうと思ったのですが, BignumとかFloatでもインスタンス変数を |持つ実装やサブクラスがあってもおかしくはないので, やはり現行が無難な気 |がしてきました. まあ、以前はComplexとか通常のオブジェクトでしたからね。 Numericの下だからという理由でインスタンス変数を全部削られた らそれはそれで困るでしょうが。ただ、T_OBJECTでないFloatや Bignumはやっぱり無視してもいいような気がします。 |ところで, すごーく細かい話なのですが, | |rb_marshal_define_compat() で | | : | compat = ALLOC(marshal_compat_t); | compat->newclass = Qnil; | compat->oldclass = Qnil; | compat->newclass = newclass; | compat->oldclass = oldclass; | : | |と一度Qnilを代入しているのですが, これはなぜでしょうか? なんでなんでしょうねえ。akrさんのr13413からそうみたいなんで、 彼に聞いてみないと。