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

pervasiveness of declarations

- - - - Begin forwarded message - - - -
Received: from CMU-CS-PT by CMU-CS-A; 4 Jun 83 01:10:43 EDT
Received: from MIT-MC by CMU-CS-PT;  4 Jun 83 01:07:44 EDT
Date: Sat, 04 Jun 1983 05:10:00 -0000
Subject: Re: Simplifying local declarations
To: Guy.Steele@CMU-CS-A
In-Reply-To: Your message of 4-Jun-83 0031-EDT

I believe all declarations should be pervasive.
I allow arbitrary declarations that users can
look at in their macro definitions; these are all pervasive.
So my documentation would have to say,
"all declarations are pervasive except for FOO and BAR,"
which I think is unclean.  I'm sure I can manage to implement
nonpervasive declarations, though it is much simpler this way,
but I would be ashamed to admit it to the users.

Anyone who really really wants a declaration not to be pervasive
can do
(LET (vars)
  (DECLARE (FOO ..))
    (DECLARE (UNFOO ...))
    FOO not in effect here))
This is good enough for macros that may have to pay attention to this
in order to work right in all cases.  I would not expect
hand-written code to ever need this.

What advantage is there, ever, to a nonpervasive declaration?

It may be that this issue is moot for me now.  The only declarations
that matter on the Lisp machine are SPECIAL and UNSPECIAL.
If both of these are pervasive, I can say all declarations are
pervasive because I will just ignore the others anyway.
Regardless of what I do, making them all pervasive will still
simplify your own design.

I am disturbed to find out that this is not even being
considered, at least according to the message you sent me.
What do I have to do?  I have explained it at least twice before.
Each time, when I inquired after a period of time that I thought
might suffice to consider the idea, I found it had not been
considered and you had forgotten what I said.

I hope you will at leat save this message so you will not
have to ask me again "what is it you are suggesting for declarations?"

I have no opinion on this.  I can implement PROCLAIM easily enough.
Of course, I am still going to support global use of DECLARE.
- - - - End forwarded message - - - -