lua-users home
lua-l archive

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


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
>