[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issue: DECLARATION-SCOPE
- To: Pavel.pa@Xerox.COM
- Subject: Re: Issue: DECLARATION-SCOPE
- From: Charles Hornig <Hornig@ALDERAAN.SCRC.Symbolics.COM>
- Date: Tue, 5 Jan 88 17:30 EST
- Cc: cl-cleanup@SAIL.STANFORD.EDU
- In-reply-to: <880105-134500-4150@Xerox>
Date: Tue, 5 Jan 88 13:44:36 PST
From: Pavel.pa@Xerox.COM
Unsurprisingly, since it's so close to what I informally proposed a year or two
ago, I generally favor this proposal; it is much much better than the status
quo. I do have a few concerns, though:
1) It is not clear to me that free declarations should cover the entire form. I
note, in particular, that none of the discussion or rationale mentions the
scoping of free declarations. The alternative that seems more natural to me has
them covering only the body of the special form in which they appear, not the
entire special form. Charles, could you discuss this?
I was trying for greater compatibility. Most `free' declarations are
currently pervasive and apply to the entire form. The intent of the
proposal was to leave them mostly as they are now. I would consider
changing them to apply only to the body to be a separable and separate
change.
2) I would very much like to see more detail in the proposal. In particular, I
would like a complete listing of the types of declarations and their kinds
(normal vs. free). Conceivably, a list of all of the macros and special forms
supporting declarations and the scopes in each case should also be included. It
may be, however, that this description is implied by the (sometimes nonexistent)
definitions of the semantics of the various macros and special forms.
When I started to do this, I got bogged down in all sorts of unrelated
issues. For example, are free TYPE declarations permitted in Common
Lisp? I didn't want this proposal to become a vehicle for all sorts of
unrelated changes or claraifications to declaration processing.
3) I don't like using the name ``normal'' for one half of a dichotomy,
especially considering that the other half is named ``free''. Is there any
reason not to call the others ``bound'' instead of ``normal''?
I'd love to use a better name. I hope others will comment on this.