Lua源码揭秘(一)概述
2017-10-28 15:33
267 查看
由于工作原因,需要撸一波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 虚拟机
lzio.c 输入流接口
源代码解析以及预编译字节码
lcode.c 代码生成器
ldump.c 序列化预编译的Lua 字节码
llex.c 词法分析器
lparser.c 解析器
lundump.c 还原预编译的字节码
内嵌库
lauxlib.c 库编写用到的辅助函数库
lbaselib.c 基础库
ldblib.c Debug 库
linit.c 内嵌库的初始化
liolib.c IO 库
lmathlib.c 数学库
loadlib.c 动态扩展库管理
loslib.c OS 库
lstrlib.c 字符串库
ltablib.c 表处理库
可执行的解析器,字节码编译器
lua.c 解释器
luac.c 字节码编译器
其他
print.c 打印,貌似是开发阶段辅助调试用的。
与云风的分类大致相同,针对不同版本做了些许调整(云风当时的Lua版本为5.2.2)。
本文的最主要的作用是作为一个目录,方便索引后续文章,所以暂时未有太多原创内容~
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 虚拟机
lzio.c 输入流接口
源代码解析以及预编译字节码
lcode.c 代码生成器
ldump.c 序列化预编译的Lua 字节码
llex.c 词法分析器
lparser.c 解析器
lundump.c 还原预编译的字节码
内嵌库
lauxlib.c 库编写用到的辅助函数库
lbaselib.c 基础库
ldblib.c Debug 库
linit.c 内嵌库的初始化
liolib.c IO 库
lmathlib.c 数学库
loadlib.c 动态扩展库管理
loslib.c OS 库
lstrlib.c 字符串库
ltablib.c 表处理库
可执行的解析器,字节码编译器
lua.c 解释器
luac.c 字节码编译器
其他
print.c 打印,貌似是开发阶段辅助调试用的。
与云风的分类大致相同,针对不同版本做了些许调整(云风当时的Lua版本为5.2.2)。
本文的最主要的作用是作为一个目录,方便索引后续文章,所以暂时未有太多原创内容~
相关文章推荐
- Kakfa揭秘 Day3 Kafka源码概述
- Lua源码揭秘(五)绑定Lua之前你需要知道的
- Lua源码揭秘(二)一个简单的数学扩展库函数
- Lua源码揭秘(三)一个比较简单的table库扩展
- Lua源码揭秘(四)一个不算难的string库扩展
- Android4.4(MT8685)源码蓝牙解析--概述
- Lua 5.3 源码分析(五)字符串 TString
- Android应用开发揭秘的第5个程序3_4_cycle修改版和高仿版的源码注释
- Lua5.3 虚拟机指令分析(一)概述
- Android应用开发揭秘的第8个程序5_3_PaintDraw修改版和高仿版的源码注释
- caffe 源码阅读笔记(0):基本概述
- jQuery源码分析-10事件处理-Event-概述和基础知识
- 探索Lua5.2内部实现:虚拟机指令(1) 概述
- eLua学习第二课:在Ubuntu OS下的Lua源码安装方法
- 第83讲:Scala中List的实现内幕源码揭秘
- STL源码学习_1 简介概述,仿函数
- Android应用开发揭秘的第22,23个程序5_17_frame,5_18_framexml修改版和高仿版的源码注释
- openresty源码剖析——lua代码的加载
- linux调度器源码分析 - 概述(一)
- 《终极网络服务端编程》的lua server 源码