Lua 版本历史

以下是 Lua 版本的时间顺序。Lua 的演变记录在 2007 年HOPL III,第三届 ACM SIGPLAN 编程语言历史会议上发表的论文中。所有 Lua 版本的源代码和文档均可在下载区域中获得。

编号方案

Lua 的版本编号为x.y.z,其中x.y是版本,z是版本号。

同一版本的不同版本对应于错误修复。同一版本的不同版本具有相同的参考手册、相同的虚拟机,并且二进制兼容(ABI 兼容)。

不同版本确实不同。API 可能略有不同(但具有兼容性开关),并且没有 ABI 兼容性:嵌入 Lua 和 Lua 的 C 库的应用程序必须重新编译。新版本中的虚拟机也极有可能不同:针对一个版本预编译的 Lua 程序将无法加载到其他版本中。

Lua 5.4

Lua 5.4 于 2020 年 6 月 29 日发布。其主要新功能是垃圾回收的新代模式以及 const 和待关闭变量。

当前版本是Lua 5.4.6,于 2023 年 5 月 14 日发布。

Lua 5.3

Lua 5.3 于 2015 年 1 月 12 日发布。其主要新功能是整数、位运算符、一个基本的 utf-8 库以及对 64 位和 32 位平台的支持。

最后一个版本是Lua 5.3.6,于 2020 年 9 月 25 日发布。Lua 5.3 将不再发布新版本。

Lua 5.2

Lua 5.2 于 2011 年 12 月 16 日发布。其主要新功能是可生成 pcall 和元方法、全局变量的新词法方案、短暂表、位运算的新库、轻量级 C 函数、紧急垃圾回收器、goto 语句以及表的析构函数。

最后一个版本是Lua 5.2.4,于 2015 年 3 月 7 日发布。Lua 5.2 将不再发布新版本。

Lua 5.1

Lua 5.1 于 2006 年 2 月 21 日发布。其主要新功能是新的模块系统、增量垃圾回收、varargs 的新机制、长字符串和注释的新语法、mod 和 length 运算符、所有类型的元表、通过 luaconf.h 的新配置方案以及一个完全可重入的解析器。

最后一个版本是Lua 5.1.5,于 2012 年 2 月 17 日发布。Lua 5.1 将不再发布新版本。

Lua 5.0

Lua 5.0 于 2003 年 4 月 11 日发布。其主要新功能包括通过 Lua 协程进行协作多线程处理、完全词法作用域(而非 upvalue)以及元表(而非标记和标记方法)。Lua 5.0 还引入了布尔值、适当的尾调用和弱表。其他功能包括对包的更好支持、用于加载 Lua 块的新 API、新的错误处理协议、更好的错误消息等等。Lua 5.0 是在 新许可证下发布的第一个版本。

最新版本是 Lua 5.0.3,于 2006 年 6 月 26 日发布。Lua 5.0 将不再发布其他版本。

Lua 4.0

Lua 4.0 于 2000 年 11 月 6 日发布。其主要新功能包括多状态、新 API、“for”语句以及在完整调试信息下进行全速执行。此外,Lua 4.0 不再具有内置函数:标准库中的所有函数都使用官方 API 编写。

最新版本是 Lua 4.0.1,于 2002 年 7 月 4 日发布。Lua 4.0 将不再发布其他版本。

Lua 3.2

Lua 3.2 于 1999 年 7 月 8 日发布。其主要新功能包括调试库和新的表函数。

最新版本是 Lua 3.2.2,于 2000 年 2 月 22 日发布。Lua 3.2 将不再发布其他版本。

Lua 3.1

Lua 3.1 于 1998 年 7 月 11 日发布。其主要新功能包括通过“upvalue”实现匿名函数和函数闭包。(Lua 5.0 引入了完全词法作用域并删除了 upvalue。)这为 Lua 带来了函数式编程的风格。它还支持多个全局上下文;但是,API 并非完全可重入(这必须等到 Lua 4.0)。Lua 3.1 还对代码进行了重大的重新组织和清理,大幅减少了模块之间的依赖性。Lua 3.1 还采用双精度来表示内部数字。

Lua 3.0

Lua 3.0 于 1997 年 7 月 1 日发布。其主要新功能是标记方法,作为回退的强大替代。Lua 3.0 还引入了 auxlib,这是一个帮助编写 Lua 库的库,并支持条件编译(在 Lua 4.0 中删除)。

Lua 2.5

Lua 2.5 于 1996 年 11 月 19 日发布。其主要新功能包括模式匹配和可变参数函数。

Lua 2.4

Lua 2.4 于 1996 年 5 月 14 日发布。其主要新功能包括外部编译器 luac、带有钩子的扩展调试界面以及“getglobal”后备。

Lua 2.3

Lua 2.3 从未公开发布;它仅作为测试版存在。

Lua 2.2

Lua 2.2 于 1995 年 11 月 28 日发布。其主要新功能包括长字符串、调试界面、更好的堆栈回溯、函数定义的扩展语法、函数垃圾回收以及对管道支持。

Lua 2.1

Lua 2.1 于 1995 年 2 月 7 日发布。其主要新功能包括通过后备的可扩展语义以及对面向对象编程的支持。此版本在 期刊论文 中进行了描述。从 Lua 2.1 开始,Lua 可免费用于所有目的,包括商业用途。

Lua 1.1

Lua 1.1 于 1994 年 7 月 8 日发布。这是 Lua 的首次公开发布,并在 会议论文 中进行了描述。Lua 1.1 已具备强大的数据描述构造、简单的语法和字节码虚拟机。Lua 1.1 可免费用于学术目的;商业用途需要协商,但从未达成任何协议。

Lua 1.0

Lua 1.0 从未公开发布,但它在 1993 年 7 月 28 日开始运行,并且很可能在几个月前就开始运行。