luapower / bundle Goto Github PK
View Code? Open in Web Editor NEWsingle-executable app deployment for LuaJIT
Home Page: http://luapower.com/bundle
single-executable app deployment for LuaJIT
Home Page: http://luapower.com/bundle
The current API for loading bundled files is this:
bundle.load(filename) -> string
We want to avoid creating a possibly huge string:
bundle.load(filename) -> pointer, size
For a bundled file that's trivial, but we want the same API to support loading the same file from the disk as well, transparently, so we can support transparent upgrades. For this we need to add portable support for file mmap-ing.
another cool feature would be monkey-patching the lfs API so that it transparently works with mmapped files.
and yet another feature would be accessing the file descriptor of the mmapped file so we can feed it directly to APIs that work on fds (and maybe FILE* streams too?).
Update: we already have this in fs
, just need to integrate it.
This prevents dynamically linking some libraries on an otherwise static exe, unless you also link winpthreads dynamically.
Hello, I've tried to create a fat luajit exe with all the modules,
And this was the output (The first line is the command I've executed), I've executed this under git bash:
$ ./mgit bundle -a --all -m --all -o LuaJIT_Fat.exe
'E:\Path' is not recognized as an internal or external command,
operable program or batch file.
E:\Path Programs\mingw32\bin\windres.exe: preprocessing failed.
luajit: stdin:1: unfinished string near ''b64'
{standard input}: Assembler messages:
{standard input}:6: Error: file not found: .bundle-tmp/mingw64/bundle_libs.lua.o.luac
'E:\Path' is not recognized as an internal or external command,
operable program or batch file.
E:\Path Programs\mingw32\bin\windres.exe: preprocessing failed.
'E:\Path' is not recognized as an internal or external command,
operable program or batch file.
E:\Path Programs\mingw32\bin\windres.exe: preprocessing failed.
g++.exe: error: .bundle-tmp/mingw64/csrc/bundle/luapower.ico.res.o: No such file or directory
g++.exe: error: .bundle-tmp/mingw64/bundle_libs.lua.o: No such file or directory
g++.exe: error: .bundle-tmp/mingw64/bin/mingw32/luajit.exe.manifest.res.o: No such file or directory
g++.exe: error: .bundle-tmp/mingw64/_versioninfo.res.o: No such file or directory
Using mingw64 for 32-bit under a 64-bit machine (Because my target machine is a 32-bit one).
Add a function to package.luastate
that adds the bundle loaders to newly created states.
Bundled exes are built with -mmacosx-version-min=10.6 option, but I haven't actually tested them on an OSX 10.6 yet to see if they actually work. If anyone has a 10.6 please report success or failure until I install a 10.6 or 10.7 myself.
Check out https://code.google.com/p/miniz/ -- see if it's small enough that we can bundle it for specified files, to enable transparent decompression of bundled files (and maybe modules too).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.