由于工作原因,需要撸一波lua源码。相关的文章有很多,其中就有云风未完成的《Lua源码鉴赏》,以及《Lua GC 的源码剖析》,也是我阅读源码过程中的重要参考。“纸上得来终觉浅,绝知此事要躬行”,于是开一个专栏,专门记录此间的心得。
lua版本是5.1.5,(⊙o⊙)…我们项目里实际上使用的是luajit-2.1(⊙o⊙)…莫名的觉得在读luajit之前应当先读一下对应的原生lua版本,于是就走上了一条奇怪的岔路。(感觉我的技能点越点越偏了,以后还能找到工作吗?/(ㄒoㄒ)/)
文件划分
- 虚拟机运转的核心功能
lapi.c C 语言接口
ldebug.c Debug 接口
ldo.c 函数调用以及栈管理
lfunc.c 函数原型及闭包管理
lgc.c 垃圾回收
lmem.c 内存管理接口
lobject.c 对象操作的一些函数
lopcodes.c 虚拟机的字节码定义
lstate.c 全局状态机
lstring.c 字符串池
ltable.c 表类型的相关操作
ltm.c 元方法
lvm.c 虚拟机