[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: (PROCLAIM '(IGNORE ...))
Date: Sat, 19 Apr 1986 16:07 EST
From: "Scott E. Fahlman" <Fahlman@C.CS.CMU.EDU>
To: Kent M Pitman <KMP@SCRC-STONY-BROOK.ARPA>
Subject: (PROCLAIM '(IGNORE ...))
In-Reply-To: Msg of 18 Apr 1986 00:50-EST from Kent M Pitman <KMP at SCRC-STONY-BROOK.ARPA>
Special treatment of IGNORE as a variable name was left out of the
language because a lot of people objected to having the language poke
holes in the namespace. (However, we relented with T, NIL, and the
various &... symbols.)
Where in the manual does it say or imply that a lambda-list keyword
cannot be used as a normal variable? To the contrary, pg 60 says,
"They are ordinary symbols each of whose names begins with an
The lexically scoped IGNORE declaration seemed a much cleaner solution.
Allowing global IGNORE proclamations seems a bit unclean to me, since
it can have an effect on variables that come in from God-knows-where and
that were never intended to be ignored. On the other hand, this would
not be disastrous -- it would result in a few spurious compiler warnings
in a few odd cases, and it wouldn't be at all hard to see what went
So I wouldn't object to a decision that (PROCLAIM '(IGNORE ...))
The definition of PROCLAIM on pg 156 says, "Any variable names
mentioned are assumed to refer to the dynamic values of the variable."
But the definition of IGNORE on pg. 160 says, "It is desirable for a
compiler to issue a warning if a variable so declared is ... also
declared special". Thus it is legal, but meaningless to PROCLAIM
IGNORE. If you are proposing that IGNORE be a special case that
refers to the lexical value (or lack thereof) of mentioned variable
names, I would be stronly against it; the semantics of PROCLAIM are
confusing enough already. Also, once IGNORE can be used on lexicals
in a proclaim, why not TYPE also, then I wouldn't have to put a
declare in each function that share a common parameter.
No, I would contend that the need does not outweigh the consequences.