[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Versioning



One of the topics discussed at the meeting last week was versioning. I 
have given some thought to this, and I think a better way to it would
be to use something like Stan Zdonick's VERSIONED-OBJECT class as a
metaclass, from which all versioned classes and versioned instances
are created. Instances would have a write through cache which contained
the current slot value, and writes to slots would cause updates to
a data structure (AVL-DAG's are nice) which maintained the different
versions of slot values. This protocol could be implemented with
SLOT-VALUE-USING-CLASS.

Changes in slots could be maintained in a similar fashion, except
UPDATE-INSTANCE-STRUCTURE, ADD-NAMED-CLASS, and CLASS-FOR-REDEFINITION
would have to be modified to cause the newly updated class to store
added and deleted slots in a data structure and similarly for the
slot values in instances.

As far as methods go, as with STANDARD-CLASS, all the old ones would
apply, though the class update protocol could be modified to check for
cases where modifications are needed.

		jak