なかだです。

At Fri, 11 Aug 2006 19:34:17 +0900,
Tanaka Akira wrote in [ruby-dev:29255]:
> 以下のように、Marshal で dump した結果が load できないことがあるようです。
> 
> % ./ruby -e 'Marshal.dump(0, STDOUT)'|./ruby -ve 'Marshal.load(STDIN)'
> ruby 1.9.0 (2006-08-09) [i686-linux]
> -e:1:in `Marshal#load': incompatible marshal file format (can't be read) (TypeError)
>         format version 4.8 required; 52.42 given        from -e:1

SIZEOF_INT == SIZEOF_LONG だと、FIX2INTとかはなんにもチェックし
ないんですよねぇ。


Index: marshal.c =================================================================== RCS file: /cvs/ruby/src/ruby/marshal.c,v retrieving revision 1.126 diff -p -U 2 -r1.126 marshal.c --- marshal.c 9 Jun 2006 21:20:12 -0000 1.126 +++ marshal.c 11 Aug 2006 10:51:50 -0000 @@ -758,5 +758,5 @@ r_byte(struct load_arg *arg) VALUE v = rb_funcall2(src, s_getc, 0, 0); if (NIL_P(v)) rb_eof_error(); - c = (unsigned char)FIX2INT(v); + c = (unsigned char)NUM2CHR(v); } return c;
-- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦