[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: issue PROCLAIM-LEXICAL
- To: Jon L White <jonl%lucid.com@NSS.Cs.Ucl.AC.UK>
- Subject: Re: issue PROCLAIM-LEXICAL
- From: Jeff Dalton <jeff%aiai.edinburgh.ac.uk@NSS.Cs.Ucl.AC.UK>
- Date: Mon, 13 Feb 89 20:34:53 GMT
- Cc: jonl <@sail.stanford.edu:jonl@lucid.com>, Moon@scrc-stony-brook.arpa, sandra <@cs.utah.edu:sandra@defun>, KMP@scrc-stony-brook.arpa, masinter.pa@xerox.com, cl-cleanup@sail.stanford.edu
> Rather than reply to each of the various question you raise, maybe this
> last one is the important one.
Actually, I'm now more confused rather than less. My best guess is
that your objection to special declarations that override a lexical
or global proclamation is that special variables have indefinite
scope. (But lexical variables don't -- they have lexical scope --
so lexical declarations that override are OK.)
But I'm not sure why this is so significant. A special declaration
has a lexically bounded effect: it affects only certain bindings
(actually, at most one) and references. Suppose I never use a special
proclamation. It seems that you would still like to forbid me from
ever using a special variable that had the same name as a global
variable (in the LG sense). And I don't see why. Perhaps I could
see why, but I need an "intuition pump" (Dennett) or something.
Under the LG proposal, as in CL now, I can go around (statically) and
color all lexical and global variable references green and all special
references red. (The green ones are just the ones that are not affected
by a special declaration or proclamation.) The main difficulty in
doing this, so that local inspection isn't quite enough, is the
pervasive effect on bindings of special proclamations; but that
problem was already there and not introduced by LG.
Then, I can always tell what green references refer to. There's
either a locally evident lexical binding -- in which case the
reference is to it -- or else the reference is to the global. Red
references have to be resolved (D or G?) dynamically; but again that's
not something introduced by LG.
> Yes, a proclamation is more pervasive
> than any bounded set of DECLARE's inserted into code.
OK, but I didn't mean a bounded set; I meant every binding. And I
think PROCLAIM ought to correspond to something that can be done with
DECLARE.
> In particular, the DECLAREs (of your examples) are in the same
> lexical scope; but the PROCLAIM might even be in another
> separately-compiled file.
I guess the problem is that I do not see why that is a decisive
factor. Perhaps I picked the wrong example to elaborate.
-- Jeff