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

Re: issue PROCLAIM-LEXICAL



The proposal mentions in passing "It would be possible to submit a proposal
for a GLOBAL (G) declaration
  under separate cover if anyone (Xerox?) was interested."

I'd say that as far as I can tell, with the amendment that local SPECIAL
declarations are not allowed for variables proclaimed lexical, there are
few differences between GLOBAL in Medley and LEXICAL as proposed; the major
difference being that a local LEXICAL declaration will override a global
SPECIAL proclaimation, but in Medley, a local GLOBAL declaration implies
that no lexical bindings are allowed.

Insofar as GLOBAL is very like LEXICAL, it would count for "current
practice", would it not? The reason for GLOBAL is primarily for performance
-- it is a deep-bound implementation, and references to GLOBAL variables
are significantly faster.  I don't think Medley users would get along OK
without it.  I don't think users of *any* deep-bound implementation would
get along well without some equivalent. While I hate to see special
features put into the standard for idiosyncratic implementation techniques,
deep-binding is not new or idiosyncratic, and this is really the minimal
declaration necessary consistent with current practice.

Given the likelihood of PROCLAIM-LEXICAL:LG failing, I suppose I *would*
like to see a GLOBAL proclaimation made standard, since it doesn't seem to
hurt shallow bound implementations and is important for deep-bound
implementations. If "it is an error to attempt to bind a variable
proclaimed or declared GLOBAL", if you declare it or proclaim it GLOBAL,
you can't have any bindings, whether such bindings would be lexical or
special. In that sense, a GLOBAL variable could be thought of as a subset
of SPECIAL variables which share the "not bindable" property of constants.