diff options
Diffstat (limited to 'include/luaconf.h')
-rw-r--r-- | include/luaconf.h | 312 |
1 files changed, 312 insertions, 0 deletions
diff --git a/include/luaconf.h b/include/luaconf.h new file mode 100644 index 00000000..56567c00 --- /dev/null +++ b/include/luaconf.h @@ -0,0 +1,312 @@ +/* +** $Id: luaconf.h,v 1.11 2004/08/30 18:35:14 roberto Exp $ +** Configuration file for Lua +** See Copyright Notice in lua.h +*/ + + +#ifndef lconfig_h +#define lconfig_h + +#include <limits.h> +#include <stddef.h> + + +/* +** {====================================================== +** Index (search for keyword to find corresponding entry) +** ======================================================= +*/ + + +/* }====================================================== */ + + + + +/* +** {====================================================== +** Generic configuration +** ======================================================= +*/ + +/* default path */ +#define LUA_PATH_DEFAULT "?;?.lua" + + +/* type of numbers in Lua */ +#define LUA_NUMBER double + +/* formats for Lua numbers */ +#define LUA_NUMBER_SCAN "%lf" +#define LUA_NUMBER_FMT "%.14g" + + +/* type for integer functions */ +#define LUA_INTEGER long + + +/* mark for all API functions */ +#define LUA_API extern + +/* mark for auxlib functions */ +#define LUALIB_API extern + +/* buffer size used by lauxlib buffer system */ +#define LUAL_BUFFERSIZE BUFSIZ + + +/* first index for arrays */ +#define LUA_FIRSTINDEX 1 + +/* assertions in Lua (mainly for internal debugging) */ +#define lua_assert(c) /* empty */ + +/* }====================================================== */ + + + +/* +** {====================================================== +** Stand-alone configuration +** ======================================================= +*/ + +#ifdef lua_c + +/* definition of `isatty' */ +#ifdef _POSIX_C_SOURCE +#include <unistd.h> +#define stdin_is_tty() isatty(0) +#else +#define stdin_is_tty() 1 /* assume stdin is a tty */ +#endif + + +#define PROMPT "> " +#define PROMPT2 ">> " +#define PROGNAME "lua" + + +/* +** this macro allows you to open other libraries when starting the +** stand-alone interpreter +*/ +#define lua_userinit(L) luaopen_stdlibs(L) +/* +** #define lua_userinit(L) { int luaopen_mylibs(lua_State *L); \ +** luaopen_stdlibs(L); luaopen_mylibs(L); } +*/ + + + +/* +** this macro can be used by some `history' system to save lines +** read in manual input +*/ +#define lua_saveline(L,line) /* empty */ + + + +#endif + +/* }====================================================== */ + + + +/* +** {====================================================== +** Core configuration +** ======================================================= +*/ + +#ifdef LUA_CORE + +/* LUA-C API assertions */ +#define api_check(L, o) /* empty */ + + +/* an unsigned integer with at least 32 bits */ +#define LUA_UINT32 unsigned long + +/* a signed integer with at least 32 bits */ +#define LUA_INT32 long +#define LUA_MAXINT32 LONG_MAX + + +/* maximum depth for calls (unsigned short) */ +#define LUA_MAXCALLS 4096 + +/* +** maximum depth for C calls (unsigned short): Not too big, or may +** overflow the C stack... +*/ +#define LUA_MAXCCALLS 200 + + +/* maximum size for the virtual stack of a C function */ +#define MAXCSTACK 2048 + + +/* +** maximum number of syntactical nested non-terminals: Not too big, +** or may overflow the C stack... +*/ +#define LUA_MAXPARSERLEVEL 200 + + +/* maximum number of variables declared in a function */ +#define MAXVARS 200 /* <MAXSTACK */ + + +/* maximum number of upvalues per function */ +#define MAXUPVALUES 32 /* <MAXSTACK */ + + +/* maximum size of expressions for optimizing `while' code */ +#define MAXEXPWHILE 100 + + +/* function to convert a lua_Number to int (with any rounding method) */ +#if defined(__GNUC__) && defined(__i386) +#define lua_number2int(i,d) __asm__ ("fistpl %0":"=m"(i):"t"(d):"st") +#elif 0 +/* on machines compliant with C99, you can try `lrint' */ +#include <math.h> +#define lua_number2int(i,d) ((i)=lrint(d)) +#else +#define lua_number2int(i,d) ((i)=(int)(d)) +#endif + +/* function to convert a lua_Number to lua_Integer (with any rounding method) */ +#define lua_number2integer(i,n) lua_number2int(i,n) + + +/* function to convert a lua_Number to a string */ +#include <stdio.h> +#define lua_number2str(s,n) sprintf((s), LUA_NUMBER_FMT, (n)) + +/* function to convert a string to a lua_Number */ +#define lua_str2number(s,p) strtod((s), (p)) + + + +/* result of a `usual argument conversion' over lua_Number */ +#define LUA_UACNUMBER double + + +/* number of bits in an `int' */ +/* avoid overflows in comparison */ +#if INT_MAX-20 < 32760 +#define LUA_BITSINT 16 +#elif INT_MAX > 2147483640L +/* machine has at least 32 bits */ +#define LUA_BITSINT 32 +#else +#error "you must define LUA_BITSINT with number of bits in an integer" +#endif + + +/* type to ensure maximum alignment */ +#define LUSER_ALIGNMENT_T union { double u; void *s; long l; } + + +/* exception handling */ +#ifndef __cplusplus +/* default handling with long jumps */ +#include <setjmp.h> +#define L_THROW(c) longjmp((c)->b, 1) +#define L_TRY(c,a) if (setjmp((c)->b) == 0) { a } +#define l_jmpbuf jmp_buf + +#else +/* C++ exceptions */ +#define L_THROW(c) throw(c) +#define L_TRY(c,a) try { a } catch(...) \ + { if ((c)->status == 0) (c)->status = -1; } +#define l_jmpbuf int /* dummy variable */ +#endif + + + +/* +** macros for thread synchronization inside Lua core machine: +** all accesses to the global state and to global objects are synchronized. +** Because threads can read the stack of other threads +** (when running garbage collection), +** a thread must also synchronize any write-access to its own stack. +** Unsynchronized accesses are allowed only when reading its own stack, +** or when reading immutable fields from global objects +** (such as string values and udata values). +*/ +#define lua_lock(L) ((void) 0) +#define lua_unlock(L) ((void) 0) + +/* +** this macro allows a thread switch in appropriate places in the Lua +** core +*/ +#define lua_threadyield(L) {lua_unlock(L); lua_lock(L);} + + + +/* allows user-specific initialization on new threads */ +#define lua_userstateopen(l) /* empty */ + + +#endif + +/* }====================================================== */ + + + +/* +** {====================================================== +** Library configuration +** ======================================================= +*/ + +#ifdef LUA_LIB + + + +/* `assert' options */ + +/* environment variable that holds the search path for packages */ +#define LUA_PATH "LUA_PATH" + +/* separator of templates in a path */ +#define LUA_PATH_SEP ';' + +/* wild char in each template */ +#define LUA_PATH_MARK "?" + + +/* maximum number of captures in pattern-matching */ +#define MAX_CAPTURES 32 /* arbitrary limit */ + + +/* +** by default, gcc does not get `tmpname' +*/ +#ifdef __GNUC__ +#define USE_TMPNAME 0 +#else +#define USE_TMPNAME 1 +#endif + + + +#endif + +/* }====================================================== */ + + + + +/* Local configuration */ + +#undef USE_TMPNAME +#define USE_TMPNAME 1 + +#endif |