summaryrefslogtreecommitdiff
path: root/src/luaconf.h
diff options
context:
space:
mode:
authorLua Team <team@lua.org>2004-12-30 12:00:00 +0000
committerrepogen <>2004-12-30 12:00:00 +0000
commite2493a40ee611d5a718fd2a81fe67e24c04c91a0 (patch)
tree0dca96133b3cd52d262dfa2592ad076fc0ea7852 /src/luaconf.h
parent226f7859b5392b6680b7e703f9cc7f7f101fd365 (diff)
downloadlua-github-5.1-work4.tar.gz
Lua 5.1-work45.1-work4
Diffstat (limited to 'src/luaconf.h')
-rw-r--r--src/luaconf.h386
1 files changed, 386 insertions, 0 deletions
diff --git a/src/luaconf.h b/src/luaconf.h
new file mode 100644
index 00000000..7ea477e2
--- /dev/null
+++ b/src/luaconf.h
@@ -0,0 +1,386 @@
+/*
+** $Id: luaconf.h,v 1.22 2004/12/27 15:58:15 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 */
+#if defined(_WIN32)
+#define LUA_ROOT "C:\\Program Files\\Lua51"
+#define LUA_LDIR LUA_ROOT "\\lua"
+#define LUA_CDIR LUA_ROOT "\\dll"
+#define LUA_PATH_DEFAULT \
+ "?.lua;" LUA_LDIR "\\?.lua;" LUA_LDIR "\\?\\init.lua"
+#define LUA_CPATH_DEFAULT "?.dll;" LUA_CDIR "\\?.dll"
+
+#else
+#define LUA_ROOT "/usr/local"
+#define LUA_LDIR LUA_ROOT "/share/lua/5.1"
+#define LUA_CDIR LUA_ROOT "/lib/lua/5.1"
+#define LUA_PATH_DEFAULT \
+ "./?.lua;" LUA_LDIR "/?.lua;" LUA_LDIR "/?/init.lua"
+#define LUA_CPATH_DEFAULT "./?.so;" LUA_CDIR "/?.so"
+#endif
+
+
+
+/* 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
+** on most machines, `ptrdiff_t' gives a reasonable size for integers
+*/
+#define LUA_INTEGER ptrdiff_t
+
+
+/* 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
+
+
+/* assertions in Lua (mainly for internal debugging) */
+#define lua_assert(c) ((void)0)
+
+/* }====================================================== */
+
+
+
+/*
+** {======================================================
+** Stand-alone configuration
+** =======================================================
+*/
+
+#ifdef lua_c
+
+/* definition of `isatty' */
+#ifdef _POSIX_C_SOURCE
+#include <unistd.h>
+#define stdin_is_tty() isatty(0)
+#elif defined(_WIN32)
+#include <io.h>
+#include <fcntl.h>
+#define stdin_is_tty() _isatty(_fileno(stdin))
+#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) lua_assert(o)
+
+
+/* number of bits in an `int' */
+/* avoid overflows in comparison */
+#if INT_MAX-20 < 32760
+#define LUA_BITSINT 16
+#elif INT_MAX > 2147483640L
+/* `int' has at least 32 bits */
+#define LUA_BITSINT 32
+#else
+#error "you must define LUA_BITSINT with number of bits in an integer"
+#endif
+
+
+/*
+** L_UINT32: unsigned integer with at least 32 bits
+** L_INT32: signed integer with at least 32 bits
+** LU_MEM: an unsigned integer big enough to count the total memory used by Lua
+** L_MEM: a signed integer big enough to count the total memory used by Lua
+*/
+#if LUA_BITSINT >= 32
+#define LUA_UINT32 unsigned int
+#define LUA_INT32 int
+#define LUA_MAXINT32 INT_MAX
+#define LU_MEM size_t
+#define L_MEM ptrdiff_t
+#else
+/* 16-bit ints */
+#define LUA_UINT32 unsigned long
+#define LUA_INT32 long
+#define LUA_MAXINT32 LONG_MAX
+#define LU_MEM LUA_UINT32
+#define L_MEM ptrdiff_t
+#endif
+
+
+/* maximum depth for calls (unsigned short) */
+#define LUA_MAXCALLS 10000
+
+/*
+** 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 60 /* <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 defined(_WIN32) && defined(_M_IX86)
+#include <math.h>
+#pragma warning(disable: 4514)
+__inline int l_lrint (double flt)
+{ int i;
+ _asm {
+ fld flt
+ fistp i
+ };
+ return i;
+}
+#define lua_number2int(i,d) ((i)=l_lrint((d)))
+
+#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199900L)
+/* 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
+
+
+
+/* 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(L,c) longjmp((c)->b, 1)
+#define L_TRY(L,c,a) if (setjmp((c)->b) == 0) { a }
+#define l_jmpbuf jmp_buf
+
+#else
+/* C++ exceptions */
+#define L_THROW(L,c) throw(c)
+#define L_TRY(L,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 variables that hold the search path for packages */
+#define LUA_PATH "LUA_PATH"
+#define LUA_CPATH "LUA_CPATH"
+
+/* prefix for open functions in C libraries */
+#define LUA_POF "luaopen_"
+
+/* separator for open functions in C libraries */
+#define LUA_OFSEP ""
+
+/* directory separator (for submodules) */
+#if defined(_WIN32)
+#define LUA_DIRSEP "\\"
+#else
+#define LUA_DIRSEP "/"
+#endif
+
+/* 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
+
+
+/*
+** Configuration for loadlib
+*/
+#if defined(_WIN32)
+#define USE_DLL
+#elif defined(__APPLE__) && defined(__MACH__)
+#define USE_DYLD
+#elif defined(__linux) || defined(sun) || defined(sgi) || defined(BSD)
+#define USE_DLOPEN
+#endif
+
+
+#endif
+
+/* }====================================================== */
+
+
+
+
+/* Local configuration */
+
+#endif