[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Issue COMPILE-FILE-HANDLING-OF-TOP-LEVEL-FORMS, version 8
- To: cl-compiler@sail.stanford.edu
- Subject: Issue COMPILE-FILE-HANDLING-OF-TOP-LEVEL-FORMS, version 8
- From: alarson@src.honeywell.com (Aaron Larson)
- Date: Sun, 8 Jan 89 15:30:47 CST
- In-reply-to: Sandra J Loosemore's message of Sat, 7 Jan 89 10:32:22 MST <8901071732.AA08861@defun.utah.edu>
- Posted-date: Sun, 8 Jan 89 15:30:47 CST
...
(2) The affected defining macros and their specific side effects are
as follows....
DEFCONSTANT: The compiler must recognize that the symbol names a
constant. An implementation may choose to evaluate the value-form at
compile time, load time, or both. Therefore users must ensure that
the value-form is evaluable at compile time (regardless of whether or
not references to the constant appear in the file) and that it always
evaluates to the same value.
Presumably this would make (defconstant foo (list 'a)) an error. Why is it
necessary to permit an implementation to evaluate the constant form at both
compile and load time?
Several references to "the same file" Does this mean that the compiler can
(or is required to) forget the info once the file has been compiled?
Presumably if the compiler compiles a definition of FOOMAC, then loads a
different version of FOOMAC (say from a different file) later compilations
will use the LOADED version right? I.e. there must be some precedence
between databases maintained by the compiler and the interpreter if they
are allowed to be separate.
DEFSTRUCT: ... The #S reader syntax may or may not be
available at compile time.
Can't this be resolved one way or the other?
DEFINE-CONDITION: The rules are essentially the same as those ...
DEFCLASS: The compiler must make the class name be recognized ...
DEFGENERIC and DEFMETHOD: These are not required to perform ...
The descriptions of DEFCLASS, DEFGENERIC, and DEFMETHOD are significantly
weeker than the specification of what they do we just received in the CLOS
chapter 3 spec. If conditions were allowed/required to be classes, then
similar things would apply to DEFINE-CONDITION. Perhaps these should be
dropped, in favor of the CLOS spec.
DEFINE-METHOD-COMBINATION: The compiler is not required to perform
any compile-time side-effects.
The CLOS spec is silent about DEFINE-METHOD-COMBINATION (at least as far as
I've read), but I presume similar comments apply.