记录下吧,断断续续读了几周,收益还是很多的。

推荐阅读顺序:

1) 基础数据类型

  lstring.c ltable.c lobject.c lfunc.c lstate.c

2)  标准库(这个相对简单)

  lbasiclib.c lstrlib.c ltablib.c lmathlib.c loslib.c liolib.c loadlib.c lcorolib.c

3)  lua 核心

  ltm.c  ldo.c lvm.c lopcodes.c

  这个有点难理解, 多读几遍,每次总会有收获的。我是从 lua 的低版本看上来的,很多实现都变了,比如 ltm.c 的最早实现就是一个二维数据, lopcodes.c 早期没有像现在这样会根据虚拟指令进行二级分发,ldo 的变动就比较大,早期的就是调 lua 的虚拟指令,c 的入口地址,现在的加了 coroutine 等。

4) lua 的周边 api

  lapi.c lauxlib.c linit.c lua.c print.c luac.c

  这些相对比较简单

5)  lua 的一些基础辅助模块

  lgc.c  lmem.c lzio.c ldebug.c

6)  解析相关

  这块我没看 5.3.5的,早期的版本简单的扫了下,有点烦人,一堆状态,词法解析生成虚拟指令和数据栈,大概就是这些内容。

 

  记录下感受,像是一个大的宝藏,你能拿走多少要靠自己能理解多少。说在再多,不如读一次源码。 talk is cheap, show me the code.

  接下来打算细读下 lua 参考 文档,还有 云大 的 skynet .

文档:lua 5.3.note
链接:http://note.youdao.com/noteshare?id=e75f2653ae3365d1eb534498b302ec63

05-26 00:14