Clean up serialization
parent
309ffc53ef
commit
30a7238f71
|
@ -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> ;
|
||||||
|
|
Loading…
Reference in New Issue