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