luna-core 2.12.0

Pure-Rust Lua runtime (interpreter only, zero third-party dependencies). The JIT-equipped variant lives in the `luna-jit` crate.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- v2.11 CORPUS-II: vararg edges.
local function f(...) return select("#", ...) end
print(f())              -- 0
print(f(nil))           -- 1
print(f(nil, nil))      -- 2
print(f(1, nil, 3))     -- 3

-- {...} shape
local function pack(...) return {...} end
local t = pack(10, 20, 30)
print(#t, t[1], t[3])

-- {...} truncates trailing nils in # calculation (impl-defined)
-- so use table.pack for reliable n
local u = table.pack(10, nil, 30)
print(u.n, u[1], u[2], u[3])