温故而知新
我上次通读 Lua 的源代码时,Lua 还在 5.1 。当然 Lua 5.0 我也读过,4.0 和 3.2 则读的不多。
最近有一点空闲,想续写我那本 Lua 源码欣赏。按我心里的计划,还有大约 6 章。虚拟机、字节码持久化、C API 、解释器、GC、库函数。
新添了一章关于虚拟机的,所以重新读了一遍相关源码。发现 Lua 5.2 比上一版修改了不少,几乎每个位置都有修订。
自己读代码和写出来给人看又是不同,真的逐行推敲的话,之前的理解也是经不起琢磨的。为什么要写这一行;为什么这一行在这个位置,而不是在后面;为什么要这么实现,而不是那样实现……
一边写,一边发现对别处的引用会引发新的疑问,继而需要对之前已完成的章节做一些修补。
上一次发布 pdf 时,采用的是日后纸质书的版式。留白太多对于电子阅读其实是很浪费的,读代码尤其不好。所以这次重新排了一下。
这次主要是增加了关于 VM 的新章节。
有兴趣的同学可以下载:《Lua 源码欣赏》。但我不建议现在开始阅读,尤其是对不仅仅想随便翻翻的同学。因为我经常修改它,今天看到的版本,可能写完后已经改了不少了。
btw, 在我写完后,发现最近有另一个同学也在写类似的文章。这里给出一个链接,有兴趣的同学可以看看。
Comments
Posted by: 张勇 | (13) June 5, 2023 05:47 PM
Posted by: XlperTxT | (12) February 20, 2021 04:46 PM
Posted by: huanghai | (11) August 16, 2019 06:39 PM
Posted by: 阿拉伯 | (10) April 28, 2013 08:56 AM
Posted by: yuanlin2008 | (9) January 31, 2013 12:28 AM
Posted by: yunalin | (8) January 31, 2013 12:11 AM
Posted by: davidxu | (7) January 30, 2013 05:11 PM
Posted by: netroby | (6) January 30, 2013 04:30 PM
Posted by: codedump | (5) January 30, 2013 03:51 PM
Posted by: dogstar | (4) January 30, 2013 02:53 PM
Posted by: lee law | (3) January 30, 2013 02:29 PM
Posted by: tony.li | (2) January 30, 2013 02:24 PM
Posted by: mouse | (1) January 30, 2013 02:23 PM