[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Version 3.1 question...
- From: Roberto Ierusalimschy <roberto@...>
- Date: Mon, 05 Jan 1998 12:07:02 -0200
> In version 3.1, there is a brief mention of "multiple interpretation
> environments" on the FAQ. That sounds great!
The support is a very simple one: *All* global variables have been put in a
dynamic structure, so now Lua has only one (1) global variable, which is a
pointer to that structure. You can create many of these structures, and each
one will be a *completely independent* environment. To switch environments,
one only has to switch the value of this global pointer.
> Will there be support for multiple threads running different Lua environments?
Not directly. For real multy-thread you need a way to switch the global
pointer when there is a context-switch. In some systems this may be easy,
in ohters not...
> Will there be multiple garbage collectors, or just one Lua memory space?
The environemnts will be *completely independent*. Each one has it global
space, memory space, garbage collector structures, etc.
> Is there any way to communicate between different environments?
No, but it can be done via a C library; but it will have the same problems
that comunicating between processes (e.g. how to pass functions).
The main rationale has been: it is very difficult to make everybody happy,
mostly in a portable way. This solution is very simple, has an almost null
cost, and even not solving some problems it facilitates for each one to
solve individual problems.