8 ms·
Have you tried http://luapower.com/ http://luapower.com/
by darkFunction 12y ago
Have you tried http://luapower.com/ http://luapower.com/
- acqq 12y agoThanks! If it would allow that the modules locally exist inside of a single ZIP file instead of the single directory, it would be almost exactly what I want. Then the "getting started" would be "download luajit choose/download wanted packages along with their listed dependencies unzip all over the same directory (optional) rebuild binaries (optional) zip all modules to modules.zip. <== new run a demo: luajit ..._demo.lua This will give you an instantly portable luajit distro with only a few small files!" Java also has JAR files which are actually ZIPs.
- ANTSANTS 12y agoI don't like luapower's approach to package management. Basically it stuffs the contents of packages in the base of a single directory: luapower/lib.lua luapower/additional-files-for-lib/stuff.lua Instead of completely encapsulating each package in its own directory: luapower/lib/lib.lua luapower/lib/stuff.lua So instead of being able to just cd to luapower and git clone repo, you need to use a silly wrapper script that overlays the repos with each other. All of this presumably because the author wanted to type `require "lib.lua"' instead of `require "lib/lib.lua"'
- acqq 12y agoI like it, I'd like even one step more, of making a ZIP of all of the packages. I never modified in place any Perl or Python module, and I don't expect I'd do it with Lua, so having a small portable file set of just a few self sufficient files I could copy to the another machine is my real wish.
- ANTSANTS 12y agoBut it's arguably easier to package the other way I described, just stick all of the relevant directories into a zip file, instead of needing to manually pick out the "lib.lua" files from the base directory. Literally the only benefit of this approach is saving a few characters on require statements. For anyone interested in creating a new language, make your equivalent of `require "lib_directory"' do the equivalent of `require "lib_directory/init.lua"' or `require "libname_directory/libname.lua"' so we don't have this issue.
- acqq 12y agoDo you actually do that manually? Why isn't there a script for that? It should be a part of the automated process. Much better doing it once as an automatic step than writing everywhere in your sources: somethingbig/somethingbig every time you use somethingbig. And that step should also zip the modules, I believe. The behavior of require, as I'd like it: require X first looks in the directory X, for module X. If there is no such, it opens modules.zip and reads module X from there. If internally in the ZIP there were a subdir for every module, I don't care, as long as I don't have to type that fact every time. modules.zip would be constructed automatically. Whoever wants to tweak some specific module can unpack it in the separate directory.
- ANTSANTS 12y agoHaving reread the Lua manual, `require "lib"' can easily be made to execute `require "luapower/lib/lib.lua"' by adding "luapower/?/?.lua" to LUA_PATH. This is the way the standard /usr/local/lua libraries are require'd. Now I cannot think of a single explanation for why luapower works the way it does.
- acqq 12y agoI'd prefer modifying require to not need a new entry to the ENV var for every used module. It is a huge waste of ENV.
- ANTSANTS 12y agohttp://www.lua.org/pil/8.1.html http://www.lua.org/pil/8.1.html > To determine its path, require first checks the global variable LUA_PATH. If the value of LUA_PATH is a string, that string is the path. Otherwise, require checks the environment variable LUA_PATH. Even if you needed to modify an environment variable, I still think that would be preferable to creating yet another package manager and fracturing the Lua userbase further.
- acqq 12y ago