function f = cmd(a,b;c,d)
is equivalent to
function f = function(self, ...) self:a(b); self:c(d); end
This is equivalent to LuaHelpers::ParseCommandList, except:
- Commands are not lowercased. Do that yourself.
- The "parent" parameter is not included. Use self:GetParent().
- "+5" is not valid.
The benefits are:
- Better syntax checking. Running "luac" on the Lua files will do syntax
checking, and runtime syntax checks will find problems earlier.
- Easier optimization. Lua files can be compiled, and when using commands
this way, commands will be precompiled, too.
- Commands are compiled in the same scope, so upvalues work:
local foo = 10; y = cmd(x,foo);
This is normally statically linked in releases. Lua also needs
some patching in Linux x86 to fix performance issues related
to alignment, will need patching if we want fine-grained threading,
and generally has an odd "build it yourself" design, so let's
just add embed this one. (note: disable PCH for these files
in VC, and don't add lua.c, luac.c, or print.c to the project)