lua-users home
lua-l archive

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


Russell Haley wrote on 2/1/2018 2:40 PM:
On Thu, Feb 1, 2018 at 1:23 PM, Dibyendu Majumdar
<mobile@majumdar.org.uk> wrote:
I have been thinking about how to go about with this. I want to create
a harmonious whole on the one hand, on the other, want the ability to
easily pull changes from the upstream projects.

Seems like the Luadist model is a good fit:

a) Fork an upstream project (possibly create a branch called 'Ravi' as
I expect to have to tweak some aspects of the project).
b) Create a submodule in the distro project for each upstream project.
c) Hook it all up in a CMake based build system.

My goal is not to create a generic package manager for Lua. Nor to
make it easy for users to pull in additional modules easily. Instead
the goals are:

1. Well tested and supported product on Windows, Linux and Mac OS -
all supported modules installed up-front.
2. Binary distros for each supported platform (native installers would
be nice but I don't know how to do that so initially it may be in the
form of a self contained compressed archive).
3. The installation should not require any system privileges, and
should just work.
4. Long term support and commitment for the distro (i.e. best effort
to fix bugs and incorporate additional high quality libs) - however
this does not imply Ravi will keep up with Lua changes, because to me
100% backwards compatibility is of paramount importance. I may
selectively apply changes that are non disruptive.
Josh Jensen has done much of this with LuaPlus too:

https://github.com/jjensen/luaplus51-all
What LuaPlus is to me and what it does:

1) It's a tool set that has been around for a long time. It has been used in some very large applications and games over the years. It is also used as a tight Lua distribution for tools and scripting within those places. It's mature, it just works, and that makes me happy. 2) It bootstraps across multiple OSes out the gate... the build system, the Lua version, the Lua modules. I'm all kinds of giddy happy about that. 3) It supports multiple Lua distributions. Lua 5.1 is never going to go away, but people use Lua 5.2 and 5.3, too. It gets version updates when I have time or when they're contributed. I think I'm behind on Lua 5.3.x a bit right now. I'm not happy about that, but having it all in one place is a happy moment. 4) It has enhancements to Lua; that's why it is called LuaPlus. They're nicely stored in different directories than the actual Lua versions, also supported. The LuaPlus enhancements make me happy. 5) It has a bunch of Lua modules that I (and others) regularly use, and the versions of those modules embedded in the Git repository work in concert with one another. lrexlib is not at latest, for instance, because there were some major API changes once, and they broke a ton of production scripts at an organization. There also might be a submodule or two, but using them is not a priority. When a Lua module needs a tweak for better behavior (compilation issue/bugfix/Lua 5.3 support/whatever), I do it right there. I manually upgrade Lua modules with WinMerge when needed. All of this is happiness-inducing. 6) I do not use nor care to use CMake nor are my personal opinions of many years of CMake usage valid here. I use an enhanced version of Perforce's Jam build system to build up the LuaPlus distribution. It's called JamPlus. It does all kinds of cool stuff. I like it, I use it, and I wish the world would use it. In any case, JamPlus as LuaPlus' build system also makes me happy. 7) Binaries can be easily built against Debug or Release versions for separate compilers on your own system where it is easy to debug. The Lua executable and the Lua modules are all built against the same compiler, so it is spiffy keen and easy to debug them. Oh, it also does the whole rpath thing on a Unix-y file system. << Happy about all of that.
8) It is stable. Stable = Good. Good = less stress = more happiness.

If any of these serve as strategies/policies/workflows/arrangements/whatever for creating your Ravi distribution, then awesome. Steal as you see fit.

If it seems like a bunch of mumbo jumbo and brouhaha, then you're probably right. But hey, it's my mumbo jumbo. I like it, some others like it, and I and others get to help evolve it into forms that fit our needs, and that's really neat, especially to have it last as long as it has.

Anyway, off my soapbox for now.

-Josh