Lua引擎組成
1.Lua核心模塊:
虛擬機畏浆、編譯器/解釋器、GC烦秩、標準庫垮斯、內(nèi)嵌輔助庫、C Api只祠。
1).虛擬機核心文件
虛擬機(lvm.c)兜蠕、函數(shù)調(diào)用以及棧管理(ldo.c )、函數(shù)原型及閉包管理(lfunc.c )抛寝、垃圾回收(lgc.c)熊杨、內(nèi)存管理接口(lmem.c)、對象操作(lobject.c )盗舰、虛擬機字節(jié)碼定義(lopcodes.c)晶府、全局狀態(tài)機(lstate.c)
2).源代碼解析以及字節(jié)碼預(yù)編譯
代碼生成器(lcode.c)、詞法分析器(llex.c)钻趋、解析器(lparser.c )等
3).內(nèi)嵌庫
內(nèi)嵌庫的初始化(linit.c)川陆、基礎(chǔ)庫(lbaselib.c)、位操作庫(lbitlib.c)蛮位、IO庫(liolib.c)较沪、數(shù)學(xué)庫(lmathlib.c)、OS庫(loslib.c)土至、字符串庫(lstrlib.c)购对、表處理庫 (ltablib.c)等猾昆。
4).可執(zhí)行的解析器陶因,字節(jié)碼編譯器
解釋器(lua.c)、編譯器(luac.c )垂蜗。
2.Lua C 暴露API主要三部分:
1).虛擬機初始化楷扬。2).入棧、出棧操作贴见。3).基礎(chǔ)庫烘苹、內(nèi)嵌輔助庫。
3.虛擬機內(nèi)部依賴關(guān)系
4.代碼量:
粗略統(tǒng)計Lua5.4.3代碼總行數(shù):29469(包括頭文件片部、注釋和空行)镣衡,核心代碼大概不到20000行左右。在我們rtc sdk(windows平臺)源碼依賴編譯包體分別增加0.19M(64位)、0.17M(32位)【裁剪之后】廊鸥。