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


I remember some of this being discussed before, and there being some
reason for not doing it that I couldn't remember, so I went back
through some old Common Lisp documents I have held onto.  Here's
what I found:

21 Dec 1981 Issue #70 - we discussed the issue of what undeclared
free variable references mean, but couldn't decide.  The alternatives
offered weren't very deep:
  (a) interpreter and compiler warn
  (b) interpreter never warns, compiler is permitted to warn
  (c) "status quo" [it said] the interpreter never warns, but the compiler
      never warns for top level forms, but is permitted to warn inside functions

21 Dec 1981 Issue #72 - we tentatively introduced a LOCAL declaration,
meaning not SPECIAL.  This was by analogy with the UNSPECIAL declaration
of Maclisp and Zetalisp, but we decided to change the name.  I don't
think we had completely understood the DECLARE/PROCLAIM distinction
at that time (although we were discussing it) so I'm not sure what
LOCAL meant as a proclamation; I think the idea was just that as a
declaration it could be used to shadow a SPECIAL proclamation.

8/14/82 I found a note of mine saying "there is no way to declare
a variable not special.  I guess this got taken out when special was
changed not to be pervasive.  This needs to be fixed."

8/21/82 Common Lisp meeting Issue #78: Need some kind of declaration to
locally shadow a globally pervasive special declaration [I think that's
a special proclamation in current terminology].  I have written down that
"the vote was yes, GLS will propose, read JonL's paper".  I don't have a
clue which JonL paper this refers to.

In all later documents, there is special but no unspecial nor local.

This confirmed my memory that a lexical declaration had been put in and
then taken out, but I was unable to find any written rationale for the
decisions, which is what I was really looking for.  I didn't go so far
as to search the electronic mail archives (but I don't think they go
back all the way to 1981).