|
Thanks Javier.
I think I know what I have to do now. My case is pretty simple. I am still surprised, however, that there wouldn't be some sort of basic decompiler suport in the core Lua distribution. I'm that I just don't understand the whole language theory and Lua itself well enough to see why such support can't or shouldn't be generally supported. Perhaps, like you say, it's a task including too many specifics dealing with one's particular application of Lua. Thanks.
> Date: Mon, 8 Apr 2013 14:18:21 -0500 > From: javier@guerrag.com > To: lua-l@lists.lua.org > Subject: Re: lua_dump/lua_load > > On Mon, Apr 8, 2013 at 1:40 PM, Spencer Parkin > <spencerparkin@outlook.com> wrote: > > Am I making any sense here? It seems like if I've got the Lua table on the > > stack, then I'm just a short distance away from being able to somehow call > > lua_dump to write it out to a file. I'm just not sure how to create the Lua > > function. > > > > Also, does lua_dump somehow support the "mode" feature that lua_load does? > > Can lua_dump write out human readable Lua code, or is it alway going to be > > binary? > > > lua_dump() is not the complement to lua_load(), even if lua_load() can > read what is produced by lua_load(). You can say that lua_load() is > more generic than lua_dump(), the latter handles only bytecode, not > source code, not table data, nor the function environment. > > Lua doesn't include any table serializer code, because there are many > slightly different ways to understand what should a serializer do. In > the simplest case, it's just a 5-to-10-lines recursive function. > > yes, there are several serializers available, some of them in the > wiki. If you don't want to download and require an external package, > just read a few of them and write your own. A simple serializer for > non-cyclic structures shouldn't take more than half an hour. a > reasonable complex one could be done in an afternoon. If you want to > store functions, closures (and their upvalue context) that are stored > in a table, better bite the bullet and use a packaged library, like > Pluto (http://lua-users.org/wiki/PlutoLibrary). Disclaimer: I haven't > used it, and don't know if it works with 5.2, or not > > cheers, > > -- > Javier > |