Lua 5.5.0 首个 Beta 版本发布

lua
软件资讯 软件资讯 发布于 9小时前 1 浏览 0 回复

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 月前后发布,届时上述特性可能仍有微调。



同类文章推荐:

  • Cloudflare 1.1.1.1 出现严重故障
  • Docker 25.0.12 发布
  • 亚马逊全新 AI IDE「Kiro」发布
  • ThinkPHP 8.1.3 版本发布
  • BootstrapBlazor v9.8.1 已经发布,Bootstrap 样式的 Blazor UI 组件库
  • 苹果考虑收购法国 AI 初创公司 Mistral AI