1 /* 2 ** Configuration header. 3 ** Copyright (C) 2005-2021 Mike Pall. See Copyright Notice in luajit.h 4 */ 5 6 #ifndef luaconf_h 7 #define luaconf_h 8 9 #ifndef WINVER 10 #define WINVER 0x0501 11 #endif 12 #include <limits.h> 13 #include <stddef.h> 14 15 /* Default path for loading Lua and C modules with require(). */ 16 #if defined(_WIN32) 17 /* 18 ** In Windows, any exclamation mark ('!') in the path is replaced by the 19 ** path of the directory of the executable file of the current process. 20 */ 21 #define LUA_LDIR "!\\lua\\" 22 #define LUA_CDIR "!\\" 23 #define LUA_PATH_DEFAULT \ 24 ".\\?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" 25 #define LUA_CPATH_DEFAULT \ 26 ".\\?.dll;" LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll" 27 #else 28 /* 29 ** Note to distribution maintainers: do NOT patch the following lines! 30 ** Please read ../doc/install.html#distro and pass PREFIX=/usr instead. 31 */ 32 #ifndef LUA_MULTILIB 33 #define LUA_MULTILIB "lib" 34 #endif 35 #ifndef LUA_LMULTILIB 36 #define LUA_LMULTILIB "lib" 37 #endif 38 #define LUA_LROOT "/usr/local" 39 #define LUA_LUADIR "/lua/5.1/" 40 #define LUA_LJDIR "/luajit-2.1.0-beta3/" 41 42 #ifdef LUA_ROOT 43 #define LUA_JROOT LUA_ROOT 44 #define LUA_RLDIR LUA_ROOT "/share" LUA_LUADIR 45 #define LUA_RCDIR LUA_ROOT "/" LUA_MULTILIB LUA_LUADIR 46 #define LUA_RLPATH ";" LUA_RLDIR "?.lua;" LUA_RLDIR "?/init.lua" 47 #define LUA_RCPATH ";" LUA_RCDIR "?.so" 48 #else 49 #define LUA_JROOT LUA_LROOT 50 #define LUA_RLPATH 51 #define LUA_RCPATH 52 #endif 53 54 #define LUA_JPATH ";" LUA_JROOT "/share" LUA_LJDIR "?.lua" 55 #define LUA_LLDIR LUA_LROOT "/share" LUA_LUADIR 56 #define LUA_LCDIR LUA_LROOT "/" LUA_LMULTILIB LUA_LUADIR 57 #define LUA_LLPATH ";" LUA_LLDIR "?.lua;" LUA_LLDIR "?/init.lua" 58 #define LUA_LCPATH1 ";" LUA_LCDIR "?.so" 59 #define LUA_LCPATH2 ";" LUA_LCDIR "loadall.so" 60 61 #define LUA_PATH_DEFAULT "./?.lua" LUA_JPATH LUA_LLPATH LUA_RLPATH 62 #define LUA_CPATH_DEFAULT "./?.so" LUA_LCPATH1 LUA_RCPATH LUA_LCPATH2 63 #endif 64 65 /* Environment variable names for path overrides and initialization code. */ 66 #define LUA_PATH "LUA_PATH" 67 #define LUA_CPATH "LUA_CPATH" 68 #define LUA_INIT "LUA_INIT" 69 70 /* Special file system characters. */ 71 #if defined(_WIN32) 72 #define LUA_DIRSEP "\\" 73 #else 74 #define LUA_DIRSEP "/" 75 #endif 76 #define LUA_PATHSEP ";" 77 #define LUA_PATH_MARK "?" 78 #define LUA_EXECDIR "!" 79 #define LUA_IGMARK "-" 80 #define LUA_PATH_CONFIG \ 81 LUA_DIRSEP "\n" LUA_PATHSEP "\n" LUA_PATH_MARK "\n" \ 82 LUA_EXECDIR "\n" LUA_IGMARK "\n" 83 84 /* Quoting in error messages. */ 85 #define LUA_QL(x) "'" x "'" 86 #define LUA_QS LUA_QL("%s") 87 88 /* Various tunables. */ 89 #define LUAI_MAXSTACK 65500 /* Max. # of stack slots for a thread (<64K). */ 90 #define LUAI_MAXCSTACK 8000 /* Max. # of stack slots for a C func (<10K). */ 91 #define LUAI_GCPAUSE 200 /* Pause GC until memory is at 200%. */ 92 #define LUAI_GCMUL 200 /* Run GC at 200% of allocation speed. */ 93 #define LUA_MAXCAPTURES 32 /* Max. pattern captures. */ 94 95 /* Configuration for the frontend (the luajit executable). */ 96 #if defined(luajit_c) 97 #define LUA_PROGNAME "luajit" /* Fallback frontend name. */ 98 #define LUA_PROMPT "> " /* Interactive prompt. */ 99 #define LUA_PROMPT2 ">> " /* Continuation prompt. */ 100 #define LUA_MAXINPUT 512 /* Max. input line length. */ 101 #endif 102 103 /* Note: changing the following defines breaks the Lua 5.1 ABI. */ 104 #define LUA_INTEGER ptrdiff_t 105 #define LUA_IDSIZE 60 /* Size of lua_Debug.short_src. */ 106 /* 107 ** Size of lauxlib and io.* on-stack buffers. Weird workaround to avoid using 108 ** unreasonable amounts of stack space, but still retain ABI compatibility. 109 ** Blame Lua for depending on BUFSIZ in the ABI, blame **** for wrecking it. 110 */ 111 #define LUAL_BUFFERSIZE (BUFSIZ > 16384 ? 8192 : BUFSIZ) 112 113 /* The following defines are here only for compatibility with luaconf.h 114 ** from the standard Lua distribution. They must not be changed for LuaJIT. 115 */ 116 #define LUA_NUMBER_DOUBLE 117 #define LUA_NUMBER double 118 #define LUAI_UACNUMBER double 119 #define LUA_NUMBER_SCAN "%lf" 120 #define LUA_NUMBER_FMT "%.14g" 121 #define lua_number2str(s, n) sprintf((s), LUA_NUMBER_FMT, (n)) 122 #define LUAI_MAXNUMBER2STR 32 123 #define LUA_INTFRMLEN "l" 124 #define LUA_INTFRM_T long 125 126 /* Linkage of public API functions. */ 127 #if defined(LUA_BUILD_AS_DLL) 128 #if defined(LUA_CORE) || defined(LUA_LIB) 129 #define LUA_API __declspec(dllexport) 130 #else 131 #define LUA_API __declspec(dllimport) 132 #endif 133 #else 134 #define LUA_API extern 135 #endif 136 137 #define LUALIB_API LUA_API 138 139 /* Compatibility support for assertions. */ 140 #if defined(LUA_USE_ASSERT) || defined(LUA_USE_APICHECK) 141 #include <assert.h> 142 #endif 143 #ifdef LUA_USE_ASSERT 144 #define lua_assert(x) assert(x) 145 #endif 146 #ifdef LUA_USE_APICHECK 147 #define luai_apicheck(L, o) { (void)L; assert(o); } 148 #else 149 #define luai_apicheck(L, o) { (void)L; } 150 #endif 151 152 #endif 153