lua中,通常我们用luaL_openlibs(L)加载所有的lub标准库,但是有时候我们想只加载部分,有没有什么好的办法呢?在luaproc看到如下办法:static void registerlib( lua_State *L, const char *name, lua_CFunctio...
转载 2015-10-28 18:03:00
125阅读
讨论话题何为优雅的开发环境如何部署(本文讨论在MacOSX平台,其他平台也一样适用)优雅的Lua开发环境优雅的Lua开发环境至少包含以下几点:安装适合需求的最新稳定版Lua安装合适的Lua包管理器(推荐使用Luarocks,安装见另一文)源码安装(合理的组织安装目录,设置环境变量使Lua环境更易用且易于管理)版本选择首先我们要关注当前流行的各种Lua版本(5.1x,5.2x,5.3x),如何选择我
,剩下 状态数据,如...
转载 2015-01-20 01:34:00
122阅读
2评论
这次简单的补充一下前面类型部分剩下的东西。 首先我们要知道当我们想为lua来编写扩展的时候,有时候可能需要一些全局变量。可是这样会有问题,这是因为这样的话,我们就无法用于多个lua状态(也就是new 多个state). 于是lua提供了三种可以代替全局变量的方法。分别是注册表,环境变量和upvalue。 其中注册表和环境变量都是table。而upva
转载 2024-05-09 16:25:49
111阅读
RDD和共享变量是Spark中的两个重要抽象。RDD弹性分布式数据集, 是分布式内存的一个抽象概念,RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,只能通过在其他RDD执行确定的转换操作(如map、join和group by)而创建,然而这些限制使得实现容错的开销很低。RDD的创建从文件系统中加载数据创建通过并行集合(数据)创建val array = Array(1,2,3
C语言与Lua之间的相互调用详解1. 写一个C调用Lua的Demo编译运行2. C语言调用Lua编译问题总结2.1 正确的编译命令2.2 问题1:缺少-lm参数2.3 问题2:缺少-ldl参数1、为什么会出现undefined reference to ‘xxxxx’错误?2、-l参数和-L参数3 如何让Lua调用C?(其中3种方式)3.1 方式1:在C中注册函数给Lua3.2 方式2:调用C动
转载 2024-04-24 13:20:12
123阅读
lua_State 线程相关脚本上下文 主要包括当前脚本环境的运行状态信息,还会有gc相关的信息。 global_State 全局信息 // global_State 的主要字段 typedef struct global_State { stringtable strt; // hash tabl ...
转载 2021-08-16 12:09:00
642阅读
2评论
这次紧接着上次的,将gc类型的数据分析完毕。 谢谢[url=http://www.zhuzhaoyuan.com]老朱[/url]同学的指正,这里CClosure和LClosure理解有误. 先来看闭包: 可以看到闭包也是会有两种类型,这是因为在lua中,函数不过是一种特殊的闭包而已。 [color=red]更新:这里CClosure表示是c函数,
转载 2024-06-28 07:46:45
61阅读
由于没学习和使用过Cocos2D,但出于工作需要,后面将要学习与使用Cocos2D。 第一次使用修改过的Cocos的时候遇到一些Lua文件是加过密的,不能看到源码,但是又可以正常的被Cocos读取执行,通过对Lua的调试可以看到读取到内存中的源码,由于调试工具的限制,无法直接将这些源码保存到磁盘,当然有一个笨办法,就是将能看到源码的文件一个一个地保存到磁盘,在没有更好的办法之前,也只能这样了。这样
转载 2024-04-18 16:06:55
134阅读
工作后,整个人已经比較松懈了。尽管一直在看lua的源代码。可是一直是比較零碎的时间,没有系统的整理,所以还是收获不多。由于近期工作也不是非常忙了,就想整理下lua的源代码学习的笔记。加深下印象,并分享给大家。先说下这系列bolg我会每周更新2-3篇,没有顺序的这些文章都是自己的浅薄的理解。有什么错误,还请各位拍砖赐教。1.关于c语言函数的声明相信大家都知道接口的重要,在lu
转载 2024-04-21 08:43:44
40阅读
1. 栈定义简单的图2.栈元素TValue定义说明3.GC对象定义说明4.gc链表定义5.栈和gc链表的关系答疑解惑总结 这是这个gc系列的第二篇,这一篇主要讲GC用到的数据结构,有助于理解gc的,所以放在前面1. 栈栈就是我们平时写代码接到的lua_State。在实现上是用一个数组实现的。每个成员类型是TValue,看下文详细介绍。这里不打算详细介绍栈的结构和内容,只会介绍和gc相关的一些内容
转载 2024-04-17 10:22:32
84阅读
你已经看到实现有且只有一次被执行的语义时的复杂性。Trident这样做的好处把所有容错想过的逻辑都放在了State里面 -- 作为一个用户,你并不需要自己去处理复杂的txid,存储多余的信息到数据库中,或者是任何其他类似的事情。你只需要写如下这样简单的code:  TridentTopology topology = new  Tride
原创 2015-06-01 17:14:19
265阅读
lua lua_State 结构设计 数据结构 lua的内存结构最主要有三大块,lua_State、 CallInfo、 lua_TValue。 lua_State里面的 stack (栈)是主要的内存结构,类型是 lua_TValue; lua_TValue 主要是Value,是一个 uion,存 ...
转载 2021-08-19 19:54:00
298阅读
2评论
对于开发来说需要有好的生态开发库来辅助我们快速开发,而 Lua 中也有大多数我们需要的第三方开发库如 Redis、Memcached、Mysql、Http 客户端、JSON、模板引擎等。一些常见的 Lua 库可以在 github 上搜索,https://github.com/search?utf8=%E2%9C%93&q=lua+resty。Redis 客户端lua-resty-redis
转载 2024-04-17 20:50:16
52阅读
 目录一、实战篇 - Lua的安装和Makefile二、实战篇 - Lua的API使用三、实战篇 - C语言中实现动态调用Lua一、实战篇 - Lua的安装和Makefile前面的篇章,我们详细的介绍了整个Lua语言的架构和实现原理。Lua是一门C语言编写的脚本语言,非常的轻巧,大部分情况下Lua的使用场景是作为宿主语言存在。web脚本、游戏脚本、物联网等场景。通俗点讲,你可以将Lua
转载 2024-03-02 11:07:35
166阅读
  研究生即将毕业,答辩完成后,这几天有些时间。开始写一些自己的东西,记录自己的学习历程。                                            --前言本着学习和交流的原则,本文的内容仅供参考,而不是权威版本,如有任何问题,欢迎指出。                                            --声明  跨专业考计算机研究生,至今三年已
转载 2024-08-03 16:09:26
32阅读
在JAVA中,用Thread类代表线程,所有线程对象,都必须是Thread类或者Thread类子类的实例。每个线程的任务就是执行一段顺序执行的代码,JAVA使用线程执行体来容纳这段代码。所以,我们创建线程时,主要是根据实际需求,编写放入线程执行体的代码。一、继承Thread类创建线程1、定义一个类继承Thread类,并重写Thread类的run()方法,run()方法的方法体就是线程要完成的任务,
转载 2024-07-13 09:25:34
78阅读
#lua table 源码分析 lua使用table的单一结构,既可以做array,又可以成为hash,链表,树等结构,是一种简洁高效的使用形式。即使是对虚拟机来说,访问表项也是由底层自动统一操作的,因而用户不必考虑这种区别。表会根据其自身的内容自动动态地使用这两个部分:数组部分试图保存所有那些键介于1 和某个上限n之间的值。非整数键和超过数组范围n 的整数键对应的值将被存入散列表部分。首先看下t
转载 2024-07-23 08:41:41
72阅读
lua垃圾回收(Garbage Collect)是lua中一个比较重要的部分。由于lua源码版本变迁,目前大多数有关这个方面的文章都还是基于lua5.1版本,有一定的滞后性。因此本文通过参考当前的5.3.4版本的Lua源码,希望对Lua的GC算法有一个较为详尽的探讨。1.Lua垃圾回收算法原理简述lua采用了标记清除式(Mark and Sweep)GC算法,算法简述:标记:每次执行GC时,先以若
万事开头难,在开始研究lucene就如猫吃乌龟,不知从何下手。承蒙高手点化,有所心得,记之。   对于java一样面向对象的语言来说,几乎每一个java源文件都是有一个个类组成的,即使在知道lucene的工作流程之后,也不好下手,尤其对于对象之间的调用,很是迷茫。   最开始试想寻找lucene的入口点可以从main函数开始,但是,在执行main函数时,并没
转载 10月前
70阅读
  • 1
  • 2
  • 3
  • 4
  • 5