[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: RES: FW: srlua extension to run with glued zip file
- From: André de Leiradella <leiradella@...>
- Date: Wed, 5 Jan 2005 17:02:01 -0300
>> I've now a basic extension to srlua running which allows you to
>> combine multiple (lua-) files in one zip file and than start it as a
>> standalone executable.
>
> Great idea (if the amount the Lua code -- and you can precompile it,
> of
> course, to save space -- compresses is larger than the size of the
> decompressor...).
>
> Another way to do this on Windows would be to embed the "glued" codes
> as resource entries (so they are inside the EXE proper) and then to
> UPX the whole file. (UPX is a run-time in-memory unpackaging system.
> Highly
> recommended to impress your friends when showing them how small your
> Lua run-time is compared to their Perl or Python distro. The UPX
> decompressor is very small.)
>
> Has anyone tried using UPX for this (and is there an analogous way to
> embed binary data into ELF binaries so that the original executable is
> unaffected but the embedded data in technically "inside" as far as
> exectuable packers are concerned)?
Not tried it, but as long as Windows resources are concerned UPX can
pack them:
# upx -h
...
Options for win32/pe & rtm32/pe:
--compress-exports=0 do not compress the export section
--compress-exports=1 compress the export section [default]
--compress-icons=0 do not compress any icons
--compress-icons=1 compress all but the first icon
--compress-icons=2 compress all but the first icon directory
[default]
--compress-resources=0 do not compress any resources at all
--strip-relocs=0 do not strip relocations
--strip-relocs=1 strip relocations [default]
...
I made a library some time ago called luareader
(http://www.geocities.com/andre_leiradella/#luareader) that can read
from FILE pointers, file descriptors and from memory. It allows
on-the-fly decompression of the streams using zlib or bzip2. In fact, it
has a reader that can decide if the underlying stream where data is
located is uncompressed, compressed with zlib or compressed with bzip2
and act accordingly.
It already has a reader that makes some substitutions to Lua source code
to make OOP in Lua easier, translating sequences of @id (field access),
@id(...) (method call) and @@id(...) (inherited method call) to
user-defined Lua code. But take care, this reader is a hack.
I have a unfinished 2.0 version of luareader that can process files
inside a tar file. The tar file can reside in the file system, in memory
or even inside another tar file.
Andre de Leiradella