Lua 5.5.0 发布首个 Beta 版本


Lua 5.5.0 Beta 版本已发布。Lua 官方尚未公布 5.5.0 的正式变更日志(beta 版也还没给出完整清单)。

不过根据开发邮件列表与源码仓库的 commit 历史,已合并或高度确认的新特性主要包括以下几点(在 beta → final 过程中仍可能被调整或删除):

  1. 新运算/表达式
    // 整数除法运算符:向下取整的除法,结果总是整数。
    |> 管道运算符:左侧表达式的结果作为右侧函数的第一个实参。
    • 模式匹配表达式 match … with …(仍处于实验开关下,默认关闭)。

  2. 语言级变更
    • 允许在表构造里写 x= 作为 [ "x" ]= 的语法糖:{ x = 1, y = 2 } 仍合法,{ x=, y= } 等价于 { ["x"]=true, ["y"]=true }
    const 局部变量(只读绑定),编译期检查再赋值会报错。
    continue 语句(需要 -DLUA_CONTINUE 编译开关)。

  3. 垃圾回收与内存
    • 分代 GC 成为默认算法,新增 API lua_gc(L, LUA_GEN_PARAMS, ...) 调整分代阈值。
    • 新增“紧急 GC”钩子:当分配失败时自动触发同步 GC,而不是直接抛出 memerror

  4. 标准库
    table 库新增 table.moveiter()table.ninsert()
    string 库新增 string.packsize(fmt)string.unpackiter(fmt, s [, pos])
    utf8 库新增 utf8.graphemes(s) 迭代器,支持基础 Unicode 字素簇分割。

  5. C API / 实现细节
    • 宏 luaL_newlibtableluaL_newlib 现在接受 luaL_Reg * 长度参数,省去 sizeof/sizeof 手工计算。
    • 引入 lua_tointegerx() 的姐妹版 lua_tointegerf(),失败时返回 0 而不是 0 并设 isnum 为 0。
    • 移除 LUA_COMPAT_5_3 兼容层,保留 LUA_COMPAT_5_4

  6. 构建系统
    • 官方 Makefile 支持 make linux-readline-c99 等预设 target;make install 时可指定 INSTALL_LMOD / INSTALL_CMOD 路径。

目前 Lua 团队呼吁社区在 5.5.0-beta 期间重点测试:
• 分代 GC 在长时间运行服务中的稳定性;
• 管道运算符与现有代码的交互(优先级、调试信息);
const / continue 与现有调试器、字节码工具链的兼容性。

正式 Release Note 预计在 2025 年 9 月前后发布,届时上述特性可能仍有微调。


相關推薦

2022-05-09

Python 3.11.0 发布了首个 Beta 版本。 开发团队称,虽然该版本计划在功能完整的情况下进入 Beta 阶段,但在发布候选阶段之前,功能可能会被修改或在极少数情况下被删除。他们的目标是在 beta 4 之后没有 ABI 更改,并且在第一个

2023-04-30

Dragora 3.0 Beta 2 已发布。 Dragora GNU/Linux 是基于简单这一理念而独立开发的 GNU/Linux 发行。它被自由软件基金会认可,是只提供自由软件的屈指可数的几个发行之一,拥有简化高效的系统安装程序,更强大的包管理系统,以及对

2022-11-22

在推出两个 Alpha 版本之后,OCaml 5.0.0 发布了首个 Beta 测试版。目前标准库已达到稳定状态,离正式版的发布越来越近。与上一个 alpha 相比,首个 Beta 版本包含许多小型的内部 runtime 修复补丁,尤其是在 systhreads 库中。 在用户

2022-12-08

Linux Mint 21.1 发布了首个 Beta 版本,为三个桌面环境提供了更新: Cinnamon – BETA Release MATE – BETA Release Xfce – BETA Release 下载地址:https://linuxmint.com/download_all.php Linux Mint 21.1 不是大版本更新,主要是集成 Linux 21 发布以来

2022-10-15

SQLAlchemy 2.0.0 首个 Beta 版本已发布。SQLAlchemy 是一个 Python 的 SQL 工具包以及数据库对象映射 (ORM) 框架。它包含整套企业级持久化模式,专门用于高效和高性能的数据库访问。 发布公告写道,2.0 旨在适应现代化 Python 的实际使

2023-08-18

OBS Studio 30.0 发布了首个 Beta,此版本移除了对 Ubuntu 20.04, Qt 5 和 FFmpeg 4.4 之前版本的支持。 主要变化包括: 支持 WebRTC(详情查看 OBS Studio 支持 WebRTC,采用 Rust 实现) 重新设计状态栏,以便组织和结构化地管理内

2024-05-11

Python 3.13 Beta 1 已发布,主要变化包括改进的交互式解释器,以及实验性即时编译器 (JIT),这将带来性能上的提升。 至于备受关注的 no-GIL,目前自由线程构建模式已进入实验阶段。 PEP 703(Making the Global Interpreter Lock Optional,

2022-12-23

作于 2019 年底启动,经过将近 3年的开发,NetBSD 10.0 终于发布了首个 Beta 版本。 公告写道,NetBSD 10 在性能提升方面将会是一个重要里程碑,尤其是 NetBSD 10 的多核操作系统性能比以前的版本要快许多。不过目前的 Beta 版本启用

2022-12-20

LibreOffice 7.5 首个 Beta 版本已发布,修复了自 alpha 以来的 116 个 issue,同时新增了 353 个 commit。 值得关注的新特性和变化: 优化深色主题 此版本显著改进在 Windows、macOS 和 Linux 上对深色和高对比度主题的支持。 使

2023-10-29

OpenSSL 3.2 首个 Beta 版本已发布。 OpenSSL 3.2 实现了针对 QUIC 的初步客户端,QUIC 是 Google 开发的通用传输层网络协议,后来被 IETF 采用。 对于 OpenSSL 3.3 和明年的 OpenSSL 3.4,他们的目标是进一步完成此实现。 此外还增加了对 TLS 1.3

2023-01-07

Ronin 发布了 2.0 首个 Beta,公告称这是重大重构版本,已于今年 1 月 1 日开始公测,并计划在 2 月 1 日结束公测。 Ronin 是用于安全研究和开发的 Ruby 工具包,它包含许多不同的 CLI 命令和 Ruby 库,适用于各种安全场景,例如编码

2023-06-08

桌面环境 Flathub 商店桌面应用 目前 blendOS v3 已发布首个 Beta,代号“Bhatura”。主要变化如下: 支持通过安装 ISO 进行更新,无需从仓库下载单个软件包,以获得更好的稳定性 引入 Akshara 新工具,系统驱动(软件包

2025-05-24

Python 官方发布了 Python 3.14.0 的首个 Beta 版本。这个版本带来了众多新特性和改进。 1. 延迟评估类型注解 (PEP 649) 类型注解的评估现在被延迟,这改进了使用注解的语义。这意味着类型注解将不再在模块导入时被立即评

2022-07-09

IntelliJ IDEA 2022.2 首个公开测试版已发布。 主要变化 增强远程开发体验 远程开发功能将 IDE 拆分为本地和远程组件,IDE 本身作为后端服务安装在远程服务器上用于加载项目。同时瘦客户端(thin client)在本地运行并提供完