From 16d2ad88fe9a89fad4645f85e28d66e999b542b9 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Wed, 6 Jan 2010 13:15:04 -0200 Subject: [PATCH] some changes in compatibility macros: added LUA_COMPAT_ALL + compatibility macros from lua.h and lauxlib.h moved to luaconf.h --- luaconf.h | 93 +++++++++++++++++++++++++------------------------------ 1 file changed, 43 insertions(+), 50 deletions(-) diff --git a/luaconf.h b/luaconf.h index 4a9703ab..91204a3a 100644 --- a/luaconf.h +++ b/luaconf.h @@ -1,5 +1,5 @@ /* -** $Id: luaconf.h,v 1.125 2009/12/22 16:47:00 roberto Exp roberto $ +** $Id: luaconf.h,v 1.126 2009/12/28 16:30:31 roberto Exp roberto $ ** Configuration file for Lua ** See Copyright Notice in lua.h */ @@ -35,6 +35,7 @@ #if defined(LUA_WIN) #include +#define LUA_DL_DLL #endif @@ -47,7 +48,8 @@ #if defined(LUA_USE_MACOSX) #define LUA_USE_POSIX -#define LUA_DL_DYLD /* does not need extra library */ +#define LUA_USE_DLOPEN +#define LUA_USE_READLINE /* needs some extra libraries */ #endif @@ -205,55 +207,68 @@ ** =================================================================== */ +/* +@@ LUA_COMPAT_ALL controls all compatibility options. +** You can define it to get all options, or change specific options +** to fit your specific needs. +*/ +#if defined(LUA_COMPAT_ALL) + /* @@ LUA_COMPAT_UNPACK controls the presence of global 'unpack'. -** CHANGE it (define it) if you have not replaced its uses with -** 'table.unpack'. +** You can replace it with 'table.unpack'. */ -/* #define LUA_COMPAT_UNPACK */ +#define LUA_COMPAT_UNPACK /* @@ LUA_COMPAT_CPCALL controls the presence of function 'lua_cpcall'. -** CHANGE it (define it) if you need this function. (You can replace -** it with the preregistered function cpcall.) +** You can replace it with the preregistered function 'cpcall'. */ -/* #define LUA_COMPAT_CPCALL */ -/* LUA_API int (lua_cpcall) (lua_State *L, lua_CFunction func, void *ud); */ +#define LUA_COMPAT_CPCALL +LUA_API int (lua_cpcall) (lua_State *L, lua_CFunction func, void *ud); /* @@ LUA_COMPAT_FENV controls the presence of functions 'setfenv/getfenv'. -** CHANGE it (define it) if you need these functions. (You can replace -** them with lexical environments, 'loadin', or the debug library.) +** You can replace them with lexical environments, 'loadin', or the +** debug library. */ -/* #define LUA_COMPAT_FENV */ +#define LUA_COMPAT_FENV /* @@ LUA_COMPAT_LOG10 defines the function 'log10' in the math library. -** CHANGE it (undefine it) if as soon as you rewrite all calls 'log10(x)' -** as 'log(x, 10)' +** You can rewrite 'log10(x)' as 'log(x, 10)'. */ #define LUA_COMPAT_LOG10 /* @@ LUA_COMPAT_MAXN defines the function 'maxn' in the table library. -** CHANGE it (define it) if you need that function. */ -/* #define LUA_COMPAT_MAXN */ +#define LUA_COMPAT_MAXN /* -@@ LUA_COMPAT_API includes some macros and functions that supply some -@* compatibility with previous versions. -** CHANGE it (undefine it) if you do not need these compatibility facilities. +@@ LUA_COMPAT_DEBUGLIB controls compatibility with preloading +** the debug library. +** You should add 'require"debug"' everywhere you need the debug +** library. */ -#define LUA_COMPAT_API +#define LUA_COMPAT_DEBUGLIB /* -@@ LUA_COMPAT_DEBUGLIB controls compatibility with preloading -@* the debug library. -** CHANGE it to undefined as soon as you add 'require"debug"' everywhere -** you need the debug library. +@@ The following macros supply trivial compatibility for some +** changes in the API. The macros themselves document how to +** change your code to avoid using them. */ -#define LUA_COMPAT_DEBUGLIB +#define lua_strlen(L,i) lua_rawlen(L, (i)) + +#define lua_objlen(L,i) lua_rawlen(L, (i)) + +#define lua_equal(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPEQ) +#define lua_lessthan(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPLT) + +/* compatibility with previous wrong spelling */ +#define luaL_typerror luaL_typeerror + +#endif /* }================================================================== */ @@ -282,7 +297,7 @@ @@ LUAI_MEM is a signed integer big enough to count the total memory @* used by Lua. ** CHANGE here if for some weird reason the default definitions are not -** good enough for your machine. Probably you do not need to change +** good enough for your machine. Probably you do not need to change ** this. */ #if LUAI_BITSINT >= 32 @@ -310,7 +325,7 @@ #endif /* reserve some space for error handling */ -#define LUAI_FIRSTPSEUDOIDX (-LUAI_MAXSTACK - 1000) +#define LUAI_FIRSTPSEUDOIDX (-LUAI_MAXSTACK - 1000) @@ -420,7 +435,7 @@ /* On a Pentium, resort to a trick */ #if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) && !defined(__SSE2__) && \ - (defined(__i386) || defined (_M_IX86) || defined(__i386__)) + (defined(__i386) || defined (_M_IX86) || defined(__i386__)) /* On a Microsoft compiler, use assembler */ #if defined(_MSC_VER) @@ -476,28 +491,6 @@ union luai_Cast { double l_d; long l_l; }; /* }================================================================== */ -/* -@@ LUA_DL_* define which dynamic-library system Lua should use. -** CHANGE here if Lua has problems choosing the appropriate -** dynamic-library system for your platform (either Windows' DLL, Mac's -** dyld, or Unix's dlopen). If your system is some kind of Unix, there -** is a good chance that it has dlopen, so LUA_DL_DLOPEN will work for -** it. To use dlopen you also need to adapt the src/Makefile (probably -** adding -ldl to the linker options), so Lua does not select it -** automatically. (When you change the makefile to add -ldl, you must -** also add -DLUA_USE_DLOPEN.) -** If you do not want any kind of dynamic library, undefine all these -** options. -** By default, _WIN32 gets LUA_DL_DLL and MAC OS X gets LUA_DL_DYLD. -*/ -#if defined(LUA_USE_DLOPEN) -#define LUA_DL_DLOPEN -#endif - -#if defined(LUA_WIN) -#define LUA_DL_DLL -#endif -