diff -r lua-5.4.7/Makefile lua-5.4.8/Makefile
49c49
< R= $V.7
---
> R= $V.8
diff -r lua-5.4.7/README lua-5.4.8/README
2c2
< This is Lua 5.4.7, released on 13 Jun 2024.
---
> This is Lua 5.4.8, released on 21 May 2025.
diff -r lua-5.4.7/doc/contents.html lua-5.4.8/doc/contents.html
35c35
< Copyright © 2020–2024 Lua.org, PUC-Rio.
---
> Copyright © 2020–2025 Lua.org, PUC-Rio.
671c671
< Thu May 9 14:47:09 UTC 2024
---
> Wed May 21 21:11:33 UTC 2025
674c674
< Last change: revised for Lua 5.4.7
---
> Last change: revised for Lua 5.4.8
diff -r lua-5.4.7/doc/manual.html lua-5.4.8/doc/manual.html
22c22
< Copyright © 2020–2024 Lua.org, PUC-Rio.
---
> Copyright © 2020–2025 Lua.org, PUC-Rio.
12053c12053
< Thu Jun 13 22:15:52 UTC 2024
---
> Wed May 21 21:09:59 UTC 2025
12056c12056
< Last change: revised for Lua 5.4.7
---
> Last change: revised for Lua 5.4.8
diff -r lua-5.4.7/doc/readme.html lua-5.4.8/doc/readme.html
112c112
< the top-level directory, which is named lua-5.4.7.
---
> the top-level directory, which is named lua-5.4.8.
305c305
< Copyright © 1994–2024 Lua.org, PUC-Rio.
---
> Copyright © 1994–2025 Lua.org, PUC-Rio.
332c332
< Wed May 8 21:56:16 UTC 2024
---
> Wed May 21 21:12:01 UTC 2025
335c335
< Last change: revised for Lua 5.4.7
---
> Last change: revised for Lua 5.4.8
diff -r lua-5.4.7/src/lapi.c lua-5.4.8/src/lapi.c
1346c1346
< api_check(L, 0 <= nuvalue && nuvalue < USHRT_MAX, "invalid value");
---
> api_check(L, 0 <= nuvalue && nuvalue < SHRT_MAX, "invalid value");
diff -r lua-5.4.7/src/lcode.c lua-5.4.8/src/lcode.c
37a38
> /* (note that expressions VJMP also have jumps.) */
988c989
< if (hasjumps(e))
---
> if (e->k == VJMP || hasjumps(e))
diff -r lua-5.4.7/src/ldebug.c lua-5.4.8/src/ldebug.c
39a40,42
> static const char strlocal[] = "local";
> static const char strupval[] = "upvalue";
>
500c503
< return "local";
---
> return strlocal;
515c518
< return "upvalue";
---
> return strupval;
550c553,556
< ** environment '_ENV'
---
> ** environment '_ENV'. If the table is an upvalue, get its name;
> ** otherwise, find some "name" for the table and check whether
> ** that name is the name of a local variable (and not, for instance,
> ** a string). Then check that, if there is a name, it is '_ENV'.
557,558c563,567
< else /* 't' is a register */
< basicgetobjname(p, &pc, t, &name);
---
> else { /* 't' is a register */
> const char *what = basicgetobjname(p, &pc, t, &name);
> if (what != strlocal && what != strupval)
> name = NULL; /* cannot be the variable _ENV */
> }
704c713
< return "upvalue";
---
> return strupval;
diff -r lua-5.4.7/src/ldo.c lua-5.4.8/src/ldo.c
97,100d96
< case LUA_ERRERR: {
< setsvalue2s(L, oldtop, luaS_newliteral(L, "error in error handling"));
< break;
< }
122a119
> L->status = errcode;
200a198,207
>
> /* raise an error while running the message handler */
> l_noret luaD_errerr (lua_State *L) {
> TString *msg = luaS_newliteral(L, "error in error handling");
> setsvalue2s(L, L->top.p, msg);
> L->top.p++; /* assume EXTRA_STACK */
> luaD_throw(L, LUA_ERRERR);
> }
>
>
250c257
< luaD_throw(L, LUA_ERRERR); /* error inside message handler */
---
> luaD_errerr(L); /* error inside message handler */
diff -r lua-5.4.7/src/ldo.h lua-5.4.8/src/ldo.h
62a63
> LUAI_FUNC l_noret luaD_errerr (lua_State *L);
diff -r lua-5.4.7/src/lparser.c lua-5.4.8/src/lparser.c
201c201
< dyd->actvar.size, Vardesc, USHRT_MAX, "local variables");
---
> dyd->actvar.size, Vardesc, SHRT_MAX, "local variables");
852,853c852
< if (ls->t.token == TK_NAME) {
< checklimit(fs, cc->nh, MAX_INT, "items in a constructor");
---
> if (ls->t.token == TK_NAME)
855d853
< }
857a856
> checklimit(fs, cc->nh, MAX_INT, "items in a constructor");
diff -r lua-5.4.7/src/lstate.c lua-5.4.8/src/lstate.c
169c169
< luaD_throw(L, LUA_ERRERR); /* error while handling stack error */
---
> luaD_errerr(L); /* error while handling stack error */
274a275
> L->errfunc = 0; /* stack unwind can "throw away" the error function */
275a277
> L->top.p = L->stack.p + 1; /* empty the stack to run finalizers */
330a333
> L->errfunc = 0; /* stack unwind can "throw away" the error function */
diff -r lua-5.4.7/src/lua.c lua-5.4.8/src/lua.c
493,494c493
< if (lmsg >= marklen && strcmp(msg + lmsg - marklen, EOFMARK) == 0) {
< lua_pop(L, 1);
---
> if (lmsg >= marklen && strcmp(msg + lmsg - marklen, EOFMARK) == 0)
496d494
< }
511,512d508
< if (readstatus == 0)
< return 0; /* no input (prompt will be popped by caller) */
513a510,511
> if (readstatus == 0)
> return 0; /* no input */
555c553
< return status; /* cannot or should not try to add continuation line */
---
> return status; /* should not or cannot try to add continuation line */
556a555
> lua_remove(L, -2); /* remove error message (from incomplete line) */
diff -r lua-5.4.7/src/lua.h lua-5.4.8/src/lua.h
21c21
< #define LUA_VERSION_RELEASE "7"
---
> #define LUA_VERSION_RELEASE "8"
24c24
< #define LUA_VERSION_RELEASE_NUM (LUA_VERSION_NUM * 100 + 7)
---
> #define LUA_VERSION_RELEASE_NUM (LUA_VERSION_NUM * 100 + 8)
28c28
< #define LUA_COPYRIGHT LUA_RELEASE " Copyright (C) 1994-2024 Lua.org, PUC-Rio"
---
> #define LUA_COPYRIGHT LUA_RELEASE " Copyright (C) 1994-2025 Lua.org, PUC-Rio"
500c500
< * Copyright (C) 1994-2024 Lua.org, PUC-Rio.
---
> * Copyright (C) 1994-2025 Lua.org, PUC-Rio.
diff -r lua-5.4.7/src/lvm.c lua-5.4.8/src/lvm.c
341a342,343
> sethvalue2s(L, L->top.p, h); /* anchor 't' */
> L->top.p++; /* assume EXTRA_STACK */
342a345
> L->top.p--;