2018年12月15日

lua闭包

摘要: lua中有两种闭包, c闭包和lua闭包 两种闭包的公共部分: C闭包的结构 结构比较简单, f是一个满足 int lua_func(lua_State ) 类型的c函数 upvalue是创建C闭包时压入的upvalue, 类型是TValue, 可以得知, upvalue可以是任意的lua类型 Lu 阅读全文

posted @ 2018-12-15 22:00 bytemode 阅读(309) 评论(0) 推荐(0) 编辑

lua模块注册

摘要: Lua自带的模块并不多,好处就是Lua足够的小,毕竟它的设计目标是定位成一个嵌入式的轻量级语言的. 相关的函数index2adr 一个Lua函数栈由两个指针base和top来指定,base指向函数栈底,top则指向栈顶. 回到index2addr函数中,几种情况: 1. 如果索引为正,则从函数栈底为 阅读全文

posted @ 2018-12-15 18:43 bytemode 阅读(609) 评论(0) 推荐(0) 编辑

lua协程实现

摘要: 协程是个很好的东西,它能做的事情与线程相似,区别在于:协程是使用者可控的,有API给使用者来暂停和继续执行,而线程由操作系统内核控制;另外,协程也更加轻量级。这样,在遇到某些可能阻塞的操作时,可以使用暂停协程让出CPU;而当条件满足时,可以继续执行这个协程。目前在网络服务器领域,使用Lua协程最好的 阅读全文

posted @ 2018-12-15 18:16 bytemode 阅读(373) 评论(0) 推荐(0) 编辑

lua表类型

摘要: Lua的表的定义: typedef struct Table { CommonHeader; lu_byte flags; lu_byte lsizenode; / log2 of size of `node' array / struct Table metatable; TValue array 阅读全文

posted @ 2018-12-15 17:39 bytemode 阅读(243) 评论(0) 推荐(0) 编辑

lua字符串类型

摘要: Lua中字符串结构体的定义是: 这里TString结构体是一个union, 最开始的L_Umaxalign dummy;起到的是对齐作用.紧跟着是CommonHeader,可以看出TString也是可GC数据类型的一种. 在Lua中,字符串是一个保存在一个全局的地方,在globale_state的s 阅读全文

posted @ 2018-12-15 17:29 bytemode 阅读(1247) 评论(0) 推荐(0) 编辑

lua通用数据类型

摘要: TValue结构 TValue这个结构体是Lua的通用结构体,,Lua中的所有的数据都可以使用这个结构体来表示.很容易想到,在面向对象中,这个结构体是一个基类,派生出来的都是其他的子类. TValue结构体内部有几个宏, 展开之后就是这样的: 这个结构体定义,总体来说分为两个部分:tt存放的数据类型 阅读全文

posted @ 2018-12-15 17:18 bytemode 阅读(1346) 评论(0) 推荐(0) 编辑

lua栈

摘要: 既然Lua虚拟机模拟的是CPU的运作,那么Lua栈模拟的就是内存的角色.在Lua内部,参数的传递是通过Lua栈,同时Lua与C等外部进行交互的时候也是使用的栈.,先关注的是Lua栈的分配,管理和相关的数据结构. lua虚拟机在初始化创建lua_State结构体时,会走到stack_init函数中,这 阅读全文

posted @ 2018-12-15 14:53 bytemode 阅读(314) 评论(0) 推荐(0) 编辑

lua函数定义

摘要: FuncState proto结构数组保存函数原型信息;prev保存父函数体指针;actvar保存定义的局部变量;upvalues保存upvalue Lua源码中,专门有一个结构体FuncState用来保存函数相关的信息.其实,即使没有创建任何函数,对于Lua而言也有一个最外层的FuncState数 阅读全文

posted @ 2018-12-15 14:32 bytemode 阅读(1477) 评论(0) 推荐(0) 编辑

lua虚拟机概述

摘要: 何为虚拟机 用于模拟计算机运行的程序.是个中间层,它处于脚本语言和硬件之间的一个程序.每一门脚本语言都会有自己定义的opcode(”操作码”),可以理解为这门程序自己定义的”汇编语言”.一般的编译型语言,比如C等,经过编译器编译之后生成的都是与当前硬件环境相匹配的汇编代码;而脚本型的语言,经过前端的 阅读全文

posted @ 2018-12-15 14:06 bytemode 阅读(1594) 评论(0) 推荐(1) 编辑

导航