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


Re :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.
This "Common Lisp meeting" was held at CMU just after the 1982 Lisp
Conference.  The "JonL paper" in question could hardly be anything 
other than my contribution to that conference.  It had a long title
something like "Constant Time Interpretation for Variables, in the
Presence of Mixed SPECIAL/LOCAL Declarations".  It described the VAX/NIL
interpreter, and how it processed "special" and "unspecial" declarations
by pushing a block similar to what a lambda-binding would do, and
how the interpretation of a variable reference was resolved by comparing
"declarational level number" with "binding level number".  It was full
of cute little acronyms, for which I can blame GLS.

I vaguely remember some flaming about LOCAL declaration being unnecessary
because, unlike in MacLisp, the SPECIAL declaration of Common Lisp wasn't
to be pervasive.  As you say, I think the "flamers" totally blew it because 
of not understanding the difference between DECLARE and PROCLAIM.

-- JonL --

P.S. The technique described in the above-mentioned paper was strictly
     for a shallow-bound, non-parallel implementation.  I don't think
     I see how to generalize it otherwise.