|
|
8aff33e402
|
feat: 适配 Lua 5.2.4 (lua_5.2.4 分支)
- lib/lua 替换为 Lua 5.2.4 官方源码; CMakeLists 补 lbitlib.c(5.2 linit 注册 bit32)、删 lutf8lib.c(5.2 无此文件)
- I/O 重定向机制改造: 5.2 无 lua_getextraspace → iopath 指针存入
Registry 固定索引(IOPATH_REG_IDX=1), 回调经 get_iopath() 取回,
free_lua 时释放 —— 该方案同样适用于更低版本
- typed interop 版本自适应: capture_result() 的 lua_isinteger 分支用
#if LUA_VERSION_NUM >= 503 包裹, 5.2 及以下所有数字统一 CJT_NUM
- 测试跨版本适配: PackagePathConfig 接受 require 的两种返回语义;
typed 数值断言 EXPECT_INT_OR_NUM 宏兼容有无 integer 子类型;
大整数保真断言仅对 5.3+ 生效(5.2 经 double 必然丢精度)
- 验证: GTest 44/44 通过
|
2026-08-25 10:47:52 +08:00 |
|
|
|
237aab3f36
|
feat: typed interop 原始类型直通映射 (Int64/Float64/Bool)
- C++ 层: callfunction_int/num/bool/void + run_int/num/bool/void
- 新增 capture_result()/finish_call() 正确计算 lua_pcall 实际返回值数量,
修复无返回值场景下误读栈残留的问题
- C FFI 层: 11 个新导出函数 + lua_runner 结构体 tresult_* 镜像字段
- 仓颉层: callFunctionInt/Num/Bool, runScriptInt/Num/Bool, resultType()
带严格类型校验(不匹配抛 LUAERR_RESULT_TYPE)
- 大整数跨 2^53 保真(字符串路径做不到)
- 管道模式语义保留给字符串 API; typed run_* 为独立调用保持栈清洁
- GTest 新增 10 个 typed 测试用例(共 44 个全部通过)
- 独立程序验证仓颉层运行时正确性(int/num/bool直通/大整数保真/错误路径)
|
2026-08-25 09:29:24 +08:00 |
|
|
|
42e8b7676d
|
feat: 实现loadFunction预加载函数能力 + AI辅助编程标识
- 新增 loadFunction/callFunction/unloadFunction 预加载函数 API
- 预加载语义:加载文件→顶层执行一次→返回函数存入Lua Registry→可多次调用
- 与管道模式(load/runScript)存储完全解耦:funcs[]+Registry vs pkgs[]+虚拟栈
- 新增错误码 5023/5024/5025
- 新增单元测试:仓颉侧 8 个 + C++ GTest 侧 11 个
- 本机以 Cangjie 1.1.0 实编译并通过功能运行验证
- README/doc 增加 AI 辅助编程标识及预加载函数模式说明
|
2026-08-23 12:03:04 +08:00 |
|
|
|
8f1d409cf5
|
更新:添加doString方法及对应的单元测试
|
2026-04-05 08:19:20 +08:00 |
|
|
|
a4196e53f9
|
添加单元测试,修复部分错误
|
2026-03-21 11:13:13 +08:00 |
|
|
|
a5eb303c4b
|
完成桥接层
|
2026-03-19 22:04:07 +08:00 |
|
|
|
20221fac5f
|
初始化仓库
|
2026-03-18 16:20:46 +08:00 |
|