阅读更多

1顶
1踩

编程语言

原创新闻 Lua 5.2 (beta)发布

2011-06-20 11:11 by 见习记者 lihuapi 评论(6) 有6310人浏览
Lua
Lua 5.2 (beta)发布了。Lua 是一个强大的,高效的,灵巧的,可嵌入式的脚本语言。

Lua 是一个扩展式程序设计语言,它被设计成支持通用的过程式编程,并有相关数据描述的设施。 Lua 也能对面向对象编程,函数式编程,数据驱动式编程提供很好的支持。 它可以作为一个强大、轻量的脚本语言,供任何需要的程序使用。 Lua 以一个用 clean C 写成的库形式提供。(所谓 Clean C ,指的 ANSI C 和 C++ 中共通的一个子集)。

作为一个扩展式语言,Lua 没有 "main" 程序的概念:它只能 嵌入 一个宿主程序中工作,这个宿主程序被称作 embedding program 或简称为 host 。 宿主程序可以通过调用函数执行一小段 Lua 代码,可以读写 Lua 变量,可以注入 C 函数让 Lua 代码调用。 这些扩展的 C 函数,可以大大的扩展了 Lua 可以处理事务的领域,这样就可以订制出各种语言, 而它们共享一个统一的句法格式的框架。 Lua 的官方发布版就包含了一个叫做 lua 的简单的宿主程序,它用 Lua 库提供了一个保证独立的 Lua 解释器。

新版本的主要变化:

语言:
1.线程和功能上不再增加fenv
2.表单中支持__len 元方法。
3.hex and \* escapes in strings
4.支持hexadecimal浮点数
5.支持不同类型的元方法。
6.不再验证opcode的一致性。
7."tail call"已经取代了"tail return" 事件。
8.支持空语句。
9.阻塞进程中会出现中断语句。

库:
1.通过xpcall来调用函数。
2.支持加载可选模式。(控制二进制文件)
3.支持加载可选的'env'.
4.新增了功能包:searchpath.
5.支持模块加载时接收路径。
6.在math.log中新增了可选的base。
7.在string.rep新增了隔离器。
8.新增了writereturns文件。
9.关闭pipe时返回exit状态。
10.新增了 __pairs 和__ipairs元方法。
11.为collectgarbage 和 lua_gc新增了 'isrunning' 可选项。
13.frontier patterns。
14.\0in patterns。
15.new option *L for io.read。
16.options for io.lines。
17.debug.getlocalcan access function varargs。

C API
1.在注册时支持预定义的主线程。
2.增加了常量 LUA_OK 和 LUA_ERRGCMM
3.新增了 lua_compare, lua_arith, 和 lua_len
4.新增了 lua_version 和 luaL_checkversion
5.lua_pushstring和 pushlstring 返回字符串。
6.new luaL_testudata and luaL_setmetatable
7.new luaL_tolstring
8.new lua_copy
9.new lua_absindex
10.new lua_upvalueid and lua_upvaluejoin
11.nparamsand isvarag available in debug API
12.new lua_Unsigned

Implementation
1.每个功能的最大常量数上升到一定程度。
2.支持 内在的ctypes版本。
3.潜入了更为简单的string buffers。
4.udata with finalizers被 保存在GC单独的列表里
5.CallInfostack现在是一个链接列表。
6.支持哈希浮点数。
7.在单独的解释器中支持非字符串的错误信息。
8.garbage集合中支持代模式。

详细信息:http://www.lua.org/work/doc/#changes

下载地址:http://www.lua.org/work/
1
1
评论 共 6 条 请登录后发表评论
6 楼 chd_wu 2011-07-15 17:41
小巧,方便,语法再大众一些就好了。JS v8引擎效率还行,但有些笨重。

各有利弊吧。
5 楼 haoningabc 2011-07-05 23:33
tt的扩展也是lua
4 楼 beykery 2011-06-21 09:23
lua没传说中的那么强大,写起来很别扭因为它不是c类语法,我们的项目现在用js做脚本,非常方便。
3 楼 wolf880805 2011-06-21 06:53
cryengine 就是用的lua ,好像是5.1
2 楼 bewithme 2011-06-20 17:11
太高级,看不懂
1 楼 hlylove 2011-06-20 14:27
曾经,我在装某网游的私服时,发现脚本用的就是Lua

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • lua-hot-reload:Lua模块,可对任何复杂性的项目进行“智能” Lua热重装

    要求LuaJIT或Lua 5.2+ 可选的 对于Lua5.1,支持非常有限,除非您通过提供upvalueid和upvaluejoin函数。 LuaFileSystem用于集成的文件系统池循环中,该循环可告知您的游戏文件更改。 如果您在使用Love2D, love....

  • C++无序查找_顺序查找算法简介与代码实现

    1. 简介 该算法针对无序数据,其基本的思想是:从数组的首元素开始,将数组的每个元素逐一与要查找的数据进行比较,直到找到相等的为止,如果查找结束都没有相等的元素,则查找不成功 2. 算法实现 时间复杂度:O(n) #include <iostream> using namespace std; template <typename T> // 查找成功返回该元素的index, 失败返回-1 int seq_search(const T seq[], int n, const T &

  • STL之生成全排列:next_permutation & prev_permutation

    源码剖析: next_permutation: 函数实现原理如下: 在当前序列中,从尾端往前寻找两个相邻元素,前一个记为*i,后一个记为*ii,并且满足*i template bool next_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last) { if (__fi

  • 数据结构封装之 《SeqList顺序表》

    数据结构封装之 《SeqList顺序表》 记录自己的学习过程,有兴趣的朋友可以加个好友,相互学习。

  • 程序调试中的常见问题及解决方法【2017.9.27更新】

    1、CE(Compile Error)编译错误其实很多时候通过返回的错误信息就能找出错误。①缺失符号,如下图 第一句Error表示在“printf”前少了一个分号, 第二句Error表示在“return”前少了一个分号。 通常在错误行的上一行找缺失的分号。比如, int main() { int sas //here; printf("%d",

  • STL之partial_sort

    // partial_sort, partial_sort_copy, and auxiliary functions. //重新安排序列[first,last),使序列前半部分middle-first个最小元素以递增顺序排序,并将其置于[first,middle) //其余last-middle个元素不指定任何排序,并将其置于[middle,last) //注意:迭代器middle是在[firs...

  • 让lua-5.2.0-beta 支持中文

    Lua 5.2 Bata 版可在 http://www.lua.org/work/下载,下载地址是: http://www.lua.org/work/lua-5.2.0-beta.tar.gz。Lua 5.2 中增加了goto语句。 要让Lua支持中文,可以通过以下的修改来实现,

  • Lua的演进,历史

    lua的优点: 可移植性 容易嵌入 体积小 高效率 这些优点都来自于lua的设计目标:简洁。从Scheme获得了很多灵感,包括匿名函数,合理的语义域概念 3 lua前身 巴西被商贸限制,引入计算机软件和硬件受限,巴西人...

  • lua的演进 lua的历史

    Lua 的演进 lua 的优点:  可移植性  容易嵌入  体积小  高效率 这些优点都来自于 lua 的设计目标:简洁。从 Scheme 获得了很多灵感,包括 匿名函数,合理的语义域概念 3 lua 前身 巴西被商贸限制,引入...

  • php调用lua,php7.0支持调用lua脚本

    需求前瞻:最近因需求,需要支持php调用现有的Lua代码,可以减少php的代码量,同时在维护上也比较方便,不会照成需求变更,需要同时修改两份代码第一步:安装php7.0及以上版本,此处安装方法就略过第二步:官网下载...

  • 【数据结构】顺序表seqlist

    #include #include #include typedef struct seqlistNode { int date; }seqlistNode; typedef struct SEQLIST { unsigned int lengh; //长度 unsigned int count; //已存元素长度 seqlistNode * date; //数据

  • 白日门手游luac文件加密怎么解密_浅析android手游lua脚本的加密与解密

    附件包括201703版本的梦幻手游里面提取的so文件和一些加密后的资源文件(包括lua脚本),并包括了2个扑鱼APK文件,最后还打包了解密代码,供大家参考。附件太大,快100MB,上传不来论坛,我又放到百度网盘了......链接...

  • lua版本历史

    * 5.2beta:2011-07-13 * 5.2.0:2011-12-16。pcall和metamethod可以被yield;新的lexical scheme for globals;ephemeron tables;位操作库bit32;light c函数;emergency垃圾回收器(分配内存失败时会紧急执行一次...

  • LuaJIT分支和标准Lua有什么不同?

    而更多 Lua 语言的基础知识,你可以通过搜索引擎或者 Lua 的书籍自己来学习,这里我推荐 Lua 作者编写的《Lua 程序设计》这本书。 当然,在 OpenResty 中,写出正确的 LuaJIT 代码的门槛并不高,但要写出高效的 ...

  • lua-4 数组与迭代、元表

    "beta" , [ 3 ] = "no" , [ "two" ] = "yes" } for i,v in ipairs (tabFiles ) do --输出前三个 备注:因为第四个key不是整数 print ( tabFiles [i] ) end for i,v in pairs (tabFiles ) do...

  • Android手游lua脚本的加密与解密

    附件包括201703版本的梦幻手游里面提取的so文件和一些加密后的资源文件(包括lua脚本),并包括了2个扑鱼APK文件,最后还打包了解密代码,供大家参考。 附件太大,快100MB,上传不来论坛,我又放到百度网盘了........

  • Nginx添加Lua模块和优化配置

    Nginx添加Lua模块和优化配置 文章目录Nginx添加Lua模块和优化配置参考文档:一、引子二、安装LuaJIT22.1、关于 LuaJIT 和 Openresty的luajit22.2、安装2.3、环境变量配置三、Nginx Module下载3.1、ngx_devel_kit3.2...

  • Lua5.3简单的C扩展示例以及与OpenResty(LuaJIT)的兼容编译

    上篇文章在OpenResty的LuaJIT环境下编译了简单的C扩展示例和LuaSQL,这次我们在标准的Lua官方标准版本Lua5.3下编译这个C扩展…… 之所以没有随着上一篇文章中写出来,而是采用另发一篇博文来补充的原因是……我刚刚...

  • lua unit test introduction

    Lua 5.1, LuaJIT 2.0, LuaJIT 2.1 beta, Lua 5.2 and Lua 5.3 lunit https://www.mroth.net/lunit/ 5. November 2009: Lunit Version 0.5 released. 否 函数 Lua 5.1 busted ...

  • Lua history

    Lua history Lua: version history Version history5.2 · 5.1 · 5.0 · 4.0 · 3.2 · 3.1 · 3.0 · 2.5 · 2.4 · 2.2 · 2.1 · 1.1 · 1.0Here is a...

Global site tag (gtag.js) - Google Analytics