diff options
Diffstat (limited to 'package/lua/patches/410-bitlib_25-embedded.patch')
-rw-r--r-- | package/lua/patches/410-bitlib_25-embedded.patch | 186 |
1 files changed, 0 insertions, 186 deletions
diff --git a/package/lua/patches/410-bitlib_25-embedded.patch b/package/lua/patches/410-bitlib_25-embedded.patch deleted file mode 100644 index 91de0647f5..0000000000 --- a/package/lua/patches/410-bitlib_25-embedded.patch +++ /dev/null @@ -1,186 +0,0 @@ -Index: lua-5.1.4/src/Makefile -=================================================================== ---- lua-5.1.4.orig/src/Makefile 2008-09-25 13:08:31.000000000 +0200 -+++ lua-5.1.4/src/Makefile 2008-09-25 13:08:43.000000000 +0200 -@@ -29,7 +29,7 @@ - lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o \ - lundump.o lvm.o lzio.o lnum.o - LIB_O= lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o \ -- lstrlib.o loadlib.o linit.o lposix.o -+ lstrlib.o loadlib.o linit.o lposix.o lbitlib.o - - LUA_T= lua - LUA_O= lua.o -Index: lua-5.1.4/src/bit_limits.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ lua-5.1.4/src/bit_limits.h 2008-09-25 13:09:16.000000000 +0200 -@@ -0,0 +1,4 @@ -+#define BITLIB_FLOAT_BITS 53 -+#define BITLIB_FLOAT_MAX 0xfffffffffffffL -+#define BITLIB_FLOAT_MIN (-0x10000000000000L) -+#define BITLIB_FLOAT_UMAX 0x1fffffffffffffUL -Index: lua-5.1.4/src/lbitlib.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ lua-5.1.4/src/lbitlib.c 2008-09-25 13:05:15.000000000 +0200 -@@ -0,0 +1,133 @@ -+/* Bitwise operations library */ -+/* (c) Reuben Thomas 2000-2008 */ -+/* See README for license */ -+ -+#include "lua.h" -+#include "lauxlib.h" -+#include "limits.h" -+ -+#include "bit_limits.h" -+ -+ -+/* FIXME: Assume lua_Integer is int */ -+#define LUA_INTEGER_MAX INT_MAX -+#define LUA_INTEGER_MIN INT_MIN -+ -+/* FIXME: Assume uint is an unsigned lua_Integer */ -+typedef unsigned int lua_UInteger; -+#define LUA_UINTEGER_MAX UINT_MAX -+ -+ -+/* Bit type size and limits */ -+ -+#define BIT_BITS \ -+ (CHAR_BIT * sizeof(lua_Integer) > BITLIB_FLOAT_BITS ? \ -+ BITLIB_FLOAT_BITS : (CHAR_BIT * sizeof(lua_Integer))) -+ -+/* This code may give warnings if BITLIB_FLOAT_* are too big to fit in -+ long, but that doesn't matter since in that case they won't be -+ used. */ -+#define BIT_MAX \ -+ (CHAR_BIT * sizeof(lua_Integer) > BITLIB_FLOAT_BITS ? BITLIB_FLOAT_MAX : LUA_INTEGER_MAX) -+ -+#define BIT_MIN \ -+ (CHAR_BIT * sizeof(lua_Integer) > BITLIB_FLOAT_BITS ? BITLIB_FLOAT_MIN : LUA_INTEGER_MIN) -+ -+#define BIT_UMAX \ -+ (CHAR_BIT * sizeof(lua_Integer) > BITLIB_FLOAT_BITS ? BITLIB_FLOAT_UMAX : LUA_UINTEGER_MAX) -+ -+ -+/* Define TOBIT to get a bit value */ -+#ifdef BUILTIN_CAST -+#define -+#define TOBIT(L, n, res) \ -+ ((void)(res), luaL_checkinteger((L), (n))) -+#else -+#include <stdint.h> -+#include <math.h> -+ -+/* FIXME: Assume lua_Number fits in a double (use of fmod). */ -+#define TOBIT(L, n, res) \ -+ ((lua_Integer)(((res) = fmod(luaL_checknumber(L, (n)), (double)BIT_UMAX + 1.0)), \ -+ (res) > BIT_MAX ? ((res) -= (double)BIT_UMAX, (res) -= 1) : \ -+ ((res) < BIT_MIN ? ((res) += (double)BIT_UMAX, (res) += 1) : (res)))) -+#endif -+ -+ -+#define BIT_TRUNCATE(i) \ -+ ((i) & BIT_UMAX) -+ -+ -+/* Operations -+ -+ The macros MONADIC and VARIADIC only deal with bitwise operations. -+ -+ LOGICAL_SHIFT truncates its left-hand operand before shifting so -+ that any extra bits at the most-significant end are not shifted -+ into the result. -+ -+ ARITHMETIC_SHIFT does not truncate its left-hand operand, so that -+ the sign bits are not removed and right shift work properly. -+ */ -+ -+#define MONADIC(name, op) \ -+ static int bit_ ## name(lua_State *L) { \ -+ lua_Number f; \ -+ lua_pushinteger(L, BIT_TRUNCATE(op TOBIT(L, 1, f))); \ -+ return 1; \ -+ } -+ -+#define VARIADIC(name, op) \ -+ static int bit_ ## name(lua_State *L) { \ -+ lua_Number f; \ -+ int n = lua_gettop(L), i; \ -+ lua_Integer w = TOBIT(L, 1, f); \ -+ for (i = 2; i <= n; i++) \ -+ w op TOBIT(L, i, f); \ -+ lua_pushinteger(L, BIT_TRUNCATE(w)); \ -+ return 1; \ -+ } -+ -+#define LOGICAL_SHIFT(name, op) \ -+ static int bit_ ## name(lua_State *L) { \ -+ lua_Number f; \ -+ lua_pushinteger(L, BIT_TRUNCATE(BIT_TRUNCATE((lua_UInteger)TOBIT(L, 1, f)) op \ -+ (unsigned)luaL_checknumber(L, 2))); \ -+ return 1; \ -+ } -+ -+#define ARITHMETIC_SHIFT(name, op) \ -+ static int bit_ ## name(lua_State *L) { \ -+ lua_Number f; \ -+ lua_pushinteger(L, BIT_TRUNCATE((lua_Integer)TOBIT(L, 1, f) op \ -+ (unsigned)luaL_checknumber(L, 2))); \ -+ return 1; \ -+ } -+ -+MONADIC(cast, +) -+MONADIC(bnot, ~) -+VARIADIC(band, &=) -+VARIADIC(bor, |=) -+VARIADIC(bxor, ^=) -+ARITHMETIC_SHIFT(lshift, <<) -+LOGICAL_SHIFT(rshift, >>) -+ARITHMETIC_SHIFT(arshift, >>) -+ -+static const struct luaL_reg bitlib[] = { -+ {"cast", bit_cast}, -+ {"bnot", bit_bnot}, -+ {"band", bit_band}, -+ {"bor", bit_bor}, -+ {"bxor", bit_bxor}, -+ {"lshift", bit_lshift}, -+ {"rshift", bit_rshift}, -+ {"arshift", bit_arshift}, -+ {NULL, NULL} -+}; -+ -+LUALIB_API int luaopen_bit (lua_State *L) { -+ luaL_register(L, "bit", bitlib); -+ lua_pushnumber(L, BIT_BITS); -+ lua_setfield(L, -2, "bits"); -+ return 1; -+} -Index: lua-5.1.4/src/linit.c -=================================================================== ---- lua-5.1.4.orig/src/linit.c 2008-09-25 13:08:11.000000000 +0200 -+++ lua-5.1.4/src/linit.c 2008-09-25 13:08:27.000000000 +0200 -@@ -24,6 +24,7 @@ - {LUA_MATHLIBNAME, luaopen_math}, - {LUA_DBLIBNAME, luaopen_debug}, - {LUA_POSIXLIBNAME, luaopen_posix}, -+ {LUA_BITLIBNAME, luaopen_bit}, - {NULL, NULL} - }; - -Index: lua-5.1.4/src/lualib.h -=================================================================== ---- lua-5.1.4.orig/src/lualib.h 2008-09-25 13:07:29.000000000 +0200 -+++ lua-5.1.4/src/lualib.h 2008-09-25 13:08:06.000000000 +0200 -@@ -42,6 +42,9 @@ - #define LUA_POSIXLIBNAME "posix" - LUALIB_API int (luaopen_posix) (lua_State *L); - -+#define LUA_BITLIBNAME "bit" -+LUALIB_API int (luaopen_bit) (lua_State *L); -+ - - /* open all previous libraries */ - LUALIB_API void (luaL_openlibs) (lua_State *L); |