[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Versioning
Date: Fri, 18 Dec 87 17:08:09 MST
From: kempf%hplabsz@hplabs.HP.COM
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.
That's interesting. We have something very much like this in Statice.
In fact, it is called versioned-entity. We implement it with macros;
that is, you don't just say DEFCLASS (what you really don't say is
DEFFLAVOR, but you know what I mean) but you say DEFINE-ENTITY-TYPE, and
it expands into a lot of stuff including little caching accessor
methods, a DEFFLAVOR with extra instance variables to hold the cache
validation state, and so on.
I'd like to find out more about Zdonik's VERSIONED-OBJECT class. Is
this written up anywhere, or is source code available, or anything like
that? Thanks.