luajitos

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

luaconf.h (4588B)


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