Upgrade to Lua 5.4
Dieser Commit ist enthalten in:
Ursprung
e545408c1e
Commit
fdda0888d3
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@ -314,12 +314,12 @@ jobs:
|
|||||||
# Ubuntu only:
|
# Ubuntu only:
|
||||||
- name: Install packages
|
- name: Install packages
|
||||||
if: startswith(matrix.config.os, 'ubuntu')
|
if: startswith(matrix.config.os, 'ubuntu')
|
||||||
run: sudo apt install libboost-program-options-dev liblua5.3-dev lcov libarchive-dev clang-tidy libsystemd-dev
|
run: sudo apt install libboost-program-options-dev liblua5.4-dev lcov libarchive-dev clang-tidy libsystemd-dev
|
||||||
|
|
||||||
# MacOS only:
|
# MacOS only:
|
||||||
- name: Install brew packages
|
- name: Install brew packages
|
||||||
if: startswith(matrix.config.os, 'macos')
|
if: startswith(matrix.config.os, 'macos')
|
||||||
run: brew install libarchive lua@5.3
|
run: brew install libarchive lua@5.4
|
||||||
|
|
||||||
# All:
|
# All:
|
||||||
- name: Create Build Environment
|
- name: Create Build Environment
|
||||||
|
|||||||
@ -54,7 +54,7 @@ Name: "firewall_wlanmaus"; Description: "{cm:firewall_allow_wlanmaus_z21}"; Grou
|
|||||||
[Files]
|
[Files]
|
||||||
; Server
|
; Server
|
||||||
Source: "..\..\server\build\{#ServerExeName}"; DestDir: "{app}\server"; Flags: ignoreversion; Check: InstallServer
|
Source: "..\..\server\build\{#ServerExeName}"; DestDir: "{app}\server"; Flags: ignoreversion; Check: InstallServer
|
||||||
Source: "..\..\server\thirdparty\lua5.3\bin\win64\lua53.dll"; DestDir: "{app}\server"; Flags: ignoreversion; Check: InstallServer
|
Source: "..\..\server\thirdparty\lua5.4\bin\win64\lua54.dll"; DestDir: "{app}\server"; Flags: ignoreversion; Check: InstallServer
|
||||||
Source: "..\..\server\thirdparty\libarchive\bin\archive.dll"; DestDir: "{app}\server"; Flags: ignoreversion; Check: InstallServer
|
Source: "..\..\server\thirdparty\libarchive\bin\archive.dll"; DestDir: "{app}\server"; Flags: ignoreversion; Check: InstallServer
|
||||||
Source: "..\..\server\thirdparty\zlib\bin\zlib1.dll"; DestDir: "{app}\server"; Flags: ignoreversion; Check: InstallServer
|
Source: "..\..\server\thirdparty\zlib\bin\zlib1.dll"; DestDir: "{app}\server"; Flags: ignoreversion; Check: InstallServer
|
||||||
; Client
|
; Client
|
||||||
|
|||||||
@ -384,41 +384,41 @@ if(BUILD_TESTING)
|
|||||||
target_link_libraries(traintastic-server-test PRIVATE ${LibArchive_LIBRARIES})
|
target_link_libraries(traintastic-server-test PRIVATE ${LibArchive_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# liblua5.3
|
# liblua5.4
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
add_definitions(-DLUA_BUILD_AS_DLL)
|
add_definitions(-DLUA_BUILD_AS_DLL)
|
||||||
set(LUA_INCLUDE_DIR "thirdparty/lua5.3/include")
|
set(LUA_INCLUDE_DIR "thirdparty/lua5.4/include")
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
set(LUA_LIBRARIES lua53)
|
set(LUA_LIBRARIES lua54)
|
||||||
add_custom_command(TARGET traintastic-server PRE_LINK
|
add_custom_command(TARGET traintastic-server PRE_LINK
|
||||||
COMMAND lib "/def:${PROJECT_SOURCE_DIR}/thirdparty/lua5.3/bin/win64/lua53.def" /out:lua53.lib /machine:x64)
|
COMMAND lib "/def:${PROJECT_SOURCE_DIR}/thirdparty/lua5.4/bin/win64/lua54.def" /out:lua54.lib /machine:x64)
|
||||||
add_custom_command(TARGET traintastic-server-test PRE_LINK
|
add_custom_command(TARGET traintastic-server-test PRE_LINK
|
||||||
COMMAND lib "/def:${PROJECT_SOURCE_DIR}/thirdparty/lua5.3/bin/win64/lua53.def" /out:lua53.lib /machine:x64)
|
COMMAND lib "/def:${PROJECT_SOURCE_DIR}/thirdparty/lua5.4/bin/win64/lua54.def" /out:lua54.lib /machine:x64)
|
||||||
else()
|
else()
|
||||||
# MinGW can directly link .dll without import lib
|
# MinGW can directly link .dll without import lib
|
||||||
set(LUA_LIBRARIES "${PROJECT_SOURCE_DIR}/thirdparty/lua5.3/bin/win64/lua53.dll")
|
set(LUA_LIBRARIES "${PROJECT_SOURCE_DIR}/thirdparty/lua5.4/bin/win64/lua54.dll")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
# copy lua53.dll to build directory, to be able to run the tests:
|
# copy lua54.dll to build directory, to be able to run the tests:
|
||||||
add_custom_command(TARGET traintastic-server-test POST_BUILD
|
add_custom_command(TARGET traintastic-server-test POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/thirdparty/lua5.3/bin/win64/lua53.dll" .)
|
COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/thirdparty/lua5.4/bin/win64/lua54.dll" .)
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
find_path(LUA_INCLUDE_DIR
|
find_path(LUA_INCLUDE_DIR
|
||||||
NAMES lua.h
|
NAMES lua.h
|
||||||
PATHS
|
PATHS
|
||||||
"/usr/local/opt/lua@5.3/include/lua" # x86_64
|
"/usr/local/opt/lua@5.4/include/lua" # x86_64
|
||||||
"/opt/homebrew/opt/lua@5.3/include/lua" # arm64
|
"/opt/homebrew/opt/lua@5.4/include/lua" # arm64
|
||||||
)
|
)
|
||||||
find_library(LUA_LIBRARIES
|
find_library(LUA_LIBRARIES
|
||||||
NAMES lua5.3 liblua5.3
|
NAMES lua5.4 liblua5.4
|
||||||
PATHS
|
PATHS
|
||||||
"/usr/local/opt/lua@5.3/lib" # x86_64
|
"/usr/local/opt/lua@5.4/lib" # x86_64
|
||||||
"/opt/homebrew/opt/lua@5.3/lib" # arm64
|
"/opt/homebrew/opt/lua@5.4/lib" # arm64
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
find_package(Lua 5.3 REQUIRED)
|
find_package(Lua 5.4 REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
target_include_directories(traintastic-server PRIVATE ${LUA_INCLUDE_DIR})
|
target_include_directories(traintastic-server PRIVATE ${LUA_INCLUDE_DIR})
|
||||||
target_link_libraries(traintastic-server PRIVATE ${LUA_LIBRARIES})
|
target_link_libraries(traintastic-server PRIVATE ${LUA_LIBRARIES})
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
# Copyright 2007-2009 Kitware, Inc.
|
# Copyright 2007-2009 Kitware, Inc.
|
||||||
# Modified to support Lua 5.2 by LuaDist 2012
|
# Modified to support Lua 5.2 by LuaDist 2012
|
||||||
# Modified to support Lua 5.3 by Reinder Feenstra 2019
|
# Modified to support Lua 5.3 by Reinder Feenstra 2019
|
||||||
|
# Modified to support Lua 5.4 by Reinder Feenstra 2024
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD License (the "License");
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file Copyright.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
@ -41,7 +42,7 @@ SET(_POSSIBLE_LUA_LIBRARY lua)
|
|||||||
IF(Lua_FIND_VERSION_MAJOR AND Lua_FIND_VERSION_MINOR)
|
IF(Lua_FIND_VERSION_MAJOR AND Lua_FIND_VERSION_MINOR)
|
||||||
SET(_POSSIBLE_SUFFIXES "${Lua_FIND_VERSION_MAJOR}${Lua_FIND_VERSION_MINOR}" "${Lua_FIND_VERSION_MAJOR}.${Lua_FIND_VERSION_MINOR}" "-${Lua_FIND_VERSION_MAJOR}.${Lua_FIND_VERSION_MINOR}")
|
SET(_POSSIBLE_SUFFIXES "${Lua_FIND_VERSION_MAJOR}${Lua_FIND_VERSION_MINOR}" "${Lua_FIND_VERSION_MAJOR}.${Lua_FIND_VERSION_MINOR}" "-${Lua_FIND_VERSION_MAJOR}.${Lua_FIND_VERSION_MINOR}")
|
||||||
ELSE(Lua_FIND_VERSION_MAJOR AND Lua_FIND_VERSION_MINOR)
|
ELSE(Lua_FIND_VERSION_MAJOR AND Lua_FIND_VERSION_MINOR)
|
||||||
SET(_POSSIBLE_SUFFIXES "53" "5.3" "-5.3" "52" "5.2" "-5.2" "51" "5.1" "-5.1")
|
SET(_POSSIBLE_SUFFIXES "54" "5.4" "-5.4" "53" "5.3" "-5.3" "52" "5.2" "-5.2" "51" "5.1" "-5.1")
|
||||||
ENDIF(Lua_FIND_VERSION_MAJOR AND Lua_FIND_VERSION_MINOR)
|
ENDIF(Lua_FIND_VERSION_MAJOR AND Lua_FIND_VERSION_MINOR)
|
||||||
|
|
||||||
# Set up possible search names and locations
|
# Set up possible search names and locations
|
||||||
|
|||||||
BIN
server/thirdparty/lua5.3/bin/win64/lua53.dll
vendored
BIN
server/thirdparty/lua5.3/bin/win64/lua53.dll
vendored
Binäre Datei nicht angezeigt.
@ -5,6 +5,8 @@ lua_atpanic
|
|||||||
lua_callk
|
lua_callk
|
||||||
lua_checkstack
|
lua_checkstack
|
||||||
lua_close
|
lua_close
|
||||||
|
lua_closeslot
|
||||||
|
lua_closethread
|
||||||
lua_compare
|
lua_compare
|
||||||
lua_concat
|
lua_concat
|
||||||
lua_copy
|
lua_copy
|
||||||
@ -20,13 +22,13 @@ lua_gethookcount
|
|||||||
lua_gethookmask
|
lua_gethookmask
|
||||||
lua_geti
|
lua_geti
|
||||||
lua_getinfo
|
lua_getinfo
|
||||||
|
lua_getiuservalue
|
||||||
lua_getlocal
|
lua_getlocal
|
||||||
lua_getmetatable
|
lua_getmetatable
|
||||||
lua_getstack
|
lua_getstack
|
||||||
lua_gettable
|
lua_gettable
|
||||||
lua_gettop
|
lua_gettop
|
||||||
lua_getupvalue
|
lua_getupvalue
|
||||||
lua_getuservalue
|
|
||||||
lua_ident DATA
|
lua_ident DATA
|
||||||
lua_iscfunction
|
lua_iscfunction
|
||||||
lua_isinteger
|
lua_isinteger
|
||||||
@ -38,7 +40,7 @@ lua_len
|
|||||||
lua_load
|
lua_load
|
||||||
lua_newstate
|
lua_newstate
|
||||||
lua_newthread
|
lua_newthread
|
||||||
lua_newuserdata
|
lua_newuserdatauv
|
||||||
lua_next
|
lua_next
|
||||||
lua_pcallk
|
lua_pcallk
|
||||||
lua_pushboolean
|
lua_pushboolean
|
||||||
@ -61,23 +63,27 @@ lua_rawlen
|
|||||||
lua_rawset
|
lua_rawset
|
||||||
lua_rawseti
|
lua_rawseti
|
||||||
lua_rawsetp
|
lua_rawsetp
|
||||||
|
lua_resetthread
|
||||||
lua_resume
|
lua_resume
|
||||||
lua_rotate
|
lua_rotate
|
||||||
lua_setallocf
|
lua_setallocf
|
||||||
|
lua_setcstacklimit
|
||||||
lua_setfield
|
lua_setfield
|
||||||
lua_setglobal
|
lua_setglobal
|
||||||
lua_sethook
|
lua_sethook
|
||||||
lua_seti
|
lua_seti
|
||||||
|
lua_setiuservalue
|
||||||
lua_setlocal
|
lua_setlocal
|
||||||
lua_setmetatable
|
lua_setmetatable
|
||||||
lua_settable
|
lua_settable
|
||||||
lua_settop
|
lua_settop
|
||||||
lua_setupvalue
|
lua_setupvalue
|
||||||
lua_setuservalue
|
lua_setwarnf
|
||||||
lua_status
|
lua_status
|
||||||
lua_stringtonumber
|
lua_stringtonumber
|
||||||
lua_toboolean
|
lua_toboolean
|
||||||
lua_tocfunction
|
lua_tocfunction
|
||||||
|
lua_toclose
|
||||||
lua_tointegerx
|
lua_tointegerx
|
||||||
lua_tolstring
|
lua_tolstring
|
||||||
lua_tonumberx
|
lua_tonumberx
|
||||||
@ -89,8 +95,10 @@ lua_typename
|
|||||||
lua_upvalueid
|
lua_upvalueid
|
||||||
lua_upvaluejoin
|
lua_upvaluejoin
|
||||||
lua_version
|
lua_version
|
||||||
|
lua_warning
|
||||||
lua_xmove
|
lua_xmove
|
||||||
lua_yieldk
|
lua_yieldk
|
||||||
|
luaL_addgsub
|
||||||
luaL_addlstring
|
luaL_addlstring
|
||||||
luaL_addstring
|
luaL_addstring
|
||||||
luaL_addvalue
|
luaL_addvalue
|
||||||
@ -133,10 +141,10 @@ luaL_setmetatable
|
|||||||
luaL_testudata
|
luaL_testudata
|
||||||
luaL_tolstring
|
luaL_tolstring
|
||||||
luaL_traceback
|
luaL_traceback
|
||||||
|
luaL_typeerror
|
||||||
luaL_unref
|
luaL_unref
|
||||||
luaL_where
|
luaL_where
|
||||||
luaopen_base
|
luaopen_base
|
||||||
luaopen_bit32
|
|
||||||
luaopen_coroutine
|
luaopen_coroutine
|
||||||
luaopen_debug
|
luaopen_debug
|
||||||
luaopen_io
|
luaopen_io
|
||||||
BIN
server/thirdparty/lua5.4/bin/win64/lua54.dll
vendored
Normale Datei
BIN
server/thirdparty/lua5.4/bin/win64/lua54.dll
vendored
Normale Datei
Binäre Datei nicht angezeigt.
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
** $Id: lauxlib.h,v 1.131.1.1 2017/04/19 17:20:42 roberto Exp $
|
** $Id: lauxlib.h $
|
||||||
** Auxiliary functions for building Lua libraries
|
** Auxiliary functions for building Lua libraries
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
@ -12,9 +12,16 @@
|
|||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "luaconf.h"
|
||||||
#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)
|
||||||
@ -44,6 +51,7 @@ 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,
|
||||||
@ -73,6 +81,7 @@ 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)
|
||||||
@ -93,8 +102,10 @@ 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 const char *(luaL_gsub) (lua_State *L, const char *s, const char *p,
|
LUALIB_API void (luaL_addgsub) (luaL_Buffer *b, const char *s,
|
||||||
const char *r);
|
const char *p, 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);
|
||||||
|
|
||||||
@ -120,7 +131,11 @@ LUALIB_API void (luaL_requiref) (lua_State *L, const char *modname,
|
|||||||
(luaL_checkversion(L), luaL_newlibtable(L,l), luaL_setfuncs(L,l,0))
|
(luaL_checkversion(L), luaL_newlibtable(L,l), luaL_setfuncs(L,l,0))
|
||||||
|
|
||||||
#define luaL_argcheck(L, cond,arg,extramsg) \
|
#define luaL_argcheck(L, cond,arg,extramsg) \
|
||||||
((void)((cond) || luaL_argerror(L, (arg), (extramsg))))
|
((void)(luai_likely(cond) || luaL_argerror(L, (arg), (extramsg))))
|
||||||
|
|
||||||
|
#define luaL_argexpected(L,cond,arg,tname) \
|
||||||
|
((void)(luai_likely(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))
|
||||||
|
|
||||||
@ -139,19 +154,54 @@ 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)
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Perform arithmetic operations on lua_Integer values with wrap-around
|
||||||
|
** semantics, as the Lua core does.
|
||||||
|
*/
|
||||||
|
#define luaL_intop(op,v1,v2) \
|
||||||
|
((lua_Integer)((lua_Unsigned)(v1) op (lua_Unsigned)(v2)))
|
||||||
|
|
||||||
|
|
||||||
|
/* push the value used to represent failure/error */
|
||||||
|
#define luaL_pushfail(L) lua_pushnil(L)
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Internal assertions for in-house debugging
|
||||||
|
*/
|
||||||
|
#if !defined(lua_assert)
|
||||||
|
|
||||||
|
#if defined LUAI_ASSERT
|
||||||
|
#include <assert.h>
|
||||||
|
#define lua_assert(c) assert(c)
|
||||||
|
#else
|
||||||
|
#define lua_assert(c) ((void)0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** {======================================================
|
** {======================================================
|
||||||
** Generic Buffer manipulation
|
** Generic Buffer manipulation
|
||||||
** =======================================================
|
** =======================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef struct luaL_Buffer {
|
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;
|
||||||
char initb[LUAL_BUFFERSIZE]; /* initial buffer */
|
union {
|
||||||
} luaL_Buffer;
|
LUAI_MAXALIGN; /* ensure maximum alignment for 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) \
|
||||||
@ -160,6 +210,8 @@ typedef 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);
|
||||||
@ -197,21 +249,6 @@ 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
|
||||||
@ -1,4 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
|
** $Id: lua.h $
|
||||||
** 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
|
||||||
@ -16,13 +17,15 @@
|
|||||||
|
|
||||||
|
|
||||||
#define LUA_VERSION_MAJOR "5"
|
#define LUA_VERSION_MAJOR "5"
|
||||||
#define LUA_VERSION_MINOR "3"
|
#define LUA_VERSION_MINOR "4"
|
||||||
#define LUA_VERSION_NUM 503
|
#define LUA_VERSION_RELEASE "7"
|
||||||
#define LUA_VERSION_RELEASE "6"
|
|
||||||
|
#define LUA_VERSION_NUM 504
|
||||||
|
#define LUA_VERSION_RELEASE_NUM (LUA_VERSION_NUM * 100 + 7)
|
||||||
|
|
||||||
#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-2024 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"
|
||||||
|
|
||||||
|
|
||||||
@ -48,8 +51,7 @@
|
|||||||
#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_ERRGCMM 5
|
#define LUA_ERRERR 5
|
||||||
#define LUA_ERRERR 6
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct lua_State lua_State;
|
typedef struct lua_State lua_State;
|
||||||
@ -70,7 +72,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_NUMTAGS 9
|
#define LUA_NUMTYPES 9
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -123,6 +125,23 @@ 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);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Type used by the debug API to collect debug information
|
||||||
|
*/
|
||||||
|
typedef struct lua_Debug lua_Debug;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Functions to be called by the debugger in specific events
|
||||||
|
*/
|
||||||
|
typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** generic extra include file
|
** generic extra include file
|
||||||
@ -144,11 +163,13 @@ LUA_API 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_closethread) (lua_State *L, lua_State *from);
|
||||||
|
LUA_API int (lua_resetthread) (lua_State *L); /* Deprecated! */
|
||||||
|
|
||||||
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 const lua_Number *(lua_version) (lua_State *L);
|
LUA_API lua_Number (lua_version) (lua_State *L);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -181,7 +202,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 size_t (lua_rawlen) (lua_State *L, int idx);
|
LUA_API lua_Unsigned (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);
|
||||||
@ -246,9 +267,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_newuserdata) (lua_State *L, size_t sz);
|
LUA_API void *(lua_newuserdatauv) (lua_State *L, size_t sz, int nuvalue);
|
||||||
LUA_API int (lua_getmetatable) (lua_State *L, int objindex);
|
LUA_API int (lua_getmetatable) (lua_State *L, int objindex);
|
||||||
LUA_API int (lua_getuservalue) (lua_State *L, int idx);
|
LUA_API int (lua_getiuservalue) (lua_State *L, int idx, int n);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -262,7 +283,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 void (lua_setuservalue) (lua_State *L, int idx);
|
LUA_API int (lua_setiuservalue) (lua_State *L, int idx, int n);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -287,13 +308,21 @@ 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
|
||||||
*/
|
*/
|
||||||
@ -307,8 +336,10 @@ LUA_API int (lua_isyieldable) (lua_State *L);
|
|||||||
#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, int data);
|
LUA_API int (lua_gc) (lua_State *L, int what, ...);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -327,6 +358,8 @@ 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);
|
||||||
|
LUA_API void (lua_closeslot) (lua_State *L, int idx);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -376,7 +409,7 @@ LUA_API void (lua_setallocf) (lua_State *L, lua_Alloc f, void *ud);
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
** {==============================================================
|
** {==============================================================
|
||||||
** compatibility macros for unsigned conversions
|
** compatibility macros
|
||||||
** ===============================================================
|
** ===============================================================
|
||||||
*/
|
*/
|
||||||
#if defined(LUA_COMPAT_APIINTCASTS)
|
#if defined(LUA_COMPAT_APIINTCASTS)
|
||||||
@ -386,6 +419,13 @@ LUA_API void (lua_setallocf) (lua_State *L, lua_Alloc f, void *ud);
|
|||||||
#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
|
||||||
|
|
||||||
/* }============================================================== */
|
/* }============================================================== */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -413,12 +453,6 @@ LUA_API void (lua_setallocf) (lua_State *L, lua_Alloc f, void *ud);
|
|||||||
#define LUA_MASKLINE (1 << LUA_HOOKLINE)
|
#define LUA_MASKLINE (1 << LUA_HOOKLINE)
|
||||||
#define LUA_MASKCOUNT (1 << LUA_HOOKCOUNT)
|
#define LUA_MASKCOUNT (1 << LUA_HOOKCOUNT)
|
||||||
|
|
||||||
typedef struct lua_Debug lua_Debug; /* activation record */
|
|
||||||
|
|
||||||
|
|
||||||
/* Functions to be called by the debugger in specific events */
|
|
||||||
typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar);
|
|
||||||
|
|
||||||
|
|
||||||
LUA_API int (lua_getstack) (lua_State *L, int level, lua_Debug *ar);
|
LUA_API int (lua_getstack) (lua_State *L, int level, lua_Debug *ar);
|
||||||
LUA_API int (lua_getinfo) (lua_State *L, const char *what, lua_Debug *ar);
|
LUA_API int (lua_getinfo) (lua_State *L, const char *what, lua_Debug *ar);
|
||||||
@ -436,6 +470,7 @@ 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;
|
||||||
@ -443,6 +478,7 @@ 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) */
|
||||||
@ -450,6 +486,8 @@ 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 */
|
||||||
@ -459,7 +497,7 @@ struct lua_Debug {
|
|||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* Copyright (C) 1994-2020 Lua.org, PUC-Rio.
|
* Copyright (C) 1994-2024 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
|
||||||
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
** $Id: luaconf.h,v 1.259.1.1 2017/04/19 17:29:57 roberto Exp $
|
** $Id: luaconf.h $
|
||||||
** Configuration file for Lua
|
** Configuration file for Lua
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
@ -14,6 +14,16 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
** ===================================================================
|
** ===================================================================
|
||||||
|
** General Configuration File for Lua
|
||||||
|
**
|
||||||
|
** Some definitions here can be changed externally, through the compiler
|
||||||
|
** (e.g., with '-D' options): They are commented out or 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.
|
||||||
** ===================================================================
|
** ===================================================================
|
||||||
*/
|
*/
|
||||||
@ -22,20 +32,10 @@
|
|||||||
/*
|
/*
|
||||||
** {====================================================================
|
** {====================================================================
|
||||||
** System Configuration: macros to adapt (if needed) Lua to some
|
** System Configuration: macros to adapt (if needed) Lua to some
|
||||||
** particular platform, for instance compiling it with 32-bit numbers or
|
** particular platform, for instance restricting it to C89.
|
||||||
** 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,45 +61,43 @@
|
|||||||
#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
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(LUA_USE_IOS)
|
||||||
|
#define LUA_USE_POSIX
|
||||||
|
#define LUA_USE_DLOPEN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ LUA_C89_NUMBERS ensures that Lua uses the largest types available for
|
@@ LUAI_IS32INT is true iff 'int' has (at least) 32 bits.
|
||||||
** C89 ('long' and 'double'); Windows always has '__int64', so it does
|
|
||||||
** not need to use this case.
|
|
||||||
*/
|
*/
|
||||||
#if defined(LUA_USE_C89) && !defined(LUA_USE_WINDOWS)
|
#define LUAI_IS32INT ((UINT_MAX >> 30) >= 3)
|
||||||
#define LUA_C89_NUMBERS
|
|
||||||
#endif
|
/* }================================================================== */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ LUAI_BITSINT defines the (minimum) number of bits in an 'int'.
|
** {==================================================================
|
||||||
|
** Configuration for Number types. These options should not be
|
||||||
|
** set externally, because any other code connected to Lua must
|
||||||
|
** use the same configuration.
|
||||||
|
** ===================================================================
|
||||||
*/
|
*/
|
||||||
/* 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 (if supported
|
** Lua should work fine with any mix of these options 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').
|
||||||
@ -115,43 +113,61 @@
|
|||||||
#define LUA_FLOAT_DOUBLE 2
|
#define LUA_FLOAT_DOUBLE 2
|
||||||
#define LUA_FLOAT_LONGDOUBLE 3
|
#define LUA_FLOAT_LONGDOUBLE 3
|
||||||
|
|
||||||
#if defined(LUA_32BITS) /* { */
|
|
||||||
|
/* Default configuration ('long long' and 'double', for 64-bit Lua) */
|
||||||
|
#define LUA_INT_DEFAULT LUA_INT_LONGLONG
|
||||||
|
#define LUA_FLOAT_DEFAULT LUA_FLOAT_DOUBLE
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ LUA_32BITS enables Lua with 32-bit integers and 32-bit floats.
|
||||||
|
*/
|
||||||
|
#define LUA_32BITS 0
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ LUA_C89_NUMBERS ensures that Lua uses the largest types available for
|
||||||
|
** C89 ('long' and 'double'); Windows always has '__int64', so it does
|
||||||
|
** not need to use this case.
|
||||||
|
*/
|
||||||
|
#if defined(LUA_USE_C89) && !defined(LUA_USE_WINDOWS)
|
||||||
|
#define LUA_C89_NUMBERS 1
|
||||||
|
#else
|
||||||
|
#define LUA_C89_NUMBERS 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if LUA_32BITS /* { */
|
||||||
/*
|
/*
|
||||||
** 32-bit integers and 'float'
|
** 32-bit integers and 'float'
|
||||||
*/
|
*/
|
||||||
#if LUAI_BITSINT >= 32 /* use 'int' if big enough */
|
#if LUAI_IS32INT /* 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
|
||||||
#endif
|
#endif
|
||||||
#define LUA_FLOAT_TYPE LUA_FLOAT_FLOAT
|
#define LUA_FLOAT_TYPE LUA_FLOAT_FLOAT
|
||||||
|
|
||||||
#elif defined(LUA_C89_NUMBERS) /* }{ */
|
#elif LUA_C89_NUMBERS /* }{ */
|
||||||
/*
|
/*
|
||||||
** largest types available for C89 ('long' and 'double')
|
** largest types available for C89 ('long' and 'double')
|
||||||
*/
|
*/
|
||||||
#define LUA_INT_TYPE LUA_INT_LONG
|
#define LUA_INT_TYPE LUA_INT_LONG
|
||||||
#define LUA_FLOAT_TYPE LUA_FLOAT_DOUBLE
|
#define LUA_FLOAT_TYPE LUA_FLOAT_DOUBLE
|
||||||
|
|
||||||
|
#else /* }{ */
|
||||||
|
/* use defaults */
|
||||||
|
|
||||||
|
#define LUA_INT_TYPE LUA_INT_DEFAULT
|
||||||
|
#define LUA_FLOAT_TYPE LUA_FLOAT_DEFAULT
|
||||||
|
|
||||||
#endif /* } */
|
#endif /* } */
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** default configuration for 64-bit Lua ('long long' and 'double')
|
|
||||||
*/
|
|
||||||
#if !defined(LUA_INT_TYPE)
|
|
||||||
#define LUA_INT_TYPE LUA_INT_LONGLONG
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(LUA_FLOAT_TYPE)
|
|
||||||
#define LUA_FLOAT_TYPE LUA_FLOAT_DOUBLE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* }================================================================== */
|
/* }================================================================== */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** {==================================================================
|
** {==================================================================
|
||||||
** Configuration for Paths.
|
** Configuration for Paths.
|
||||||
@ -179,6 +195,7 @@
|
|||||||
** 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) /* { */
|
||||||
/*
|
/*
|
||||||
@ -188,29 +205,40 @@
|
|||||||
#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"?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?53.so;" "./lib?53.so"
|
#endif
|
||||||
|
|
||||||
#endif /* } */
|
#endif /* } */
|
||||||
|
|
||||||
|
|
||||||
@ -219,12 +247,25 @@
|
|||||||
** 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
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** LUA_IGMARK is a mark to ignore all after it when building the
|
||||||
|
** module name (e.g., used to build the luaopen_ function name).
|
||||||
|
** Typically, the suffix after the mark is the module version,
|
||||||
|
** as in "mod-v1.2.so".
|
||||||
|
*/
|
||||||
|
#define LUA_IGMARK "-"
|
||||||
|
|
||||||
/* }================================================================== */
|
/* }================================================================== */
|
||||||
|
|
||||||
|
|
||||||
@ -258,16 +299,18 @@
|
|||||||
#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 LUALIB_API
|
#define LUAMOD_API LUA_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,
|
||||||
** that are not to be exported to outside modules (LUAI_DDEF for
|
** none of which 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
|
||||||
@ -279,12 +322,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("hidden"))) extern
|
#define LUAI_FUNC __attribute__((visibility("internal"))) extern
|
||||||
#else /* }{ */
|
#else /* }{ */
|
||||||
#define LUAI_FUNC extern
|
#define LUAI_FUNC extern
|
||||||
#endif /* } */
|
#endif /* } */
|
||||||
|
|
||||||
#define LUAI_DDEC LUAI_FUNC
|
#define LUAI_DDEC(dec) LUAI_FUNC dec
|
||||||
#define LUAI_DDEF /* empty */
|
#define LUAI_DDEF /* empty */
|
||||||
|
|
||||||
/* }================================================================== */
|
/* }================================================================== */
|
||||||
@ -297,88 +340,43 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ LUA_COMPAT_5_2 controls other macros for compatibility with Lua 5.2.
|
@@ LUA_COMPAT_5_3 controls other macros for compatibility with Lua 5.3.
|
||||||
@@ 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_2) /* { */
|
#if defined(LUA_COMPAT_5_3) /* { */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ 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_UNPACK controls the presence of global 'unpack'.
|
@@ LUA_COMPAT_LT_LE controls the emulation of the '__le' metamethod
|
||||||
** You can replace it with 'table.unpack'.
|
** using '__lt'.
|
||||||
*/
|
*/
|
||||||
#define LUA_COMPAT_UNPACK
|
#define LUA_COMPAT_LT_LE
|
||||||
|
|
||||||
/*
|
|
||||||
@@ 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))
|
||||||
|
|
||||||
@ -387,47 +385,31 @@
|
|||||||
#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 */
|
|
||||||
|
|
||||||
/* }================================================================== */
|
/* }================================================================== */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** {==================================================================
|
** {==================================================================
|
||||||
** Configuration for Numbers.
|
** Configuration for Numbers (low-level part).
|
||||||
** Change these definitions if no predefined LUA_FLOAT_* / LUA_INT_*
|
** Change these definitions if no predefined LUA_FLOAT_* / LUA_INT_*
|
||||||
** satisfy your needs.
|
** satisfy your needs.
|
||||||
** ===================================================================
|
** ===================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ 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_mathlim(x) corrects limit name 'x' to the proper float type
|
@@ l_floatatt(x) corrects float attribute '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 numeric string to a number.
|
@@ lua_str2number converts a decimal numeral to a number.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@ -439,12 +421,13 @@
|
|||||||
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 to an integer, or
|
@@ lua_numbertointeger converts a float number with an integral value
|
||||||
** returns 0 if float is not within the range of a lua_Integer.
|
** to an integer, or returns 0 if float is not within the range of
|
||||||
** (The range comparisons are tricky because of rounding. The tests
|
** a lua_Integer. (The range comparisons are tricky because of
|
||||||
** here assume a two-complement representation, where MININTEGER always
|
** rounding. The tests here assume a two-complement representation,
|
||||||
** has an exact representation as a float; MAXINTEGER may not have one,
|
** where MININTEGER always has an exact representation as a float;
|
||||||
** and therefore its conversion to float may have an ill-defined value.)
|
** MAXINTEGER may not have one, and therefore its conversion to float
|
||||||
|
** 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) && \
|
||||||
@ -458,7 +441,7 @@
|
|||||||
|
|
||||||
#define LUA_NUMBER float
|
#define LUA_NUMBER float
|
||||||
|
|
||||||
#define l_mathlim(n) (FLT_##n)
|
#define l_floatatt(n) (FLT_##n)
|
||||||
|
|
||||||
#define LUAI_UACNUMBER double
|
#define LUAI_UACNUMBER double
|
||||||
|
|
||||||
@ -474,7 +457,7 @@
|
|||||||
|
|
||||||
#define LUA_NUMBER long double
|
#define LUA_NUMBER long double
|
||||||
|
|
||||||
#define l_mathlim(n) (LDBL_##n)
|
#define l_floatatt(n) (LDBL_##n)
|
||||||
|
|
||||||
#define LUAI_UACNUMBER long double
|
#define LUAI_UACNUMBER long double
|
||||||
|
|
||||||
@ -489,7 +472,7 @@
|
|||||||
|
|
||||||
#define LUA_NUMBER double
|
#define LUA_NUMBER double
|
||||||
|
|
||||||
#define l_mathlim(n) (DBL_##n)
|
#define l_floatatt(n) (DBL_##n)
|
||||||
|
|
||||||
#define LUAI_UACNUMBER double
|
#define LUAI_UACNUMBER double
|
||||||
|
|
||||||
@ -509,16 +492,14 @@
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ LUA_INTEGER is the integer type used by Lua.
|
|
||||||
**
|
|
||||||
@@ 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_integer2str converts an integer to a string.
|
@@ lua_integer2str converts an integer to a string.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -549,6 +530,8 @@
|
|||||||
#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
|
||||||
@ -557,6 +540,8 @@
|
|||||||
#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 */
|
||||||
@ -569,6 +554,8 @@
|
|||||||
#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 */
|
||||||
|
|
||||||
@ -578,6 +565,8 @@
|
|||||||
#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' \
|
||||||
@ -612,7 +601,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ lua_strx2number converts an hexadecimal numeric string to a number.
|
@@ lua_strx2number converts a hexadecimal numeral 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.
|
||||||
@ -630,7 +619,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ lua_number2strx converts a float to an hexadecimal numeric string.
|
@@ lua_number2strx converts a float to a hexadecimal numeral.
|
||||||
** 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.
|
||||||
@ -676,12 +665,40 @@
|
|||||||
/*
|
/*
|
||||||
@@ 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 header 'locale.h'.)
|
** macro must include the 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])
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** macros to improve jump prediction, used mostly for error handling
|
||||||
|
** and debug facilities. (Some macros in the Lua API use these macros.
|
||||||
|
** Define LUA_NOBUILTIN if you do not want '__builtin_expect' in your
|
||||||
|
** code.)
|
||||||
|
*/
|
||||||
|
#if !defined(luai_likely)
|
||||||
|
|
||||||
|
#if defined(__GNUC__) && !defined(LUA_NOBUILTIN)
|
||||||
|
#define luai_likely(x) (__builtin_expect(((x) != 0), 1))
|
||||||
|
#define luai_unlikely(x) (__builtin_expect(((x) != 0), 0))
|
||||||
|
#else
|
||||||
|
#define luai_likely(x) (x)
|
||||||
|
#define luai_unlikely(x) (x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(LUA_CORE) || defined(LUA_LIB)
|
||||||
|
/* shorter names for Lua's own use */
|
||||||
|
#define l_likely(x) luai_likely(x)
|
||||||
|
#define l_unlikely(x) luai_unlikely(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* }================================================================== */
|
/* }================================================================== */
|
||||||
|
|
||||||
|
|
||||||
@ -717,7 +734,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). You probably do not want/need to change them.
|
** Lua).
|
||||||
** =====================================================================
|
** =====================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -726,8 +743,9 @@
|
|||||||
** 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 and max(int)/2.)
|
||||||
*/
|
*/
|
||||||
#if LUAI_BITSINT >= 32
|
#if LUAI_IS32INT
|
||||||
#define LUAI_MAXSTACK 1000000
|
#define LUAI_MAXSTACK 1000000
|
||||||
#else
|
#else
|
||||||
#define LUAI_MAXSTACK 15000
|
#define LUAI_MAXSTACK 15000
|
||||||
@ -744,35 +762,27 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
@@ LUA_IDSIZE gives the maximum size for the description of the source
|
@@ LUA_IDSIZE gives the maximum size for the description of the source
|
||||||
@@ of a function in debug information.
|
** of a function in debug information.
|
||||||
** CHANGE it if you want a different size.
|
** CHANGE it if you want a different size.
|
||||||
*/
|
*/
|
||||||
#define LUA_IDSIZE 60
|
#define LUA_IDSIZE 60
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
|
@@ LUAL_BUFFERSIZE is the initial buffer size used by the lauxlib
|
||||||
** CHANGE it if it uses too much C-stack space. (For long double,
|
** buffer system.
|
||||||
** 'string.format("%.99f", -1e4932)' needs 5034 bytes, so a
|
|
||||||
** smaller buffer would force a memory allocation for each call to
|
|
||||||
** 'string.format'.)
|
|
||||||
*/
|
*/
|
||||||
#if LUA_FLOAT_TYPE == LUA_FLOAT_LONGDOUBLE
|
#define LUAL_BUFFERSIZE ((int)(16 * sizeof(void*) * sizeof(lua_Number)))
|
||||||
#define LUAL_BUFFERSIZE 8192
|
|
||||||
#else
|
|
||||||
#define LUAL_BUFFERSIZE ((int)(0x80 * sizeof(void*) * sizeof(lua_Integer)))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* }================================================================== */
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ LUA_QL describes how error messages quote program elements.
|
@@ LUAI_MAXALIGN defines fields that, when used in a union, ensure
|
||||||
** Lua does not use these macros anymore; they are here for
|
** maximum alignment for the other items in that union.
|
||||||
** compatibility only.
|
|
||||||
*/
|
*/
|
||||||
#define LUA_QL(x) "'" x "'"
|
#define LUAI_MAXALIGN lua_Number n; double u; void *s; lua_Integer i; long l
|
||||||
#define LUA_QS LUA_QL("%s")
|
|
||||||
|
/* }================================================================== */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
** $Id: lualib.h,v 1.45.1.1 2017/04/19 17:20:42 roberto Exp $
|
** $Id: lualib.h $
|
||||||
** Lua standard libraries
|
** Lua standard libraries
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
@ -35,9 +35,6 @@ 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);
|
||||||
|
|
||||||
@ -52,10 +49,4 @@ LUAMOD_API int (luaopen_package) (lua_State *L);
|
|||||||
LUALIB_API void (luaL_openlibs) (lua_State *L);
|
LUALIB_API void (luaL_openlibs) (lua_State *L);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if !defined(lua_assert)
|
|
||||||
#define lua_assert(x) ((void)0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
Laden…
x
In neuem Issue referenzieren
Einen Benutzer sperren