summaryrefslogtreecommitdiff
path: root/libs/lua
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-10-29 05:36:24 +0100
committerRobin Gareus <robin@gareus.org>2019-10-29 05:36:24 +0100
commit130211a4bdbaa5374a4fa5782125407764a32cfe (patch)
treee38e81031e10c1432831d6d336d1490a54938136 /libs/lua
parent814272bbac86d6767eba18e79f8a897266c874bf (diff)
Update Lua to upstream 5.3.5
Diffstat (limited to 'libs/lua')
-rw-r--r--libs/lua/lua-5.3.5/README (renamed from libs/lua/lua-5.3.4/README)4
-rw-r--r--libs/lua/lua-5.3.5/lapi.c (renamed from libs/lua/lua-5.3.4/lapi.c)7
-rw-r--r--libs/lua/lua-5.3.5/lapi.h (renamed from libs/lua/lua-5.3.4/lapi.h)2
-rw-r--r--libs/lua/lua-5.3.5/lauxlib.c (renamed from libs/lua/lua-5.3.4/lauxlib.c)2
-rw-r--r--libs/lua/lua-5.3.5/lauxlib.h (renamed from libs/lua/lua-5.3.4/lauxlib.h)2
-rw-r--r--libs/lua/lua-5.3.5/lbaselib.c (renamed from libs/lua/lua-5.3.4/lbaselib.c)2
-rw-r--r--libs/lua/lua-5.3.5/lbitlib.c (renamed from libs/lua/lua-5.3.4/lbitlib.c)2
-rw-r--r--libs/lua/lua-5.3.5/lcode.c (renamed from libs/lua/lua-5.3.4/lcode.c)2
-rw-r--r--libs/lua/lua-5.3.5/lcode.h (renamed from libs/lua/lua-5.3.4/lcode.h)2
-rw-r--r--libs/lua/lua-5.3.5/lcorolib.c (renamed from libs/lua/lua-5.3.4/lcorolib.c)2
-rw-r--r--libs/lua/lua-5.3.5/lctype.c (renamed from libs/lua/lua-5.3.4/lctype.c)2
-rw-r--r--libs/lua/lua-5.3.5/lctype.h (renamed from libs/lua/lua-5.3.4/lctype.h)2
-rw-r--r--libs/lua/lua-5.3.5/ldblib.c (renamed from libs/lua/lua-5.3.4/ldblib.c)2
-rw-r--r--libs/lua/lua-5.3.5/ldebug.c (renamed from libs/lua/lua-5.3.4/ldebug.c)3
-rw-r--r--libs/lua/lua-5.3.5/ldebug.h (renamed from libs/lua/lua-5.3.4/ldebug.h)2
-rw-r--r--libs/lua/lua-5.3.5/ldo.c (renamed from libs/lua/lua-5.3.4/ldo.c)2
-rw-r--r--libs/lua/lua-5.3.5/ldo.h (renamed from libs/lua/lua-5.3.4/ldo.h)2
-rw-r--r--libs/lua/lua-5.3.5/ldump.c (renamed from libs/lua/lua-5.3.4/ldump.c)2
-rw-r--r--libs/lua/lua-5.3.5/lfunc.c (renamed from libs/lua/lua-5.3.4/lfunc.c)2
-rw-r--r--libs/lua/lua-5.3.5/lfunc.h (renamed from libs/lua/lua-5.3.4/lfunc.h)2
-rw-r--r--libs/lua/lua-5.3.5/lgc.c (renamed from libs/lua/lua-5.3.4/lgc.c)20
-rw-r--r--libs/lua/lua-5.3.5/lgc.h (renamed from libs/lua/lua-5.3.4/lgc.h)2
-rw-r--r--libs/lua/lua-5.3.5/linit.c (renamed from libs/lua/lua-5.3.4/linit.c)2
-rw-r--r--libs/lua/lua-5.3.5/liolib.c (renamed from libs/lua/lua-5.3.4/liolib.c)13
-rw-r--r--libs/lua/lua-5.3.5/llex.c (renamed from libs/lua/lua-5.3.4/llex.c)2
-rw-r--r--libs/lua/lua-5.3.5/llex.h (renamed from libs/lua/lua-5.3.4/llex.h)2
-rw-r--r--libs/lua/lua-5.3.5/llimits.h (renamed from libs/lua/lua-5.3.4/llimits.h)2
-rw-r--r--libs/lua/lua-5.3.5/lmathlib.c (renamed from libs/lua/lua-5.3.4/lmathlib.c)2
-rw-r--r--libs/lua/lua-5.3.5/lmem.c (renamed from libs/lua/lua-5.3.4/lmem.c)2
-rw-r--r--libs/lua/lua-5.3.5/lmem.h (renamed from libs/lua/lua-5.3.4/lmem.h)2
-rw-r--r--libs/lua/lua-5.3.5/loadlib.c (renamed from libs/lua/lua-5.3.4/loadlib.c)2
-rw-r--r--libs/lua/lua-5.3.5/lobject.c (renamed from libs/lua/lua-5.3.4/lobject.c)5
-rw-r--r--libs/lua/lua-5.3.5/lobject.h (renamed from libs/lua/lua-5.3.4/lobject.h)2
-rw-r--r--libs/lua/lua-5.3.5/lopcodes.c (renamed from libs/lua/lua-5.3.4/lopcodes.c)2
-rw-r--r--libs/lua/lua-5.3.5/lopcodes.h (renamed from libs/lua/lua-5.3.4/lopcodes.h)2
-rw-r--r--libs/lua/lua-5.3.5/loslib.c (renamed from libs/lua/lua-5.3.4/loslib.c)8
-rw-r--r--libs/lua/lua-5.3.5/lparser.c (renamed from libs/lua/lua-5.3.4/lparser.c)4
-rw-r--r--libs/lua/lua-5.3.5/lparser.h (renamed from libs/lua/lua-5.3.4/lparser.h)2
-rw-r--r--libs/lua/lua-5.3.5/lprefix.h (renamed from libs/lua/lua-5.3.4/lprefix.h)2
-rw-r--r--libs/lua/lua-5.3.5/lstate.c (renamed from libs/lua/lua-5.3.4/lstate.c)3
-rw-r--r--libs/lua/lua-5.3.5/lstate.h (renamed from libs/lua/lua-5.3.4/lstate.h)21
-rw-r--r--libs/lua/lua-5.3.5/lstring.c (renamed from libs/lua/lua-5.3.4/lstring.c)2
-rw-r--r--libs/lua/lua-5.3.5/lstring.h (renamed from libs/lua/lua-5.3.4/lstring.h)2
-rw-r--r--libs/lua/lua-5.3.5/lstrlib.c (renamed from libs/lua/lua-5.3.4/lstrlib.c)8
-rw-r--r--libs/lua/lua-5.3.5/ltable.c (renamed from libs/lua/lua-5.3.4/ltable.c)35
-rw-r--r--libs/lua/lua-5.3.5/ltable.h (renamed from libs/lua/lua-5.3.4/ltable.h)4
-rw-r--r--libs/lua/lua-5.3.5/ltablib.c (renamed from libs/lua/lua-5.3.4/ltablib.c)2
-rw-r--r--libs/lua/lua-5.3.5/ltm.c (renamed from libs/lua/lua-5.3.4/ltm.c)2
-rw-r--r--libs/lua/lua-5.3.5/ltm.h (renamed from libs/lua/lua-5.3.4/ltm.h)2
-rw-r--r--libs/lua/lua-5.3.5/lua.c (renamed from libs/lua/lua-5.3.4/lua.c)4
-rw-r--r--libs/lua/lua-5.3.5/lua.h (renamed from libs/lua/lua-5.3.4/lua.h)10
-rw-r--r--libs/lua/lua-5.3.5/lua.hpp (renamed from libs/lua/lua-5.3.4/lua.hpp)0
-rw-r--r--libs/lua/lua-5.3.5/luac.c (renamed from libs/lua/lua-5.3.4/luac.c)5
-rw-r--r--libs/lua/lua-5.3.5/luaconf.h (renamed from libs/lua/lua-5.3.4/luaconf.h)9
-rw-r--r--libs/lua/lua-5.3.5/lualib.h (renamed from libs/lua/lua-5.3.4/lualib.h)2
-rw-r--r--libs/lua/lua-5.3.5/lundump.c (renamed from libs/lua/lua-5.3.4/lundump.c)2
-rw-r--r--libs/lua/lua-5.3.5/lundump.h (renamed from libs/lua/lua-5.3.4/lundump.h)2
-rw-r--r--libs/lua/lua-5.3.5/lutf8lib.c (renamed from libs/lua/lua-5.3.4/lutf8lib.c)4
-rw-r--r--libs/lua/lua-5.3.5/lvm.c (renamed from libs/lua/lua-5.3.4/lvm.c)2
-rw-r--r--libs/lua/lua-5.3.5/lvm.h (renamed from libs/lua/lua-5.3.4/lvm.h)2
-rw-r--r--libs/lua/lua-5.3.5/lzio.c (renamed from libs/lua/lua-5.3.4/lzio.c)2
-rw-r--r--libs/lua/lua-5.3.5/lzio.h (renamed from libs/lua/lua-5.3.4/lzio.h)2
-rw-r--r--libs/lua/lua.cc76
-rw-r--r--libs/lua/lua/lua.h2
-rw-r--r--libs/lua/wscript2
65 files changed, 188 insertions, 145 deletions
diff --git a/libs/lua/lua-5.3.4/README b/libs/lua/lua-5.3.5/README
index 75a9287011..22fbeac975 100644
--- a/libs/lua/lua-5.3.4/README
+++ b/libs/lua/lua-5.3.5/README
@@ -1,4 +1,4 @@
-This is Lua 5.3.4, released on 12 Jan 2017.
+This is Lua 5.3.5, released on 26 Jun 2018.
The Lua source is imported in the repository in order to ensure that it
is compiled with the same C++ compiler as Ardour (setjmp/longjmp, exceptions)
@@ -8,7 +8,7 @@ This directory contains files from src/ directory from lua-5.3.3.
The original source can be downloaded from https://www.lua.org/ftp/lua-5.3.3.tar.gz
-Copyright © 1994–2016 Lua.org, PUC-Rio.
+Copyright © 1994-2018 Lua.org, PUC-Rio.
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
diff --git a/libs/lua/lua-5.3.4/lapi.c b/libs/lua/lua-5.3.5/lapi.c
index c9455a5d8c..02b7fab7ea 100644
--- a/libs/lua/lua-5.3.4/lapi.c
+++ b/libs/lua/lua-5.3.5/lapi.c
@@ -1,5 +1,5 @@
/*
-** $Id: lapi.c,v 2.259 2016/02/29 14:27:14 roberto Exp $
+** $Id: lapi.c,v 2.259.1.2 2017/12/06 18:35:12 roberto Exp $
** Lua API
** See Copyright Notice in lua.h
*/
@@ -533,6 +533,7 @@ LUA_API void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n) {
lua_lock(L);
if (n == 0) {
setfvalue(L->top, fn);
+ api_incr_top(L);
}
else {
CClosure *cl;
@@ -546,9 +547,9 @@ LUA_API void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n) {
/* does not need barrier because closure is white */
}
setclCvalue(L, L->top, cl);
+ api_incr_top(L);
+ luaC_checkGC(L);
}
- api_incr_top(L);
- luaC_checkGC(L);
lua_unlock(L);
}
diff --git a/libs/lua/lua-5.3.4/lapi.h b/libs/lua/lua-5.3.5/lapi.h
index 6d36dee3fb..8e16ad53d9 100644
--- a/libs/lua/lua-5.3.4/lapi.h
+++ b/libs/lua/lua-5.3.5/lapi.h
@@ -1,5 +1,5 @@
/*
-** $Id: lapi.h,v 2.9 2015/03/06 19:49:50 roberto Exp $
+** $Id: lapi.h,v 2.9.1.1 2017/04/19 17:20:42 roberto Exp $
** Auxiliary functions from Lua API
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lauxlib.c b/libs/lua/lua-5.3.5/lauxlib.c
index f7a383663e..8bdada50a7 100644
--- a/libs/lua/lua-5.3.4/lauxlib.c
+++ b/libs/lua/lua-5.3.5/lauxlib.c
@@ -1,5 +1,5 @@
/*
-** $Id: lauxlib.c,v 1.289 2016/12/20 18:37:00 roberto Exp $
+** $Id: lauxlib.c,v 1.289.1.1 2017/04/19 17:20:42 roberto Exp $
** Auxiliary functions for building Lua libraries
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lauxlib.h b/libs/lua/lua-5.3.5/lauxlib.h
index 9a2e66aa06..9857d3a835 100644
--- a/libs/lua/lua-5.3.4/lauxlib.h
+++ b/libs/lua/lua-5.3.5/lauxlib.h
@@ -1,5 +1,5 @@
/*
-** $Id: lauxlib.h,v 1.131 2016/12/06 14:54:31 roberto Exp $
+** $Id: lauxlib.h,v 1.131.1.1 2017/04/19 17:20:42 roberto Exp $
** Auxiliary functions for building Lua libraries
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lbaselib.c b/libs/lua/lua-5.3.5/lbaselib.c
index 08523e6e75..6460e4f8d4 100644
--- a/libs/lua/lua-5.3.4/lbaselib.c
+++ b/libs/lua/lua-5.3.5/lbaselib.c
@@ -1,5 +1,5 @@
/*
-** $Id: lbaselib.c,v 1.314 2016/09/05 19:06:34 roberto Exp $
+** $Id: lbaselib.c,v 1.314.1.1 2017/04/19 17:39:34 roberto Exp $
** Basic library
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lbitlib.c b/libs/lua/lua-5.3.5/lbitlib.c
index 1cb1d5b932..4786c0d483 100644
--- a/libs/lua/lua-5.3.4/lbitlib.c
+++ b/libs/lua/lua-5.3.5/lbitlib.c
@@ -1,5 +1,5 @@
/*
-** $Id: lbitlib.c,v 1.30 2015/11/11 19:08:09 roberto Exp $
+** $Id: lbitlib.c,v 1.30.1.1 2017/04/19 17:20:42 roberto Exp $
** Standard library for bitwise operations
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lcode.c b/libs/lua/lua-5.3.5/lcode.c
index 0bb414262e..12619f54a0 100644
--- a/libs/lua/lua-5.3.4/lcode.c
+++ b/libs/lua/lua-5.3.5/lcode.c
@@ -1,5 +1,5 @@
/*
-** $Id: lcode.c,v 2.112 2016/12/22 13:08:50 roberto Exp $
+** $Id: lcode.c,v 2.112.1.1 2017/04/19 17:20:42 roberto Exp $
** Code generator for Lua
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lcode.h b/libs/lua/lua-5.3.5/lcode.h
index cd306d573a..882dc9c156 100644
--- a/libs/lua/lua-5.3.4/lcode.h
+++ b/libs/lua/lua-5.3.5/lcode.h
@@ -1,5 +1,5 @@
/*
-** $Id: lcode.h,v 1.64 2016/01/05 16:22:37 roberto Exp $
+** $Id: lcode.h,v 1.64.1.1 2017/04/19 17:20:42 roberto Exp $
** Code generator for Lua
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lcorolib.c b/libs/lua/lua-5.3.5/lcorolib.c
index 2303429e7b..0b17af9e34 100644
--- a/libs/lua/lua-5.3.4/lcorolib.c
+++ b/libs/lua/lua-5.3.5/lcorolib.c
@@ -1,5 +1,5 @@
/*
-** $Id: lcorolib.c,v 1.10 2016/04/11 19:19:55 roberto Exp $
+** $Id: lcorolib.c,v 1.10.1.1 2017/04/19 17:20:42 roberto Exp $
** Coroutine Library
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lctype.c b/libs/lua/lua-5.3.5/lctype.c
index ae9367e691..f8ad7a2edf 100644
--- a/libs/lua/lua-5.3.4/lctype.c
+++ b/libs/lua/lua-5.3.5/lctype.c
@@ -1,5 +1,5 @@
/*
-** $Id: lctype.c,v 1.12 2014/11/02 19:19:04 roberto Exp $
+** $Id: lctype.c,v 1.12.1.1 2017/04/19 17:20:42 roberto Exp $
** 'ctype' functions for Lua
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lctype.h b/libs/lua/lua-5.3.5/lctype.h
index 99c7d12237..b09b21a337 100644
--- a/libs/lua/lua-5.3.4/lctype.h
+++ b/libs/lua/lua-5.3.5/lctype.h
@@ -1,5 +1,5 @@
/*
-** $Id: lctype.h,v 1.12 2011/07/15 12:50:29 roberto Exp $
+** $Id: lctype.h,v 1.12.1.1 2013/04/12 18:48:47 roberto Exp $
** 'ctype' functions for Lua
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/ldblib.c b/libs/lua/lua-5.3.5/ldblib.c
index 786f6cd95d..9d29afb0a8 100644
--- a/libs/lua/lua-5.3.4/ldblib.c
+++ b/libs/lua/lua-5.3.5/ldblib.c
@@ -1,5 +1,5 @@
/*
-** $Id: ldblib.c,v 1.151 2015/11/23 11:29:43 roberto Exp $
+** $Id: ldblib.c,v 1.151.1.1 2017/04/19 17:20:42 roberto Exp $
** Interface from Lua to its debug API
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/ldebug.c b/libs/lua/lua-5.3.5/ldebug.c
index 239affb76c..e1389296e9 100644
--- a/libs/lua/lua-5.3.4/ldebug.c
+++ b/libs/lua/lua-5.3.5/ldebug.c
@@ -1,5 +1,5 @@
/*
-** $Id: ldebug.c,v 2.121 2016/10/19 12:32:10 roberto Exp $
+** $Id: ldebug.c,v 2.121.1.2 2017/07/10 17:21:50 roberto Exp $
** Debug Interface
** See Copyright Notice in lua.h
*/
@@ -653,6 +653,7 @@ l_noret luaG_runerror (lua_State *L, const char *fmt, ...) {
CallInfo *ci = L->ci;
const char *msg;
va_list argp;
+ luaC_checkGC(L); /* error message uses memory */
va_start(argp, fmt);
msg = luaO_pushvfstring(L, fmt, argp); /* format message */
va_end(argp);
diff --git a/libs/lua/lua-5.3.4/ldebug.h b/libs/lua/lua-5.3.5/ldebug.h
index 0e31546b1b..8cea0ee0a7 100644
--- a/libs/lua/lua-5.3.4/ldebug.h
+++ b/libs/lua/lua-5.3.5/ldebug.h
@@ -1,5 +1,5 @@
/*
-** $Id: ldebug.h,v 2.14 2015/05/22 17:45:56 roberto Exp $
+** $Id: ldebug.h,v 2.14.1.1 2017/04/19 17:20:42 roberto Exp $
** Auxiliary functions from Debug Interface module
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/ldo.c b/libs/lua/lua-5.3.5/ldo.c
index 90b695fb04..316e45c8fe 100644
--- a/libs/lua/lua-5.3.4/ldo.c
+++ b/libs/lua/lua-5.3.5/ldo.c
@@ -1,5 +1,5 @@
/*
-** $Id: ldo.c,v 2.157 2016/12/13 15:52:21 roberto Exp $
+** $Id: ldo.c,v 2.157.1.1 2017/04/19 17:20:42 roberto Exp $
** Stack and Call structure of Lua
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/ldo.h b/libs/lua/lua-5.3.5/ldo.h
index 4f5d51c3c7..3b2983a386 100644
--- a/libs/lua/lua-5.3.4/ldo.h
+++ b/libs/lua/lua-5.3.5/ldo.h
@@ -1,5 +1,5 @@
/*
-** $Id: ldo.h,v 2.29 2015/12/21 13:02:14 roberto Exp $
+** $Id: ldo.h,v 2.29.1.1 2017/04/19 17:20:42 roberto Exp $
** Stack and Call structure of Lua
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/ldump.c b/libs/lua/lua-5.3.5/ldump.c
index 016e300822..f025acac3c 100644
--- a/libs/lua/lua-5.3.4/ldump.c
+++ b/libs/lua/lua-5.3.5/ldump.c
@@ -1,5 +1,5 @@
/*
-** $Id: ldump.c,v 2.37 2015/10/08 15:53:49 roberto Exp $
+** $Id: ldump.c,v 2.37.1.1 2017/04/19 17:20:42 roberto Exp $
** save precompiled Lua chunks
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lfunc.c b/libs/lua/lua-5.3.5/lfunc.c
index 67967dab3f..ccafbb8ab3 100644
--- a/libs/lua/lua-5.3.4/lfunc.c
+++ b/libs/lua/lua-5.3.5/lfunc.c
@@ -1,5 +1,5 @@
/*
-** $Id: lfunc.c,v 2.45 2014/11/02 19:19:04 roberto Exp $
+** $Id: lfunc.c,v 2.45.1.1 2017/04/19 17:39:34 roberto Exp $
** Auxiliary functions to manipulate prototypes and closures
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lfunc.h b/libs/lua/lua-5.3.5/lfunc.h
index 2eeb0d5a48..c916e9878a 100644
--- a/libs/lua/lua-5.3.4/lfunc.h
+++ b/libs/lua/lua-5.3.5/lfunc.h
@@ -1,5 +1,5 @@
/*
-** $Id: lfunc.h,v 2.15 2015/01/13 15:49:11 roberto Exp $
+** $Id: lfunc.h,v 2.15.1.1 2017/04/19 17:39:34 roberto Exp $
** Auxiliary functions to manipulate prototypes and closures
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lgc.c b/libs/lua/lua-5.3.5/lgc.c
index 3e9ca6e841..db4df82922 100644
--- a/libs/lua/lua-5.3.4/lgc.c
+++ b/libs/lua/lua-5.3.5/lgc.c
@@ -1,5 +1,5 @@
/*
-** $Id: lgc.c,v 2.215 2016/12/22 13:08:50 roberto Exp $
+** $Id: lgc.c,v 2.215.1.2 2017/08/31 16:15:27 roberto Exp $
** Garbage Collector
** See Copyright Notice in lua.h
*/
@@ -210,14 +210,8 @@ GCObject *luaC_newobj (lua_State *L, int tt, size_t sz) {
GCObject *o = cast(GCObject *, luaM_newobject(L, novariant(tt), sz));
o->marked = luaC_white(g);
o->tt = tt;
- if (g->gcmlock) {
- white2gray(o); /* gray forever */
- o->next = g->fixedgc;
- g->fixedgc = o;
- } else {
- o->next = g->allgc;
- g->allgc = o;
- }
+ o->next = g->allgc;
+ g->allgc = o;
return o;
}
@@ -649,8 +643,9 @@ static void clearkeys (global_State *g, GCObject *l, GCObject *f) {
for (n = gnode(h, 0); n < limit; n++) {
if (!ttisnil(gval(n)) && (iscleared(g, gkey(n)))) {
setnilvalue(gval(n)); /* remove value ... */
- removeentry(n); /* and remove entry from table */
}
+ if (ttisnil(gval(n))) /* is entry empty? */
+ removeentry(n); /* remove entry from table */
}
}
}
@@ -1181,7 +1176,4 @@ void luaC_fullgc (lua_State *L, int isemergency) {
/* }====================================================== */
-LUA_API void lua_mlock (lua_State *L, int en) {
- global_State *g = G(L);
- g->gcmlock = en;
-}
+
diff --git a/libs/lua/lua-5.3.4/lgc.h b/libs/lua/lua-5.3.5/lgc.h
index aed3e18a5f..425cd7cef3 100644
--- a/libs/lua/lua-5.3.4/lgc.h
+++ b/libs/lua/lua-5.3.5/lgc.h
@@ -1,5 +1,5 @@
/*
-** $Id: lgc.h,v 2.91 2015/12/21 13:02:14 roberto Exp $
+** $Id: lgc.h,v 2.91.1.1 2017/04/19 17:39:34 roberto Exp $
** Garbage Collector
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/linit.c b/libs/lua/lua-5.3.5/linit.c
index afcaf98b24..480da52c7e 100644
--- a/libs/lua/lua-5.3.4/linit.c
+++ b/libs/lua/lua-5.3.5/linit.c
@@ -1,5 +1,5 @@
/*
-** $Id: linit.c,v 1.39 2016/12/04 20:17:24 roberto Exp $
+** $Id: linit.c,v 1.39.1.1 2017/04/19 17:20:42 roberto Exp $
** Initialization of libraries for lua.c and other clients
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/liolib.c b/libs/lua/lua-5.3.5/liolib.c
index 156840358d..8a9e75cd08 100644
--- a/libs/lua/lua-5.3.4/liolib.c
+++ b/libs/lua/lua-5.3.5/liolib.c
@@ -1,5 +1,5 @@
/*
-** $Id: liolib.c,v 2.151 2016/12/20 18:37:00 roberto Exp $
+** $Id: liolib.c,v 2.151.1.1 2017/04/19 17:29:57 roberto Exp $
** Standard I/O (and system) library
** See Copyright Notice in lua.h
*/
@@ -206,11 +206,16 @@ static int aux_close (lua_State *L) {
}
+static int f_close (lua_State *L) {
+ tofile(L); /* make sure argument is an open stream */
+ return aux_close(L);
+}
+
+
static int io_close (lua_State *L) {
if (lua_isnone(L, 1)) /* no argument? */
lua_getfield(L, LUA_REGISTRYINDEX, IO_OUTPUT); /* use standard output */
- tofile(L); /* make sure argument is an open stream */
- return aux_close(L);
+ return f_close(L);
}
@@ -712,7 +717,7 @@ static const luaL_Reg iolib[] = {
** methods for file handles
*/
static const luaL_Reg flib[] = {
- {"close", io_close},
+ {"close", f_close},
{"flush", f_flush},
{"lines", f_lines},
{"read", f_read},
diff --git a/libs/lua/lua-5.3.4/llex.c b/libs/lua/lua-5.3.5/llex.c
index 70328273f7..66fd411ba9 100644
--- a/libs/lua/lua-5.3.4/llex.c
+++ b/libs/lua/lua-5.3.5/llex.c
@@ -1,5 +1,5 @@
/*
-** $Id: llex.c,v 2.96 2016/05/02 14:02:12 roberto Exp $
+** $Id: llex.c,v 2.96.1.1 2017/04/19 17:20:42 roberto Exp $
** Lexical Analyzer
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/llex.h b/libs/lua/lua-5.3.5/llex.h
index 2363d87e40..2ed0af66a4 100644
--- a/libs/lua/lua-5.3.4/llex.h
+++ b/libs/lua/lua-5.3.5/llex.h
@@ -1,5 +1,5 @@
/*
-** $Id: llex.h,v 1.79 2016/05/02 14:02:12 roberto Exp $
+** $Id: llex.h,v 1.79.1.1 2017/04/19 17:20:42 roberto Exp $
** Lexical Analyzer
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/llimits.h b/libs/lua/lua-5.3.5/llimits.h
index f21377fef9..d1036f6bc8 100644
--- a/libs/lua/lua-5.3.4/llimits.h
+++ b/libs/lua/lua-5.3.5/llimits.h
@@ -1,5 +1,5 @@
/*
-** $Id: llimits.h,v 1.141 2015/11/19 19:16:22 roberto Exp $
+** $Id: llimits.h,v 1.141.1.1 2017/04/19 17:20:42 roberto Exp $
** Limits, basic types, and some other 'installation-dependent' definitions
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lmathlib.c b/libs/lua/lua-5.3.5/lmathlib.c
index b7f8baee07..7ef7e593fd 100644
--- a/libs/lua/lua-5.3.4/lmathlib.c
+++ b/libs/lua/lua-5.3.5/lmathlib.c
@@ -1,5 +1,5 @@
/*
-** $Id: lmathlib.c,v 1.119 2016/12/22 13:08:50 roberto Exp $
+** $Id: lmathlib.c,v 1.119.1.1 2017/04/19 17:20:42 roberto Exp $
** Standard mathematical library
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lmem.c b/libs/lua/lua-5.3.5/lmem.c
index 0a0476cc77..0241cc3bac 100644
--- a/libs/lua/lua-5.3.4/lmem.c
+++ b/libs/lua/lua-5.3.5/lmem.c
@@ -1,5 +1,5 @@
/*
-** $Id: lmem.c,v 1.91 2015/03/06 19:45:54 roberto Exp $
+** $Id: lmem.c,v 1.91.1.1 2017/04/19 17:20:42 roberto Exp $
** Interface to Memory Manager
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lmem.h b/libs/lua/lua-5.3.5/lmem.h
index 30f484895e..357b1e43e7 100644
--- a/libs/lua/lua-5.3.4/lmem.h
+++ b/libs/lua/lua-5.3.5/lmem.h
@@ -1,5 +1,5 @@
/*
-** $Id: lmem.h,v 1.43 2014/12/19 17:26:14 roberto Exp $
+** $Id: lmem.h,v 1.43.1.1 2017/04/19 17:20:42 roberto Exp $
** Interface to Memory Manager
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/loadlib.c b/libs/lua/lua-5.3.5/loadlib.c
index 4791e748b1..45f44d3225 100644
--- a/libs/lua/lua-5.3.4/loadlib.c
+++ b/libs/lua/lua-5.3.5/loadlib.c
@@ -1,5 +1,5 @@
/*
-** $Id: loadlib.c,v 1.130 2017/01/12 17:14:26 roberto Exp $
+** $Id: loadlib.c,v 1.130.1.1 2017/04/19 17:20:42 roberto Exp $
** Dynamic library loader for Lua
** See Copyright Notice in lua.h
**
diff --git a/libs/lua/lua-5.3.4/lobject.c b/libs/lua/lua-5.3.5/lobject.c
index 2da76899a2..2218c8cdd7 100644
--- a/libs/lua/lua-5.3.4/lobject.c
+++ b/libs/lua/lua-5.3.5/lobject.c
@@ -1,5 +1,5 @@
/*
-** $Id: lobject.c,v 2.113 2016/12/22 13:08:50 roberto Exp $
+** $Id: lobject.c,v 2.113.1.1 2017/04/19 17:29:57 roberto Exp $
** Some generic functions over Lua objects
** See Copyright Notice in lua.h
*/
@@ -435,7 +435,8 @@ const char *luaO_pushvfstring (lua_State *L, const char *fmt, va_list argp) {
}
case 'p': { /* a pointer */
char buff[4*sizeof(void *) + 8]; /* should be enough space for a '%p' */
- int l = l_sprintf(buff, sizeof(buff), "%p", va_arg(argp, void *));
+ void *p = va_arg(argp, void *);
+ int l = lua_pointer2str(buff, sizeof(buff), p);
pushstr(L, buff, l);
break;
}
diff --git a/libs/lua/lua-5.3.4/lobject.h b/libs/lua/lua-5.3.5/lobject.h
index 3c04228949..2408861402 100644
--- a/libs/lua/lua-5.3.4/lobject.h
+++ b/libs/lua/lua-5.3.5/lobject.h
@@ -1,5 +1,5 @@
/*
-** $Id: lobject.h,v 2.117 2016/08/01 19:51:24 roberto Exp $
+** $Id: lobject.h,v 2.117.1.1 2017/04/19 17:39:34 roberto Exp $
** Type definitions for Lua objects
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lopcodes.c b/libs/lua/lua-5.3.5/lopcodes.c
index a1cbef8573..5ca3eb261a 100644
--- a/libs/lua/lua-5.3.4/lopcodes.c
+++ b/libs/lua/lua-5.3.5/lopcodes.c
@@ -1,5 +1,5 @@
/*
-** $Id: lopcodes.c,v 1.55 2015/01/05 13:48:33 roberto Exp $
+** $Id: lopcodes.c,v 1.55.1.1 2017/04/19 17:20:42 roberto Exp $
** Opcodes for Lua virtual machine
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lopcodes.h b/libs/lua/lua-5.3.5/lopcodes.h
index bbc4b61968..6feaa1cd07 100644
--- a/libs/lua/lua-5.3.4/lopcodes.h
+++ b/libs/lua/lua-5.3.5/lopcodes.h
@@ -1,5 +1,5 @@
/*
-** $Id: lopcodes.h,v 1.149 2016/07/19 17:12:21 roberto Exp $
+** $Id: lopcodes.h,v 1.149.1.1 2017/04/19 17:20:42 roberto Exp $
** Opcodes for Lua virtual machine
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/loslib.c b/libs/lua/lua-5.3.5/loslib.c
index 5a94eb9068..de590c6b71 100644
--- a/libs/lua/lua-5.3.4/loslib.c
+++ b/libs/lua/lua-5.3.5/loslib.c
@@ -1,5 +1,5 @@
/*
-** $Id: loslib.c,v 1.65 2016/07/18 17:58:58 roberto Exp $
+** $Id: loslib.c,v 1.65.1.1 2017/04/19 17:29:57 roberto Exp $
** Standard Operating System library
** See Copyright Notice in lua.h
*/
@@ -293,7 +293,8 @@ static int os_date (lua_State *L) {
else
stm = l_localtime(&t, &tmr);
if (stm == NULL) /* invalid date? */
- luaL_error(L, "time result cannot be represented in this installation");
+ return luaL_error(L,
+ "time result cannot be represented in this installation");
if (strcmp(s, "*t") == 0) {
lua_createtable(L, 0, 9); /* 9 = number of fields */
setallfields(L, stm);
@@ -340,7 +341,8 @@ static int os_time (lua_State *L) {
setallfields(L, &ts); /* update fields with normalized values */
}
if (t != (time_t)(l_timet)t || t == (time_t)(-1))
- luaL_error(L, "time result cannot be represented in this installation");
+ return luaL_error(L,
+ "time result cannot be represented in this installation");
l_pushtime(L, t);
return 1;
}
diff --git a/libs/lua/lua-5.3.4/lparser.c b/libs/lua/lua-5.3.5/lparser.c
index cd4512d4d4..cc54de43c6 100644
--- a/libs/lua/lua-5.3.4/lparser.c
+++ b/libs/lua/lua-5.3.5/lparser.c
@@ -1,5 +1,5 @@
/*
-** $Id: lparser.c,v 2.155 2016/08/01 19:51:24 roberto Exp $
+** $Id: lparser.c,v 2.155.1.2 2017/04/29 18:11:40 roberto Exp $
** Lua Parser
** See Copyright Notice in lua.h
*/
@@ -1392,7 +1392,7 @@ static void test_then_block (LexState *ls, int *escapelist) {
luaK_goiffalse(ls->fs, &v); /* will jump to label if condition is true */
enterblock(fs, &bl, 0); /* must enter block before 'goto' */
gotostat(ls, v.t); /* handle goto/break */
- skipnoopstat(ls); /* skip other no-op statements */
+ while (testnext(ls, ';')) {} /* skip colons */
if (block_follow(ls, 0)) { /* 'goto' is the entire block? */
leaveblock(fs);
return; /* and that is it */
diff --git a/libs/lua/lua-5.3.4/lparser.h b/libs/lua/lua-5.3.5/lparser.h
index 02e9b03aeb..f45b23cba5 100644
--- a/libs/lua/lua-5.3.4/lparser.h
+++ b/libs/lua/lua-5.3.5/lparser.h
@@ -1,5 +1,5 @@
/*
-** $Id: lparser.h,v 1.76 2015/12/30 18:16:13 roberto Exp $
+** $Id: lparser.h,v 1.76.1.1 2017/04/19 17:20:42 roberto Exp $
** Lua Parser
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lprefix.h b/libs/lua/lua-5.3.5/lprefix.h
index 02daa837f5..9a749a3f30 100644
--- a/libs/lua/lua-5.3.4/lprefix.h
+++ b/libs/lua/lua-5.3.5/lprefix.h
@@ -1,5 +1,5 @@
/*
-** $Id: lprefix.h,v 1.2 2014/12/29 16:54:13 roberto Exp $
+** $Id: lprefix.h,v 1.2.1.1 2017/04/19 17:20:42 roberto Exp $
** Definitions for Lua code that must come before any other header file
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lstate.c b/libs/lua/lua-5.3.5/lstate.c
index b148d3d1bd..c1a76643c3 100644
--- a/libs/lua/lua-5.3.4/lstate.c
+++ b/libs/lua/lua-5.3.5/lstate.c
@@ -1,5 +1,5 @@
/*
-** $Id: lstate.c,v 2.133 2015/11/13 12:16:51 roberto Exp $
+** $Id: lstate.c,v 2.133.1.1 2017/04/19 17:39:34 roberto Exp $
** Global State
** See Copyright Notice in lua.h
*/
@@ -328,7 +328,6 @@ LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud) {
g->gcfinnum = 0;
g->gcpause = LUAI_GCPAUSE;
g->gcstepmul = LUAI_GCMUL;
- g->gcmlock = 0;
for (i=0; i < LUA_NUMTAGS; i++) g->mt[i] = NULL;
if (luaD_rawrunprotected(L, f_luaopen, NULL) != LUA_OK) {
/* memory allocation error: free partial state */
diff --git a/libs/lua/lua-5.3.4/lstate.h b/libs/lua/lua-5.3.5/lstate.h
index a03f9c4c5b..56b3741000 100644
--- a/libs/lua/lua-5.3.4/lstate.h
+++ b/libs/lua/lua-5.3.5/lstate.h
@@ -1,5 +1,5 @@
/*
-** $Id: lstate.h,v 2.133 2016/12/22 13:08:50 roberto Exp $
+** $Id: lstate.h,v 2.133.1.1 2017/04/19 17:39:34 roberto Exp $
** Global State
** See Copyright Notice in lua.h
*/
@@ -26,6 +26,24 @@
** 'tobefnz': all objects ready to be finalized;
** 'fixedgc': all objects that are not to be collected (currently
** only small strings, such as reserved words).
+**
+** Moreover, there is another set of lists that control gray objects.
+** These lists are linked by fields 'gclist'. (All objects that
+** can become gray have such a field. The field is not the same
+** in all objects, but it always has this name.) Any gray object
+** must belong to one of these lists, and all objects in these lists
+** must be gray:
+**
+** 'gray': regular gray objects, still waiting to be visited.
+** 'grayagain': objects that must be revisited at the atomic phase.
+** That includes
+** - black objects got in a write barrier;
+** - all kinds of weak tables during propagation phase;
+** - all threads.
+** 'weak': tables with weak values to be cleared;
+** 'ephemeron': ephemeron tables with white->white entries;
+** 'allweak': tables with weak keys and/or weak values to be cleared.
+** The last three lists are used only during the atomic phase.
*/
@@ -144,7 +162,6 @@ typedef struct global_State {
unsigned int gcfinnum; /* number of finalizers to call in each GC step */
int gcpause; /* size of pause between successive GCs */
int gcstepmul; /* GC 'granularity' */
- int gcmlock; /* memory lock new objects - fixedgc */
lua_CFunction panic; /* to be called in unprotected errors */
struct lua_State *mainthread;
const lua_Number *version; /* pointer to version number */
diff --git a/libs/lua/lua-5.3.4/lstring.c b/libs/lua/lua-5.3.5/lstring.c
index 9351766fd6..6257f211d9 100644
--- a/libs/lua/lua-5.3.4/lstring.c
+++ b/libs/lua/lua-5.3.5/lstring.c
@@ -1,5 +1,5 @@
/*
-** $Id: lstring.c,v 2.56 2015/11/23 11:32:51 roberto Exp $
+** $Id: lstring.c,v 2.56.1.1 2017/04/19 17:20:42 roberto Exp $
** String table (keeps all strings handled by Lua)
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lstring.h b/libs/lua/lua-5.3.5/lstring.h
index 27efd20772..d612abd333 100644
--- a/libs/lua/lua-5.3.4/lstring.h
+++ b/libs/lua/lua-5.3.5/lstring.h
@@ -1,5 +1,5 @@
/*
-** $Id: lstring.h,v 1.61 2015/11/03 15:36:01 roberto Exp $
+** $Id: lstring.h,v 1.61.1.1 2017/04/19 17:20:42 roberto Exp $
** String table (keep all strings handled by Lua)
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lstrlib.c b/libs/lua/lua-5.3.5/lstrlib.c
index c7aa755fab..b4bed7e93d 100644
--- a/libs/lua/lua-5.3.4/lstrlib.c
+++ b/libs/lua/lua-5.3.5/lstrlib.c
@@ -1,5 +1,5 @@
/*
-** $Id: lstrlib.c,v 1.254 2016/12/22 13:08:50 roberto Exp $
+** $Id: lstrlib.c,v 1.254.1.1 2017/04/19 17:29:57 roberto Exp $
** Standard library for string operations and pattern-matching
** See Copyright Notice in lua.h
*/
@@ -879,7 +879,7 @@ static int lua_number2strx (lua_State *L, char *buff, int sz,
buff[i] = toupper(uchar(buff[i]));
}
else if (fmt[SIZELENMOD] != 'a')
- luaL_error(L, "modifiers for format '%%a'/'%%A' not implemented");
+ return luaL_error(L, "modifiers for format '%%a'/'%%A' not implemented");
return n;
}
@@ -1199,8 +1199,8 @@ static int getnum (const char **fmt, int df) {
static int getnumlimit (Header *h, const char **fmt, int df) {
int sz = getnum(fmt, df);
if (sz > MAXINTSIZE || sz <= 0)
- luaL_error(h->L, "integral size (%d) out of limits [1,%d]",
- sz, MAXINTSIZE);
+ return luaL_error(h->L, "integral size (%d) out of limits [1,%d]",
+ sz, MAXINTSIZE);
return sz;
}
diff --git a/libs/lua/lua-5.3.4/ltable.c b/libs/lua/lua-5.3.5/ltable.c
index d080189f28..ea4fe7fcb3 100644
--- a/libs/lua/lua-5.3.4/ltable.c
+++ b/libs/lua/lua-5.3.5/ltable.c
@@ -1,5 +1,5 @@
/*
-** $Id: ltable.c,v 2.118 2016/11/07 12:38:35 roberto Exp $
+** $Id: ltable.c,v 2.118.1.4 2018/06/08 16:22:51 roberto Exp $
** Lua tables (hash)
** See Copyright Notice in lua.h
*/
@@ -223,7 +223,9 @@ static unsigned int computesizes (unsigned int nums[], unsigned int *pna) {
unsigned int na = 0; /* number of elements to go to array part */
unsigned int optimal = 0; /* optimal size for array part */
/* loop while keys can fill more than half of total size */
- for (i = 0, twotoi = 1; *pna > twotoi / 2; i++, twotoi *= 2) {
+ for (i = 0, twotoi = 1;
+ twotoi > 0 && *pna > twotoi / 2;
+ i++, twotoi *= 2) {
if (nums[i] > 0) {
a += nums[i];
if (a > twotoi/2) { /* more than half elements present? */
@@ -330,17 +332,34 @@ static void setnodevector (lua_State *L, Table *t, unsigned int size) {
}
+typedef struct {
+ Table *t;
+ unsigned int nhsize;
+} AuxsetnodeT;
+
+
+static void auxsetnode (lua_State *L, void *ud) {
+ AuxsetnodeT *asn = cast(AuxsetnodeT *, ud);
+ setnodevector(L, asn->t, asn->nhsize);
+}
+
+
void luaH_resize (lua_State *L, Table *t, unsigned int nasize,
unsigned int nhsize) {
unsigned int i;
int j;
+ AuxsetnodeT asn;
unsigned int oldasize = t->sizearray;
int oldhsize = allocsizenode(t);
Node *nold = t->node; /* save old hash ... */
if (nasize > oldasize) /* array part must grow? */
setarrayvector(L, t, nasize);
/* create new hash part with appropriate size */
- setnodevector(L, t, nhsize);
+ asn.t = t; asn.nhsize = nhsize;
+ if (luaD_rawrunprotected(L, auxsetnode, &asn) != LUA_OK) { /* mem. error? */
+ setarrayvector(L, t, oldasize); /* array back to its original size */
+ luaD_throw(L, LUA_ERRMEM); /* rethrow memory error */
+ }
if (nasize < oldasize) { /* array part must shrink? */
t->sizearray = nasize;
/* re-insert elements from vanishing slice */
@@ -610,13 +629,13 @@ void luaH_setint (lua_State *L, Table *t, lua_Integer key, TValue *value) {
}
-static int unbound_search (Table *t, unsigned int j) {
- unsigned int i = j; /* i is zero or a present index */
+static lua_Unsigned unbound_search (Table *t, lua_Unsigned j) {
+ lua_Unsigned i = j; /* i is zero or a present index */
j++;
/* find 'i' and 'j' such that i is present and j is not */
while (!ttisnil(luaH_getint(t, j))) {
i = j;
- if (j > cast(unsigned int, MAX_INT)/2) { /* overflow? */
+ if (j > l_castS2U(LUA_MAXINTEGER) / 2) { /* overflow? */
/* table was built with bad purposes: resort to linear search */
i = 1;
while (!ttisnil(luaH_getint(t, i))) i++;
@@ -626,7 +645,7 @@ static int unbound_search (Table *t, unsigned int j) {
}
/* now do a binary search between them */
while (j - i > 1) {
- unsigned int m = (i+j)/2;
+ lua_Unsigned m = (i+j)/2;
if (ttisnil(luaH_getint(t, m))) j = m;
else i = m;
}
@@ -638,7 +657,7 @@ static int unbound_search (Table *t, unsigned int j) {
** Try to find a boundary in table 't'. A 'boundary' is an integer index
** such that t[i] is non-nil and t[i+1] is nil (and 0 if t[1] is nil).
*/
-int luaH_getn (Table *t) {
+lua_Unsigned luaH_getn (Table *t) {
unsigned int j = t->sizearray;
if (j > 0 && ttisnil(&t->array[j - 1])) {
/* there is a boundary in the array part: (binary) search for it */
diff --git a/libs/lua/lua-5.3.4/ltable.h b/libs/lua/lua-5.3.5/ltable.h
index 6da9024fe1..92db0ac7bf 100644
--- a/libs/lua/lua-5.3.4/ltable.h
+++ b/libs/lua/lua-5.3.5/ltable.h
@@ -1,5 +1,5 @@
/*
-** $Id: ltable.h,v 2.23 2016/12/22 13:08:50 roberto Exp $
+** $Id: ltable.h,v 2.23.1.2 2018/05/24 19:39:05 roberto Exp $
** Lua tables (hash)
** See Copyright Notice in lua.h
*/
@@ -54,7 +54,7 @@ LUAI_FUNC void luaH_resize (lua_State *L, Table *t, unsigned int nasize,
LUAI_FUNC void luaH_resizearray (lua_State *L, Table *t, unsigned int nasize);
LUAI_FUNC void luaH_free (lua_State *L, Table *t);
LUAI_FUNC int luaH_next (lua_State *L, Table *t, StkId key);
-LUAI_FUNC int luaH_getn (Table *t);
+LUAI_FUNC lua_Unsigned luaH_getn (Table *t);
#if defined(LUA_DEBUG)
diff --git a/libs/lua/lua-5.3.4/ltablib.c b/libs/lua/lua-5.3.5/ltablib.c
index 98b2f87137..c5349578ec 100644
--- a/libs/lua/lua-5.3.4/ltablib.c
+++ b/libs/lua/lua-5.3.5/ltablib.c
@@ -1,5 +1,5 @@
/*
-** $Id: ltablib.c,v 1.93 2016/02/25 19:41:54 roberto Exp $
+** $Id: ltablib.c,v 1.93.1.1 2017/04/19 17:20:42 roberto Exp $
** Library for Table Manipulation
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/ltm.c b/libs/lua/lua-5.3.5/ltm.c
index 14e5257888..0e7c713214 100644
--- a/libs/lua/lua-5.3.4/ltm.c
+++ b/libs/lua/lua-5.3.5/ltm.c
@@ -1,5 +1,5 @@
/*
-** $Id: ltm.c,v 2.38 2016/12/22 13:08:50 roberto Exp $
+** $Id: ltm.c,v 2.38.1.1 2017/04/19 17:39:34 roberto Exp $
** Tag methods
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/ltm.h b/libs/lua/lua-5.3.5/ltm.h
index 63db7269bb..8170688dae 100644
--- a/libs/lua/lua-5.3.4/ltm.h
+++ b/libs/lua/lua-5.3.5/ltm.h
@@ -1,5 +1,5 @@
/*
-** $Id: ltm.h,v 2.22 2016/02/26 19:20:15 roberto Exp $
+** $Id: ltm.h,v 2.22.1.1 2017/04/19 17:20:42 roberto Exp $
** Tag methods
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lua.c b/libs/lua/lua-5.3.5/lua.c
index 3f082da6be..ca5b298523 100644
--- a/libs/lua/lua-5.3.4/lua.c
+++ b/libs/lua/lua-5.3.5/lua.c
@@ -1,5 +1,5 @@
/*
-** $Id: lua.c,v 1.230 2017/01/12 17:14:26 roberto Exp $
+** $Id: lua.c,v 1.230.1.1 2017/04/19 17:29:57 roberto Exp $
** Lua stand-alone interpreter
** See Copyright Notice in lua.h
*/
@@ -138,7 +138,7 @@ static void print_usage (const char *badoption) {
"Available options are:\n"
" -e stat execute string 'stat'\n"
" -i enter interactive mode after executing 'script'\n"
- " -l name require library 'name'\n"
+ " -l name require library 'name' into global 'name'\n"
" -v show version information\n"
" -E ignore environment variables\n"
" -- stop handling options\n"
diff --git a/libs/lua/lua-5.3.4/lua.h b/libs/lua/lua-5.3.5/lua.h
index 0e1096e8ea..c236e36095 100644
--- a/libs/lua/lua-5.3.4/lua.h
+++ b/libs/lua/lua-5.3.5/lua.h
@@ -1,5 +1,5 @@
/*
-** $Id: lua.h,v 1.332 2016/12/22 15:51:20 roberto Exp $
+** $Id: lua.h,v 1.332.1.2 2018/06/13 16:58:17 roberto Exp $
** Lua - A Scripting Language
** Lua.org, PUC-Rio, Brazil (http://www.lua.org)
** See Copyright Notice at the end of this file
@@ -19,11 +19,11 @@
#define LUA_VERSION_MAJOR "5"
#define LUA_VERSION_MINOR "3"
#define LUA_VERSION_NUM 503
-#define LUA_VERSION_RELEASE "4"
+#define LUA_VERSION_RELEASE "5"
#define LUA_VERSION "Lua " LUA_VERSION_MAJOR "." LUA_VERSION_MINOR
#define LUA_RELEASE LUA_VERSION "." LUA_VERSION_RELEASE
-#define LUA_COPYRIGHT LUA_RELEASE " Copyright (C) 1994-2017 Lua.org, PUC-Rio"
+#define LUA_COPYRIGHT LUA_RELEASE " Copyright (C) 1994-2018 Lua.org, PUC-Rio"
#define LUA_AUTHORS "R. Ierusalimschy, L. H. de Figueiredo, W. Celes"
@@ -311,8 +311,6 @@ LUA_API int (lua_isyieldable) (lua_State *L);
LUA_API int (lua_gc) (lua_State *L, int what, int data);
-LUA_API void (lua_mlock) (lua_State *L, int enable);
-
/*
** miscellaneous functions
@@ -462,7 +460,7 @@ struct lua_Debug {
/******************************************************************************
-* Copyright (C) 1994-2017 Lua.org, PUC-Rio.
+* Copyright (C) 1994-2018 Lua.org, PUC-Rio.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
diff --git a/libs/lua/lua-5.3.4/lua.hpp b/libs/lua/lua-5.3.5/lua.hpp
index ec417f5946..ec417f5946 100644
--- a/libs/lua/lua-5.3.4/lua.hpp
+++ b/libs/lua/lua-5.3.5/lua.hpp
diff --git a/libs/lua/lua-5.3.4/luac.c b/libs/lua/lua-5.3.5/luac.c
index c0c91d017a..549ad39500 100644
--- a/libs/lua/lua-5.3.4/luac.c
+++ b/libs/lua/lua-5.3.5/luac.c
@@ -1,5 +1,5 @@
/*
-** $Id: luac.c,v 1.75 2015/03/12 01:58:27 lhf Exp $
+** $Id: luac.c,v 1.76 2018/06/19 01:32:02 lhf Exp $
** Lua compiler (saves bytecodes to files; also lists bytecodes)
** See Copyright Notice in lua.h
*/
@@ -206,7 +206,7 @@ int main(int argc, char* argv[])
}
/*
-** $Id: luac.c,v 1.75 2015/03/12 01:58:27 lhf Exp $
+** $Id: luac.c,v 1.76 2018/06/19 01:32:02 lhf Exp $
** print bytecodes
** See Copyright Notice in lua.h
*/
@@ -348,6 +348,7 @@ static void PrintCode(const Proto* f)
case OP_ADD:
case OP_SUB:
case OP_MUL:
+ case OP_MOD:
case OP_POW:
case OP_DIV:
case OP_IDIV:
diff --git a/libs/lua/lua-5.3.4/luaconf.h b/libs/lua/lua-5.3.5/luaconf.h
index f37bea0964..9eeeea69e2 100644
--- a/libs/lua/lua-5.3.4/luaconf.h
+++ b/libs/lua/lua-5.3.5/luaconf.h
@@ -1,5 +1,5 @@
/*
-** $Id: luaconf.h,v 1.259 2016/12/22 13:08:50 roberto Exp $
+** $Id: luaconf.h,v 1.259.1.1 2017/04/19 17:29:57 roberto Exp $
** Configuration file for Lua
** See Copyright Notice in lua.h
*/
@@ -621,6 +621,13 @@
/*
+@@ lua_pointer2str converts a pointer to a readable string in a
+** non-specified way.
+*/
+#define lua_pointer2str(buff,sz,p) l_sprintf(buff,sz,"%p",p)
+
+
+/*
@@ lua_number2strx converts a float to an hexadecimal numeric string.
** In C99, 'sprintf' (with format specifiers '%a'/'%A') does that.
** Otherwise, you can leave 'lua_number2strx' undefined and Lua will
diff --git a/libs/lua/lua-5.3.4/lualib.h b/libs/lua/lua-5.3.5/lualib.h
index 6c0bc4cb08..f5304aa0dd 100644
--- a/libs/lua/lua-5.3.4/lualib.h
+++ b/libs/lua/lua-5.3.5/lualib.h
@@ -1,5 +1,5 @@
/*
-** $Id: lualib.h,v 1.45 2017/01/12 17:14:26 roberto Exp $
+** $Id: lualib.h,v 1.45.1.1 2017/04/19 17:20:42 roberto Exp $
** Lua standard libraries
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lundump.c b/libs/lua/lua-5.3.5/lundump.c
index 4080af9c0d..7a67d75aaa 100644
--- a/libs/lua/lua-5.3.4/lundump.c
+++ b/libs/lua/lua-5.3.5/lundump.c
@@ -1,5 +1,5 @@
/*
-** $Id: lundump.c,v 2.44 2015/11/02 16:09:30 roberto Exp $
+** $Id: lundump.c,v 2.44.1.1 2017/04/19 17:20:42 roberto Exp $
** load precompiled Lua chunks
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lundump.h b/libs/lua/lua-5.3.5/lundump.h
index aa5cc82f1b..ce492d689c 100644
--- a/libs/lua/lua-5.3.4/lundump.h
+++ b/libs/lua/lua-5.3.5/lundump.h
@@ -1,5 +1,5 @@
/*
-** $Id: lundump.h,v 1.45 2015/09/08 15:41:05 roberto Exp $
+** $Id: lundump.h,v 1.45.1.1 2017/04/19 17:20:42 roberto Exp $
** load precompiled Lua chunks
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lutf8lib.c b/libs/lua/lua-5.3.5/lutf8lib.c
index de9e3dcdd6..10bd238a71 100644
--- a/libs/lua/lua-5.3.4/lutf8lib.c
+++ b/libs/lua/lua-5.3.5/lutf8lib.c
@@ -1,5 +1,5 @@
/*
-** $Id: lutf8lib.c,v 1.16 2016/12/22 13:08:50 roberto Exp $
+** $Id: lutf8lib.c,v 1.16.1.1 2017/04/19 17:29:57 roberto Exp $
** Standard library for UTF-8 manipulation
** See Copyright Notice in lua.h
*/
@@ -171,7 +171,7 @@ static int byteoffset (lua_State *L) {
}
else {
if (iscont(s + posi))
- luaL_error(L, "initial position is a continuation byte");
+ return luaL_error(L, "initial position is a continuation byte");
if (n < 0) {
while (n < 0 && posi > 0) { /* move back */
do { /* find beginning of previous character */
diff --git a/libs/lua/lua-5.3.4/lvm.c b/libs/lua/lua-5.3.5/lvm.c
index 84ade6b2fa..cc43d8714d 100644
--- a/libs/lua/lua-5.3.4/lvm.c
+++ b/libs/lua/lua-5.3.5/lvm.c
@@ -1,5 +1,5 @@
/*
-** $Id: lvm.c,v 2.268 2016/02/05 19:59:14 roberto Exp $
+** $Id: lvm.c,v 2.268.1.1 2017/04/19 17:39:34 roberto Exp $
** Lua virtual machine
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lvm.h b/libs/lua/lua-5.3.5/lvm.h
index 422f871949..a8f954f04c 100644
--- a/libs/lua/lua-5.3.4/lvm.h
+++ b/libs/lua/lua-5.3.5/lvm.h
@@ -1,5 +1,5 @@
/*
-** $Id: lvm.h,v 2.41 2016/12/22 13:08:50 roberto Exp $
+** $Id: lvm.h,v 2.41.1.1 2017/04/19 17:20:42 roberto Exp $
** Lua virtual machine
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lzio.c b/libs/lua/lua-5.3.5/lzio.c
index c9e1f491f3..6f79094410 100644
--- a/libs/lua/lua-5.3.4/lzio.c
+++ b/libs/lua/lua-5.3.5/lzio.c
@@ -1,5 +1,5 @@
/*
-** $Id: lzio.c,v 1.37 2015/09/08 15:41:05 roberto Exp $
+** $Id: lzio.c,v 1.37.1.1 2017/04/19 17:20:42 roberto Exp $
** Buffered streams
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua-5.3.4/lzio.h b/libs/lua/lua-5.3.5/lzio.h
index e7b6f34b1e..d897870815 100644
--- a/libs/lua/lua-5.3.4/lzio.h
+++ b/libs/lua/lua-5.3.5/lzio.h
@@ -1,5 +1,5 @@
/*
-** $Id: lzio.h,v 1.31 2015/09/08 15:41:05 roberto Exp $
+** $Id: lzio.h,v 1.31.1.1 2017/04/19 17:20:42 roberto Exp $
** Buffered streams
** See Copyright Notice in lua.h
*/
diff --git a/libs/lua/lua.cc b/libs/lua/lua.cc
index 947086a6b4..9b6b2d1f60 100644
--- a/libs/lua/lua.cc
+++ b/libs/lua/lua.cc
@@ -39,7 +39,7 @@ extern "C"
#define lvm_c
#define LUA_CORE
#define LUA_LIB
-#include "lua-5.3.4/luaconf.h"
+#include "lua-5.3.5/luaconf.h"
#undef lobject_c
#undef lvm_c
#undef LUA_CORE
@@ -68,43 +68,43 @@ extern "C"
#pragma warning (disable: 4702) /* Unreachable code */
#endif
-#include "lua-5.3.4/ltable.c"
-
-#include "lua-5.3.4/lauxlib.c"
-#include "lua-5.3.4/lbaselib.c"
-
-#include "lua-5.3.4/lbitlib.c"
-#include "lua-5.3.4/lcorolib.c"
-#include "lua-5.3.4/ldblib.c"
-#include "lua-5.3.4/linit.c"
-#include "lua-5.3.4/liolib.c"
-#include "lua-5.3.4/lmathlib.c"
-#include "lua-5.3.4/loslib.c"
-#include "lua-5.3.4/lstrlib.c"
-#include "lua-5.3.4/ltablib.c"
-
-#include "lua-5.3.4/lapi.c"
-#include "lua-5.3.4/lcode.c"
-#include "lua-5.3.4/lctype.c"
-#include "lua-5.3.4/ldebug.c"
-#include "lua-5.3.4/ldo.c"
-#include "lua-5.3.4/ldump.c"
-#include "lua-5.3.4/lfunc.c"
-#include "lua-5.3.4/lgc.c"
-#include "lua-5.3.4/llex.c"
-#include "lua-5.3.4/lmem.c"
-#include "lua-5.3.4/lobject.c"
-#include "lua-5.3.4/lopcodes.c"
-#include "lua-5.3.4/lparser.c"
-#include "lua-5.3.4/lstate.c"
-#include "lua-5.3.4/lstring.c"
-#include "lua-5.3.4/ltm.c"
-#include "lua-5.3.4/lundump.c"
-#include "lua-5.3.4/lutf8lib.c"
-#include "lua-5.3.4/lvm.c"
-#include "lua-5.3.4/lzio.c"
-
-#include "lua-5.3.4/loadlib.c"
+#include "lua-5.3.5/ltable.c"
+
+#include "lua-5.3.5/lauxlib.c"
+#include "lua-5.3.5/lbaselib.c"
+
+#include "lua-5.3.5/lbitlib.c"
+#include "lua-5.3.5/lcorolib.c"
+#include "lua-5.3.5/ldblib.c"
+#include "lua-5.3.5/linit.c"
+#include "lua-5.3.5/liolib.c"
+#include "lua-5.3.5/lmathlib.c"
+#include "lua-5.3.5/loslib.c"
+#include "lua-5.3.5/lstrlib.c"
+#include "lua-5.3.5/ltablib.c"
+
+#include "lua-5.3.5/lapi.c"
+#include "lua-5.3.5/lcode.c"
+#include "lua-5.3.5/lctype.c"
+#include "lua-5.3.5/ldebug.c"
+#include "lua-5.3.5/ldo.c"
+#include "lua-5.3.5/ldump.c"
+#include "lua-5.3.5/lfunc.c"
+#include "lua-5.3.5/lgc.c"
+#include "lua-5.3.5/llex.c"
+#include "lua-5.3.5/lmem.c"
+#include "lua-5.3.5/lobject.c"
+#include "lua-5.3.5/lopcodes.c"
+#include "lua-5.3.5/lparser.c"
+#include "lua-5.3.5/lstate.c"
+#include "lua-5.3.5/lstring.c"
+#include "lua-5.3.5/ltm.c"
+#include "lua-5.3.5/lundump.c"
+#include "lua-5.3.5/lutf8lib.c"
+#include "lua-5.3.5/lvm.c"
+#include "lua-5.3.5/lzio.c"
+
+#include "lua-5.3.5/loadlib.c"
#if _MSC_VER
#pragma warning (pop)
diff --git a/libs/lua/lua/lua.h b/libs/lua/lua/lua.h
index 95af32019d..a10a506557 100644
--- a/libs/lua/lua/lua.h
+++ b/libs/lua/lua/lua.h
@@ -1,6 +1,6 @@
#ifndef LUA_LIBRARY_H
#define LUA_LIBRARY_H
-#include "lua-5.3.4/lua.hpp"
+#include "lua-5.3.5/lua.hpp"
#endif
diff --git a/libs/lua/wscript b/libs/lua/wscript
index 3936e552e9..88d4d3b734 100644
--- a/libs/lua/wscript
+++ b/libs/lua/wscript
@@ -6,7 +6,7 @@ import sys
# Variables for 'waf dist'
APPNAME = 'liblua'
-VERSION = "5.3.4"
+VERSION = "5.3.5"
I18N_PACKAGE = 'liblua'
# Mandatory variables