lua-users home
lua-l archive

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


On Fri, 31 Aug 2001, Russell Y. Webb wrote:

> In any case, it would be useful to know if basically we all agree on what
> would be ideal aside from how it could be accomplished or what compromises
> it entails.

I guess the ideal is simply "full (complete? unrestricted? ''?) lexical
(statically? non-dynamic?) visibility (scoping?)". That is, any function
can access (read and write) any variable that is visible at the point where
the function is defined.

(Of course there are some subtleties; the static denotation of a variable
may denote multiple instances of that variable when we have loops. For
instance, in the next fragment

  local a = {}
  local l1
  for i=1,N do
    local l2 = i
    a[i] = function (x)  l2 = l1/x; l1 = x; return l1+l2 end
  end
  local s = 0
  for i=1,N do
    s = s+a[i](i)
  end

all functions share one variable l1, but each uses a different l2. When
we add to this multiple levels, things get a little more complex. But
the general idea is simple...)

The problem is how to implement it in Lua, without compromising Lua speed
and size. We are working on a solution that seems promissing; there is a
good chance that Lua 4.1 will meet the above "ideal".

-- Roberto