lua-users home
lua-l archive

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

Am 05.09.2015 um 08:47 schröbte Dirk Laurie:
2015-09-05 0:18 GMT+02:00 Peter Aronoff <>:
Dirk Laurie <> wrote:
2015-09-04 20:43 GMT+02:00 Hisham <>:
Is it available on LuaRocks?

There is a certain amount of work necessary for putting something on
LuaRocks, which at present I shirk.

I don't say this to shame you (everyone is allowed to shirk what they
choose to shirk), but after some prodding from friends I finally uploaded
a few things to LuaRocks. I was pleasantly surprised at how easy it was.

I too uploaded something in "pure Lua" and indeed that was not
hard. This module, though, would need the following to be done.

1. Backporting to Lua 5.1, selectable by Makefile options. 5.1 seems
to be timeless; many systems with baked-in Lua still have only that.
2. Makefile that would be OK for other systems besides Linux.

A little history: John Hind and I wrote xtable because we did not like
some things the table library did at that time, e,g, you could
table.insert(tbl,-5,val) followed by table.remove(tbl,-5) and the
table would not be in its original state. We like to think that our
efforts contributed to the range checks that were introduced in
Lua 5.2.2. Anyway, the pressing need had disappeared. Lua
5.3 paid us the further compliment of introducing a table.move
not too dissimilar from our xtable.block.move.

But Lua 5.3 also took the dubious step of respecting the __index
metamethod in the table library, so maybe an alternative library that
does raw accesses is not so redundant after all. OK, I'll put rocking
it on my TODO list (some items of which have been there for over
ten years, though).

To get you started ...


package = "xtable"
version = "scm-0"

source = {
  url = "";,
  dir = "xtable-master",

description = {
  summary = "Alternative table library",
  detailed = [[
    'xtable' provides generic functions for table manipulation, at a
    lower level than the standard table library.
  homepage = "";,
  license = "MIT"

dependencies = {
  "lua >= 5.2, < 5.4"

build = {
  type = "builtin",
  modules = {
    ["xtable"] = "src/xtable.lua",
    ["xtable_core"] = "src/xtable.c",