KMP's CL References
This is the literal text of KMP's personal notes on failed issue PROCLAIM-LEXICAL. Dates shown are the dates of creation of the notes, sometimes accompanied by the version of this issue to which the notes refer.
These notes are part of no official record. They have no official standing.
------ PROCLAIM-LEXICAL (Version 9, 08-Dec-88) Author: Rees, Moon, Masinter, Pitman Forum: Cleanup Status: Failed v9 (Mar 89) Summary: Add LEXICAL, GLOBAL, and CONSTANT proclamations. (only LEXICAL survives) SyVote: Yes with comment (Version 9, LG) Genera Impact: this would have been a 2-week or 3-week job Comments: ----- Pitman 13-Dec-88 (Version 9) ----- Looks good to Pitman. Others may be less happy. Sandra wants us to specify which rules for free declarations we're using in the example. Sandra doesn't like the fact that lexical and special vars share a cell. Jeff wonders why specials aren't LDG since they ought to search lexical first; has some sort of pre-painting model he prefers. Jeff also thinks lexically binding a constant should be ok; isn't this irrelevant? ----- Moon 02-Jan-89 (Version 9) ----- Approved: LG. I cannot strongly favor this, since it's a fairly radical change. Are free references to unproclaimed variables special (DG) or lexical (G)? 02-Jan-89 by KMP re: Version 9 Probably we should clarify that unproclaimed free variables are an error and a warning should be issued. ----- Moon 21-Jan-89 ----- On the above issue, CLtL unfortunately says explicitly that free references to unproclaimed and undeclared variables are SPECIAL. Also making it an error would break the current practice of just typing SETQ at the interpreter, people felt during the discussion. There was a flurry of amendments, probably attempting to "fix" the "problem" that a shallow-bound dynamic variable can obscure access to the global lexical variable. We already know that this can be fixed in Lisp Machines by making a dtp-external-value-cell-pointer point from the value cell to the global lexical cell, and in stock hardware by adding a couple of instructions to test a bit saying whether the thing is bound. The amendments were: Can't dynamic bind if proclaimed lexical (passed 11 to 5) Referencing a free variable that is neither proclaimed nor declared LEXICAL nor SPECIAL has undefined results (not voted) A free lexical declaration of a variable with no lexically visible binding is an error; use PROCLAIM (not voted) Returned to committee ----- Pitman 26-Mar-89 (Version 9) ----- I guess no work was done on this since January. Sigh. ----- Pitman 10-Apr-89 ----- KMP made a friendly amendment to clarify the status of undeclared free variables (as undefined). GZ wanted an amendment that would make it an error to use the LEXICAL declaration when there was not a lexically visible binding to which it might refer. Her amendment failed 5-12. The unamended proposal finally failed 6-11. Moon thinks it was this that made Jeff Dalton lose his temper (outside the room).
First publication and Copyright 2001 by Kent M. Pitman. All Rights Reserved.