lua-users home
lua-l archive

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

Suppose I want to save (a part of) the lua state, in binary form. For
example, lets assume I have _G.state = {...}, and I want to save _G.state,
to load it somewhere later.

I scanned luac.c and found that it saves the lua_State in binary form using
the luaU_dump and clvalue() functions. 

So, I thought of doing something like this:

// c sketch

#define toproto(L,i) (clvalue(L->top+(i))->l.p)

lua_getfield(L, LUA_GLOBALSINDEX, "state");
luaU_dump(L, toproto(L,t), mywriter("somefile"), ... );

...and somewhere later:

lua_load(L, myreader("somefile"), ... ) ;
lua_setfield(L, LUA_GLOBALINDEX, "state");

// end sketch

Would that work?

If that is the case, wouldn't it be useful if the lua_dump() function would
just do this (instead of what it does now for functions only)? (So I
wouldn't have to use internal (i.e. non-api) lua functions?)


Markus Heukelom
Incontrol Enterprise Dynamics