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

Re: KCL bugs

The discussion on p. 69-70 of CLtL makes it quite clear that the
compiler should *not* evaluate all top level forms.  As far as defining
macros such as DEFMACRO and DEFVAR which appear at top-level, these may
expand into things wrapped in (EVAL-WHEN (EVAL COMPILE LOAD) ...) to get
the required effects, without requiring magical behavior on the part of
the compiler.  I have recently submitted a proposal to the CL cleanup
committee which attempts to clarify which defining macros should do what
at compile time.  I sent a preliminary version of this proposal to the
CL mailing list a week or two ago, and every response I got to it was

I agree that the special handling of the package functions required by
CLtL is kind of bizarre, and I would much rather see some kind of
DEFPACKAGE macro to do it.  However, since CLtL gives some definite
guidelines and examples on how to set up the package environment (calls
to the functions appearing in an established order at the beginning of a
file), it's my interpretation that a valid CL implementation should
support this as a minimum, at least so it can correctly handle the
examples in the book!