Common Lisp Package: ELEPHANT-SERIALIZER1

README:

FUNCTION

Private

CLEAR-CIRCULARITY-HASH

This handles the case where we store an object with lots of object references. CLRHASH then starts to dominate performance as it has to visit ever spot in the table so we're better off GCing the old table than clearing it

DESERIALIZE (BUF-STR SC)

Deserialize a lisp value from a buffer-stream.

INT-BYTE-SPEC (POSITION)

Shared byte-spec peformance hack; not thread safe so removed from use for serializer2

SERIALIZE (FROB BS SC)

Serialize a lisp value into a buffer-stream.

SLOTS-AND-VALUES (O)

List of slot names followed by values for object

TRANSLATE-AND-INTERN-SYMBOL

Service for the serializer to translate any renamed packages or symbols and then intern the decoded symbol.

Undocumented

%BIGNUM-REF (BIGNUM I)

ARRAY-TYPE-FROM-BYTE (B)

BYTE-FROM-ARRAY-TYPE (TY)

DESERIALIZE-BIGNUM (BS LENGTH POSITIVE)

DISABLE-SERIALIZER-TRACING

ENABLE-SERIALIZER-TRACING

PRINT-POST-DESERIALIZE-TAG (VALUE)

GENERIC-FUNCTION

Private

DATABASE-VERSION (SC)

Data stores implement this to store the serializer version. The protocol requires that data stores report their database version. On new database creation, the database is written with the *elephant-code-version* so that is returned by database-version. If a legacy database does not have a version according to the method then it should return nil

Undocumented

COMPUTE-SLOTS (CLASS)

CONTROLLER-RECREATE-INSTANCE (SC OID &OPTIONAL CLASSNAME)

SLOT-ACCESSOR

Private

OID (OBJECT)

All persistent objects have an oid

SETFOID (NEW-VALUE OBJECT)

All persistent objects have an oid

Undocumented

SLOT-DEFINITION-ALLOCATION (SLOTD)

SETFSLOT-DEFINITION-ALLOCATION (NEW-VALUE STANDARD-SLOT-DEFINITION)

SLOT-DEFINITION-NAME (SLOT-DEFINITION)

SETFSLOT-DEFINITION-NAME (NEW-VALUE SLOT-DEFINITION)

VARIABLE

Private

*CIRCULARITY-HASH*

Circularity hash for the serializer.

*LISP-OBJ-ID*

Circularity ids for the serializer.

Undocumented

*TAG-TABLE*

*TRACE-SERIALIZER*

CONSTANT

Private

Undocumented

+ADJUSTABLE-P+

+ARRAY+

+CHAR+

+CONS+

+DOUBLE-FLOAT+

+FILL-POINTER-P+

+FIXNUM+

+HASH-TABLE+

+NEGATIVE-BIGNUM+

+NIL+

+OBJECT+

+PERSISTENT+

+POSITIVE-BIGNUM+

+RATIONAL+

+RESERVED-DBINFO+

+SINGLE-FLOAT+

+UCS1-PATHNAME+

+UCS1-STRING+

+UCS1-SYMBOL+

+UCS2-PATHNAME+

+UCS2-STRING+

+UCS2-SYMBOL+

+UCS4-PATHNAME+

+UCS4-STRING+

+UCS4-SYMBOL+