vendor: 引入 Lua 3.2 官方源码 + 移植评估 (lua_3.2 分支)

- 前 lua_State 时代 API(全局单例状态机), 与项目多实例+管道模式抽象冲突
- 评估结论: 不建议移植, 详见 doc/ADAPTATION-lua32.md
This commit is contained in:
JianFeeeee
2026-08-25 10:20:00 +08:00
parent 80880edbce
commit c7f2fcaf11
77 changed files with 6686 additions and 31288 deletions

View File

@ -1,6 +1,6 @@
/*
** $Id: lfunc.h $
** Auxiliary functions to manipulate prototypes and closures
** $Id: lfunc.h,v 1.5 1997/12/15 16:17:20 roberto Exp $
** Lua Function structures
** See Copyright Notice in lua.h
*/
@ -11,55 +11,13 @@
#include "lobject.h"
#define sizeCclosure(n) \
(offsetof(CClosure, upvalue) + sizeof(TValue) * cast_uint(n))
#define sizeLclosure(n) \
(offsetof(LClosure, upvals) + sizeof(UpVal *) * cast_uint(n))
TProtoFunc *luaF_newproto (void);
Closure *luaF_newclosure (int nelems);
void luaF_freeproto (TProtoFunc *l);
void luaF_freeclosure (Closure *l);
/* test whether thread is in 'twups' list */
#define isintwups(L) (L->twups != L)
/*
** maximum number of upvalues in a closure (both C and Lua). (Value
** must fit in a VM register.)
*/
#define MAXUPVAL 255
#define upisopen(up) ((up)->v.p != &(up)->u.value)
#define uplevel(up) check_exp(upisopen(up), cast(StkId, (up)->v.p))
/*
** maximum number of misses before giving up the cache of closures
** in prototypes
*/
#define MAXMISS 10
/* special status to close upvalues preserving the top of the stack */
#define CLOSEKTOP (LUA_ERRERR + 1)
LUAI_FUNC Proto *luaF_newproto (lua_State *L);
LUAI_FUNC CClosure *luaF_newCclosure (lua_State *L, int nupvals);
LUAI_FUNC LClosure *luaF_newLclosure (lua_State *L, int nupvals);
LUAI_FUNC void luaF_initupvals (lua_State *L, LClosure *cl);
LUAI_FUNC UpVal *luaF_findupval (lua_State *L, StkId level);
LUAI_FUNC void luaF_newtbcupval (lua_State *L, StkId level);
LUAI_FUNC void luaF_closeupval (lua_State *L, StkId level);
LUAI_FUNC StkId luaF_close (lua_State *L, StkId level, TStatus status, int yy);
LUAI_FUNC void luaF_unlinkupval (UpVal *uv);
LUAI_FUNC lu_mem luaF_protosize (Proto *p);
LUAI_FUNC void luaF_freeproto (lua_State *L, Proto *f);
LUAI_FUNC const char *luaF_getlocalname (const Proto *func, int local_number,
int pc);
char *luaF_getlocalname (TProtoFunc *func, int local_number, int line);
#endif