[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: issue CLOS-MACRO-COMPILATION, version 1
Date: Fri, 10 Mar 89 18:06:53 CST
From: David N Gray <Gray@DSG.csc.ti.com>
> Proposal CLOS-MACRO-COMPILATION:MINIMAL:
...
> DEFMETHOD:
>
> * The method is not callable at compile-time. If there is a generic
> function with the same name at compile-time, compiling a DEFMETHOD
> will not add the method to that generic function.
>
> [This also seems to imply that tests for existence of the generic
> function, lambda-list congruence, etc. must not happen until
> load time.]
No, an implementation should be permitted to check for lambda-list
congruence between methods defined in the same file; this doesn't
require any reference to the resident generic function definition. If
the file doesn't include a DEFGENERIC, then the first DEFMETHOD defines
the compile-time generic function attributes, and subsequent methods can
be checked against that.
Agreed. I would phrase it differently: all the DEFGENERICs and DEFMETHODS
for a given generic function name in a given compilation unit can be checked
against each other for lambda-list congruence.
> DEFINE-METHOD-COMBINATION:
>
> * The method combination can be used in a subsequent DEFGENERIC. If it
> is referenced, the body of a long form of method combination must be
> evaluable at compile-time.
But if methods are not installed at compile time and generic functions
are not callable at compile time, then I don't think there is any
situation in which the method combination body could be executed at
compile-time.
Some implementations compose and compile effective methods at compile
time, which of course requires evaluating the body of the
define-method-combination at compile time.
I haven't read Sandra's proposal yet.