vendor: 引入 Lua 2.5 官方源码 + 移植评估 (lua_2.5 分支)

- 前 lua_State 时代 API, 比 3.2 更原始(无 upvalue/无独立编译)
- 评估结论: 不建议移植(多实例冲突+管道模式不可实现), 见 doc/ADAPTATION-lua25.md
- 建议历史脚本用 5.1 兼容模式运行替代
This commit is contained in:
JianFeeeee
2026-08-25 10:20:25 +08:00
parent 80880edbce
commit f2deb81e4a
102 changed files with 7438 additions and 32525 deletions

19
doc/ADAPTATION-lua25.md Normal file
View File

@ -0,0 +1,19 @@
# Lua 2.5 分支移植评估ADAPTATION.md
> 本分支已 vendor Lua 2.5 官方源码到 `lib/lua/`src/ + include/)。
> **桥接层尚未适配,且不建议移植。**
## 结论:不建议移植
Lua 2.51996与 Lua 3.2 同属"前 lua_State 时代",且比 3.2 更原始:
1. **全局单例状态机** —— `lua_open(void)` 无参数无句柄,与本项目多 runner 实例抽象根本冲突
2. **fallback 机制而非 metatable** —— 面向对象模型完全不同
3. **无独立编译** —— `lua_dofile(char*)` 一步式,管道模式的块压栈不可实现
4. **upvalue 语义缺失** —— 闭包模型尚未引入3.1 才有 upvalue
5. 1996 年代码现代编译器需多处修正才能通过K&R C 残留)
若确需支持历史脚本,建议直接用 Lua 5.1 的兼容模式跑(语法子集大部分兼容),
或参考 lua_3.2 分支的评估做极简 doString-only 桥接。
本分支仅作为源码存档。