mirror of
https://gitcode.com/JianFeeeee/LuaCangjia_api.git
synced 2026-09-21 01:18:10 +00:00
feat: 适配 Lua 5.3.6 (lua_5.3.6 分支)
- lib/lua 替换为 Lua 5.3.6 官方源码 - luaconf.h LUA_EXTRASPACE 扩为 272 字节(容纳 iopath 重定向结构, 与 5.4.8 同方案) - CMakeLists 版本号同步; lbitlib.c 不参与链接(5.3 位运算已内建, bit32 未注册) - PackagePathConfig 测试跨版本语义适配: * Lua 5.3 require 返回 1 值(模块本身) → 栈顶为 'LoadedViaPkgPath' * Lua 5.4+ require 返回 2 值(模块+loader data) → 栈顶为文件路径 断言改为接受两种结果, 并注明差异原因 - 验证: GTest 44/44 通过
This commit is contained in:
@ -207,7 +207,11 @@ func testLoadLibOverflow(): Unit {
|
||||
func testPackagePathConfig(): Unit {
|
||||
let runner = LuaRunner(pkgpath: SCRIPTS_DIR + "/pkgmods/?.lua")
|
||||
let res = runner.runScript(scriptPath("pkgpath_require_mylib.lua"), "")
|
||||
@Expect(res, SCRIPTS_DIR + "/pkgmods/mylib.lua")
|
||||
// 跨版本语义:Lua 5.4+ 的 require 返回 2 值,run() 读栈顶得 loader data(文件路径);
|
||||
// Lua ≤5.3 返回 1 值,得模块本身("pkgmod-mylib")。两者都表明 pkgpath 生效。
|
||||
let isPath = res == SCRIPTS_DIR + "/pkgmods/mylib.lua"
|
||||
let isModule = res == "LoadedViaPkgPath"
|
||||
@Expect(isPath || isModule, true)
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user