| 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 | |