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

Re: Amendments requiring additional writing



    Date: 1 Oct 87 08:35 PDT
    From: Danny Bobrow <Bobrow.pa@Xerox.COM>

    I mostly agree.  I notice consturctors still in there, although that is
    not yet agreed to. But the oner serious remaining problem is in the
    wording of the last paragraph (not a new one):
	The \CLOS\ guarantees that {\bf defclass} can be used to change
	the definition of an existing class that was previously defined by
	{\bf defclass} as long as the {\bf :metaclass} option is not used
	in either the old or the new definition.  Whether {\bf defclass} is
	allowed to change the metaclass and whether redefining a class
	causes existing instances to be updated is up to the implementor of
	the particular metaclass.  ``The \CLOS\ Meta-Object Protocol'' will
	describe how to control this.

    The problem is that defclass without a metaclass option can be used with
    class-for-redefinition to keep the class other than standard-class.  I
    would prefer to say:

	The \CLOS\ guarantees that the user can change
	the definition of an existing class that is a standard-class,
	and cause its instances to be updated. 
	Whether redefining a class that is not a standard-class
	causes existing instances to be updated is up to the implementor of
	the particular metaclass.  ``The \CLOS\ Meta-Object Protocol'' will
	describe how to control this. 

I can't see any difference between these two paragraphs, except that your
suggested replacement is less direct, because the reader has to turn elsewhere
to find out what a standard-class is.  As far as I can tell there are no
programs that would work under the first paragraph but not under the second.

However, I continue to have almost no opinion on metaclass issues until I
have seen a description of metaclasses that I can understand.