>>>>> "M" == Mathieu Bouchard <matju / sympatico.ca> writes:

M> does the same here. i call that a bug. some diagnostics:

 shortlen which is false, it must return the number of short written

pigeon% diff -u marshal.c~ marshal.c
--- marshal.c~  Tue Dec  5 10:36:31 2000
+++ marshal.c   Mon Mar 19 19:14:47 2001
@@ -46,7 +46,7 @@
        num = SHORTDN(num);
        offset++;
     }
-    return len*sizeof(BDIGIT)/sizeof(short) - offset;
+    return (len - 1)*sizeof(BDIGIT)/sizeof(short) + offset;
 }
 #define SHORTLEN(x) shortlen((x),d)
 #endif
pigeon% 

pigeon% ./ruby -ve 'p Marshal.load  Marshal.dump 123456789012345678'
ruby 1.6.3 (2001-03-19) [i686-linux]
123456789012345678
pigeon% 

 Someone can verify ?


Guy Decoux