lua-users home
lua-l archive

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

> It also points out the dangers of using antediluvian sources:-) Very few
> meet the test of time. The question that I have is why do we need global
> variables. If the language becomes fully lexically scoped, then variables
> declared at the proper level will become visible at all levels below.
> Why build a separate table for global variables. Just seems unnecessary,
> time consuming, and a creater of more baggage to haul around.

Every file is a separate scope (you can declare locals at the top level, as
the file as a whole is a chunk), so if you had no globals, you wouldn't be
able to share values between files; dofile("foo") couldn't leave any values
in the namespace &c.

Of course, you could get around this by changing things so that the top
level of every file is the *same* scope, and I agree that it's arguable that
using locals at the top level (outside a function or block) doesn't look
like good style.

However, I suspect this would be difficult to compile, since local variables
are normally accessed by index; this relies on the compiler's knowing all
the locals in advance, which it can't if you allow multiple files to create
locals in the same scope.

-- | maxim, n.  wisdom for fools