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

Issue: DECLARATION-SCOPE



    Date: Wed, 6 Jan 88 20:26:00 PST
    From: Jon L White <edsel!jonl@labrea.stanford.edu>

    I welcome this proposal wholeheartedly -- it irons out another of those 
    brainos for which no one can now even remember a decent rationale.

    However, there is one point I'd like to see pressed further.  You propose:

	The scope of a `normal' declaration is exactly the scope of the
	associated lexical variable or function.  . . . 

	SPECIAL declarations may be either `normal', affecting both a binding
	and references, or `free', affecting only references.  TYPE and IGNORE
	declarations may only be `normal'.  (There has been some discussion in
	X3J13 of permitting `free' TYPE declarations.)

    I think it is very shortsighted to limit the TYPE and IGNORE declarations
    this way.  In so far as IGNORE is merely advice to the compiler to stop
    issuing worthless "bound, but unreferenced" warning messages, there is
    no incompatiblity with it being in a LOCALLY form;  it just means inhibit
    warning messages for instances found in this lexical range.

    ....

    This particular problem may be more than you wanted to bite off; if so,
    maybe I'll be able to find the time to submit a separate proposal on it.
    But since you've taken the plunge already on declaration scoping (and
    since I've been so busy with product deadlines etc.) I thought you may
    want to field the whole matter.

My intention was only to restate what was already in CLtL.  I would be
happy to see a proposal to permit `free' TYPE declarations.  I am trying
not to let the DECLARATION-SCOPING proposal get side-tracked again
trying to become a "fix all bugs with declarations" proposal.