[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: issue CLOS-MACRO-COMPILATION, version 1
- To: David N Gray <Gray@DSG.csc.ti.com>
 
- Subject: Re: issue CLOS-MACRO-COMPILATION, version 1
 
- From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
 
- Date: Sat, 11 Mar 89 17:58 EST
 
- Cc: Sandra J Loosemore <sandra%defun@cs.utah.edu>, cl-compiler@sail.stanford.edu,    common-lisp-object-system@sail.stanford.edu
 
- In-reply-to: <2814566813-5018117@Kelvin>
 
    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.