[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: issue COMPILE-FILE-HANDLING-OF-TOP-LEVEL-FORMS, version 7
- To: sandra%defun@cs.utah.edu (Sandra J Loosemore)
- Subject: Re: issue COMPILE-FILE-HANDLING-OF-TOP-LEVEL-FORMS, version 7
- From: David N Gray <Gray@DSG.csc.ti.com>
- Date: Thu, 29 Dec 88 19:52:57 CST
- Cc: cl-compiler@sail.stanford.edu
- In-reply-to: Msg of Fri, 16 Dec 88 15:32:10 MST from sandra%defun@cs.utah.edu (Sandra J Loosemore)
- Sender: GRAY@Kelvin.csc.ti.com
> DEFVAR, DEFPARAMETER: The compiler must recognize that the variables
> named by these forms have been proclaimed special. However, the it
> must not evaluate the initial value or SETQ the variable at compile
> time.
On the second line, "the it" -> "it".
> DEFSTRUCT: The compiler must make the structure type name recognized
> as a valid type name in subsequent declarations (as for DEFTYPE) and
> make the structure slot accessors known to SETF. In addition, the
> compiler must save enough information about the structure type so that
> further DEFSTRUCT definitions can :INCLUDE a structure type defined
> earlier in the file being compiled. The functions which DEFSTRUCT
> generates are not defined at compile time.
Shouldn't that last sentence say something like "... need not be defined
..."? Since the accessor functions commonly default to INLINE, they
often will be defined at compile time.
> DEFCLASS, DEFMETHOD, DEFGENERIC, DEFINE-METHOD-COMBINATION: More input
> is needed from the CLOS committee to decide what to do with these
> macros.
Since I've been working on compiler updates for supporting CLOS, let me
take a stab at this:
DEFCLASS: The compiler must make the class name be recognized as a
valid type name in subsequent declarations (as for DEFTYPE) and be
recognized as a valid class name for DEFMETHOD parameter
specializers and for use as the :METACLASS option of a subsequent
DEFCLASS. The compiler must make the class definition available to
be returned by FIND-CLASS when its environment argument is a value
received as the &ENVIRONMENT parameter of a macro.
DEFGENERIC and DEFMETHOD: These are not required to perform any
compile-time side effects. In particular, the methods are not
installed for invocation during compilation. An implementation may
choose to store information about the generic function for the
purposes of compile-time error-checking (such as checking the number
of arguments on calls, or noting that a definition for the function
name has been seen).
DEFINE-METHOD-COMBINATION: The compiler is not required to perform
any compile-time side-effects.