From: Shin'ya Adzumi Date: 2002-04-11T19:09:00+09:00 Subject: [ruby-dev:16847] Marshal::load failed at built-in class(ruby-1.6) あづみです。 例えばインスタンス変数を追加した Array のインスタンスを Marshal::dump して得られた文字列を、Marshal::load に食べさせるとエラーになります。 $ ruby -v -e ' a = [] a.instance_eval{@a=1} Marshal::load(Marshal::dump(a)) ' # => -e:4:in `load': dump format error (user class) (ArgumentError) 1.6.5 以前だと OK で、 Fri Oct 5 15:27:30 2001 Yukihiro Matsumoto * marshal.c: backport from 1.7 marshal.c で、TYPE_UCLASS に追加したチェックがまずいようです。 ちなみに、Marshal::dump した文字列は、 ruby-1.6.7 : "\004\006IC:\nArray[\000\006:\a@ai\006" ruby-1.7.2 : "\004\aI[\000\006:\a@ai\006" となって、1.7 だとTYPE_UCLASS にならないので問題ないようです。 安積伸弥 adzumi@denpa.org