The official documentation isn’t 100% clear on things (why am I getting LUA_TNIL
for functions?), and the best I can find with some simple web search is kinda relevant stackoverflow (🤮) posts, except they’re mostly about calling host functions from Lua side, the rest are things that seem I’ve nailed so far.
EDIT: Solution was that everyone was using luaL_dofile
, while I was forward thinking and used lua_load
instead, which isn’t a macro, and as such doesn’t do an initial lua_pcall
. Now I do it manually, and now I get different, but less cryptic and actually documented errors. Now I just have to wrestle with D metaprogramming features (very strong and capable, but is a rabbit hole itself).
While lua ships a standalone interpreter, it is very much designed to be embedded directly into an application. This is done by invoking some C apis to load the interpreter into the application’s memory space. OP wants to do that rather than invoking another process and reading the output. When embedding into a host, the host can provide its own objects to be manipulated by the user script allowing for a much better extensibility experience.