[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: loadstring() of compiled-in data buffer
- From: Duck <duck@...>
- Date: Sat, 1 Sep 2007 18:39:36 +1000 (EST)
If I call luaL_loadstring(), passing it a pointer to a compiled-in static
data buffer containing compiled Lua bytecode (rather than Lua source),
does the Lua state make and ultimately use a copy of the data in my
buffer?
I assume it does, in order to leave me free to dispose of my copy of the
bytecode afterwards, but if so, is there I way I can tell the Lua state to
use _my_ buffer of bytecode and not to make its own copy?
I am looking for a way to include pre-compiled Lua code inside my Lua
binary, but in such a way that this bytecode doesn't end up in memory
twice (e.g. once on the heap as part of the Lua state and once in the
initialised data section as part of the Lua binary).
The idea is to be able to convert Lua programs into a single executable
containing the Lua runtime, all needed C libraries statically linked in,
and all needed Lua sources built-in, but precompiled to save time and
space. The memory wasted through having two copies of the Lua bytecode,
though trivial on PCs, would surely be worth saving on low-RAM embedded
devices such as routers (e.g. Linksys WRT54G) and phone-PDAs (e.g. HTC
Wizard).