随笔分类 -  lua

lua协程实现及field访问的一个细节
摘要:intro 由于C不支持协程,C++只有在最近的C++标准(C++20)中才支持协程,如果希望在C++中支持协程通常需要使用第三方库。针对这种问题,可能有些实现在C++中嵌入lua脚本,利用lua的原生协程机制来达到协程效果;或者干脆使用go这种内置包含了协程的语言。 协程 问题 私有堆栈 协程的一 阅读全文

posted @ 2024-06-29 18:22 tsecer 阅读(75) 评论(0) 推荐(0) 编辑

C++和lua关于lambda/closure的实现对比
摘要:closure lexical scope 这篇文章虽然不长,但是厘清了一些基本的概念: 闭包的直观效果就是可以捕捉所在环境中的变量。 Closures are special functions that can capture the environment, i.e. variables wi 阅读全文

posted @ 2024-04-10 14:31 tsecer 阅读(62) 评论(0) 推荐(0) 编辑

基于method实现lua访问C++对象成员
摘要:一、问题 对于一个在C++创建的类对象,lua中如何调用这个对象的C++接口?进一步,如果我们想在lua中实现对这个C++类的接口扩展,该如何实现? 二、lua对于类似于C++中meta类型的支持 在lua中,为了模拟对于C++中面向对象中一个类接口的支持,提供一个专门的"NameSpace:fun 阅读全文

posted @ 2021-04-22 20:16 tsecer 阅读(394) 评论(0) 推荐(0) 编辑

基于CClosure实现lua访问C++对象成员
摘要:一、在lua中使用面向对象的问题 在软件实现中,一个对象通常有一个handle,在C/C++语言中最为常见的指针也可以看做是一个handle。在和操作系统交互时,这个handle就可能是一个文件的描述符。当C++和lua交互时,同样需要一个handle作为某个对象(object)的标识。lua支持的 阅读全文

posted @ 2021-04-22 20:12 tsecer 阅读(226) 评论(0) 推荐(0) 编辑

lua GC实现入门
摘要:零、参考文档 作者的说明 一、GC实现需要考虑的问题 1、着色可以处理循环引用 mark and sweep实现,通过着色的方法,一个优点就是可以避免循环引用,当A和B两个对象可能互相指向对方时,着色可以避免无限递归。 2、全量集和可达集 sweep的时候是清除没有被访问过的节点,相当于从全量集合中 阅读全文

posted @ 2019-09-11 16:24 tsecer 阅读(1071) 评论(0) 推荐(0) 编辑

lua中复杂表达式的寄存器分配
摘要:一、代码中输入的由来 这个来源通常有三个:upvalue、const、local。除了local变量天然对应寄存器之外,另外的const和upvalue在使用的时候都需要专门的指令来加载到寄存器中,因为大部分的机器操作都是基于寄存器实现。这一点在lua-5.3.4\src\lopcodes.h可以看 阅读全文

posted @ 2019-09-10 18:58 tsecer 阅读(953) 评论(0) 推荐(1) 编辑

lua的变量查找及全局变量
摘要:一、从hello world说起 当执行print("Hello World!")时,明显这是需要有执行一个特定的向标准输出打印字符串的功能,所以这里首先涉及到的是一个函数查找的问题,也就是如何把字符串和对应的功能联系起来。在最为常见的C语言中,这个查找是由链接器完成的:它从所有的obj文件中查找这 阅读全文

posted @ 2019-09-09 18:41 tsecer 阅读(4414) 评论(0) 推荐(0) 编辑

lua表格
摘要:一、表格 表格在整个Lua语言的数据结构中占有重要地位,正如Lua的作者所说: Tables are the main — in fact, the only — data-structuring mechanism in Lua.Table是Lua的主要(事实上,也是唯一的)数据结构。 数组变量的 阅读全文

posted @ 2019-03-07 10:32 tsecer 阅读(278) 评论(0) 推荐(0) 编辑

lua闭包
摘要:一、闭包的由来 闭包这个概念对于没有接触过函数式编程的人来说还是比较陌生的,它基于把函数看作头等公民(first-class),至于怎么理解这个first-class,我想大致就是说把函数看作是像int、float这样的基本类型,而不是把它看作一个特殊的、定制的特殊实体。把函数当作基本类型之后,就可 阅读全文

posted @ 2019-03-07 10:32 tsecer 阅读(365) 评论(0) 推荐(0) 编辑

lua函数调用
摘要:一、问题 和C相比,Lua是一种限制比较松散的语言,这个在函数相关的处理中更加明显。函数可以有多个参数,函数返回值可以被赋值给变量列表(Lua manual中的varlist),函数可以return表达式列表(Lua manual中的explist),这些其实也不是很混乱,问题在于这些特性放在一起的 阅读全文

posted @ 2019-03-07 10:31 tsecer 阅读(5625) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示