[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: PROCLAIM [Gall: Bug Report]
- To: common-lisp@SU-AI.ARPA
- Subject: Re: PROCLAIM [Gall: Bug Report]
- From: Nick Gall <Gall@MIT-MULTICS.ARPA>
- Date: Tue, 2 Apr 85 14:58 EST
- In-reply-to: Message of 28 Mar 85 09:28 EST from "Network_Server.Daemon (Moon@SCRC-STONY-BROOK.ARPA@SU-AI)"
!section 9.1(12) Nick Gall 85-03-19
!version Digital Press 1984
!topic Non-Top-Level use of PROCLAIM
Some mention of the effects of the non-top-level use of PROCLAIM
and the other proclaiming forms should be made.
On p.66 it says that DEFVAR is not allowed elsewhere than top-level.
PROCLAIM is the only function (rather than special form) that makes
declarations, and presumably the declarations it makes when it is
called take effect "immediately", but the exact definition of "immediately"
might be implementation-dependent. For example, it is implementation-
dependent whether PROCLAIM affects interpreted functions that have already
been defined.
I guess what really bothers me about the definition of proclaim
is the following sentence:
This allows a program to compute a declaration and then
put it into effect by calling proclaim. (pg. 156)
This encourages a style that is bound to bring out an
inconsistency in between the semantics assigned to a correct
program by the compiler and the interpreter.
Is there a STRONG reason for allowing run-time declares? If not,
I think the above sentence should be struck, and proclaim's usage
restricted to DEFVAR, etc., and top-level.