mirror of
https://gitcode.com/JianFeeeee/LuaCangjia_api.git
synced 2026-09-21 09:28:17 +00:00
- 1994 年发布, 全局单例状态机+按名调用+无虚拟栈模型 - 评估结论: 不建议移植, 详见 doc/ADAPTATION-lua11.md - 建议历史脚本用 5.1 兼容模式运行替代
34 lines
1.3 KiB
Markdown
34 lines
1.3 KiB
Markdown
# Lua 1.1 分支移植评估(ADAPTATION.md)
|
||
|
||
> 本分支已 vendor Lua 1.1 官方源码到 `lib/lua/`(src/ + include/,1994 年发布)。
|
||
> **桥接层尚未适配,且不建议移植。**
|
||
|
||
## 结论:不建议移植
|
||
|
||
Lua 1.1 是 Lua 的第二个公开版本(1994),API 极简且与现代 Lua 完全割裂:
|
||
|
||
```c
|
||
/* lua.h 全部嵌入 API(共约 20 个) */
|
||
int lua_dofile(char *filename);
|
||
int lua_dostring(char *string);
|
||
int lua_call(char *functionname, int nparam); /* 按函数名调用 */
|
||
```
|
||
|
||
不可移植的根本原因:
|
||
|
||
1. **全局单例状态机** —— 无任何状态句柄,多 runner 实例不可能
|
||
2. **无虚拟栈模型** —— 参数经 `lua_getparam(int)` 获取、返回值用 `lua_pushobject` 等
|
||
隐式对象接口;本项目的 pkgs[] 管道栈布局完全无处安放
|
||
3. **按名调用** —— `lua_call("funcname", n)`,没有函数值概念,
|
||
loadFunction/callFunction 预加载模式无法对应
|
||
4. 词法分析器依赖 yacc/lex 工具链构建(src/yacc/),现代环境需额外工具
|
||
5. 1994 年 K&R C 代码,GCC 现代默认标准下大量编译错误
|
||
|
||
## 替代建议
|
||
|
||
如需运行 Lua 1.x 历史脚本:
|
||
- 多数语法是 Lua 5.1 的子集,可直接用 lua_5.1.5 分支尝试加载
|
||
- 或使用官方 lua-5.1 的 LUA_COMPAT 特性
|
||
|
||
本分支仅作为源码存档。
|