lua-users home
lua-l archive

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


[This message is on lua-l; an identical, but separate post will
appear on iup-users.]

G'day,

I'm very pleased (and rather exhausted) to announce the release of
lglicua-0.1-alpha3 on SourceForge.  This supersedes and replaces
-alpha2.  The project is at:

        https://sourceforge.net/projects/lglicua/

The changes are quite wide-ranging, and are, to a fair extent,
reviewing and updating scripts that were deemed "good enough" for
the -alpha2 release, but were candidates for revision after that
release.  This especially includes the "build/", "svn/" and
workspace "1/play" and "1/support" directories.

-----

The biggest news is that the Assistant is closer to supporting
multiple versions of Lua.  However, this is still dependent on the
Lua binary and library support being installed in the OS, not part
of the Assistant package tree.

The Assistant has been tested (briefly, via virtual machines) on:

        GNU/LinuxMint: 18.3, 19.1, 19.3, 20.1 and ***new*** 20.2;
        Ubuntu:        18.04.3, 20.04.2.0, 20.10 and 21.04; and
        CentOS:        7.0 only (with Lua 5.1.4 baked-in).

Two new fields in the Assistant database (svn/assistant-database.lua)
can force the Lua version used for building.  This works with
cross-compiling Lua version (e.g. 5.3 libraries can be produced by a
Lua 5.1 build system):

        $ diff -u assistant-database.lua tt.t
        --- assistant-database.lua	2021-07-17 17:21:12.000000000 +0930
        +++ tt.t	2021-07-19 14:32:50.918324707 +0930
        @@ -410,8 +410,8 @@
                 LuaVersionMap = {
                         Manifest = {"Pattern", "{LUAVER}", "{LUALIBSFX}"},
                         Pattern = "({%u+})",
        -                ["{LUAVER}"] = "5.1",
        -                ["{LUALIBSFX}"] = "51",
        +                ["{LUAVER}"] = "5.3",
        +                ["{LUALIBSFX}"] = "53",
                 },
                 TerseFlow = true,
         }

There is a new script in the Workspace: "1/play/version-rocks":  This
script reports the Lua version, and then verbosely tries to install
Rocks, starting with "std.normalize".  This script shows up the
incompatibilities between the interpreter version and the Rocks
version.

--------

Sadly, there remains a significant conflict between the version of
Lua and the Lua build target of LuaRocks (as strongly suggested, or
even imposed, by the installer):  LuaRocks is built for Lua 5.1 only;
the Lua 5.3 build can run as long as it does not reference any
(C code) Rock, but fails with dynamic linker errors such as
"lua_tointeger not found".

The Assistant stays with Rocks version 3.3.1 for this release; I
hope to upgrade to 3.7.0 for the next release, and also to look to
dynamically switching the Rocks database based on the Lua version.

--------

Other improvements have been curating/refining/pruning loose ends
in areas such as svn/*.lua, build/*.lua and build/support/*.lua.

Quite a lot of work has gone into PosixExec.lua, adding an "Options"
table parameter.  This is because things like changing work
directory, setting environment variables and filename globbing
were cropping up as repeated onerous patterns in the main code, and
these can now be offloaded to be executed purely in the context of
the child (after the process fork).

--------

In closing, Share and Enjoy (yes, it's all MIT-Licensed, as per the
norm for the Lua ecosystem).

cheers,

sur-behoffski (Brenton Hoff)
programmer, Grouse Software