[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.