Switched from dynamic to static Lua lib

This commit is contained in:
MysterD 2022-01-23 20:04:53 -08:00
parent 0631108733
commit d09abc7bcd
7 changed files with 202 additions and 204 deletions

View file

@ -759,9 +759,19 @@ endif
# coop specific libraries # coop specific libraries
# lua # lua
LDFLAGS += -Llib/lua -l:liblua54.a ifeq ($(WINDOWS_BUILD),1)
LUA_LIBS := lib/lua/lua54.dll ifeq ($(TARGET_BITS), 32)
LDFLAGS += -Llib/lua/win32 -l:liblua53.a
else
LDFLAGS += -Llib/lua/win64 -l:liblua53.a
endif
else ifeq ($(OSX_BUILD),1)
LDFLAGS += -Llib/lua/mac -l:liblua53.a
else
LDFLAGS += -Llib/lua/linux -l:liblua53.a
endif
# network
ifeq ($(WINDOWS_BUILD),1) ifeq ($(WINDOWS_BUILD),1)
LDFLAGS += -L"ws2_32" -lwsock32 LDFLAGS += -L"ws2_32" -lwsock32
ifeq ($(DISCORD_SDK),1) ifeq ($(DISCORD_SDK),1)
@ -865,9 +875,6 @@ $(BUILD_DIR)/$(RPC_LIBS):
$(BUILD_DIR)/$(DISCORD_SDK_LIBS): $(BUILD_DIR)/$(DISCORD_SDK_LIBS):
@$(CP) -f $(DISCORD_SDK_LIBS) $(BUILD_DIR) @$(CP) -f $(DISCORD_SDK_LIBS) $(BUILD_DIR)
$(BUILD_DIR)/$(LUA_LIBS):
@$(CP) -f $(LUA_LIBS) $(BUILD_DIR)
$(BUILD_DIR)/$(MOD_DIR): $(BUILD_DIR)/$(MOD_DIR):
@$(CP) -f -r $(MOD_DIR) $(BUILD_DIR) @$(CP) -f -r $(MOD_DIR) $(BUILD_DIR)
@ -1121,7 +1128,7 @@ $(BUILD_DIR)/%.o: %.s
$(EXE): $(O_FILES) $(MIO0_FILES:.mio0=.o) $(SOUND_OBJ_FILES) $(ULTRA_O_FILES) $(GODDARD_O_FILES) $(BUILD_DIR)/$(RPC_LIBS) $(BUILD_DIR)/$(DISCORD_SDK_LIBS) $(BUILD_DIR)/$(LUA_LIBS) $(BUILD_DIR)/$(MOD_DIR) $(EXE): $(O_FILES) $(MIO0_FILES:.mio0=.o) $(SOUND_OBJ_FILES) $(ULTRA_O_FILES) $(GODDARD_O_FILES) $(BUILD_DIR)/$(RPC_LIBS) $(BUILD_DIR)/$(DISCORD_SDK_LIBS) $(BUILD_DIR)/$(MOD_DIR)
$(LD) -L $(BUILD_DIR) -o $@ $(O_FILES) $(SOUND_OBJ_FILES) $(ULTRA_O_FILES) $(GODDARD_O_FILES) $(LDFLAGS) $(LD) -L $(BUILD_DIR) -o $@ $(O_FILES) $(SOUND_OBJ_FILES) $(ULTRA_O_FILES) $(GODDARD_O_FILES) $(LDFLAGS)
.PHONY: all clean distclean default diff test load libultra res .PHONY: all clean distclean default diff test load libultra res

View file

@ -1,5 +1,5 @@
/* /*
** $Id: lauxlib.h $ ** $Id: lauxlib.h,v 1.131.1.1 2017/04/19 17:20:42 roberto Exp $
** Auxiliary functions for building Lua libraries ** Auxiliary functions for building Lua libraries
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@ -15,12 +15,6 @@
#include "lua.h" #include "lua.h"
/* global table */
#define LUA_GNAME "_G"
typedef struct luaL_Buffer luaL_Buffer;
/* extra error code for 'luaL_loadfilex' */ /* extra error code for 'luaL_loadfilex' */
#define LUA_ERRFILE (LUA_ERRERR+1) #define LUA_ERRFILE (LUA_ERRERR+1)
@ -50,7 +44,6 @@ LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e);
LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e); LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e);
LUALIB_API const char *(luaL_tolstring) (lua_State *L, int idx, size_t *len); LUALIB_API const char *(luaL_tolstring) (lua_State *L, int idx, size_t *len);
LUALIB_API int (luaL_argerror) (lua_State *L, int arg, const char *extramsg); LUALIB_API int (luaL_argerror) (lua_State *L, int arg, const char *extramsg);
LUALIB_API int (luaL_typeerror) (lua_State *L, int arg, const char *tname);
LUALIB_API const char *(luaL_checklstring) (lua_State *L, int arg, LUALIB_API const char *(luaL_checklstring) (lua_State *L, int arg,
size_t *l); size_t *l);
LUALIB_API const char *(luaL_optlstring) (lua_State *L, int arg, LUALIB_API const char *(luaL_optlstring) (lua_State *L, int arg,
@ -80,7 +73,6 @@ LUALIB_API int (luaL_checkoption) (lua_State *L, int arg, const char *def,
LUALIB_API int (luaL_fileresult) (lua_State *L, int stat, const char *fname); LUALIB_API int (luaL_fileresult) (lua_State *L, int stat, const char *fname);
LUALIB_API int (luaL_execresult) (lua_State *L, int stat); LUALIB_API int (luaL_execresult) (lua_State *L, int stat);
/* predefined references */ /* predefined references */
#define LUA_NOREF (-2) #define LUA_NOREF (-2)
#define LUA_REFNIL (-1) #define LUA_REFNIL (-1)
@ -101,10 +93,8 @@ LUALIB_API lua_State *(luaL_newstate) (void);
LUALIB_API lua_Integer (luaL_len) (lua_State *L, int idx); LUALIB_API lua_Integer (luaL_len) (lua_State *L, int idx);
LUALIB_API void luaL_addgsub (luaL_Buffer *b, const char *s, LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s, const char *p,
const char *p, const char *r); const char *r);
LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s,
const char *p, const char *r);
LUALIB_API void (luaL_setfuncs) (lua_State *L, const luaL_Reg *l, int nup); LUALIB_API void (luaL_setfuncs) (lua_State *L, const luaL_Reg *l, int nup);
@ -131,10 +121,6 @@ LUALIB_API void (luaL_requiref) (lua_State *L, const char *modname,
#define luaL_argcheck(L, cond,arg,extramsg) \ #define luaL_argcheck(L, cond,arg,extramsg) \
((void)((cond) || luaL_argerror(L, (arg), (extramsg)))) ((void)((cond) || luaL_argerror(L, (arg), (extramsg))))
#define luaL_argexpected(L,cond,arg,tname) \
((void)((cond) || luaL_typeerror(L, (arg), (tname))))
#define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL)) #define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL))
#define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL)) #define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL))
@ -153,30 +139,19 @@ LUALIB_API void (luaL_requiref) (lua_State *L, const char *modname,
#define luaL_loadbuffer(L,s,sz,n) luaL_loadbufferx(L,s,sz,n,NULL) #define luaL_loadbuffer(L,s,sz,n) luaL_loadbufferx(L,s,sz,n,NULL)
/* push the value used to represent failure/error */
#define luaL_pushfail(L) lua_pushnil(L)
/* /*
** {====================================================== ** {======================================================
** Generic Buffer manipulation ** Generic Buffer manipulation
** ======================================================= ** =======================================================
*/ */
struct luaL_Buffer { typedef struct luaL_Buffer {
char *b; /* buffer address */ char *b; /* buffer address */
size_t size; /* buffer size */ size_t size; /* buffer size */
size_t n; /* number of characters in buffer */ size_t n; /* number of characters in buffer */
lua_State *L; lua_State *L;
union { char initb[LUAL_BUFFERSIZE]; /* initial buffer */
LUAI_MAXALIGN; /* ensure maximum alignment for buffer */ } luaL_Buffer;
char b[LUAL_BUFFERSIZE]; /* initial buffer */
} init;
};
#define luaL_bufflen(bf) ((bf)->n)
#define luaL_buffaddr(bf) ((bf)->b)
#define luaL_addchar(B,c) \ #define luaL_addchar(B,c) \
@ -185,8 +160,6 @@ struct luaL_Buffer {
#define luaL_addsize(B,s) ((B)->n += (s)) #define luaL_addsize(B,s) ((B)->n += (s))
#define luaL_buffsub(B,s) ((B)->n -= (s))
LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B); LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B);
LUALIB_API char *(luaL_prepbuffsize) (luaL_Buffer *B, size_t sz); LUALIB_API char *(luaL_prepbuffsize) (luaL_Buffer *B, size_t sz);
LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l); LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l);
@ -224,6 +197,21 @@ typedef struct luaL_Stream {
/* }====================================================== */ /* }====================================================== */
/* compatibility with old module system */
#if defined(LUA_COMPAT_MODULE)
LUALIB_API void (luaL_pushmodule) (lua_State *L, const char *modname,
int sizehint);
LUALIB_API void (luaL_openlib) (lua_State *L, const char *libname,
const luaL_Reg *l, int nup);
#define luaL_register(L,n,l) (luaL_openlib(L,(n),(l),0))
#endif
/* /*
** {================================================================== ** {==================================================================
** "Abstraction Layer" for basic report of messages and errors ** "Abstraction Layer" for basic report of messages and errors

View file

@ -1,5 +1,5 @@
/* /*
** $Id: lua.h $ ** $Id: lua.h,v 1.332.1.2 2018/06/13 16:58:17 roberto Exp $
** Lua - A Scripting Language ** Lua - A Scripting Language
** Lua.org, PUC-Rio, Brazil (http://www.lua.org) ** Lua.org, PUC-Rio, Brazil (http://www.lua.org)
** See Copyright Notice at the end of this file ** See Copyright Notice at the end of this file
@ -17,15 +17,13 @@
#define LUA_VERSION_MAJOR "5" #define LUA_VERSION_MAJOR "5"
#define LUA_VERSION_MINOR "4" #define LUA_VERSION_MINOR "3"
#define LUA_VERSION_RELEASE "2" #define LUA_VERSION_NUM 503
#define LUA_VERSION_RELEASE "5"
#define LUA_VERSION_NUM 504
#define LUA_VERSION_RELEASE_NUM (LUA_VERSION_NUM * 100 + 0)
#define LUA_VERSION "Lua " LUA_VERSION_MAJOR "." LUA_VERSION_MINOR #define LUA_VERSION "Lua " LUA_VERSION_MAJOR "." LUA_VERSION_MINOR
#define LUA_RELEASE LUA_VERSION "." LUA_VERSION_RELEASE #define LUA_RELEASE LUA_VERSION "." LUA_VERSION_RELEASE
#define LUA_COPYRIGHT LUA_RELEASE " Copyright (C) 1994-2020 Lua.org, PUC-Rio" #define LUA_COPYRIGHT LUA_RELEASE " Copyright (C) 1994-2018 Lua.org, PUC-Rio"
#define LUA_AUTHORS "R. Ierusalimschy, L. H. de Figueiredo, W. Celes" #define LUA_AUTHORS "R. Ierusalimschy, L. H. de Figueiredo, W. Celes"
@ -51,7 +49,8 @@
#define LUA_ERRRUN 2 #define LUA_ERRRUN 2
#define LUA_ERRSYNTAX 3 #define LUA_ERRSYNTAX 3
#define LUA_ERRMEM 4 #define LUA_ERRMEM 4
#define LUA_ERRERR 5 #define LUA_ERRGCMM 5
#define LUA_ERRERR 6
typedef struct lua_State lua_State; typedef struct lua_State lua_State;
@ -72,7 +71,7 @@ typedef struct lua_State lua_State;
#define LUA_TUSERDATA 7 #define LUA_TUSERDATA 7
#define LUA_TTHREAD 8 #define LUA_TTHREAD 8
#define LUA_NUMTYPES 9 #define LUA_NUMTAGS 9
@ -125,13 +124,6 @@ typedef int (*lua_Writer) (lua_State *L, const void *p, size_t sz, void *ud);
typedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize); typedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize);
/*
** Type for warning functions
*/
typedef void (*lua_WarnFunction) (void *ud, const char *msg, int tocont);
/* /*
** generic extra include file ** generic extra include file
@ -153,12 +145,11 @@ extern const char lua_ident[];
LUA_API lua_State *(lua_newstate) (lua_Alloc f, void *ud); LUA_API lua_State *(lua_newstate) (lua_Alloc f, void *ud);
LUA_API void (lua_close) (lua_State *L); LUA_API void (lua_close) (lua_State *L);
LUA_API lua_State *(lua_newthread) (lua_State *L); LUA_API lua_State *(lua_newthread) (lua_State *L);
LUA_API int (lua_resetthread) (lua_State *L);
LUA_API lua_CFunction (lua_atpanic) (lua_State *L, lua_CFunction panicf); LUA_API lua_CFunction (lua_atpanic) (lua_State *L, lua_CFunction panicf);
LUA_API lua_Number (lua_version) (lua_State *L); LUA_API const lua_Number *(lua_version) (lua_State *L);
/* /*
@ -191,7 +182,7 @@ LUA_API lua_Number (lua_tonumberx) (lua_State *L, int idx, int *isnum);
LUA_API lua_Integer (lua_tointegerx) (lua_State *L, int idx, int *isnum); LUA_API lua_Integer (lua_tointegerx) (lua_State *L, int idx, int *isnum);
LUA_API int (lua_toboolean) (lua_State *L, int idx); LUA_API int (lua_toboolean) (lua_State *L, int idx);
LUA_API const char *(lua_tolstring) (lua_State *L, int idx, size_t *len); LUA_API const char *(lua_tolstring) (lua_State *L, int idx, size_t *len);
LUA_API lua_Unsigned (lua_rawlen) (lua_State *L, int idx); LUA_API size_t (lua_rawlen) (lua_State *L, int idx);
LUA_API lua_CFunction (lua_tocfunction) (lua_State *L, int idx); LUA_API lua_CFunction (lua_tocfunction) (lua_State *L, int idx);
LUA_API void *(lua_touserdata) (lua_State *L, int idx); LUA_API void *(lua_touserdata) (lua_State *L, int idx);
LUA_API lua_State *(lua_tothread) (lua_State *L, int idx); LUA_API lua_State *(lua_tothread) (lua_State *L, int idx);
@ -256,9 +247,9 @@ LUA_API int (lua_rawgeti) (lua_State *L, int idx, lua_Integer n);
LUA_API int (lua_rawgetp) (lua_State *L, int idx, const void *p); LUA_API int (lua_rawgetp) (lua_State *L, int idx, const void *p);
LUA_API void (lua_createtable) (lua_State *L, int narr, int nrec); LUA_API void (lua_createtable) (lua_State *L, int narr, int nrec);
LUA_API void *(lua_newuserdatauv) (lua_State *L, size_t sz, int nuvalue); LUA_API void *(lua_newuserdata) (lua_State *L, size_t sz);
LUA_API int (lua_getmetatable) (lua_State *L, int objindex); LUA_API int (lua_getmetatable) (lua_State *L, int objindex);
LUA_API int (lua_getiuservalue) (lua_State *L, int idx, int n); LUA_API int (lua_getuservalue) (lua_State *L, int idx);
/* /*
@ -272,7 +263,7 @@ LUA_API void (lua_rawset) (lua_State *L, int idx);
LUA_API void (lua_rawseti) (lua_State *L, int idx, lua_Integer n); LUA_API void (lua_rawseti) (lua_State *L, int idx, lua_Integer n);
LUA_API void (lua_rawsetp) (lua_State *L, int idx, const void *p); LUA_API void (lua_rawsetp) (lua_State *L, int idx, const void *p);
LUA_API int (lua_setmetatable) (lua_State *L, int objindex); LUA_API int (lua_setmetatable) (lua_State *L, int objindex);
LUA_API int (lua_setiuservalue) (lua_State *L, int idx, int n); LUA_API void (lua_setuservalue) (lua_State *L, int idx);
/* /*
@ -297,21 +288,13 @@ LUA_API int (lua_dump) (lua_State *L, lua_Writer writer, void *data, int strip);
*/ */
LUA_API int (lua_yieldk) (lua_State *L, int nresults, lua_KContext ctx, LUA_API int (lua_yieldk) (lua_State *L, int nresults, lua_KContext ctx,
lua_KFunction k); lua_KFunction k);
LUA_API int (lua_resume) (lua_State *L, lua_State *from, int narg, LUA_API int (lua_resume) (lua_State *L, lua_State *from, int narg);
int *nres);
LUA_API int (lua_status) (lua_State *L); LUA_API int (lua_status) (lua_State *L);
LUA_API int (lua_isyieldable) (lua_State *L); LUA_API int (lua_isyieldable) (lua_State *L);
#define lua_yield(L,n) lua_yieldk(L, (n), 0, NULL) #define lua_yield(L,n) lua_yieldk(L, (n), 0, NULL)
/*
** Warning-related functions
*/
LUA_API void (lua_setwarnf) (lua_State *L, lua_WarnFunction f, void *ud);
LUA_API void (lua_warning) (lua_State *L, const char *msg, int tocont);
/* /*
** garbage-collection function and options ** garbage-collection function and options
*/ */
@ -325,10 +308,8 @@ LUA_API void (lua_warning) (lua_State *L, const char *msg, int tocont);
#define LUA_GCSETPAUSE 6 #define LUA_GCSETPAUSE 6
#define LUA_GCSETSTEPMUL 7 #define LUA_GCSETSTEPMUL 7
#define LUA_GCISRUNNING 9 #define LUA_GCISRUNNING 9
#define LUA_GCGEN 10
#define LUA_GCINC 11
LUA_API int (lua_gc) (lua_State *L, int what, ...); LUA_API int (lua_gc) (lua_State *L, int what, int data);
/* /*
@ -347,7 +328,6 @@ LUA_API size_t (lua_stringtonumber) (lua_State *L, const char *s);
LUA_API lua_Alloc (lua_getallocf) (lua_State *L, void **ud); LUA_API lua_Alloc (lua_getallocf) (lua_State *L, void **ud);
LUA_API void (lua_setallocf) (lua_State *L, lua_Alloc f, void *ud); LUA_API void (lua_setallocf) (lua_State *L, lua_Alloc f, void *ud);
LUA_API void (lua_toclose) (lua_State *L, int idx);
/* /*
@ -397,7 +377,7 @@ LUA_API void (lua_toclose) (lua_State *L, int idx);
/* /*
** {============================================================== ** {==============================================================
** compatibility macros ** compatibility macros for unsigned conversions
** =============================================================== ** ===============================================================
*/ */
#if defined(LUA_COMPAT_APIINTCASTS) #if defined(LUA_COMPAT_APIINTCASTS)
@ -407,13 +387,6 @@ LUA_API void (lua_toclose) (lua_State *L, int idx);
#define lua_tounsigned(L,i) lua_tounsignedx(L,(i),NULL) #define lua_tounsigned(L,i) lua_tounsignedx(L,(i),NULL)
#endif #endif
#define lua_newuserdata(L,s) lua_newuserdatauv(L,s,1)
#define lua_getuservalue(L,idx) lua_getiuservalue(L,idx,1)
#define lua_setuservalue(L,idx) lua_setiuservalue(L,idx,1)
#define LUA_NUMTAGS LUA_NUMTYPES
/* }============================================================== */ /* }============================================================== */
/* /*
@ -464,7 +437,6 @@ LUA_API lua_Hook (lua_gethook) (lua_State *L);
LUA_API int (lua_gethookmask) (lua_State *L); LUA_API int (lua_gethookmask) (lua_State *L);
LUA_API int (lua_gethookcount) (lua_State *L); LUA_API int (lua_gethookcount) (lua_State *L);
LUA_API int (lua_setcstacklimit) (lua_State *L, unsigned int limit);
struct lua_Debug { struct lua_Debug {
int event; int event;
@ -472,7 +444,6 @@ struct lua_Debug {
const char *namewhat; /* (n) 'global', 'local', 'field', 'method' */ const char *namewhat; /* (n) 'global', 'local', 'field', 'method' */
const char *what; /* (S) 'Lua', 'C', 'main', 'tail' */ const char *what; /* (S) 'Lua', 'C', 'main', 'tail' */
const char *source; /* (S) */ const char *source; /* (S) */
size_t srclen; /* (S) */
int currentline; /* (l) */ int currentline; /* (l) */
int linedefined; /* (S) */ int linedefined; /* (S) */
int lastlinedefined; /* (S) */ int lastlinedefined; /* (S) */
@ -480,8 +451,6 @@ struct lua_Debug {
unsigned char nparams;/* (u) number of parameters */ unsigned char nparams;/* (u) number of parameters */
char isvararg; /* (u) */ char isvararg; /* (u) */
char istailcall; /* (t) */ char istailcall; /* (t) */
unsigned short ftransfer; /* (r) index of first value transferred */
unsigned short ntransfer; /* (r) number of transferred values */
char short_src[LUA_IDSIZE]; /* (S) */ char short_src[LUA_IDSIZE]; /* (S) */
/* private part */ /* private part */
struct CallInfo *i_ci; /* active function */ struct CallInfo *i_ci; /* active function */
@ -491,7 +460,7 @@ struct lua_Debug {
/****************************************************************************** /******************************************************************************
* Copyright (C) 1994-2020 Lua.org, PUC-Rio. * Copyright (C) 1994-2018 Lua.org, PUC-Rio.
* *
* Permission is hereby granted, free of charge, to any person obtaining * Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the * a copy of this software and associated documentation files (the

View file

@ -1,5 +1,5 @@
/* /*
** $Id: luaconf.h $ ** $Id: luaconf.h,v 1.259.1.1 2017/04/19 17:29:57 roberto Exp $
** Configuration file for Lua ** Configuration file for Lua
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@ -14,16 +14,6 @@
/* /*
** =================================================================== ** ===================================================================
** General Configuration File for Lua
**
** Some definitions here can be changed externally, through the
** compiler (e.g., with '-D' options). Those are protected by
** '#if !defined' guards. However, several other definitions should
** be changed directly here, either because they affect the Lua
** ABI (by making the changes here, you ensure that all software
** connected to Lua, such as C libraries, will be compiled with the
** same configuration); or because they are seldom changed.
**
** Search for "@@" to find all configurable definitions. ** Search for "@@" to find all configurable definitions.
** =================================================================== ** ===================================================================
*/ */
@ -32,10 +22,20 @@
/* /*
** {==================================================================== ** {====================================================================
** System Configuration: macros to adapt (if needed) Lua to some ** System Configuration: macros to adapt (if needed) Lua to some
** particular platform, for instance restricting it to C89. ** particular platform, for instance compiling it with 32-bit numbers or
** restricting it to C89.
** ===================================================================== ** =====================================================================
*/ */
/*
@@ LUA_32BITS enables Lua with 32-bit integers and 32-bit floats. You
** can also define LUA_32BITS in the make file, but changing here you
** ensure that all software connected to Lua will be compiled with the
** same configuration.
*/
/* #define LUA_32BITS */
/* /*
@@ LUA_USE_C89 controls the use of non-ISO-C89 features. @@ LUA_USE_C89 controls the use of non-ISO-C89 features.
** Define it if you want Lua to avoid the use of a few C99 features ** Define it if you want Lua to avoid the use of a few C99 features
@ -61,36 +61,17 @@
#if defined(LUA_USE_LINUX) #if defined(LUA_USE_LINUX)
#define LUA_USE_POSIX #define LUA_USE_POSIX
#define LUA_USE_DLOPEN /* needs an extra library: -ldl */ #define LUA_USE_DLOPEN /* needs an extra library: -ldl */
#define LUA_USE_READLINE /* needs some extra libraries */
#endif #endif
#if defined(LUA_USE_MACOSX) #if defined(LUA_USE_MACOSX)
#define LUA_USE_POSIX #define LUA_USE_POSIX
#define LUA_USE_DLOPEN /* MacOS does not need -ldl */ #define LUA_USE_DLOPEN /* MacOS does not need -ldl */
#define LUA_USE_READLINE /* needs an extra library: -lreadline */
#endif #endif
/*
@@ LUAI_IS32INT is true iff 'int' has (at least) 32 bits.
*/
#define LUAI_IS32INT ((UINT_MAX >> 30) >= 3)
/* }================================================================== */
/*
** {==================================================================
** Configuration for Number types.
** ===================================================================
*/
/*
@@ LUA_32BITS enables Lua with 32-bit integers and 32-bit floats.
*/
/* #define LUA_32BITS */
/* /*
@@ LUA_C89_NUMBERS ensures that Lua uses the largest types available for @@ LUA_C89_NUMBERS ensures that Lua uses the largest types available for
** C89 ('long' and 'double'); Windows always has '__int64', so it does ** C89 ('long' and 'double'); Windows always has '__int64', so it does
@ -101,11 +82,24 @@
#endif #endif
/*
@@ LUAI_BITSINT defines the (minimum) number of bits in an 'int'.
*/
/* avoid undefined shifts */
#if ((INT_MAX >> 15) >> 15) >= 1
#define LUAI_BITSINT 32
#else
/* 'int' always must have at least 16 bits */
#define LUAI_BITSINT 16
#endif
/* /*
@@ LUA_INT_TYPE defines the type for Lua integers. @@ LUA_INT_TYPE defines the type for Lua integers.
@@ LUA_FLOAT_TYPE defines the type for Lua floats. @@ LUA_FLOAT_TYPE defines the type for Lua floats.
** Lua should work fine with any mix of these options supported ** Lua should work fine with any mix of these options (if supported
** by your C compiler. The usual configurations are 64-bit integers ** by your C compiler). The usual configurations are 64-bit integers
** and 'double' (the default), 32-bit integers and 'float' (for ** and 'double' (the default), 32-bit integers and 'float' (for
** restricted platforms), and 'long'/'double' (for C compilers not ** restricted platforms), and 'long'/'double' (for C compilers not
** compliant with C99, which may not have support for 'long long'). ** compliant with C99, which may not have support for 'long long').
@ -125,7 +119,7 @@
/* /*
** 32-bit integers and 'float' ** 32-bit integers and 'float'
*/ */
#if LUAI_IS32INT /* use 'int' if big enough */ #if LUAI_BITSINT >= 32 /* use 'int' if big enough */
#define LUA_INT_TYPE LUA_INT_INT #define LUA_INT_TYPE LUA_INT_INT
#else /* otherwise use 'long' */ #else /* otherwise use 'long' */
#define LUA_INT_TYPE LUA_INT_LONG #define LUA_INT_TYPE LUA_INT_LONG
@ -157,6 +151,7 @@
/* /*
** {================================================================== ** {==================================================================
** Configuration for Paths. ** Configuration for Paths.
@ -184,7 +179,6 @@
** hierarchy or if you want to install your libraries in ** hierarchy or if you want to install your libraries in
** non-conventional directories. ** non-conventional directories.
*/ */
#define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR #define LUA_VDIR LUA_VERSION_MAJOR "." LUA_VERSION_MINOR
#if defined(_WIN32) /* { */ #if defined(_WIN32) /* { */
/* /*
@ -194,42 +188,29 @@
#define LUA_LDIR "!\\lua\\" #define LUA_LDIR "!\\lua\\"
#define LUA_CDIR "!\\" #define LUA_CDIR "!\\"
#define LUA_SHRDIR "!\\..\\share\\lua\\" LUA_VDIR "\\" #define LUA_SHRDIR "!\\..\\share\\lua\\" LUA_VDIR "\\"
#if !defined(LUA_PATH_DEFAULT)
#define LUA_PATH_DEFAULT \ #define LUA_PATH_DEFAULT \
LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \ LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \
LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua;" \ LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua;" \
LUA_SHRDIR"?.lua;" LUA_SHRDIR"?\\init.lua;" \ LUA_SHRDIR"?.lua;" LUA_SHRDIR"?\\init.lua;" \
".\\?.lua;" ".\\?\\init.lua" ".\\?.lua;" ".\\?\\init.lua"
#endif
#if !defined(LUA_CPATH_DEFAULT)
#define LUA_CPATH_DEFAULT \ #define LUA_CPATH_DEFAULT \
LUA_CDIR"?.dll;" \ LUA_CDIR"?.dll;" \
LUA_CDIR"..\\lib\\lua\\" LUA_VDIR "\\?.dll;" \ LUA_CDIR"..\\lib\\lua\\" LUA_VDIR "\\?.dll;" \
LUA_CDIR"loadall.dll;" ".\\?.dll;" \ LUA_CDIR"loadall.dll;" ".\\?.dll;" \
LUA_CDIR"?54.dll;" ".\\?54.dll" LUA_CDIR"?53.dll;" ".\\?53.dll"
#endif
#else /* }{ */ #else /* }{ */
#define LUA_ROOT "/usr/local/" #define LUA_ROOT "/usr/local/"
#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/" #define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/"
#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/" #define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/"
#if !defined(LUA_PATH_DEFAULT)
#define LUA_PATH_DEFAULT \ #define LUA_PATH_DEFAULT \
LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \ LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \
LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua;" \ LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua;" \
"./?.lua;" "./?/init.lua" "./?.lua;" "./?/init.lua"
#endif
#if !defined(LUA_CPATH_DEFAULT)
#define LUA_CPATH_DEFAULT \ #define LUA_CPATH_DEFAULT \
LUA_CDIR"?.so;" LUA_CDIR"loadall.so;" "./?.so;" \ LUA_CDIR"?.so;" LUA_CDIR"loadall.so;" "./?.so;" \
LUA_CDIR"lib?54.so;" "./lib?54.so" LUA_CDIR"lib?53.so;" "./lib?53.so"
#endif
#endif /* } */ #endif /* } */
@ -238,16 +219,12 @@
** CHANGE it if your machine does not use "/" as the directory separator ** CHANGE it if your machine does not use "/" as the directory separator
** and is not Windows. (On Windows Lua automatically uses "\".) ** and is not Windows. (On Windows Lua automatically uses "\".)
*/ */
#if !defined(LUA_DIRSEP)
#if defined(_WIN32) #if defined(_WIN32)
#define LUA_DIRSEP "\\" #define LUA_DIRSEP "\\"
#else #else
#define LUA_DIRSEP "/" #define LUA_DIRSEP "/"
#endif #endif
#endif
/* }================================================================== */ /* }================================================================== */
@ -281,18 +258,16 @@
#endif /* } */ #endif /* } */
/* /* more often than not the libs go together with the core */
** More often than not the libs go together with the core.
*/
#define LUALIB_API LUA_API #define LUALIB_API LUA_API
#define LUAMOD_API LUA_API #define LUAMOD_API LUALIB_API
/* /*
@@ LUAI_FUNC is a mark for all extern functions that are not to be @@ LUAI_FUNC is a mark for all extern functions that are not to be
** exported to outside modules. ** exported to outside modules.
@@ LUAI_DDEF and LUAI_DDEC are marks for all extern (const) variables, @@ LUAI_DDEF and LUAI_DDEC are marks for all extern (const) variables
** none of which to be exported to outside modules (LUAI_DDEF for ** that are not to be exported to outside modules (LUAI_DDEF for
** definitions and LUAI_DDEC for declarations). ** definitions and LUAI_DDEC for declarations).
** CHANGE them if you need to mark them in some special way. Elf/gcc ** CHANGE them if you need to mark them in some special way. Elf/gcc
** (versions 3.2 and later) mark them as "hidden" to optimize access ** (versions 3.2 and later) mark them as "hidden" to optimize access
@ -304,12 +279,12 @@
*/ */
#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \ #if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \
defined(__ELF__) /* { */ defined(__ELF__) /* { */
#define LUAI_FUNC __attribute__((visibility("internal"))) extern #define LUAI_FUNC __attribute__((visibility("hidden"))) extern
#else /* }{ */ #else /* }{ */
#define LUAI_FUNC extern #define LUAI_FUNC extern
#endif /* } */ #endif /* } */
#define LUAI_DDEC(dec) LUAI_FUNC dec #define LUAI_DDEC LUAI_FUNC
#define LUAI_DDEF /* empty */ #define LUAI_DDEF /* empty */
/* }================================================================== */ /* }================================================================== */
@ -322,43 +297,88 @@
*/ */
/* /*
@@ LUA_COMPAT_5_3 controls other macros for compatibility with Lua 5.3. @@ LUA_COMPAT_5_2 controls other macros for compatibility with Lua 5.2.
@@ LUA_COMPAT_5_1 controls other macros for compatibility with Lua 5.1.
** You can define it to get all options, or change specific options ** You can define it to get all options, or change specific options
** to fit your specific needs. ** to fit your specific needs.
*/ */
#if defined(LUA_COMPAT_5_3) /* { */ #if defined(LUA_COMPAT_5_2) /* { */
/* /*
@@ LUA_COMPAT_MATHLIB controls the presence of several deprecated @@ LUA_COMPAT_MATHLIB controls the presence of several deprecated
** functions in the mathematical library. ** functions in the mathematical library.
** (These functions were already officially removed in 5.3;
** nevertheless they are still available here.)
*/ */
#define LUA_COMPAT_MATHLIB #define LUA_COMPAT_MATHLIB
/*
@@ LUA_COMPAT_BITLIB controls the presence of library 'bit32'.
*/
#define LUA_COMPAT_BITLIB
/*
@@ LUA_COMPAT_IPAIRS controls the effectiveness of the __ipairs metamethod.
*/
#define LUA_COMPAT_IPAIRS
/* /*
@@ LUA_COMPAT_APIINTCASTS controls the presence of macros for @@ LUA_COMPAT_APIINTCASTS controls the presence of macros for
** manipulating other integer types (lua_pushunsigned, lua_tounsigned, ** manipulating other integer types (lua_pushunsigned, lua_tounsigned,
** luaL_checkint, luaL_checklong, etc.) ** luaL_checkint, luaL_checklong, etc.)
** (These macros were also officially removed in 5.3, but they are still
** available here.)
*/ */
#define LUA_COMPAT_APIINTCASTS #define LUA_COMPAT_APIINTCASTS
#endif /* } */
#if defined(LUA_COMPAT_5_1) /* { */
/* Incompatibilities from 5.2 -> 5.3 */
#define LUA_COMPAT_MATHLIB
#define LUA_COMPAT_APIINTCASTS
/* /*
@@ LUA_COMPAT_LT_LE controls the emulation of the '__le' metamethod @@ LUA_COMPAT_UNPACK controls the presence of global 'unpack'.
** using '__lt'. ** You can replace it with 'table.unpack'.
*/ */
#define LUA_COMPAT_LT_LE #define LUA_COMPAT_UNPACK
/*
@@ LUA_COMPAT_LOADERS controls the presence of table 'package.loaders'.
** You can replace it with 'package.searchers'.
*/
#define LUA_COMPAT_LOADERS
/*
@@ macro 'lua_cpcall' emulates deprecated function lua_cpcall.
** You can call your C function directly (with light C functions).
*/
#define lua_cpcall(L,f,u) \
(lua_pushcfunction(L, (f)), \
lua_pushlightuserdata(L,(u)), \
lua_pcall(L,1,0,0))
/*
@@ LUA_COMPAT_LOG10 defines the function 'log10' in the math library.
** You can rewrite 'log10(x)' as 'log(x, 10)'.
*/
#define LUA_COMPAT_LOG10
/*
@@ LUA_COMPAT_LOADSTRING defines the function 'loadstring' in the base
** library. You can rewrite 'loadstring(s)' as 'load(s)'.
*/
#define LUA_COMPAT_LOADSTRING
/*
@@ LUA_COMPAT_MAXN defines the function 'maxn' in the table library.
*/
#define LUA_COMPAT_MAXN
/* /*
@@ The following macros supply trivial compatibility for some @@ The following macros supply trivial compatibility for some
** changes in the API. The macros themselves document how to ** changes in the API. The macros themselves document how to
** change your code to avoid using them. ** change your code to avoid using them.
** (Once more, these macros were officially removed in 5.3, but they are
** still available here.)
*/ */
#define lua_strlen(L,i) lua_rawlen(L, (i)) #define lua_strlen(L,i) lua_rawlen(L, (i))
@ -367,8 +387,23 @@
#define lua_equal(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPEQ) #define lua_equal(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPEQ)
#define lua_lessthan(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPLT) #define lua_lessthan(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPLT)
/*
@@ LUA_COMPAT_MODULE controls compatibility with previous
** module functions 'module' (Lua) and 'luaL_register' (C).
*/
#define LUA_COMPAT_MODULE
#endif /* } */ #endif /* } */
/*
@@ LUA_COMPAT_FLOATSTRING makes Lua format integral floats without a
@@ a float mark ('.0').
** This macro is not on by default even in compatibility mode,
** because this is not really an incompatibility.
*/
/* #define LUA_COMPAT_FLOATSTRING */
/* }================================================================== */ /* }================================================================== */
@ -385,14 +420,14 @@
@@ LUA_NUMBER is the floating-point type used by Lua. @@ LUA_NUMBER is the floating-point type used by Lua.
@@ LUAI_UACNUMBER is the result of a 'default argument promotion' @@ LUAI_UACNUMBER is the result of a 'default argument promotion'
@@ over a floating number. @@ over a floating number.
@@ l_floatatt(x) corrects float attribute 'x' to the proper float type @@ l_mathlim(x) corrects limit name 'x' to the proper float type
** by prefixing it with one of FLT/DBL/LDBL. ** by prefixing it with one of FLT/DBL/LDBL.
@@ LUA_NUMBER_FRMLEN is the length modifier for writing floats. @@ LUA_NUMBER_FRMLEN is the length modifier for writing floats.
@@ LUA_NUMBER_FMT is the format for writing floats. @@ LUA_NUMBER_FMT is the format for writing floats.
@@ lua_number2str converts a float to a string. @@ lua_number2str converts a float to a string.
@@ l_mathop allows the addition of an 'l' or 'f' to all math operations. @@ l_mathop allows the addition of an 'l' or 'f' to all math operations.
@@ l_floor takes the floor of a float. @@ l_floor takes the floor of a float.
@@ lua_str2number converts a decimal numeral to a number. @@ lua_str2number converts a decimal numeric string to a number.
*/ */
@ -404,13 +439,12 @@
l_sprintf((s), sz, LUA_NUMBER_FMT, (LUAI_UACNUMBER)(n)) l_sprintf((s), sz, LUA_NUMBER_FMT, (LUAI_UACNUMBER)(n))
/* /*
@@ lua_numbertointeger converts a float number with an integral value @@ lua_numbertointeger converts a float number to an integer, or
** to an integer, or returns 0 if float is not within the range of ** returns 0 if float is not within the range of a lua_Integer.
** a lua_Integer. (The range comparisons are tricky because of ** (The range comparisons are tricky because of rounding. The tests
** rounding. The tests here assume a two-complement representation, ** here assume a two-complement representation, where MININTEGER always
** where MININTEGER always has an exact representation as a float; ** has an exact representation as a float; MAXINTEGER may not have one,
** MAXINTEGER may not have one, and therefore its conversion to float ** and therefore its conversion to float may have an ill-defined value.)
** may have an ill-defined value.)
*/ */
#define lua_numbertointeger(n,p) \ #define lua_numbertointeger(n,p) \
((n) >= (LUA_NUMBER)(LUA_MININTEGER) && \ ((n) >= (LUA_NUMBER)(LUA_MININTEGER) && \
@ -424,7 +458,7 @@
#define LUA_NUMBER float #define LUA_NUMBER float
#define l_floatatt(n) (FLT_##n) #define l_mathlim(n) (FLT_##n)
#define LUAI_UACNUMBER double #define LUAI_UACNUMBER double
@ -440,7 +474,7 @@
#define LUA_NUMBER long double #define LUA_NUMBER long double
#define l_floatatt(n) (LDBL_##n) #define l_mathlim(n) (LDBL_##n)
#define LUAI_UACNUMBER long double #define LUAI_UACNUMBER long double
@ -455,7 +489,7 @@
#define LUA_NUMBER double #define LUA_NUMBER double
#define l_floatatt(n) (DBL_##n) #define l_mathlim(n) (DBL_##n)
#define LUAI_UACNUMBER double #define LUAI_UACNUMBER double
@ -480,13 +514,11 @@
@@ LUA_UNSIGNED is the unsigned version of LUA_INTEGER. @@ LUA_UNSIGNED is the unsigned version of LUA_INTEGER.
** **
@@ LUAI_UACINT is the result of a 'default argument promotion' @@ LUAI_UACINT is the result of a 'default argument promotion'
@@ over a LUA_INTEGER. @@ over a lUA_INTEGER.
@@ LUA_INTEGER_FRMLEN is the length modifier for reading/writing integers. @@ LUA_INTEGER_FRMLEN is the length modifier for reading/writing integers.
@@ LUA_INTEGER_FMT is the format for writing integers. @@ LUA_INTEGER_FMT is the format for writing integers.
@@ LUA_MAXINTEGER is the maximum value for a LUA_INTEGER. @@ LUA_MAXINTEGER is the maximum value for a LUA_INTEGER.
@@ LUA_MININTEGER is the minimum value for a LUA_INTEGER. @@ LUA_MININTEGER is the minimum value for a LUA_INTEGER.
@@ LUA_MAXUNSIGNED is the maximum value for a LUA_UNSIGNED.
@@ LUA_UNSIGNEDBITS is the number of bits in a LUA_UNSIGNED.
@@ lua_integer2str converts an integer to a string. @@ lua_integer2str converts an integer to a string.
*/ */
@ -507,9 +539,6 @@
#define LUA_UNSIGNED unsigned LUAI_UACINT #define LUA_UNSIGNED unsigned LUAI_UACINT
#define LUA_UNSIGNEDBITS (sizeof(LUA_UNSIGNED) * CHAR_BIT)
/* now the variable definitions */ /* now the variable definitions */
#if LUA_INT_TYPE == LUA_INT_INT /* { int */ #if LUA_INT_TYPE == LUA_INT_INT /* { int */
@ -520,8 +549,6 @@
#define LUA_MAXINTEGER INT_MAX #define LUA_MAXINTEGER INT_MAX
#define LUA_MININTEGER INT_MIN #define LUA_MININTEGER INT_MIN
#define LUA_MAXUNSIGNED UINT_MAX
#elif LUA_INT_TYPE == LUA_INT_LONG /* }{ long */ #elif LUA_INT_TYPE == LUA_INT_LONG /* }{ long */
#define LUA_INTEGER long #define LUA_INTEGER long
@ -530,8 +557,6 @@
#define LUA_MAXINTEGER LONG_MAX #define LUA_MAXINTEGER LONG_MAX
#define LUA_MININTEGER LONG_MIN #define LUA_MININTEGER LONG_MIN
#define LUA_MAXUNSIGNED ULONG_MAX
#elif LUA_INT_TYPE == LUA_INT_LONGLONG /* }{ long long */ #elif LUA_INT_TYPE == LUA_INT_LONGLONG /* }{ long long */
/* use presence of macro LLONG_MAX as proxy for C99 compliance */ /* use presence of macro LLONG_MAX as proxy for C99 compliance */
@ -544,8 +569,6 @@
#define LUA_MAXINTEGER LLONG_MAX #define LUA_MAXINTEGER LLONG_MAX
#define LUA_MININTEGER LLONG_MIN #define LUA_MININTEGER LLONG_MIN
#define LUA_MAXUNSIGNED ULLONG_MAX
#elif defined(LUA_USE_WINDOWS) /* }{ */ #elif defined(LUA_USE_WINDOWS) /* }{ */
/* in Windows, can use specific Windows types */ /* in Windows, can use specific Windows types */
@ -555,8 +578,6 @@
#define LUA_MAXINTEGER _I64_MAX #define LUA_MAXINTEGER _I64_MAX
#define LUA_MININTEGER _I64_MIN #define LUA_MININTEGER _I64_MIN
#define LUA_MAXUNSIGNED _UI64_MAX
#else /* }{ */ #else /* }{ */
#error "Compiler does not support 'long long'. Use option '-DLUA_32BITS' \ #error "Compiler does not support 'long long'. Use option '-DLUA_32BITS' \
@ -591,7 +612,7 @@
/* /*
@@ lua_strx2number converts a hexadecimal numeral to a number. @@ lua_strx2number converts an hexadecimal numeric string to a number.
** In C99, 'strtod' does that conversion. Otherwise, you can ** In C99, 'strtod' does that conversion. Otherwise, you can
** leave 'lua_strx2number' undefined and Lua will provide its own ** leave 'lua_strx2number' undefined and Lua will provide its own
** implementation. ** implementation.
@ -609,7 +630,7 @@
/* /*
@@ lua_number2strx converts a float to a hexadecimal numeral. @@ lua_number2strx converts a float to an hexadecimal numeric string.
** In C99, 'sprintf' (with format specifiers '%a'/'%A') does that. ** In C99, 'sprintf' (with format specifiers '%a'/'%A') does that.
** Otherwise, you can leave 'lua_number2strx' undefined and Lua will ** Otherwise, you can leave 'lua_number2strx' undefined and Lua will
** provide its own implementation. ** provide its own implementation.
@ -655,7 +676,7 @@
/* /*
@@ lua_getlocaledecpoint gets the locale "radix character" (decimal point). @@ lua_getlocaledecpoint gets the locale "radix character" (decimal point).
** Change that if you do not want to use C locales. (Code using this ** Change that if you do not want to use C locales. (Code using this
** macro must include the header 'locale.h'.) ** macro must include header 'locale.h'.)
*/ */
#if !defined(lua_getlocaledecpoint) #if !defined(lua_getlocaledecpoint)
#define lua_getlocaledecpoint() (localeconv()->decimal_point[0]) #define lua_getlocaledecpoint() (localeconv()->decimal_point[0])
@ -696,7 +717,7 @@
** {================================================================== ** {==================================================================
** Macros that affect the API and must be stable (that is, must be the ** Macros that affect the API and must be stable (that is, must be the
** same when you compile Lua and when you compile code that links to ** same when you compile Lua and when you compile code that links to
** Lua). ** Lua). You probably do not want/need to change them.
** ===================================================================== ** =====================================================================
*/ */
@ -705,9 +726,8 @@
** CHANGE it if you need a different limit. This limit is arbitrary; ** CHANGE it if you need a different limit. This limit is arbitrary;
** its only purpose is to stop Lua from consuming unlimited stack ** its only purpose is to stop Lua from consuming unlimited stack
** space (and to reserve some numbers for pseudo-indices). ** space (and to reserve some numbers for pseudo-indices).
** (It must fit into max(size_t)/32.)
*/ */
#if LUAI_IS32INT #if LUAI_BITSINT >= 32
#define LUAI_MAXSTACK 1000000 #define LUAI_MAXSTACK 1000000
#else #else
#define LUAI_MAXSTACK 15000 #define LUAI_MAXSTACK 15000
@ -732,19 +752,28 @@
/* /*
@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. @@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
** CHANGE it if it uses too much C-stack space. (For long double,
** 'string.format("%.99f", -1e4932)' needs 5034 bytes, so a
** smaller buffer would force a memory allocation for each call to
** 'string.format'.)
*/ */
#define LUAL_BUFFERSIZE ((int)(16 * sizeof(void*) * sizeof(lua_Number))) #if LUA_FLOAT_TYPE == LUA_FLOAT_LONGDOUBLE
#define LUAL_BUFFERSIZE 8192
#else
/* #define LUAL_BUFFERSIZE ((int)(0x80 * sizeof(void*) * sizeof(lua_Integer)))
@@ LUAI_MAXALIGN defines fields that, when used in a union, ensure #endif
** maximum alignment for the other items in that union.
*/
#define LUAI_MAXALIGN lua_Number n; double u; void *s; lua_Integer i; long l
/* }================================================================== */ /* }================================================================== */
/*
@@ LUA_QL describes how error messages quote program elements.
** Lua does not use these macros anymore; they are here for
** compatibility only.
*/
#define LUA_QL(x) "'" x "'"
#define LUA_QS LUA_QL("%s")

View file

@ -1,5 +1,5 @@
/* /*
** $Id: lualib.h $ ** $Id: lualib.h,v 1.45.1.1 2017/04/19 17:20:42 roberto Exp $
** Lua standard libraries ** Lua standard libraries
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@ -35,6 +35,9 @@ LUAMOD_API int (luaopen_string) (lua_State *L);
#define LUA_UTF8LIBNAME "utf8" #define LUA_UTF8LIBNAME "utf8"
LUAMOD_API int (luaopen_utf8) (lua_State *L); LUAMOD_API int (luaopen_utf8) (lua_State *L);
#define LUA_BITLIBNAME "bit32"
LUAMOD_API int (luaopen_bit32) (lua_State *L);
#define LUA_MATHLIBNAME "math" #define LUA_MATHLIBNAME "math"
LUAMOD_API int (luaopen_math) (lua_State *L); LUAMOD_API int (luaopen_math) (lua_State *L);

View file

@ -1,5 +1,6 @@
#include <dirent.h> #include <dirent.h>
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h>
#include "mod_list.h" #include "mod_list.h"
#include "pc/fs/fs.h" #include "pc/fs/fs.h"
#include "pc/debuglog.h" #include "pc/debuglog.h"
@ -130,7 +131,7 @@ static void mod_list_load_local(const char* path) {
struct dirent* dir; struct dirent* dir;
DIR* d = opendir(path); DIR* d = opendir(path);
if (!d) { closedir(d); return; } if (!d) { return; }
u16 count = 0; u16 count = 0;
while ((dir = readdir(d)) != NULL) { while ((dir = readdir(d)) != NULL) {

View file

@ -5,6 +5,7 @@
#include "PR/ultratypes.h" #include "PR/ultratypes.h"
#include <types.h> #include <types.h>
#include <stdbool.h> #include <stdbool.h>
#include <limits.h>
#define MOD_PATH "./mods" #define MOD_PATH "./mods"