这里是Lua 4.0
版本3.2到4.0之间的改变
---------------------------
语言设计:
+新语句:break和for语句
+对全局变量的全局处理:全局变量将都放置到一个Lua table中
+改进错误信息
+no more '$debug': full speed *and* full debug information
+新的'read'形式:read(N)表示读下N个字节
+一般的读取模式现在将被忽视(但依然可以通过编译的时候指定-DCOMPAT_READPATTERNS来使用)
+所有的返回值将作为最近一个函数的arguments(旧的语义可以通过指定-DLUA_COMPAT_ARGRET来使用)
+在垃圾回收过程中对表打标记的的方法将不再有
+现在只用一种标记方法
API:
+新API:丰富的重入,更简单和更有效
+新的debugAPI
实现:
+更轻量级的虚拟机,至少快20%
+无递归垃圾回收算法
+通过大量字符串降低内存使用
+改进内存分配错误处理方法
+通过改进以支持16位机器
+代码可以在ANSI C环境或C++编译
+numbers in bases other than 10 are converted using strtoul.
+提供新的-f选项以支持#!脚本
+luac能够将文本和二进制结合起来
版本3.1到3.2之间的改变
---------------------------
+将所有的ua的输出信息重定向到_ERRORMESSAGE和_ALERT
+提高每个函数的拥有的常量和全局变量的数量上限
+正在调试的信息转移到lua_state中,并且提供新的API函数获取与设置这些信息
+新的debug库提高调试方法
+新的表函数"foreachi","sort","tinset","tremove","getn"
+新的io函数"flush","seek".
版本3.0到3.1之间的改变
---------------------------
+新的功能:匿名函数被解释为closures
-新语法:
-局部变量在块中
-用DO block END提供更好的作用域控制
-构造函数可写
-为函数和左值提供更多一般的语法,例如:
f(x).y = 1
o:f(x,y):g(z)
f"string" is sugar for f("string")
+字符串对象现在可以包含任意的二进制数据
+主要 代码将被重新组织并且得到简化,降低模块之间的耦合
+对于常量和全局变量,数字没有任何限制
+支持多个全局上下文
+更好的语法错误信息
+新的遍历函数"foreach"和"forechvar"
+数字的默认类型是double
+完成的调试信息将保存再预编译块中
+提供简单的交互窗口
版本2.5到3.0的变化
----------------------
+新的概念:标签方法
标签方法代替了fallbacks作为扩展语义的元机制。Whereas fallbacks had a global nature, tag methods
work on objects having the same tag (e.g., groups of tables).
Existing code that uses fallbacks should work without change.
+为构造方法提供新的一般的语义{[exp] = exp, ...}
+函数支持可变长参数
+支持条件编译
+更加的简洁的API以简化宿主代码
+为写库提供更好的支持
+标准库中提供更好的类型检查和错误信息
+ luac can now also undump
版本2.4到2.5的变化
----------------------
+io和字符串库现在基于模式匹配,旧的库现在依然可以兼容
+dofile和dostring函数现在可以返回值
+更好的16位和64位机器的支持
+补充文档,提供更多例子
版本2.2到2.4的变化
----------------------
+内部编译器创建加载速度更 快的可移植的二进制文件
+提供调试和性能查看接口
+为“getglobal”提供新的错误处理过程
+为处理lua对象的引用提供新的函数
+标准库中提供新的函数
+每个字符串只有一份拷贝
+补充文档,提供更多例子
版本2.1到2.2的变化
----------------------
+函数又有新的申明方法:作为左值(functions now may be declared with any "lvalue" as a name)
+为函数提供垃圾回收功能
+支持管道
版本1.1到2.1的变化
----------------------
+提供现象对象的支持
+支持错误处理机制
+简化tables的语法
+很多内部的改进
(END)