Clean up serialization

db4
Slava Pestov 2008-03-31 02:30:06 -05:00
parent 309ffc53ef
commit 30a7238f71
1 changed files with 12 additions and 9 deletions

View File

@ -90,13 +90,13 @@ M: float (serialize) ( obj -- )
M: complex (serialize) ( obj -- ) M: complex (serialize) ( obj -- )
CHAR: c write1 CHAR: c write1
dup real-part (serialize) [ real-part (serialize) ]
imaginary-part (serialize) ; [ imaginary-part (serialize) ] bi ;
M: ratio (serialize) ( obj -- ) M: ratio (serialize) ( obj -- )
CHAR: r write1 CHAR: r write1
dup numerator (serialize) [ numerator (serialize) ]
denominator (serialize) ; [ denominator (serialize) ] bi ;
: serialize-seq ( obj code -- ) : serialize-seq ( obj code -- )
[ [
@ -120,7 +120,8 @@ M: array (serialize) ( obj -- )
M: quotation (serialize) ( obj -- ) M: quotation (serialize) ( obj -- )
[ [
CHAR: q write1 [ >array (serialize) ] [ add-object ] bi CHAR: q write1
[ >array (serialize) ] [ add-object ] bi
] serialize-shared ; ] serialize-shared ;
M: hashtable (serialize) ( obj -- ) M: hashtable (serialize) ( obj -- )
@ -234,10 +235,12 @@ SYMBOL: deserialized
] if ; ] if ;
: deserialize-gensym ( -- word ) : deserialize-gensym ( -- word )
gensym gensym {
dup intern-object [ intern-object ]
dup (deserialize) define [ (deserialize) define ]
dup (deserialize) swap set-word-props ; [ (deserialize) swap set-word-props ]
[ ]
} cleave ;
: deserialize-wrapper ( -- wrapper ) : deserialize-wrapper ( -- wrapper )
(deserialize) <wrapper> ; (deserialize) <wrapper> ;