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 >

metamethods

>

> __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);