lua-users home
lua-l archive

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


> standard libraries), I have put the two tags in global variables.
>
> I know that global variables are often seen as evil these days: they pollute
> the namespace, so they may clash with other libraries, they can be changed
> by a function as a side effect, they can hurt the use of multithreading (each
> thread may need to have its separate, distinct value).

There are a couple of potential problems. First, when there may be
different Lua states assigning different values to the tag (because they
start up loading different libraries, or in a different order). Secondly,
if you want to build the Lua library as a DLL, it may not be possible
(e.g. on EPOC) to use globals at all, or unsafe (if globals are shared
between processes).

It doesn't sound like it's a problem for you, but still since you already
have a safe implementation using upvalues to copy, it seems silly not to
use it. I did the same thing for my rexlib.

-- 
http://www.mupsych.org/~rrt/
C++, n.  an octopus made by nailing extra legs onto a dog (Anon)