[slime-devel] CMUCL 20a startup issue
Tobias C. Rittweiler
tcr at freebits.de
Tue Nov 3 22:15:13 UTC 2009
Derrell Piper <ddp at electric-loft.org> writes:
> I promise to crawl back into my cave shortly...
>
> CMUCL 20a is barfing in swank-arglists when starting up SLIME from
> fasls. It loads fine on the initial compile pass but when it's just
> loading the swank-arglists fasl, it gets confused somewhere in here
> (contrib/swank-arglists.lisp):
>
> (in-package :swank)
> ...
> (eval-when (:compile-toplevel :load-toplevel :execute)
> (defparameter +lambda-list-keywords+
> '(&provided &required &optional &rest &key &any)))
>
> (defmacro do-decoded-arglist (decoded-arglist &body clauses)
> (assert (loop for clause in clauses
> thereis (member (car clause) +lambda-list-keywords+)))
> (flet ((parse-clauses (clauses)
> (let* ((size (load-time-value (length +lambda-list-keywords+)))
>
> At first, I assumed this was some sort of bug in CMUCL having to do
> with package interning and (load-time-value...) although now that I've
> read the HyperSpec on (load-time-value...) that's less clear. The
> CLHS says that (l-t-v...) is evaluated in a "null lexical environment"
> which the glossary says is, "the lexical environment which has no
> bindings." And since the current package is bound to *package* what
> CMUCL is doing would seem to be correct. As an experiment, I tried
> adding explicit package qualification to all of the references to
> +lambda-list-keywords+ and CMUCL still signals the same error. In
> other words, CMUCL goes out of it's way to lose the package specifier
> in (l-t-v...).
>
> And yet this code is working in SBCL and Clozure... Can anyone
> explain what's broken where any maybe suggest a workaround or a fix?
> I'll be happy to go report this to CMUCL if need be. Thanks!
I think that was a mistake on my part. Thanks for the report,
-T.
More information about the slime-devel
mailing list