Attention! Blog has been moved. Please visit blog at new address devhacksandgoodies.pw.

Learning Lua from inside can help to create more pleaseful C modules and engine part of applications.

Each functions and macros has a prefix:

lua_ – core functions & c api functions (lapi.c/h + luaconf.h, ldebug.c)
luaL_ – auxilary Library functions (lauxlib.c/h, linit.c)

Note: C API functions and auxilary functions are representing Lua’s C API and will change rarely and will be maximally compatible with previous minor versions (major.minor.patch).
Note: Previous versions tried to use prefixes luaA_ for lapi.c and luaI_ for auxilary library, but this way did not stick.

luai_ – I hate macros (luaconf.h)
luaT_ – metameThods functions (ltm.c)
luaS_ – String functions (lstring.c)
luaX_ – leXical analyzer functions (llex.c)
luaY_ – Parser (lparser.c)
luaD_ – stack and call structure of Lua functions (ldo.c)
luaM_ – Memory functions (lmem.c)
luaC_ – garbage Collector functions (lgc.c)
luaB_ – Basic library functions (lbaselib.c)
luaG_ – debuG library functions (ldebug.c)
luaH_ – tables are based on Hash keys (ltable.c)
luaZ_ – buffered streamZ (lzio.c)
luaV_ – Virtual machine (lvm.c)
luaE_ – global State handling (lstate.c)
luaF_ – Functions, closures and protos handling (lfunc.c)
luaK_ – byte-Kode processing (lcode.c)
luaO_ – type conversion (lobject.c)
luaP_ – oPcodes (lopcodes.c)
luaU_ – save/load precompiled Lua chunks (ldump.c, lundump.c)

TValue – Tag (Typed) Value: nil, boolean, number (integer, float), string, table, function (lua, c, ligth c), lightuserdata, userdata, non-preemptive thread. There is also proto, deadkey used in internal kitchen.