硬汉嵌入式论坛

 找回密码
 立即注册
查看: 54|回复: 0
收起左侧

LUA脚本发布V5.5.1版本,以稳定为主(2026-08-08)

[复制链接]

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
123726
QQ
发表于 前天 15:01 | 显示全部楼层 |阅读模式
https://github.com/lua/lua

1、锚定机制重构(ldo.c / lparser.c / lundump.c):新增 luaD_anchorobj 函数,用统一的锚定表替代之前散落在多个栈槽里的 GC 固定逻辑,解析器/反序列化器签名都加了 Table *anchor 参数。
2、CallInfo 分配容错(lstate.c):luaE_extendCI 新增 int err 参数,分配失败时可选择返回 NULL 而非直接抛错;同时维护 ci->previous 双向链表。
3、luaD_checkminstack 增强:不仅检查栈空间,还预检查是否有至少两个可用 CallInfo,并尝试预分配。
4、load 函数简化(lbaselib.c):移除了 RESERVEDSLOT 机制,改用 firstcall 标志通过 userdata 传给 reader;默认模式从 "bt" 改为 NULL。同时 loadfile 明确用 "bt",loadstring/dofile 明确用 "t"。
5、LUA_NODEBUGLIB 编译选项(lua.c):启用后 debug 库不自动打开但会预加载,需要显式 require 才能用——适合对启动安全敏感的嵌入场景。
6、环境变量统一控制(lua.c):引入 l_getenv 函数指针,-E 选项时切到 no_getenv,不再对 LUA_INIT 做特殊跳过。
7、readline 库可配置:新增环境变量 LUA_READLINELIB(LUA_RLLIB_VAR)指定库名;macOS 不再自动链接 -lreadline,需要时自行加 LUA_USE_READLINE。
8、LUA_COMPAT_GLOBAL 可覆盖:从无条件 #define 改为 #if !defined(...) 保护,global 现在默认是常规词;语法上 global attnamelist 扩展为 global attnamelist ['=' explist],支持直接赋值。
9、GCObject 转换宏重构(lstate.h):所有 gco2* 宏从走 union GCUnion * 中间转换改为直接 cast(T*, o),引用标准条款也从 6.7.2.1 换成 6.3.2.2(指针转换)。
10、OP_VARARGPREP 操作模式修正:从 opmode(0,0,1,0,1,iABC) 改为 opmode(0,0,0,0,0,iABC),移除错误的 IT/OT 位;luaP_isOT 改为内联宏。

https://www.lua.org/manual/5.5/




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-8-10 14:42 , Processed in 0.568287 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表