summaryrefslogtreecommitdiffstats
path: root/package/lua
diff options
context:
space:
mode:
Diffstat (limited to 'package/lua')
-rw-r--r--package/lua/patches-host/010-lua-5.1.3-lnum-full-260308.patch448
-rw-r--r--package/lua/patches-host/015-lnum-ppc-compat.patch8
-rw-r--r--package/lua/patches-host/030-archindependent-bytecode.patch26
3 files changed, 203 insertions, 279 deletions
diff --git a/package/lua/patches-host/010-lua-5.1.3-lnum-full-260308.patch b/package/lua/patches-host/010-lua-5.1.3-lnum-full-260308.patch
index f8d8fc7f1..74b8c6f8f 100644
--- a/package/lua/patches-host/010-lua-5.1.3-lnum-full-260308.patch
+++ b/package/lua/patches-host/010-lua-5.1.3-lnum-full-260308.patch
@@ -1,8 +1,6 @@
-Index: lua-5.1.4/src/Makefile
-===================================================================
---- lua-5.1.4.orig/src/Makefile 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/Makefile 2008-08-24 16:48:20.000000000 +0200
-@@ -25,7 +25,7 @@
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -25,7 +25,7 @@ PLATS= aix ansi bsd freebsd generic linu
LUA_A= liblua.a
CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \
lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o \
@@ -11,7 +9,7 @@ Index: lua-5.1.4/src/Makefile
LIB_O= lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o \
lstrlib.o loadlib.o linit.o
-@@ -148,6 +148,7 @@
+@@ -148,6 +148,7 @@ llex.o: llex.c lua.h luaconf.h ldo.h lob
lmathlib.o: lmathlib.c lua.h luaconf.h lauxlib.h lualib.h
lmem.o: lmem.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \
ltm.h lzio.h lmem.h ldo.h
@@ -19,7 +17,7 @@ Index: lua-5.1.4/src/Makefile
loadlib.o: loadlib.c lua.h luaconf.h lauxlib.h lualib.h
lobject.o: lobject.c lua.h luaconf.h ldo.h lobject.h llimits.h lstate.h \
ltm.h lzio.h lmem.h lstring.h lgc.h lvm.h
-@@ -179,4 +180,18 @@
+@@ -179,4 +180,18 @@ lzio.o: lzio.c lua.h luaconf.h llimits.h
print.o: print.c ldebug.h lstate.h lua.h luaconf.h lobject.h llimits.h \
ltm.h lzio.h lmem.h lopcodes.h lundump.h
@@ -38,10 +36,8 @@ Index: lua-5.1.4/src/Makefile
+print.c: lnum.h
+
# (end of Makefile)
-Index: lua-5.1.4/src/lapi.c
-===================================================================
---- lua-5.1.4.orig/src/lapi.c 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/lapi.c 2008-08-24 16:48:20.000000000 +0200
+--- a/src/lapi.c
++++ b/src/lapi.c
@@ -28,7 +28,7 @@
#include "ltm.h"
#include "lundump.h"
@@ -51,7 +47,7 @@ Index: lua-5.1.4/src/lapi.c
const char lua_ident[] =
-@@ -241,12 +241,13 @@
+@@ -241,12 +241,13 @@ LUA_API void lua_pushvalue (lua_State *L
LUA_API int lua_type (lua_State *L, int idx) {
StkId o = index2adr(L, idx);
@@ -66,7 +62,7 @@ Index: lua-5.1.4/src/lapi.c
return (t == LUA_TNONE) ? "no value" : luaT_typenames[t];
}
-@@ -264,6 +265,14 @@
+@@ -264,6 +265,14 @@ LUA_API int lua_isnumber (lua_State *L,
}
@@ -81,7 +77,7 @@ Index: lua-5.1.4/src/lapi.c
LUA_API int lua_isstring (lua_State *L, int idx) {
int t = lua_type(L, idx);
return (t == LUA_TSTRING || t == LUA_TNUMBER);
-@@ -309,31 +318,66 @@
+@@ -309,31 +318,66 @@ LUA_API int lua_lessthan (lua_State *L,
}
@@ -158,7 +154,7 @@ Index: lua-5.1.4/src/lapi.c
LUA_API int lua_toboolean (lua_State *L, int idx) {
const TValue *o = index2adr(L, idx);
return !l_isfalse(o);
-@@ -364,6 +408,7 @@
+@@ -364,6 +408,7 @@ LUA_API size_t lua_objlen (lua_State *L,
case LUA_TSTRING: return tsvalue(o)->len;
case LUA_TUSERDATA: return uvalue(o)->len;
case LUA_TTABLE: return luaH_getn(hvalue(o));
@@ -166,7 +162,7 @@ Index: lua-5.1.4/src/lapi.c
case LUA_TNUMBER: {
size_t l;
lua_lock(L); /* `luaV_tostring' may create a new string */
-@@ -426,6 +471,8 @@
+@@ -426,6 +471,8 @@ LUA_API void lua_pushnil (lua_State *L)
}
@@ -175,7 +171,7 @@ Index: lua-5.1.4/src/lapi.c
LUA_API void lua_pushnumber (lua_State *L, lua_Number n) {
lua_lock(L);
setnvalue(L->top, n);
-@@ -434,12 +481,22 @@
+@@ -434,12 +481,22 @@ LUA_API void lua_pushnumber (lua_State *
}
@@ -200,7 +196,7 @@ Index: lua-5.1.4/src/lapi.c
LUA_API void lua_pushlstring (lua_State *L, const char *s, size_t len) {
-@@ -569,7 +626,7 @@
+@@ -569,7 +626,7 @@ LUA_API void lua_rawgeti (lua_State *L,
lua_lock(L);
o = index2adr(L, idx);
api_check(L, ttistable(o));
@@ -209,7 +205,7 @@ Index: lua-5.1.4/src/lapi.c
api_incr_top(L);
lua_unlock(L);
}
-@@ -597,6 +654,9 @@
+@@ -597,6 +654,9 @@ LUA_API int lua_getmetatable (lua_State
case LUA_TUSERDATA:
mt = uvalue(obj)->metatable;
break;
@@ -219,7 +215,7 @@ Index: lua-5.1.4/src/lapi.c
default:
mt = G(L)->mt[ttype(obj)];
break;
-@@ -687,7 +747,7 @@
+@@ -687,7 +747,7 @@ LUA_API void lua_rawseti (lua_State *L,
api_checknelems(L, 1);
o = index2adr(L, idx);
api_check(L, ttistable(o));
@@ -228,7 +224,7 @@ Index: lua-5.1.4/src/lapi.c
luaC_barriert(L, hvalue(o), L->top-1);
L->top--;
lua_unlock(L);
-@@ -721,7 +781,7 @@
+@@ -721,7 +781,7 @@ LUA_API int lua_setmetatable (lua_State
break;
}
default: {
@@ -237,7 +233,7 @@ Index: lua-5.1.4/src/lapi.c
break;
}
}
-@@ -1085,3 +1145,32 @@
+@@ -1085,3 +1145,32 @@ LUA_API const char *lua_setupvalue (lua_
return name;
}
@@ -270,10 +266,8 @@ Index: lua-5.1.4/src/lapi.c
+ else lua_pushnumber( L, nvalue_fast(o) );
+ return 1;
+}
-Index: lua-5.1.4/src/lapi.h
-===================================================================
---- lua-5.1.4.orig/src/lapi.h 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/lapi.h 2008-08-24 16:48:20.000000000 +0200
+--- a/src/lapi.h
++++ b/src/lapi.h
@@ -13,4 +13,6 @@
LUAI_FUNC void luaA_pushobject (lua_State *L, const TValue *o);
@@ -281,10 +275,8 @@ Index: lua-5.1.4/src/lapi.h
+int lua_pushvalue_as_number (lua_State *L, int idx);
+
#endif
-Index: lua-5.1.4/src/lauxlib.c
-===================================================================
---- lua-5.1.4.orig/src/lauxlib.c 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/lauxlib.c 2008-08-24 16:48:20.000000000 +0200
+--- a/src/lauxlib.c
++++ b/src/lauxlib.c
@@ -23,7 +23,7 @@
#include "lua.h"
@@ -294,7 +286,7 @@ Index: lua-5.1.4/src/lauxlib.c
#define FREELIST_REF 0 /* free list of references */
-@@ -66,7 +66,7 @@
+@@ -66,7 +66,7 @@ LUALIB_API int luaL_typerror (lua_State
static void tag_error (lua_State *L, int narg, int tag) {
@@ -303,7 +295,7 @@ Index: lua-5.1.4/src/lauxlib.c
}
-@@ -188,8 +188,8 @@
+@@ -188,8 +188,8 @@ LUALIB_API lua_Number luaL_optnumber (lu
LUALIB_API lua_Integer luaL_checkinteger (lua_State *L, int narg) {
lua_Integer d = lua_tointeger(L, narg);
@@ -314,7 +306,7 @@ Index: lua-5.1.4/src/lauxlib.c
return d;
}
-@@ -200,6 +200,16 @@
+@@ -200,6 +200,16 @@ LUALIB_API lua_Integer luaL_optinteger (
}
@@ -331,11 +323,9 @@ Index: lua-5.1.4/src/lauxlib.c
LUALIB_API int luaL_getmetafield (lua_State *L, int obj, const char *event) {
if (!lua_getmetatable(L, obj)) /* no metatable? */
return 0;
-Index: lua-5.1.4/src/lauxlib.h
-===================================================================
---- lua-5.1.4.orig/src/lauxlib.h 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/lauxlib.h 2008-08-24 16:48:20.000000000 +0200
-@@ -57,6 +57,12 @@
+--- a/src/lauxlib.h
++++ b/src/lauxlib.h
+@@ -57,6 +57,12 @@ LUALIB_API lua_Number (luaL_optnumber) (
LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L, int numArg);
LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L, int nArg,
lua_Integer def);
@@ -348,10 +338,8 @@ Index: lua-5.1.4/src/lauxlib.h
LUALIB_API void (luaL_checkstack) (lua_State *L, int sz, const char *msg);
LUALIB_API void (luaL_checktype) (lua_State *L, int narg, int t);
-Index: lua-5.1.4/src/lbaselib.c
-===================================================================
---- lua-5.1.4.orig/src/lbaselib.c 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/lbaselib.c 2008-08-24 16:48:20.000000000 +0200
+--- a/src/lbaselib.c
++++ b/src/lbaselib.c
@@ -18,7 +18,9 @@
#include "lauxlib.h"
@@ -363,7 +351,7 @@ Index: lua-5.1.4/src/lbaselib.c
-@@ -54,20 +56,25 @@
+@@ -54,20 +56,25 @@ static int luaB_tonumber (lua_State *L)
int base = luaL_optint(L, 2, 10);
if (base == 10) { /* standard conversion */
luaL_checkany(L, 1);
@@ -394,7 +382,7 @@ Index: lua-5.1.4/src/lbaselib.c
lua_pushnumber(L, (lua_Number)n);
return 1;
}
-@@ -144,7 +151,7 @@
+@@ -144,7 +151,7 @@ static int luaB_setfenv (lua_State *L) {
luaL_checktype(L, 2, LUA_TTABLE);
getfunc(L, 0);
lua_pushvalue(L, 2);
@@ -403,7 +391,7 @@ Index: lua-5.1.4/src/lbaselib.c
/* change environment of current thread */
lua_pushthread(L);
lua_insert(L, -2);
-@@ -209,7 +216,7 @@
+@@ -209,7 +216,7 @@ static int luaB_collectgarbage (lua_Stat
return 1;
}
default: {
@@ -412,19 +400,17 @@ Index: lua-5.1.4/src/lbaselib.c
return 1;
}
}
-@@ -631,6 +638,8 @@
+@@ -631,6 +638,8 @@ static void base_open (lua_State *L) {
luaL_register(L, "_G", base_funcs);
lua_pushliteral(L, LUA_VERSION);
lua_setglobal(L, "_VERSION"); /* set global _VERSION */
+ lua_pushliteral(L, LUA_LNUM);
+ lua_setglobal(L, "_LNUM"); /* "[complex] double|float|ldouble int32|int64" */
- /* `ipairs' and `pairs' need auxliliary functions as upvalues */
+ /* `ipairs' and `pairs' need auxiliary functions as upvalues */
auxopen(L, "ipairs", luaB_ipairs, ipairsaux);
auxopen(L, "pairs", luaB_pairs, luaB_next);
-Index: lua-5.1.4/src/lcode.c
-===================================================================
---- lua-5.1.4.orig/src/lcode.c 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/lcode.c 2008-08-24 16:48:20.000000000 +0200
+--- a/src/lcode.c
++++ b/src/lcode.c
@@ -22,13 +22,18 @@
#include "lopcodes.h"
#include "lparser.h"
@@ -446,7 +432,7 @@ Index: lua-5.1.4/src/lcode.c
}
-@@ -231,12 +236,16 @@
+@@ -231,12 +236,16 @@ static int addk (FuncState *fs, TValue *
TValue *idx = luaH_set(L, fs->h, k);
Proto *f = fs->f;
int oldsize = f->sizek;
@@ -467,7 +453,7 @@ Index: lua-5.1.4/src/lcode.c
luaM_growvector(L, f->k, fs->nk, f->sizek, TValue,
MAXARG_Bx, "constant table overflow");
while (oldsize < f->sizek) setnilvalue(&f->k[oldsize++]);
-@@ -261,6 +270,21 @@
+@@ -261,6 +270,21 @@ int luaK_numberK (FuncState *fs, lua_Num
}
@@ -489,7 +475,7 @@ Index: lua-5.1.4/src/lcode.c
static int boolK (FuncState *fs, int b) {
TValue o;
setbvalue(&o, b);
-@@ -359,6 +383,16 @@
+@@ -359,6 +383,16 @@ static void discharge2reg (FuncState *fs
luaK_codeABx(fs, OP_LOADK, reg, luaK_numberK(fs, e->u.nval));
break;
}
@@ -506,7 +492,7 @@ Index: lua-5.1.4/src/lcode.c
case VRELOCABLE: {
Instruction *pc = &getcode(fs, e);
SETARG_A(*pc, reg);
-@@ -444,6 +478,10 @@
+@@ -444,6 +478,10 @@ void luaK_exp2val (FuncState *fs, expdes
int luaK_exp2RK (FuncState *fs, expdesc *e) {
luaK_exp2val(fs, e);
switch (e->k) {
@@ -517,7 +503,7 @@ Index: lua-5.1.4/src/lcode.c
case VKNUM:
case VTRUE:
case VFALSE:
-@@ -451,6 +489,10 @@
+@@ -451,6 +489,10 @@ int luaK_exp2RK (FuncState *fs, expdesc
if (fs->nk <= MAXINDEXRK) { /* constant fit in RK operand? */
e->u.s.info = (e->k == VNIL) ? nilK(fs) :
(e->k == VKNUM) ? luaK_numberK(fs, e->u.nval) :
@@ -528,7 +514,7 @@ Index: lua-5.1.4/src/lcode.c
boolK(fs, (e->k == VTRUE));
e->k = VK;
return RKASK(e->u.s.info);
-@@ -540,7 +582,10 @@
+@@ -540,7 +582,10 @@ void luaK_goiftrue (FuncState *fs, expde
int pc; /* pc of last jump */
luaK_dischargevars(fs, e);
switch (e->k) {
@@ -540,7 +526,7 @@ Index: lua-5.1.4/src/lcode.c
pc = NO_JUMP; /* always true; do nothing */
break;
}
-@@ -598,7 +643,10 @@
+@@ -590,7 +635,10 @@ static void codenot (FuncState *fs, expd
e->k = VTRUE;
break;
}
@@ -552,7 +538,7 @@ Index: lua-5.1.4/src/lcode.c
e->k = VFALSE;
break;
}
-@@ -634,25 +682,70 @@
+@@ -626,25 +674,70 @@ void luaK_indexed (FuncState *fs, expdes
static int constfolding (OpCode op, expdesc *e1, expdesc *e2) {
lua_Number v1, v2, r;
@@ -628,7 +614,7 @@ Index: lua-5.1.4/src/lcode.c
e1->u.nval = r;
return 1;
}
-@@ -696,7 +789,8 @@
+@@ -688,7 +781,8 @@ static void codecomp (FuncState *fs, OpC
void luaK_prefix (FuncState *fs, UnOpr op, expdesc *e) {
expdesc e2;
@@ -638,11 +624,9 @@ Index: lua-5.1.4/src/lcode.c
switch (op) {
case OPR_MINUS: {
if (!isnumeral(e))
-Index: lua-5.1.4/src/lcode.h
-===================================================================
---- lua-5.1.4.orig/src/lcode.h 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/lcode.h 2008-08-24 16:48:20.000000000 +0200
-@@ -71,6 +71,6 @@
+--- a/src/lcode.h
++++ b/src/lcode.h
+@@ -71,6 +71,6 @@ LUAI_FUNC void luaK_prefix (FuncState *f
LUAI_FUNC void luaK_infix (FuncState *fs, BinOpr op, expdesc *v);
LUAI_FUNC void luaK_posfix (FuncState *fs, BinOpr op, expdesc *v1, expdesc *v2);
LUAI_FUNC void luaK_setlist (FuncState *fs, int base, int nelems, int tostore);
@@ -650,11 +634,9 @@ Index: lua-5.1.4/src/lcode.h
+LUAI_FUNC int luaK_integerK (FuncState *fs, lua_Integer r);
#endif
-Index: lua-5.1.4/src/ldebug.c
-===================================================================
---- lua-5.1.4.orig/src/ldebug.c 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/ldebug.c 2008-08-24 16:48:20.000000000 +0200
-@@ -183,7 +183,7 @@
+--- a/src/ldebug.c
++++ b/src/ldebug.c
+@@ -183,7 +183,7 @@ static void collectvalidlines (lua_State
int *lineinfo = f->l.p->lineinfo;
int i;
for (i=0; i<f->l.p->sizelineinfo; i++)
@@ -663,7 +645,7 @@ Index: lua-5.1.4/src/ldebug.c
sethvalue(L, L->top, t);
}
incr_top(L);
-@@ -566,7 +566,7 @@
+@@ -566,7 +566,7 @@ static int isinstack (CallInfo *ci, cons
void luaG_typeerror (lua_State *L, const TValue *o, const char *op) {
const char *name = NULL;
@@ -672,7 +654,7 @@ Index: lua-5.1.4/src/ldebug.c
const char *kind = (isinstack(L->ci, o)) ?
getobjname(L, L->ci, cast_int(o - L->base), &name) :
NULL;
-@@ -594,8 +594,8 @@
+@@ -594,8 +594,8 @@ void luaG_aritherror (lua_State *L, cons
int luaG_ordererror (lua_State *L, const TValue *p1, const TValue *p2) {
@@ -683,12 +665,10 @@ Index: lua-5.1.4/src/ldebug.c
if (t1[2] == t2[2])
luaG_runerror(L, "attempt to compare two %s values", t1);
else
-Index: lua-5.1.4/src/ldo.c
-===================================================================
---- lua-5.1.4.orig/src/ldo.c 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/ldo.c 2008-08-24 16:48:20.000000000 +0200
-@@ -219,9 +219,9 @@
- luaC_checkGC(L);
+--- a/src/ldo.c
++++ b/src/ldo.c
+@@ -220,9 +220,9 @@ static StkId adjust_varargs (lua_State *
+ luaD_checkstack(L, p->maxstacksize);
htab = luaH_new(L, nvar, 1); /* create `arg' table */
for (i=0; i<nvar; i++) /* put extra arguments into `arg' table */
- setobj2n(L, luaH_setnum(L, htab, i+1), L->top - nvar + i);
@@ -699,11 +679,9 @@ Index: lua-5.1.4/src/ldo.c
}
#endif
/* move fixed parameters to final position */
-Index: lua-5.1.4/src/ldump.c
-===================================================================
---- lua-5.1.4.orig/src/ldump.c 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/ldump.c 2008-08-24 16:48:20.000000000 +0200
-@@ -52,6 +52,11 @@
+--- a/src/ldump.c
++++ b/src/ldump.c
+@@ -52,6 +52,11 @@ static void DumpNumber(lua_Number x, Dum
DumpVar(x,D);
}
@@ -715,7 +693,7 @@ Index: lua-5.1.4/src/ldump.c
static void DumpVector(const void* b, int n, size_t size, DumpState* D)
{
DumpInt(n,D);
-@@ -93,8 +98,11 @@
+@@ -93,8 +98,11 @@ static void DumpConstants(const Proto* f
DumpChar(bvalue(o),D);
break;
case LUA_TNUMBER:
@@ -728,10 +706,8 @@ Index: lua-5.1.4/src/ldump.c
case LUA_TSTRING:
DumpString(rawtsvalue(o),D);
break;
-Index: lua-5.1.4/src/liolib.c
-===================================================================
---- lua-5.1.4.orig/src/liolib.c 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/liolib.c 2008-08-24 16:48:20.000000000 +0200
+--- a/src/liolib.c
++++ b/src/liolib.c
@@ -9,6 +9,7 @@
#include <stdio.h>
#include <stdlib.h>
@@ -750,7 +726,7 @@ Index: lua-5.1.4/src/liolib.c
#define IO_INPUT 1
#define IO_OUTPUT 2
-@@ -269,6 +271,13 @@
+@@ -269,6 +271,13 @@ static int io_lines (lua_State *L) {
** =======================================================
*/
@@ -764,8 +740,8 @@ Index: lua-5.1.4/src/liolib.c
static int read_number (lua_State *L, FILE *f) {
lua_Number d;
-@@ -279,6 +288,43 @@
- else return 0; /* read fails */
+@@ -282,6 +291,43 @@ static int read_number (lua_State *L, FI
+ }
}
+static int read_integer (lua_State *L, FILE *f) {
@@ -808,7 +784,7 @@ Index: lua-5.1.4/src/liolib.c
static int test_eof (lua_State *L, FILE *f) {
int c = getc(f);
-@@ -352,6 +398,14 @@
+@@ -355,6 +401,14 @@ static int g_read (lua_State *L, FILE *f
case 'n': /* number */
success = read_number(L, f);
break;
@@ -823,7 +799,7 @@ Index: lua-5.1.4/src/liolib.c
case 'l': /* line */
success = read_line(L, f);
break;
-@@ -412,9 +466,10 @@
+@@ -415,9 +469,10 @@ static int g_write (lua_State *L, FILE *
int status = 1;
for (; nargs--; arg++) {
if (lua_type(L, arg) == LUA_TNUMBER) {
@@ -837,7 +813,7 @@ Index: lua-5.1.4/src/liolib.c
}
else {
size_t l;
-@@ -457,7 +512,7 @@
+@@ -460,7 +515,7 @@ static int f_setvbuf (lua_State *L) {
static const char *const modenames[] = {"no", "full", "line", NULL};
FILE *f = tofile(L);
int op = luaL_checkoption(L, 2, NULL, modenames);
@@ -846,10 +822,8 @@ Index: lua-5.1.4/src/liolib.c
int res = setvbuf(f, NULL, mode[op], sz);
return pushresult(L, res == 0, NULL);
}
-Index: lua-5.1.4/src/llex.c
-===================================================================
---- lua-5.1.4.orig/src/llex.c 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/llex.c 2008-08-24 16:48:20.000000000 +0200
+--- a/src/llex.c
++++ b/src/llex.c
@@ -22,6 +22,7 @@
#include "lstring.h"
#include "ltable.h"
@@ -877,7 +851,7 @@ Index: lua-5.1.4/src/llex.c
NULL
};
-@@ -90,7 +95,11 @@
+@@ -90,7 +95,11 @@ static const char *txtToken (LexState *l
switch (token) {
case TK_NAME:
case TK_STRING:
@@ -889,7 +863,7 @@ Index: lua-5.1.4/src/llex.c
save(ls, '\0');
return luaZ_buffer(ls->buff);
default:
-@@ -173,23 +182,27 @@
+@@ -175,23 +184,27 @@ static void buffreplace (LexState *ls, c
if (p[n] == from) p[n] = to;
}
@@ -922,7 +896,7 @@ Index: lua-5.1.4/src/llex.c
lua_assert(isdigit(ls->current));
do {
save_and_next(ls);
-@@ -200,8 +213,9 @@
+@@ -202,8 +215,9 @@ static void read_numeral (LexState *ls,
save_and_next(ls);
save(ls, '\0');
buffreplace(ls, '.', ls->decpoint); /* follow locale for decimal point */
@@ -934,7 +908,7 @@ Index: lua-5.1.4/src/llex.c
}
-@@ -329,6 +343,7 @@
+@@ -331,6 +345,7 @@ static void read_string (LexState *ls, i
}
@@ -942,7 +916,7 @@ Index: lua-5.1.4/src/llex.c
static int llex (LexState *ls, SemInfo *seminfo) {
luaZ_resetbuffer(ls->buff);
for (;;) {
-@@ -400,8 +415,7 @@
+@@ -402,8 +417,7 @@ static int llex (LexState *ls, SemInfo *
}
else if (!isdigit(ls->current)) return '.';
else {
@@ -952,7 +926,7 @@ Index: lua-5.1.4/src/llex.c
}
}
case EOZ: {
-@@ -414,8 +428,7 @@
+@@ -416,8 +430,7 @@ static int llex (LexState *ls, SemInfo *
continue;
}
else if (isdigit(ls->current)) {
@@ -962,11 +936,9 @@ Index: lua-5.1.4/src/llex.c
}
else if (isalpha(ls->current) || ls->current == '_') {
/* identifier or reserved word */
-Index: lua-5.1.4/src/llex.h
-===================================================================
---- lua-5.1.4.orig/src/llex.h 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/llex.h 2008-08-24 16:48:20.000000000 +0200
-@@ -29,19 +29,22 @@
+--- a/src/llex.h
++++ b/src/llex.h
+@@ -29,19 +29,22 @@ enum RESERVED {
TK_RETURN, TK_THEN, TK_TRUE, TK_UNTIL, TK_WHILE,
/* other terminal symbols */
TK_CONCAT, TK_DOTS, TK_EQ, TK_GE, TK_LE, TK_NE, TK_NUMBER,
@@ -994,11 +966,9 @@ Index: lua-5.1.4/src/llex.h
TString *ts;
} SemInfo; /* semantics information */
-Index: lua-5.1.4/src/llimits.h
-===================================================================
---- lua-5.1.4.orig/src/llimits.h 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/llimits.h 2008-08-24 16:48:20.000000000 +0200
-@@ -49,6 +49,7 @@
+--- a/src/llimits.h
++++ b/src/llimits.h
+@@ -49,6 +49,7 @@ typedef LUAI_USER_ALIGNMENT_T L_Umaxalig
/* result of a `usual argument conversion' over lua_Number */
typedef LUAI_UACNUMBER l_uacNumber;
@@ -1006,7 +976,7 @@ Index: lua-5.1.4/src/llimits.h
/* internal assertions for in-house debugging */
-@@ -80,7 +81,6 @@
+@@ -80,7 +81,6 @@ typedef LUAI_UACNUMBER l_uacNumber;
#define cast_int(i) cast(int, (i))
@@ -1014,10 +984,8 @@ Index: lua-5.1.4/src/llimits.h
/*
** type for virtual-machine instructions
** must be an unsigned with (at least) 4 bytes (see details in lopcodes.h)
-Index: lua-5.1.4/src/lmathlib.c
-===================================================================
---- lua-5.1.4.orig/src/lmathlib.c 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/lmathlib.c 2008-08-24 16:48:20.000000000 +0200
+--- a/src/lmathlib.c
++++ b/src/lmathlib.c
@@ -4,7 +4,6 @@
** See Copyright Notice in lua.h
*/
@@ -1262,7 +1230,7 @@ Index: lua-5.1.4/src/lmathlib.c
return 1;
}
-@@ -138,19 +234,20 @@
+@@ -138,19 +234,20 @@ static int math_rad (lua_State *L) {
static int math_frexp (lua_State *L) {
int e;
@@ -1285,7 +1253,7 @@ Index: lua-5.1.4/src/lmathlib.c
int n = lua_gettop(L); /* number of arguments */
lua_Number dmin = luaL_checknumber(L, 1);
int i;
-@@ -165,6 +262,7 @@
+@@ -165,6 +262,7 @@ static int math_min (lua_State *L) {
static int math_max (lua_State *L) {
@@ -1293,7 +1261,7 @@ Index: lua-5.1.4/src/lmathlib.c
int n = lua_gettop(L); /* number of arguments */
lua_Number dmax = luaL_checknumber(L, 1);
int i;
-@@ -182,25 +280,20 @@
+@@ -182,25 +280,20 @@ static int math_random (lua_State *L) {
/* the `%' avoids the (rare) case of r==1, and is needed also because on
some systems (SunOS!) `rand()' may return a value larger than RAND_MAX */
lua_Number r = (lua_Number)(rand()%RAND_MAX) / (lua_Number)RAND_MAX;
@@ -1333,7 +1301,7 @@ Index: lua-5.1.4/src/lmathlib.c
}
return 1;
}
-@@ -211,6 +304,66 @@
+@@ -211,6 +304,66 @@ static int math_randomseed (lua_State *L
return 0;
}
@@ -1400,7 +1368,7 @@ Index: lua-5.1.4/src/lmathlib.c
static const luaL_Reg mathlib[] = {
{"abs", math_abs},
-@@ -241,6 +394,18 @@
+@@ -241,6 +394,18 @@ static const luaL_Reg mathlib[] = {
{"sqrt", math_sqrt},
{"tanh", math_tanh},
{"tan", math_tan},
@@ -1419,7 +1387,7 @@ Index: lua-5.1.4/src/lmathlib.c
{NULL, NULL}
};
-@@ -252,8 +417,10 @@
+@@ -252,8 +417,10 @@ LUALIB_API int luaopen_math (lua_State *
luaL_register(L, LUA_MATHLIBNAME, mathlib);
lua_pushnumber(L, PI);
lua_setfield(L, -2, "pi");
@@ -1431,10 +1399,8 @@ Index: lua-5.1.4/src/lmathlib.c
#if defined(LUA_COMPAT_MOD)
lua_getfield(L, -1, "fmod");
lua_setfield(L, -2, "mod");
-Index: lua-5.1.4/src/lnum.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ lua-5.1.4/src/lnum.c 2008-08-24 16:48:20.000000000 +0200
+--- /dev/null
++++ b/src/lnum.c
@@ -0,0 +1,312 @@
+/*
+** $Id: lnum.c,v ... $
@@ -1748,10 +1714,8 @@ Index: lua-5.1.4/src/lnum.c
+ return 0;
+}
+
-Index: lua-5.1.4/src/lnum.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ lua-5.1.4/src/lnum.h 2008-08-24 16:48:20.000000000 +0200
+--- /dev/null
++++ b/src/lnum.h
@@ -0,0 +1,116 @@
+/*
+** $Id: lnum.h,v ... $
@@ -1869,10 +1833,8 @@ Index: lua-5.1.4/src/lnum.h
+{ lua_Integer _i; if (tt_integer_valued(o,&_i)) setivalue(o,_i); }
+
+#endif
-Index: lua-5.1.4/src/lnum_config.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ lua-5.1.4/src/lnum_config.h 2008-08-24 16:48:20.000000000 +0200
+--- /dev/null
++++ b/src/lnum_config.h
@@ -0,0 +1,221 @@
+/*
+** $Id: lnum_config.h,v ... $
@@ -2095,10 +2057,8 @@ Index: lua-5.1.4/src/lnum_config.h
+
+#endif
+
-Index: lua-5.1.4/src/lobject.c
-===================================================================
---- lua-5.1.4.orig/src/lobject.c 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/lobject.c 2008-08-24 16:48:20.000000000 +0200
+--- a/src/lobject.c
++++ b/src/lobject.c
@@ -21,7 +21,8 @@
#include "lstate.h"
#include "lstring.h"
@@ -2109,7 +2069,7 @@ Index: lua-5.1.4/src/lobject.c
const TValue luaO_nilobject_ = {{NULL}, LUA_TNIL};
-@@ -70,12 +71,31 @@
+@@ -70,12 +71,31 @@ int luaO_log2 (unsigned int x) {
int luaO_rawequalObj (const TValue *t1, const TValue *t2) {
@@ -2143,7 +2103,7 @@ Index: lua-5.1.4/src/lobject.c
case LUA_TBOOLEAN:
return bvalue(t1) == bvalue(t2); /* boolean true must be 1 !! */
case LUA_TLIGHTUSERDATA:
-@@ -86,21 +106,6 @@
+@@ -86,21 +106,6 @@ int luaO_rawequalObj (const TValue *t1,
}
}
@@ -2165,7 +2125,7 @@ Index: lua-5.1.4/src/lobject.c
static void pushstr (lua_State *L, const char *str) {
setsvalue2s(L, L->top, luaS_new(L, str));
incr_top(L);
-@@ -131,7 +136,11 @@
+@@ -131,7 +136,11 @@ const char *luaO_pushvfstring (lua_State
break;
}
case 'd': {
@@ -2178,15 +2138,13 @@ Index: lua-5.1.4/src/lobject.c
incr_top(L);
break;
}
-@@ -212,3 +221,4 @@
+@@ -212,3 +221,4 @@ void luaO_chunkid (char *out, const char
}
}
}
+
-Index: lua-5.1.4/src/lobject.h
-===================================================================
---- lua-5.1.4.orig/src/lobject.h 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/lobject.h 2008-08-24 16:48:20.000000000 +0200
+--- a/src/lobject.h
++++ b/src/lobject.h
@@ -17,7 +17,11 @@
@@ -2200,7 +2158,7 @@ Index: lua-5.1.4/src/lobject.h
#define NUM_TAGS (LAST_TAG+1)
-@@ -59,7 +63,12 @@
+@@ -59,7 +63,12 @@ typedef struct GCheader {
typedef union {
GCObject *gc;
void *p;
@@ -2213,7 +2171,7 @@ Index: lua-5.1.4/src/lobject.h
int b;
} Value;
-@@ -77,7 +86,11 @@
+@@ -77,7 +86,11 @@ typedef struct lua_TValue {
/* Macros to test type */
#define ttisnil(o) (ttype(o) == LUA_TNIL)
@@ -2226,7 +2184,7 @@ Index: lua-5.1.4/src/lobject.h
#define ttisstring(o) (ttype(o) == LUA_TSTRING)
#define ttistable(o) (ttype(o) == LUA_TTABLE)
#define ttisfunction(o) (ttype(o) == LUA_TFUNCTION)
-@@ -90,7 +103,25 @@
+@@ -90,7 +103,25 @@ typedef struct lua_TValue {
#define ttype(o) ((o)->tt)
#define gcvalue(o) check_exp(iscollectable(o), (o)->value.gc)
#define pvalue(o) check_exp(ttislightuserdata(o), (o)->value.p)
@@ -2253,7 +2211,7 @@ Index: lua-5.1.4/src/lobject.h
#define rawtsvalue(o) check_exp(ttisstring(o), &(o)->value.gc->ts)
#define tsvalue(o) (&rawtsvalue(o)->tsv)
#define rawuvalue(o) check_exp(ttisuserdata(o), &(o)->value.gc->u)
-@@ -116,8 +147,27 @@
+@@ -116,8 +147,27 @@ typedef struct lua_TValue {
/* Macros to set values */
#define setnilvalue(obj) ((obj)->tt=LUA_TNIL)
@@ -2283,7 +2241,7 @@ Index: lua-5.1.4/src/lobject.h
#define setpvalue(obj,x) \
{ TValue *i_o=(obj); i_o->value.p=(x); i_o->tt=LUA_TLIGHTUSERDATA; }
-@@ -155,9 +205,6 @@
+@@ -155,9 +205,6 @@ typedef struct lua_TValue {
i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TPROTO; \
checkliveness(G(L),i_o); }
@@ -2293,7 +2251,7 @@ Index: lua-5.1.4/src/lobject.h
#define setobj(L,obj1,obj2) \
{ const TValue *o2=(obj2); TValue *o1=(obj1); \
o1->value = o2->value; o1->tt=o2->tt; \
-@@ -185,8 +232,11 @@
+@@ -185,8 +232,11 @@ typedef struct lua_TValue {
#define setttype(obj, tt) (ttype(obj) = (tt))
@@ -2307,7 +2265,7 @@ Index: lua-5.1.4/src/lobject.h
-@@ -370,12 +420,10 @@
+@@ -370,12 +420,10 @@ LUAI_FUNC int luaO_log2 (unsigned int x)
LUAI_FUNC int luaO_int2fb (unsigned int x);
LUAI_FUNC int luaO_fb2int (int x);
LUAI_FUNC int luaO_rawequalObj (const TValue *t1, const TValue *t2);
@@ -2320,11 +2278,9 @@ Index: lua-5.1.4/src/lobject.h
-
#endif
-Index: lua-5.1.4/src/loslib.c
-===================================================================
---- lua-5.1.4.orig/src/loslib.c 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/loslib.c 2008-08-24 16:48:20.000000000 +0200
-@@ -186,15 +186,30 @@
+--- a/src/loslib.c
++++ b/src/loslib.c
+@@ -186,15 +186,30 @@ static int os_time (lua_State *L) {
}
if (t == (time_t)(-1))
lua_pushnil(L);
@@ -2357,10 +2313,8 @@ Index: lua-5.1.4/src/loslib.c
return 1;
}
-Index: lua-5.1.4/src/lparser.c
-===================================================================
---- lua-5.1.4.orig/src/lparser.c 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/lparser.c 2008-08-24 16:48:20.000000000 +0200
+--- a/src/lparser.c
++++ b/src/lparser.c
@@ -33,7 +33,6 @@
#define luaY_checklimit(fs,v,l,m) if ((v)>(l)) errorlimit(fs,l,m)
@@ -2369,7 +2323,7 @@ Index: lua-5.1.4/src/lparser.c
/*
** nodes for block list (list of active blocks)
*/
-@@ -72,7 +71,7 @@
+@@ -72,7 +71,7 @@ static void errorlimit (FuncState *fs, i
const char *msg = (fs->f->linedefined == 0) ?
luaO_pushfstring(fs->L, "main function has more than %d %s", limit, what) :
luaO_pushfstring(fs->L, "function at line %d has more than %d %s",
@@ -2378,7 +2332,7 @@ Index: lua-5.1.4/src/lparser.c
luaX_lexerror(fs->ls, msg, 0);
}
-@@ -733,6 +732,18 @@
+@@ -733,6 +732,18 @@ static void simpleexp (LexState *ls, exp
v->u.nval = ls->t.seminfo.r;
break;
}
@@ -2397,7 +2351,7 @@ Index: lua-5.1.4/src/lparser.c
case TK_STRING: {
codestring(ls, v, ls->t.seminfo.ts);
break;
-@@ -1079,7 +1090,7 @@
+@@ -1079,7 +1090,7 @@ static void fornum (LexState *ls, TStrin
if (testnext(ls, ','))
exp1(ls); /* optional step */
else { /* default step = 1 */
@@ -2406,11 +2360,9 @@ Index: lua-5.1.4/src/lparser.c
luaK_reserveregs(fs, 1);
}
forbody(ls, base, line, 1, 1);
-Index: lua-5.1.4/src/lparser.h
-===================================================================
---- lua-5.1.4.orig/src/lparser.h 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/lparser.h 2008-08-24 16:48:20.000000000 +0200
-@@ -31,7 +31,11 @@
+--- a/src/lparser.h
++++ b/src/lparser.h
+@@ -31,7 +31,11 @@ typedef enum {
VRELOCABLE, /* info = instruction pc */
VNONRELOC, /* info = result register */
VCALL, /* info = instruction pc */
@@ -2423,7 +2375,7 @@ Index: lua-5.1.4/src/lparser.h
} expkind;
typedef struct expdesc {
-@@ -39,6 +43,7 @@
+@@ -39,6 +43,7 @@ typedef struct expdesc {
union {
struct { int info, aux; } s;
lua_Number nval;
@@ -2431,11 +2383,9 @@ Index: lua-5.1.4/src/lparser.h
} u;
int t; /* patch list of `exit when true' */
int f; /* patch list of `exit when false' */
-Index: lua-5.1.4/src/lstrlib.c
-===================================================================
---- lua-5.1.4.orig/src/lstrlib.c 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/lstrlib.c 2008-08-24 16:48:20.000000000 +0200
-@@ -43,8 +43,8 @@
+--- a/src/lstrlib.c
++++ b/src/lstrlib.c
+@@ -43,8 +43,8 @@ static ptrdiff_t posrelat (ptrdiff_t pos
static int str_sub (lua_State *L) {
size_t l;
const char *s = luaL_checklstring(L, 1, &l);
@@ -2446,7 +2396,7 @@ Index: lua-5.1.4/src/lstrlib.c
if (start < 1) start = 1;
if (end > (ptrdiff_t)l) end = (ptrdiff_t)l;
if (start <= end)
-@@ -106,8 +106,8 @@
+@@ -106,8 +106,8 @@ static int str_rep (lua_State *L) {
static int str_byte (lua_State *L) {
size_t l;
const char *s = luaL_checklstring(L, 1, &l);
@@ -2457,7 +2407,7 @@ Index: lua-5.1.4/src/lstrlib.c
int n, i;
if (posi <= 0) posi = 1;
if ((size_t)pose > l) pose = l;
-@@ -496,7 +496,7 @@
+@@ -496,7 +496,7 @@ static int str_find_aux (lua_State *L, i
size_t l1, l2;
const char *s = luaL_checklstring(L, 1, &l1);
const char *p = luaL_checklstring(L, 2, &l2);
@@ -2466,7 +2416,7 @@ Index: lua-5.1.4/src/lstrlib.c
if (init < 0) init = 0;
else if ((size_t)(init) > l1) init = (ptrdiff_t)l1;
if (find && (lua_toboolean(L, 4) || /* explicit request? */
-@@ -690,7 +690,7 @@
+@@ -690,7 +690,7 @@ static int str_gsub (lua_State *L) {
** maximum size of each format specification (such as '%-099.99d')
** (+10 accounts for %99.99x plus margin of error)
*/
@@ -2475,7 +2425,7 @@ Index: lua-5.1.4/src/lstrlib.c
static void addquoted (lua_State *L, luaL_Buffer *b, int arg) {
-@@ -747,9 +747,9 @@
+@@ -747,9 +747,9 @@ static const char *scanformat (lua_State
static void addintlen (char *form) {
size_t l = strlen(form);
char spec = form[l - 1];
@@ -2488,7 +2438,7 @@ Index: lua-5.1.4/src/lstrlib.c
}
-@@ -777,12 +777,12 @@
+@@ -779,12 +779,12 @@ static int str_format (lua_State *L) {
}
case 'd': case 'i': {
addintlen(form);
@@ -2503,10 +2453,8 @@ Index: lua-5.1.4/src/lstrlib.c
break;
}
case 'e': case 'E': case 'f':
-Index: lua-5.1.4/src/ltable.c
-===================================================================
---- lua-5.1.4.orig/src/ltable.c 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/ltable.c 2008-08-24 16:48:20.000000000 +0200
+--- a/src/ltable.c
++++ b/src/ltable.c
@@ -33,6 +33,7 @@
#include "lobject.h"
#include "lstate.h"
@@ -2542,7 +2490,7 @@ Index: lua-5.1.4/src/ltable.c
#define dummynode (&dummynode_)
static const Node dummynode_ = {
-@@ -80,27 +71,46 @@
+@@ -80,27 +71,46 @@ static const Node dummynode_ = {
/*
** hash for lua_Numbers
@@ -2598,7 +2546,7 @@ Index: lua-5.1.4/src/ltable.c
case LUA_TSTRING:
return hashstr(t, rawtsvalue(key));
case LUA_TBOOLEAN:
-@@ -116,16 +126,20 @@
+@@ -116,16 +126,20 @@ static Node *mainposition (const Table *
/*
** returns the index for `key' if `key' is an appropriate key to live in
** the array part of the table, -1 otherwise.
@@ -2627,7 +2575,7 @@ Index: lua-5.1.4/src/ltable.c
}
-@@ -137,8 +151,8 @@
+@@ -137,8 +151,8 @@ static int arrayindex (const TValue *key
static int findindex (lua_State *L, Table *t, StkId key) {
int i;
if (ttisnil(key)) return -1; /* first iteration */
@@ -2638,7 +2586,7 @@ Index: lua-5.1.4/src/ltable.c
return i-1; /* yes; that's the index (corrected to C) */
else {
Node *n = mainposition(t, key);
-@@ -163,7 +177,7 @@
+@@ -163,7 +177,7 @@ int luaH_next (lua_State *L, Table *t, S
int i = findindex(L, t, key); /* find original element */
for (i++; i < t->sizearray; i++) { /* try first array part */
if (!ttisnil(&t->array[i])) { /* a non-nil value? */
@@ -2647,7 +2595,7 @@ Index: lua-5.1.4/src/ltable.c
setobj2s(L, key+1, &t->array[i]);
return 1;
}
-@@ -209,8 +223,8 @@
+@@ -209,8 +223,8 @@ static int computesizes (int nums[], int
static int countint (const TValue *key, int *nums) {
@@ -2658,7 +2606,7 @@ Index: lua-5.1.4/src/ltable.c
nums[ceillog2(k)]++; /* count as such */
return 1;
}
-@@ -308,7 +322,7 @@
+@@ -308,7 +322,7 @@ static void resize (lua_State *L, Table
/* re-insert elements from vanishing slice */
for (i=nasize; i<oldasize; i++) {
if (!ttisnil(&t->array[i]))
@@ -2667,7 +2615,7 @@ Index: lua-5.1.4/src/ltable.c
}
/* shrink array */
luaM_reallocvector(L, t->array, oldasize, nasize, TValue);
-@@ -409,7 +423,9 @@
+@@ -409,7 +423,9 @@ static TValue *newkey (lua_State *L, Tab
othern = mainposition(t, key2tval(mp));
if (othern != mp) { /* is colliding node out of its main position? */
/* yes; move colliding node into free position */
@@ -2678,7 +2626,7 @@ Index: lua-5.1.4/src/ltable.c
gnext(othern) = n; /* redo the chain with `n' in place of `mp' */
*n = *mp; /* copy colliding node into free pos. (mp->next also goes) */
gnext(mp) = NULL; /* now `mp' is free */
-@@ -432,17 +448,18 @@
+@@ -432,17 +448,18 @@ static TValue *newkey (lua_State *L, Tab
/*
** search function for integers
*/
@@ -2702,7 +2650,7 @@ Index: lua-5.1.4/src/ltable.c
} while (n);
return luaO_nilobject;
}
-@@ -470,14 +487,12 @@
+@@ -470,14 +487,12 @@ const TValue *luaH_get (Table *t, const
switch (ttype(key)) {
case LUA_TNIL: return luaO_nilobject;
case LUA_TSTRING: return luaH_getstr(t, rawtsvalue(key));
@@ -2722,7 +2670,7 @@ Index: lua-5.1.4/src/ltable.c
default: {
Node *n = mainposition(t, key);
do { /* check whether `key' is somewhere in the chain */
-@@ -498,20 +513,25 @@
+@@ -498,20 +513,25 @@ TValue *luaH_set (lua_State *L, Table *t
return cast(TValue *, p);
else {
if (ttisnil(key)) luaG_runerror(L, "table index is nil");
@@ -2753,7 +2701,7 @@ Index: lua-5.1.4/src/ltable.c
return newkey(L, t, &k);
}
}
-@@ -533,20 +553,21 @@
+@@ -533,20 +553,21 @@ static int unbound_search (Table *t, uns
unsigned int i = j; /* i is zero or a present index */
j++;
/* find `i' and `j' such that i is present and j is not */
@@ -2780,10 +2728,8 @@ Index: lua-5.1.4/src/ltable.c
else i = m;
}
return i;
-Index: lua-5.1.4/src/ltable.h
-===================================================================
---- lua-5.1.4.orig/src/ltable.h 2008-08-24 16:46:37.000000000 +0200
-+++ lua-5.1.4/src/ltable.h 2008-08-24 16:48:20.000000000 +0200
+--- a/src/ltable.h
++++ b/src/ltable.h
@@ -18,8 +18,8 @@
#define key2tval(n) (&(n)->i_key.tvk)
@@ -2795,10 +2741,8 @@ Index: lua-5.1.4/src/ltable.h
LUAI_FUNC const TValue *luaH_getstr (Table *t, TString *key);
LUAI_FUNC TValue *luaH_setstr (lua_State *L, Table *t, TString *key);
LUAI_FUNC const TValue *luaH_get (Table *t, const TValue *key);
-Index: lua-5.1.4/src/ltm.c
-===================================================================
---- lua-5.1.4.orig/src/ltm.c 2008-08-24 16:46:38.000000000 +0200
-+++ lua-5.1.4/src/ltm.c 2008-08-24 16:48:20.000000000 +0200
+--- a/src/ltm.c
++++ b/src/ltm.c
@@ -19,7 +19,6 @@
#include "ltm.h"
@@ -2807,7 +2751,7 @@ Index: lua-5.1.4/src/ltm.c
const char *const luaT_typenames[] = {
"nil", "boolean", "userdata", "number",
"string", "table", "function", "userdata", "thread",
-@@ -67,6 +66,9 @@
+@@ -67,6 +66,9 @@ const TValue *luaT_gettmbyobj (lua_State
case LUA_TUSERDATA:
mt = uvalue(o)->metatable;
break;
@@ -2817,10 +2761,8 @@ Index: lua-5.1.4/src/ltm.c
default:
mt = G(L)->mt[ttype(o)];
}
-Index: lua-5.1.4/src/lua.c
-===================================================================
---- lua-5.1.4.orig/src/lua.c 2008-08-24 16:46:38.000000000 +0200
-+++ lua-5.1.4/src/lua.c 2008-08-24 16:48:20.000000000 +0200
+--- a/src/lua.c
++++ b/src/lua.c
@@ -16,7 +16,7 @@
#include "lauxlib.h"
@@ -2830,7 +2772,7 @@ Index: lua-5.1.4/src/lua.c
static lua_State *globalL = NULL;
-@@ -382,6 +382,15 @@
+@@ -382,6 +382,15 @@ int main (int argc, char **argv) {
l_message(argv[0], "cannot create state: not enough memory");
return EXIT_FAILURE;
}
@@ -2846,20 +2788,18 @@ Index: lua-5.1.4/src/lua.c
s.argc = argc;
s.argv = argv;
status = lua_cpcall(L, &pmain, &s);
-Index: lua-5.1.4/src/lua.h
-===================================================================
---- lua-5.1.4.orig/src/lua.h 2008-08-24 16:46:38.000000000 +0200
-+++ lua-5.1.4/src/lua.h 2008-08-24 16:48:20.000000000 +0200
+--- a/src/lua.h
++++ b/src/lua.h
@@ -19,7 +19,7 @@
#define LUA_VERSION "Lua 5.1"
- #define LUA_RELEASE "Lua 5.1.4"
+ #define LUA_RELEASE "Lua 5.1.5"
#define LUA_VERSION_NUM 501
--#define LUA_COPYRIGHT "Copyright (C) 1994-2008 Lua.org, PUC-Rio"
-+#define LUA_COPYRIGHT "Copyright (C) 1994-2008 Lua.org, PUC-Rio" " (" LUA_LNUM ")"
+-#define LUA_COPYRIGHT "Copyright (C) 1994-2012 Lua.org, PUC-Rio"
++#define LUA_COPYRIGHT "Copyright (C) 1994-2012 Lua.org, PUC-Rio" " (" LUA_LNUM ")"
#define LUA_AUTHORS "R. Ierusalimschy, L. H. de Figueiredo & W. Celes"
-@@ -71,6 +71,16 @@
+@@ -71,6 +71,16 @@ typedef void * (*lua_Alloc) (void *ud, v
*/
#define LUA_TNONE (-1)
@@ -2876,7 +2816,7 @@ Index: lua-5.1.4/src/lua.h
#define LUA_TNIL 0
#define LUA_TBOOLEAN 1
#define LUA_TLIGHTUSERDATA 2
-@@ -139,6 +149,8 @@
+@@ -139,6 +149,8 @@ LUA_API int (lua_isuserdata)
LUA_API int (lua_type) (lua_State *L, int idx);
LUA_API const char *(lua_typename) (lua_State *L, int tp);
@@ -2885,7 +2825,7 @@ Index: lua-5.1.4/src/lua.h
LUA_API int (lua_equal) (lua_State *L, int idx1, int idx2);
LUA_API int (lua_rawequal) (lua_State *L, int idx1, int idx2);
LUA_API int (lua_lessthan) (lua_State *L, int idx1, int idx2);
-@@ -244,6 +256,19 @@
+@@ -244,6 +256,19 @@ LUA_API lua_Alloc (lua_getallocf) (lua_S
LUA_API void lua_setallocf (lua_State *L, lua_Alloc f, void *ud);
@@ -2905,7 +2845,7 @@ Index: lua-5.1.4/src/lua.h
/*
** ===============================================================
-@@ -268,7 +293,12 @@
+@@ -268,7 +293,12 @@ LUA_API void lua_setallocf (lua_State *L
#define lua_isboolean(L,n) (lua_type(L, (n)) == LUA_TBOOLEAN)
#define lua_isthread(L,n) (lua_type(L, (n)) == LUA_TTHREAD)
#define lua_isnone(L,n) (lua_type(L, (n)) == LUA_TNONE)
@@ -2919,15 +2859,13 @@ Index: lua-5.1.4/src/lua.h
#define lua_pushliteral(L, s) \
lua_pushlstring(L, "" s, (sizeof(s)/sizeof(char))-1)
-@@ -386,3 +416,4 @@
+@@ -386,3 +416,4 @@ struct lua_Debug {
#endif
+
-Index: lua-5.1.4/src/luaconf.h
-===================================================================
---- lua-5.1.4.orig/src/luaconf.h 2008-08-24 16:46:38.000000000 +0200
-+++ lua-5.1.4/src/luaconf.h 2008-08-24 16:48:20.000000000 +0200
+--- a/src/luaconf.h
++++ b/src/luaconf.h
@@ -10,7 +10,9 @@
#include <limits.h>
@@ -3123,7 +3061,7 @@ Index: lua-5.1.4/src/luaconf.h
/*
@@ LUAI_USER_ALIGNMENT_T is a type that requires maximum alignment.
** CHANGE it if your system requires alignments larger than double. (For
-@@ -728,28 +652,6 @@
+@@ -728,28 +652,6 @@ union luai_Cast { double l_d; long l_l;
#define luai_userstateyield(L,n) ((void)L)
@@ -3152,11 +3090,9 @@ Index: lua-5.1.4/src/luaconf.h
/* =================================================================== */
/*
-Index: lua-5.1.4/src/lundump.c
-===================================================================
---- lua-5.1.4.orig/src/lundump.c 2008-08-24 16:46:38.000000000 +0200
-+++ lua-5.1.4/src/lundump.c 2008-08-24 16:48:20.000000000 +0200
-@@ -73,6 +73,13 @@
+--- a/src/lundump.c
++++ b/src/lundump.c
+@@ -73,6 +73,13 @@ static lua_Number LoadNumber(LoadState*
return x;
}
@@ -3170,7 +3106,7 @@ Index: lua-5.1.4/src/lundump.c
static TString* LoadString(LoadState* S)
{
size_t size;
-@@ -119,6 +126,9 @@
+@@ -119,6 +126,9 @@ static void LoadConstants(LoadState* S,
case LUA_TNUMBER:
setnvalue(o,LoadNumber(S));
break;
@@ -3180,7 +3116,7 @@ Index: lua-5.1.4/src/lundump.c
case LUA_TSTRING:
setsvalue2n(S->L,o,LoadString(S));
break;
-@@ -223,5 +233,22 @@
+@@ -223,5 +233,22 @@ void luaU_header (char* h)
*h++=(char)sizeof(size_t);
*h++=(char)sizeof(Instruction);
*h++=(char)sizeof(lua_Number);
@@ -3204,10 +3140,8 @@ Index: lua-5.1.4/src/lundump.c
+#endif
+ );
}
-Index: lua-5.1.4/src/lvm.c
-===================================================================
---- lua-5.1.4.orig/src/lvm.c 2008-08-24 16:46:38.000000000 +0200
-+++ lua-5.1.4/src/lvm.c 2008-08-24 16:48:20.000000000 +0200
+--- a/src/lvm.c
++++ b/src/lvm.c
@@ -25,22 +25,35 @@
#include "ltable.h"
#include "ltm.h"
@@ -3254,7 +3188,7 @@ Index: lua-5.1.4/src/lvm.c
}
-@@ -49,8 +62,7 @@
+@@ -49,8 +62,7 @@ int luaV_tostring (lua_State *L, StkId o
return 0;
else {
char s[LUAI_MAXNUMBER2STR];
@@ -3264,7 +3198,7 @@ Index: lua-5.1.4/src/lvm.c
setsvalue2s(L, obj, luaS_new(L, s));
return 1;
}
-@@ -218,59 +230,127 @@
+@@ -222,59 +234,127 @@ static int l_strcmp (const TString *ls,
}
@@ -3417,7 +3351,7 @@ Index: lua-5.1.4/src/lvm.c
return !l_isfalse(L->top);
}
-@@ -310,30 +390,6 @@
+@@ -314,30 +394,6 @@ void luaV_concat (lua_State *L, int tota
}
@@ -3448,7 +3382,7 @@ Index: lua-5.1.4/src/lvm.c
/*
** some macros for common tasks in `luaV_execute'
*/
-@@ -357,17 +413,154 @@
+@@ -361,17 +417,154 @@ static void Arith (lua_State *L, StkId r
#define Protect(x) { L->savedpc = pc; {x;}; base = L->base; }
@@ -3612,7 +3546,7 @@ Index: lua-5.1.4/src/lvm.c
void luaV_execute (lua_State *L, int nexeccalls) {
-@@ -468,38 +661,45 @@
+@@ -472,38 +665,45 @@ void luaV_execute (lua_State *L, int nex
continue;
}
case OP_ADD: {
@@ -3671,7 +3605,7 @@ Index: lua-5.1.4/src/lvm.c
continue;
}
case OP_NOT: {
-@@ -511,11 +711,11 @@
+@@ -515,11 +715,11 @@ void luaV_execute (lua_State *L, int nex
const TValue *rb = RB(i);
switch (ttype(rb)) {
case LUA_TTABLE: {
@@ -3685,7 +3619,7 @@ Index: lua-5.1.4/src/lvm.c
break;
}
default: { /* try metamethod */
-@@ -648,14 +848,30 @@
+@@ -652,14 +852,30 @@ void luaV_execute (lua_State *L, int nex
}
}
case OP_FORLOOP: {
@@ -3724,7 +3658,7 @@ Index: lua-5.1.4/src/lvm.c
}
continue;
}
-@@ -664,13 +880,21 @@
+@@ -668,13 +884,21 @@ void luaV_execute (lua_State *L, int nex
const TValue *plimit = ra+1;
const TValue *pstep = ra+2;
L->savedpc = pc; /* next steps may throw errors */
@@ -3747,7 +3681,7 @@ Index: lua-5.1.4/src/lvm.c
dojump(L, pc, GETARG_sBx(i));
continue;
}
-@@ -707,7 +931,7 @@
+@@ -711,7 +935,7 @@ void luaV_execute (lua_State *L, int nex
luaH_resizearray(L, h, last); /* pre-alloc it at once */
for (; n > 0; n--) {
TValue *val = ra+n;
@@ -3756,10 +3690,8 @@ Index: lua-5.1.4/src/lvm.c
luaC_barriert(L, h, val);
}
continue;
-Index: lua-5.1.4/src/lvm.h
-===================================================================
---- lua-5.1.4.orig/src/lvm.h 2008-08-24 16:46:38.000000000 +0200
-+++ lua-5.1.4/src/lvm.h 2008-08-24 16:48:20.000000000 +0200
+--- a/src/lvm.h
++++ b/src/lvm.h
@@ -15,11 +15,9 @@
#define tostring(L,o) ((ttype(o) == LUA_TSTRING) || (luaV_tostring(L, o)))
@@ -3774,10 +3706,8 @@ Index: lua-5.1.4/src/lvm.h
LUAI_FUNC int luaV_lessthan (lua_State *L, const TValue *l, const TValue *r);
-Index: lua-5.1.4/src/print.c
-===================================================================
---- lua-5.1.4.orig/src/print.c 2008-08-24 16:46:38.000000000 +0200
-+++ lua-5.1.4/src/print.c 2008-08-24 16:48:20.000000000 +0200
+--- a/src/print.c
++++ b/src/print.c
@@ -14,6 +14,7 @@
#include "lobject.h"
#include "lopcodes.h"
@@ -3786,7 +3716,7 @@ Index: lua-5.1.4/src/print.c
#define PrintFunction luaU_print
-@@ -59,8 +60,16 @@
+@@ -59,8 +60,16 @@ static void PrintConstant(const Proto* f
case LUA_TBOOLEAN:
printf(bvalue(o) ? "true" : "false");
break;
diff --git a/package/lua/patches-host/015-lnum-ppc-compat.patch b/package/lua/patches-host/015-lnum-ppc-compat.patch
index d6c48a775..2ea59f176 100644
--- a/package/lua/patches-host/015-lnum-ppc-compat.patch
+++ b/package/lua/patches-host/015-lnum-ppc-compat.patch
@@ -1,8 +1,6 @@
-Index: lua-5.1.3/src/lua.h
-===================================================================
---- lua-5.1.3.orig/src/lua.h 2008-06-29 11:45:55.000000000 +0200
-+++ lua-5.1.3/src/lua.h 2008-06-29 11:46:28.000000000 +0200
-@@ -79,7 +79,7 @@
+--- a/src/lua.h
++++ b/src/lua.h
+@@ -79,7 +79,7 @@ typedef void * (*lua_Alloc) (void *ud, v
* not acceptable for 5.1, maybe 5.2 onwards?
* 9: greater than existing (5.1) type values.
*/
diff --git a/package/lua/patches-host/030-archindependent-bytecode.patch b/package/lua/patches-host/030-archindependent-bytecode.patch
index b27592fbd..8dfef85d0 100644
--- a/package/lua/patches-host/030-archindependent-bytecode.patch
+++ b/package/lua/patches-host/030-archindependent-bytecode.patch
@@ -1,8 +1,6 @@
-Index: lua-5.1.4/src/ldump.c
-===================================================================
---- lua-5.1.4.orig/src/ldump.c 2008-08-24 16:48:20.000000000 +0200
-+++ lua-5.1.4/src/ldump.c 2008-08-24 16:48:52.000000000 +0200
-@@ -67,12 +67,12 @@
+--- a/src/ldump.c
++++ b/src/ldump.c
+@@ -67,12 +67,12 @@ static void DumpString(const TString* s,
{
if (s==NULL || getstr(s)==NULL)
{
@@ -17,11 +15,9 @@ Index: lua-5.1.4/src/ldump.c
DumpVar(size,D);
DumpBlock(getstr(s),size,D);
}
-Index: lua-5.1.4/src/lundump.c
-===================================================================
---- lua-5.1.4.orig/src/lundump.c 2008-08-24 16:48:20.000000000 +0200
-+++ lua-5.1.4/src/lundump.c 2008-08-24 16:48:52.000000000 +0200
-@@ -25,6 +25,7 @@
+--- a/src/lundump.c
++++ b/src/lundump.c
+@@ -25,6 +25,7 @@ typedef struct {
ZIO* Z;
Mbuffer* b;
const char* name;
@@ -29,7 +25,7 @@ Index: lua-5.1.4/src/lundump.c
} LoadState;
#ifdef LUAC_TRUST_BINARIES
-@@ -40,7 +41,6 @@
+@@ -40,7 +41,6 @@ static void error(LoadState* S, const ch
}
#endif
@@ -37,7 +33,7 @@ Index: lua-5.1.4/src/lundump.c
#define LoadByte(S) (lu_byte)LoadChar(S)
#define LoadVar(S,x) LoadMem(S,&x,1,sizeof(x))
#define LoadVector(S,b,n,size) LoadMem(S,b,n,size)
-@@ -51,6 +51,49 @@
+@@ -51,6 +51,49 @@ static void LoadBlock(LoadState* S, void
IF (r!=0, "unexpected end");
}
@@ -87,7 +83,7 @@ Index: lua-5.1.4/src/lundump.c
static int LoadChar(LoadState* S)
{
char x;
-@@ -82,7 +125,7 @@
+@@ -82,7 +125,7 @@ static lua_Integer LoadInteger(LoadState
static TString* LoadString(LoadState* S)
{
@@ -96,7 +92,7 @@ Index: lua-5.1.4/src/lundump.c
LoadVar(S,size);
if (size==0)
return NULL;
-@@ -196,6 +239,7 @@
+@@ -196,6 +239,7 @@ static void LoadHeader(LoadState* S)
char s[LUAC_HEADERSIZE];
luaU_header(h);
LoadBlock(S,s,LUAC_HEADERSIZE);
@@ -104,7 +100,7 @@ Index: lua-5.1.4/src/lundump.c
IF (memcmp(h,s,LUAC_HEADERSIZE)!=0, "bad header");
}
-@@ -230,7 +274,7 @@
+@@ -230,7 +274,7 @@ void luaU_header (char* h)
*h++=(char)LUAC_FORMAT;
*h++=(char)*(char*)&x; /* endianness */
*h++=(char)sizeof(int);