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

Another omission: global lexicals

    Yes, we seem to be talking about the same thing.  I believe you
have the right model for interaction with specials: there is none.
Unfortunately this means that shallow-binding implementations would
have to have separate lexical and special value cells, since you could
do something like this:

(defglobal foo :global)
(let ((foo :special))
  (declare (special foo))

(defun bar ()
  (format t "~S or ~S, take you pick."
	  foo (locally (declare (special foo)) foo)))

This doesn't mean that your symbol needs another slot though.  You
could keep the lexical value cells somewhere else (such as on the
PLIST!!), since you only need to locate the value cell at load time.