lua 源码阅读 5.3.5 笔记
记录下吧,断断续续读了几周,收益还是很多的。
推荐阅读顺序:
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
lua 源码阅读 5.3.5 笔记的更多相关文章
- lua 源码阅读 1.1 -> 2.1
lua 1.1 阅读1. hash.c 中 a) 对建立的 Hash *array 用 listhead 链式结构来管理,新增lua_hashcollector,用来做 Hash 的回收处理. ps: ...
- lua 源码阅读顺序
https://www.reddit.com/comments/63hth/ask_reddit_which_oss_codebases_out_there_are_so/c02pxbp Online ...
- cpython和lua源码阅读
cpython代码很多,不太容易看出来. lua代码真的短小精悍,不得不佩服.
- CI框架源码阅读笔记5 基准测试 BenchMark.php
上一篇博客(CI框架源码阅读笔记4 引导文件CodeIgniter.php)中,我们已经看到:CI中核心流程的核心功能都是由不同的组件来完成的.这些组件类似于一个一个单独的模块,不同的模块完成不同的功 ...
- CI框架源码阅读笔记4 引导文件CodeIgniter.php
到了这里,终于进入CI框架的核心了.既然是“引导”文件,那么就是对用户的请求.参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位.例如,用户的请求url: http://you.host.c ...
- CI框架源码阅读笔记3 全局函数Common.php
从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap ...
- CI框架源码阅读笔记2 一切的入口 index.php
上一节(CI框架源码阅读笔记1 - 环境准备.基本术语和框架流程)中,我们提到了CI框架的基本流程,这里再次贴出流程图,以备参考: 作为CI框架的入口文件,源码阅读,自然由此开始.在源码阅读的过程中, ...
- CI框架源码阅读笔记1 - 环境准备、基本术语和框架流程
最开始使用CI框架的时候,就打算写一个CI源码阅读的笔记系列,可惜虎头蛇尾,一直没有行动.最近项目少,总算是有了一些时间去写一些东西.于是准备将之前的一些笔记和经验记录下来,一方面权作备忘,另一方面时 ...
- 源码阅读笔记 - 1 MSVC2015中的std::sort
大约寒假开始的时候我就已经把std::sort的源码阅读完毕并理解其中的做法了,到了寒假结尾,姑且把它写出来 这是我的第一篇源码阅读笔记,以后会发更多的,包括算法和库实现,源码会按照我自己的代码风格格 ...
随机推荐
- Kubernetes 存活、就绪探针
在设计关键任务.高可用应用程序时,弹性是要考虑的最重要因素之一. 当应用程序可以快速从故障中恢复时,它便具有弹性. 云原生应用程序通常设计为使用微服务架构,其中每个组件都位于容器中.为了确保Kuber ...
- Hint usenl usage /*+ leading(emp,dept) usenl(emp) */
SQL> select /*+ leading(emp,dept) usenl(emp) */ emp.*,dept.* from tb_emp03 emp,tb_dept03 dept whe ...
- TP6.0 一对多模型关联 hasMany
本文测试关联方法都采用预载入查询 $data = Article::with('comments')->select(); halt($data->toArray()); 1. 创建数据表 ...
- 工具-Typora常用语法()+自己总结
工具-Typora常用语法 Markdown(MD)作为目前互联网写作相当流行的一种文档撰写语言格式,深受互联网编辑者的喜爱,由此周边一些基于MD的编辑工具也随之油然而生. 作为一款免费的MD编辑器: ...
- 执行./install.sh时报错-bash: ./install.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录
百度解释说是因为这个文件在windows下编辑过,windows下每一行的结尾是\n\r, 而linux下每一行结尾是\n,所以只需要删除这个文件中的\r字符就可以了sed -i 's/\r$//' ...
- Apache和分布式部署
1.tomcat分布式部署 1.1.要配置几个tomcat,就部署几个相同程序名的tomcat 1.2.配置每个tomcat下server.xml中ajp端口,以及后面的jvmRoute,第几个就配置 ...
- 【二叉树-所有路经系列(根->叶子)】二叉树的所有路径、路径总和 II、路径总和、求根到叶子节点数字之和(DFS)
总述 全部用DFS来做 重点一:参数的设置:为Root,路径字符串,路径List集合. 重点二:步骤: 1 节点为null 2 所有节点的操作 3 叶子结点的操作 4 非叶节点的操作 题目257. 二 ...
- mariadb 数据库集群配置
mariadb集群配置(主从和多主) mariadb主从 主从多用于网站架构,因为主从的同步机制是异步的,数据的同步有一定延迟,也就是说有可能会造成数据的丢失,但是性能比较好,因此网站大多数用的是 ...
- MybatisPlus根据模板生成器代码
导读 网上的代码生成器,都不是自己想要的,今天下午研究了下,可以使用mybatisplus自定义模板,根据模板生成相应的代码,可以根据需求,改造相应模板即可.代码已上传github/百度云. 项目结构 ...
- Window10 上MindSpore(CPU)用LeNet网络训练MNIST
本文是在windows10上安装了CPU版本的Mindspore,并在mindspore的master分支基础上使用LeNet网络训练MNIST数据集,实践已训练成功,此文为记录过程中的出现问题: ( ...