diff -r lua-5.3.5/Makefile lua-5.3.6/Makefile 49c49 < R= $V.4 --- > R= $V.6 diff -r lua-5.3.5/README lua-5.3.6/README 2c2 < This is Lua 5.3.5, released on 26 Jun 2018. --- > This is Lua 5.3.6, released on 14 Sep 2020. diff -r lua-5.3.5/doc/contents.html lua-5.3.6/doc/contents.html 35c35 < Copyright © 2015–2018 Lua.org, PUC-Rio. --- > Copyright © 2015–2020 Lua.org, PUC-Rio. 320a321,351 >
> __add
> __band
> __bnot
> __bor
> __bxor
> __call
> __concat
> __div
> __eq
> __gc
> __idiv
> __index
> __le
> __len
> __lt
> __metatable
> __mod
> __mode
> __mul
> __name
> __newindex
> __pairs
> __pow
> __shl
> __shr
> __sub
> __tostring
> __unm
>
612c643
< Mon Jun 18 22:56:06 -03 2018
---
> Tue Aug 25 13:45:14 UTC 2020
615c646
< Last change: revised for Lua 5.3.5
---
> Last change: revised for Lua 5.3.6
diff -r lua-5.3.5/doc/manual.html lua-5.3.6/doc/manual.html
22c22
< Copyright © 2015–2018 Lua.org, PUC-Rio.
---
> Copyright © 2015–2020 Lua.org, PUC-Rio.
10975c10975
< Tue Jun 26 13:16:37 -03 2018
---
> Tue Jul 14 10:32:39 UTC 2020
10978c10978
< Last change: revised for Lua 5.3.5
---
> Last change: revised for Lua 5.3.6
diff -r lua-5.3.5/doc/readme.html lua-5.3.6/doc/readme.html
110c110
< the top-level directory, which is named lua-5.3.5.
---
> the top-level directory, which is named lua-5.3.6.
331c331
< Copyright © 1994–2017 Lua.org, PUC-Rio.
---
> Copyright © 1994–2020 Lua.org, PUC-Rio.
358c358
< Mon Jun 18 22:57:33 -03 2018
---
> Tue Jul 14 10:33:01 UTC 2020
361c361
< Last change: revised for Lua 5.3.5
---
> Last change: revised for Lua 5.3.6
diff -r lua-5.3.5/src/Makefile lua-5.3.6/src/Makefile
105c105
< $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -DLUA_USE_READLINE -I/usr/include/edit" SYSLIBS="-Wl,-E -ledit" CC="cc"
---
> $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX -I/usr/include/edit" SYSLIBS="-Wl,-E -ledit" CC="cc"
diff -r lua-5.3.5/src/lapi.c lua-5.3.6/src/lapi.c
1257c1257
< static UpVal **getupvalref (lua_State *L, int fidx, int n, LClosure **pf) {
---
> static UpVal **getupvalref (lua_State *L, int fidx, int n) {
1263d1262
< if (pf) *pf = f;
1272c1271
< return *getupvalref(L, fidx, n, NULL);
---
> return *getupvalref(L, fidx, n);
1289,1291c1288,1291
< LClosure *f1;
< UpVal **up1 = getupvalref(L, fidx1, n1, &f1);
< UpVal **up2 = getupvalref(L, fidx2, n2, NULL);
---
> UpVal **up1 = getupvalref(L, fidx1, n1);
> UpVal **up2 = getupvalref(L, fidx2, n2);
> if (*up1 == *up2)
> return;
diff -r lua-5.3.5/src/lauxlib.c lua-5.3.6/src/lauxlib.c
1014,1015c1014,1020
< else
< return realloc(ptr, nsize);
---
> else { /* cannot fail when shrinking a block */
> void *newptr = realloc(ptr, nsize);
> if (newptr == NULL && ptr != NULL && nsize <= osize)
> return ptr; /* keep the original block */
> else /* no fail or not shrinking */
> return newptr; /* use the new block */
> }
diff -r lua-5.3.5/src/lcode.c lua-5.3.6/src/lcode.c
1064c1064
< ** Aplly prefix operation 'op' to expression 'e'.
---
> ** Apply prefix operation 'op' to expression 'e'.
diff -r lua-5.3.5/src/ldebug.c lua-5.3.6/src/ldebug.c
136c136,137
< if (n >= cast_int(ci->u.l.base - ci->func) - nparams)
---
> int nvararg = cast_int(ci->u.l.base - ci->func) - nparams;
> if (n <= -nvararg)
139c140
< *pos = ci->func + nparams + n;
---
> *pos = ci->func + nparams - n;
151c152
< return findvararg(ci, -n, pos);
---
> return findvararg(ci, n, pos);
diff -r lua-5.3.5/src/liolib.c lua-5.3.6/src/liolib.c
279a280,281
> luaL_argcheck(L, ((mode[0] == 'r' || mode[0] == 'w') && mode[1] == '\0'),
> 2, "invalid mode");
diff -r lua-5.3.5/src/llex.c lua-5.3.6/src/llex.c
247,249c247,249
< ** skip a sequence '[=*[' or ']=*]'; if sequence is well formed, return
< ** its number of '='s; otherwise, return a negative number (-1 iff there
< ** are no '='s after initial bracket)
---
> ** reads a sequence '[=*[' or ']=*]', leaving the last bracket.
> ** If sequence is well formed, return its number of '='s + 2; otherwise,
> ** return 1 if there is no '='s or 0 otherwise (an unfinished '[==...').
251,252c251,252
< static int skip_sep (LexState *ls) {
< int count = 0;
---
> static size_t skip_sep (LexState *ls) {
> size_t count = 0;
260c260,263
< return (ls->current == s) ? count : (-count) - 1;
---
> return (ls->current == s) ? count + 2
> : (count == 0) ? 1
> : 0;
>
264c267
< static void read_long_string (LexState *ls, SemInfo *seminfo, int sep) {
---
> static void read_long_string (LexState *ls, SemInfo *seminfo, size_t sep) {
298,299c301,302
< seminfo->ts = luaX_newstring(ls, luaZ_buffer(ls->buff) + (2 + sep),
< luaZ_bufflen(ls->buff) - 2*(2 + sep));
---
> seminfo->ts = luaX_newstring(ls, luaZ_buffer(ls->buff) + sep,
> luaZ_bufflen(ls->buff) - 2 * sep);
447c450
< int sep = skip_sep(ls);
---
> size_t sep = skip_sep(ls);
449c452
< if (sep >= 0) {
---
> if (sep >= 2) {
461,462c464,465
< int sep = skip_sep(ls);
< if (sep >= 0) {
---
> size_t sep = skip_sep(ls);
> if (sep >= 2) {
466c469
< else if (sep != -1) /* '[=...' missing second bracket */
---
> else if (sep == 0) /* '[=...' missing second bracket */
diff -r lua-5.3.5/src/lobject.c lua-5.3.6/src/lobject.c
269c269
< ** mark. If the convertion fails, it may mean number has a dot but
---
> ** mark. If the conversion fails, it may mean number has a dot but
diff -r lua-5.3.5/src/lparser.c lua-5.3.6/src/lparser.c
546a547
> luaC_objbarrier(ls->L, f, f->source);
1618a1620
> luaC_objbarrier(ls->L, fs->f, ls->envn);
1636a1639
> luaC_objbarrier(L, cl, cl->p);
diff -r lua-5.3.5/src/lua.h lua-5.3.6/src/lua.h
2d1
< ** $Id: lua.h,v 1.332.1.2 2018/06/13 16:58:17 roberto Exp $
22c21
< #define LUA_VERSION_RELEASE "5"
---
> #define LUA_VERSION_RELEASE "6"
26c25
< #define LUA_COPYRIGHT LUA_RELEASE " Copyright (C) 1994-2018 Lua.org, PUC-Rio"
---
> #define LUA_COPYRIGHT LUA_RELEASE " Copyright (C) 1994-2020 Lua.org, PUC-Rio"
463c462
< * Copyright (C) 1994-2018 Lua.org, PUC-Rio.
---
> * Copyright (C) 1994-2020 Lua.org, PUC-Rio.
diff -r lua-5.3.5/src/lundump.c lua-5.3.6/src/lundump.c
88c88,89
< static TString *LoadString (LoadState *S) {
---
> static TString *LoadString (LoadState *S, Proto *p) {
> lua_State *L = S->L;
89a91
> TString *ts;
97c99
< return luaS_newlstr(S->L, buff, size);
---
> ts = luaS_newlstr(L, buff, size);
100c102,104
< TString *ts = luaS_createlngstrobj(S->L, size);
---
> ts = luaS_createlngstrobj(L, size);
> setsvalue2s(L, L->top, ts); /* anchor it ('loadVector' can GC) */
> luaD_inctop(L);
102c106
< return ts;
---
> L->top--; /* pop string */
103a108,109
> luaC_objbarrier(L, p, ts);
> return ts;
143c149
< setsvalue2n(S->L, o, LoadString(S));
---
> setsvalue2n(S->L, o, LoadString(S, f));
160a167
> luaC_objbarrier(S->L, f, f->p[i]);
192c199
< f->locvars[i].varname = LoadString(S);
---
> f->locvars[i].varname = LoadString(S, f);
198c205
< f->upvalues[i].name = LoadString(S);
---
> f->upvalues[i].name = LoadString(S, f);
203c210
< f->source = LoadString(S);
---
> f->source = LoadString(S, f);
273a281
> luaC_objbarrier(L, cl, cl->p);