Variable *RUCKSACK* The current rucksack (NIL if there is no open rucksack).
Generic Function OBJECT-ID Returns the object id of a persistent-object or persistent-data.
Generic Function P-EQL The persistent equivalent of EQL.
Class PROXY Proxies are some kind of in-memory forwarding pointer to data in the cache.
Class PERSISTENT-DATA PERSISTENT-DATA classes do not have PERSISTENT-CLASS as metaclass because we don't want to specialize SLOT-VALUE-USING-CLASS & friends for persistent-data instances.
Function UNWRAP-PERSISTENT-LIST Converts a persistent list to a 'normal' Lisp list.
Function P-CAAR The persistent equivalent of CAAR.
Function P-CADR The persistent equivalenet of CADR.
Function P-CDAR The persistent equivalent of CDAR.
Function P-CDDR The persistent equivalent of CDDR.
Function P-LAST Returns the last persistent cons cell of a persistent list (or NIL if the list is empty).
Macro P-POP Pop an item from the persistent list specified by PLACE.
Macro P-PUSH Push ITEM onto the persistent list specified by PLACE.
Class PERSISTENT-OBJECT Classes of metaclass PERSISTENT-CLASS automatically inherit from this class.
Function SLOT-DEF-AND-NAME Returns (1) slot definition and (2) slot name.
Constant +P-OBJECT+ The serialization marker for cached objects.
Method (SAVE-OBJECT T T STANDARD-CACHE T T) Serializes the object to a buffer, allocates a heap block of the right size and writes the buffer to the block.
Function FIND-COMMITTED-OBJECT-VERSION Returns the buffer, id, nr-slots and schema-id of the object containing the compatible version for the given transaction id.
Function LOAD-OBJECT-FIELDS Returns id, nr-slots, schema-id, transaction-id and prev-version (as 5 values).
When a persistent object must be loaded from disk, Rucksack loads the schema nr and finds the corresponding schema. If the schema is obsolete (i.e. there is a schema for the same class with a higher version number), Rucksack calls the generic function UPDATE-PERSISTENT-INSTANCE-FOR-REDEFINED-CLASS after calling ALLOCATE-INSTANCE for the current class version. The generic function is very similar to UPDATE-INSTANCE-FOR-REDEFINED-CLASS: it takes a list of added slots, a list of deleted slots and a property list containing the slot names and values for slots that were discarded and had values.