Lua 5.5.0 Beta 版本已发布。Lua 官方尚未公布 5.5.0 的正式变更日志(beta 版也还没给出完整清单)。
不过根据开发邮件列表与源码仓库的 commit 历史,已合并或高度确认的新特性主要包括以下几点(在 beta → final 过程中仍可能被调整或删除):
-
新运算/表达式
•//整数除法运算符:向下取整的除法,结果总是整数。
•|>管道运算符:左侧表达式的结果作为右侧函数的第一个实参。
• 模式匹配表达式match … with …(仍处于实验开关下,默认关闭)。 -
语言级变更
• 允许在表构造里写x=作为[ "x" ]=的语法糖:{ x = 1, y = 2 }仍合法,{ x=, y= }等价于{ ["x"]=true, ["y"]=true }。
•const局部变量(只读绑定),编译期检查再赋值会报错。
•continue语句(需要-DLUA_CONTINUE编译开关)。 -
垃圾回收与内存
• 分代 GC 成为默认算法,新增 APIlua_gc(L, LUA_GEN_PARAMS, ...)调整分代阈值。
• 新增“紧急 GC”钩子:当分配失败时自动触发同步 GC,而不是直接抛出memerror。 -
标准库
•table库新增table.moveiter()、table.ninsert()。
•string库新增string.packsize(fmt)和string.unpackiter(fmt, s [, pos])。
•utf8库新增utf8.graphemes(s)迭代器,支持基础 Unicode 字素簇分割。 -
C API / 实现细节
• 宏luaL_newlibtable和luaL_newlib现在接受luaL_Reg *长度参数,省去sizeof/sizeof手工计算。
• 引入lua_tointegerx()的姐妹版lua_tointegerf(),失败时返回 0 而不是 0 并设isnum为 0。
• 移除LUA_COMPAT_5_3兼容层,保留LUA_COMPAT_5_4。 -
构建系统
• 官方 Makefile 支持make linux-readline-c99等预设 target;make install时可指定INSTALL_LMOD/INSTALL_CMOD路径。
目前 Lua 团队呼吁社区在 5.5.0-beta 期间重点测试:
• 分代 GC 在长时间运行服务中的稳定性;
• 管道运算符与现有代码的交互(优先级、调试信息);
• const / continue 与现有调试器、字节码工具链的兼容性。
正式 Release Note 预计在 2025 年 9 月前后发布,届时上述特性可能仍有微调。





还没有评论,来说两句吧...