diff -Nr lua-5.4.8/Makefile lua-5.4.9/Makefile
49c49
< R= $V.8
---
> R= $V.9
diff -Nr lua-5.4.8/README lua-5.4.9/README
2c2
< This is Lua 5.4.8, released on 21 May 2025.
---
> This is Lua 5.4.9, released on 10 Aug 2026.
Binary files lua-5.4.8/doc/OSIApproved.png and lua-5.4.9/doc/OSIApproved.png differ
Binary files lua-5.4.8/doc/OSIApproved_100X125.png and lua-5.4.9/doc/OSIApproved_100X125.png differ
diff -Nr lua-5.4.8/doc/contents.html lua-5.4.9/doc/contents.html
13c13
<
---
>
35c35
< Copyright © 2020–2025 Lua.org, PUC-Rio.
---
> Copyright © 2020–2026 Lua.org, PUC-Rio.
88c88
<
---
>
22c22
< Copyright © 2020–2025 Lua.org, PUC-Rio.
---
> Copyright © 2020–2026 Lua.org, PUC-Rio.
169c169
< according to the usual rules of two-complement arithmetic.
---
> according to the usual rules of two's complement arithmetic.
750c750
< and excludes also operations using the debug library.)
---
> and it excludes also operations using the debug library.)
2389c2389
< For instance, the table {10, 20, 30, 40, 50} is a sequence,
---
> For instance, the table {10,20,30,40,50} is a sequence,
2391c2391
< The table {10, 20, 30, nil, 50} has two borders (3 and 5),
---
> The table {10,20,30,nil,50} has two borders (3 and 5),
2394c2394
< The table {nil, 20, 30, nil, nil, 60, nil}
---
> The table {nil,20,30,nil,nil,60,nil}
2827c2827
< Here are some examples of uses of mutlres expressions.
---
> Here are some examples of uses of multires expressions.
3515c3515
< int lua_absindex (lua_State *L, int idx);--- >
int lua_absindex (lua_State *L, int idx);3527c3527 <
typedef void * (*lua_Alloc) (void *ud, --- >typedef void * (*lua_Alloc) (void *ud, 3605c3605 <void lua_arith (lua_State *L, int op);--- >void lua_arith (lua_State *L, int op);3644c3644 <lua_CFunction lua_atpanic (lua_State *L, lua_CFunction panicf);--- >lua_CFunction lua_atpanic (lua_State *L, lua_CFunction panicf);3655c3655 <void lua_call (lua_State *L, int nargs, int nresults);--- >void lua_call (lua_State *L, int nargs, int nresults);3720c3720 <void lua_callk (lua_State *L, --- >void lua_callk (lua_State *L, 3735c3735 <typedef int (*lua_CFunction) (lua_State *L);--- >typedef int (*lua_CFunction) (lua_State *L);3787c3787 <int lua_checkstack (lua_State *L, int n);--- >int lua_checkstack (lua_State *L, int n);3807c3807 <void lua_close (lua_State *L);--- >void lua_close (lua_State *L);3829c3829 <void lua_closeslot (lua_State *L, int index);--- >void lua_closeslot (lua_State *L, int index);3851c3851 <int lua_closethread (lua_State *L, lua_State *from);--- >int lua_closethread (lua_State *L, lua_State *from);3880c3880 <int lua_compare (lua_State *L, int index1, int index2, int op);--- >int lua_compare (lua_State *L, int index1, int index2, int op);3908c3908 <void lua_concat (lua_State *L, int n);--- >void lua_concat (lua_State *L, int n);3925c3925 <void lua_copy (lua_State *L, int fromidx, int toidx);--- >void lua_copy (lua_State *L, int fromidx, int toidx);3939c3939 <void lua_createtable (lua_State *L, int narr, int nrec);--- >void lua_createtable (lua_State *L, int narr, int nrec);3958c3958 <int lua_dump (lua_State *L, --- >int lua_dump (lua_State *L, 3997c3997 <int lua_error (lua_State *L);--- >int lua_error (lua_State *L);4012c4012 <int lua_gc (lua_State *L, int what, ...);--- >int lua_gc (lua_State *L, int what, ...);4083c4083 <lua_Alloc lua_getallocf (lua_State *L, void **ud);--- >lua_Alloc lua_getallocf (lua_State *L, void **ud);4096c4096 <int lua_getfield (lua_State *L, int index, const char *k);--- >int lua_getfield (lua_State *L, int index, const char *k);4114c4114 <void *lua_getextraspace (lua_State *L);--- >void *lua_getextraspace (lua_State *L);4139c4139 <int lua_getglobal (lua_State *L, const char *name);--- >int lua_getglobal (lua_State *L, const char *name);4151c4151 <int lua_geti (lua_State *L, int index, lua_Integer i);--- >int lua_geti (lua_State *L, int index, lua_Integer i);4169c4169 <int lua_getmetatable (lua_State *L, int index);--- >int lua_getmetatable (lua_State *L, int index);4183c4183 <int lua_gettable (lua_State *L, int index);--- >int lua_gettable (lua_State *L, int index);4207c4207 <int lua_gettop (lua_State *L);--- >int lua_gettop (lua_State *L);4221c4221 <int lua_getiuservalue (lua_State *L, int index, int n);--- >int lua_getiuservalue (lua_State *L, int index, int n);4239c4239 <void lua_insert (lua_State *L, int index);--- >void lua_insert (lua_State *L, int index);4252c4252 <typedef ... lua_Integer;--- >typedef ... lua_Integer;4260c4260 < (usually a 64-bit two-complement integer), --- > (usually a 64-bit two's complement integer), 4262c4262 < (usually a 32-bit two-complement integer). --- > (usually a 32-bit two's complement integer). 4277c4277 <int lua_isboolean (lua_State *L, int index);--- >int lua_isboolean (lua_State *L, int index);4289c4289 <int lua_iscfunction (lua_State *L, int index);--- >int lua_iscfunction (lua_State *L, int index);4301c4301 <int lua_isfunction (lua_State *L, int index);--- >int lua_isfunction (lua_State *L, int index);4313c4313 <int lua_isinteger (lua_State *L, int index);--- >int lua_isinteger (lua_State *L, int index);4326c4326 <int lua_islightuserdata (lua_State *L, int index);--- >int lua_islightuserdata (lua_State *L, int index);4338c4338 <int lua_isnil (lua_State *L, int index);--- >int lua_isnil (lua_State *L, int index);4350c4350 <int lua_isnone (lua_State *L, int index);--- >int lua_isnone (lua_State *L, int index);4362c4362 <int lua_isnoneornil (lua_State *L, int index);--- >int lua_isnoneornil (lua_State *L, int index);4375c4375 <int lua_isnumber (lua_State *L, int index);--- >int lua_isnumber (lua_State *L, int index);4388c4388 <int lua_isstring (lua_State *L, int index);--- >int lua_isstring (lua_State *L, int index);4401c4401 <int lua_istable (lua_State *L, int index);--- >int lua_istable (lua_State *L, int index);4413c4413 <int lua_isthread (lua_State *L, int index);--- >int lua_isthread (lua_State *L, int index);4425c4425 <int lua_isuserdata (lua_State *L, int index);--- >int lua_isuserdata (lua_State *L, int index);4437c4437 <int lua_isyieldable (lua_State *L);--- >int lua_isyieldable (lua_State *L);4448c4448 <typedef ... lua_KContext;--- >typedef ... lua_KContext;4463c4463 <typedef int (*lua_KFunction) (lua_State *L, int status, lua_KContext ctx);--- >typedef int (*lua_KFunction) (lua_State *L, int status, lua_KContext ctx);4474c4474 <void lua_len (lua_State *L, int index);--- >void lua_len (lua_State *L, int index);4488c4488 <int lua_load (lua_State *L, --- >int lua_load (lua_State *L, 4548c4548 <lua_State *lua_newstate (lua_Alloc f, void *ud);--- >lua_State *lua_newstate (lua_Alloc f, void *ud);4566c4566 <void lua_newtable (lua_State *L);--- >void lua_newtable (lua_State *L);4570c4570 < It is equivalent tolua_createtable(L, 0, 0). --- > It is equivalent tolua_createtable(L,0,0). 4578c4578 <lua_State *lua_newthread (lua_State *L);--- >lua_State *lua_newthread (lua_State *L);4598c4598 <void *lua_newuserdatauv (lua_State *L, size_t size, int nuvalue);--- >void *lua_newuserdatauv (lua_State *L, size_t size, int nuvalue);4621c4621 <int lua_next (lua_State *L, int index);--- >int lua_next (lua_State *L, int index);4667c4667 <typedef ... lua_Number;--- >typedef ... lua_Number;4683c4683 <int lua_numbertointeger (lua_Number n, lua_Integer *p);--- >int lua_numbertointeger (lua_Number n, lua_Integer *p);4705c4705 <int lua_pcall (lua_State *L, int nargs, int nresults, int msgh);--- >int lua_pcall (lua_State *L, int nargs, int nresults, int msgh);4755c4755 <int lua_pcallk (lua_State *L, --- >int lua_pcallk (lua_State *L, 4772c4772 <void lua_pop (lua_State *L, int n);--- >void lua_pop (lua_State *L, int n);4784c4784 <void lua_pushboolean (lua_State *L, int b);--- >void lua_pushboolean (lua_State *L, int b);4795c4795 <void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n);--- >void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n);4844c4844 <void lua_pushcfunction (lua_State *L, lua_CFunction f);--- >void lua_pushcfunction (lua_State *L, lua_CFunction f);4856c4856 <const char *lua_pushfstring (lua_State *L, const char *fmt, ...);--- >const char *lua_pushfstring (lua_State *L, const char *fmt, ...);4891c4891 <void lua_pushglobaltable (lua_State *L);--- >void lua_pushglobaltable (lua_State *L);4902c4902 <void lua_pushinteger (lua_State *L, lua_Integer n);--- >void lua_pushinteger (lua_State *L, lua_Integer n);4913c4913 <void lua_pushlightuserdata (lua_State *L, void *p);--- >void lua_pushlightuserdata (lua_State *L, void *p);4934c4934 <const char *lua_pushliteral (lua_State *L, const char *s);--- >const char *lua_pushliteral (lua_State *L, const char *s);4947c4947 <const char *lua_pushlstring (lua_State *L, const char *s, size_t len);--- >const char *lua_pushlstring (lua_State *L, const char *s, size_t len);4968c4968 <void lua_pushnil (lua_State *L);--- >void lua_pushnil (lua_State *L);4979c4979 <void lua_pushnumber (lua_State *L, lua_Number n);--- >void lua_pushnumber (lua_State *L, lua_Number n);4990c4990 <const char *lua_pushstring (lua_State *L, const char *s);--- >const char *lua_pushstring (lua_State *L, const char *s);5013c5013 <int lua_pushthread (lua_State *L);--- >int lua_pushthread (lua_State *L);5025c5025 <void lua_pushvalue (lua_State *L, int index);--- >void lua_pushvalue (lua_State *L, int index);5037c5037 <const char *lua_pushvfstring (lua_State *L, --- >const char *lua_pushvfstring (lua_State *L, 5051c5051 <int lua_rawequal (lua_State *L, int index1, int index2);--- >int lua_rawequal (lua_State *L, int index1, int index2);5066c5066 <int lua_rawget (lua_State *L, int index);--- >int lua_rawget (lua_State *L, int index);5079c5079 <int lua_rawgeti (lua_State *L, int index, lua_Integer n);--- >int lua_rawgeti (lua_State *L, int index, lua_Integer n);5097c5097 <int lua_rawgetp (lua_State *L, int index, const void *p);--- >int lua_rawgetp (lua_State *L, int index, const void *p);5116c5116 <lua_Unsigned lua_rawlen (lua_State *L, int index);--- >lua_Unsigned lua_rawlen (lua_State *L, int index);5133c5133 <void lua_rawset (lua_State *L, int index);--- >void lua_rawset (lua_State *L, int index);5146c5146 <void lua_rawseti (lua_State *L, int index, lua_Integer i);--- >void lua_rawseti (lua_State *L, int index, lua_Integer i);5165c5165 <void lua_rawsetp (lua_State *L, int index, const void *p);--- >void lua_rawsetp (lua_State *L, int index, const void *p);5184c5184 <typedef const char * (*lua_Reader) (lua_State *L, --- >typedef const char * (*lua_Reader) (lua_State *L, 5207c5207 <void lua_register (lua_State *L, const char *name, lua_CFunction f);--- >void lua_register (lua_State *L, const char *name, lua_CFunction f);5223c5223 <void lua_remove (lua_State *L, int index);--- >void lua_remove (lua_State *L, int index);5237c5237 <void lua_replace (lua_State *L, int index);--- >void lua_replace (lua_State *L, int index);5251c5251 <int lua_resetthread (lua_State *L);--- >int lua_resetthread (lua_State *L);5264c5264 <int lua_resume (lua_State *L, lua_State *from, int nargs, --- >int lua_resume (lua_State *L, lua_State *from, int nargs, 5310c5310 <void lua_rotate (lua_State *L, int idx, int n);--- >void lua_rotate (lua_State *L, int idx, int n);5330c5330 <void lua_setallocf (lua_State *L, lua_Alloc f, void *ud);--- >void lua_setallocf (lua_State *L, lua_Alloc f, void *ud);5342c5342 <void lua_setfield (lua_State *L, int index, const char *k);--- >void lua_setfield (lua_State *L, int index, const char *k);5361c5361 <void lua_setglobal (lua_State *L, const char *name);--- >void lua_setglobal (lua_State *L, const char *name);5373c5373 <void lua_seti (lua_State *L, int index, lua_Integer n);--- >void lua_seti (lua_State *L, int index, lua_Integer n);5392c5392 <int lua_setiuservalue (lua_State *L, int index, int n);--- >int lua_setiuservalue (lua_State *L, int index, int n);5406c5406 <int lua_setmetatable (lua_State *L, int index);--- >int lua_setmetatable (lua_State *L, int index);5424c5424 <void lua_settable (lua_State *L, int index);--- >void lua_settable (lua_State *L, int index);5444c5444 <void lua_settop (lua_State *L, int index);--- >void lua_settop (lua_State *L, int index);5464c5464 <void lua_setwarnf (lua_State *L, lua_WarnFunction f, void *ud);--- >void lua_setwarnf (lua_State *L, lua_WarnFunction f, void *ud);5477c5477 <typedef struct lua_State lua_State;--- >typedef struct lua_State lua_State;5498c5498 <int lua_status (lua_State *L);--- >int lua_status (lua_State *L);5523c5523 <size_t lua_stringtonumber (lua_State *L, const char *s);--- >size_t lua_stringtonumber (lua_State *L, const char *s);5544c5544 <int lua_toboolean (lua_State *L, int index);--- >int lua_toboolean (lua_State *L, int index);5562c5562 <lua_CFunction lua_tocfunction (lua_State *L, int index);--- >lua_CFunction lua_tocfunction (lua_State *L, int index);5575c5575 <void lua_toclose (lua_State *L, int index);--- >void lua_toclose (lua_State *L, int index);5617c5617 <lua_Integer lua_tointeger (lua_State *L, int index);--- >lua_Integer lua_tointeger (lua_State *L, int index);5628c5628 <lua_Integer lua_tointegerx (lua_State *L, int index, int *isnum);--- >lua_Integer lua_tointegerx (lua_State *L, int index, int *isnum);5649c5649 <const char *lua_tolstring (lua_State *L, int index, size_t *len);--- >const char *lua_tolstring (lua_State *L, int index, size_t *len);5683c5683 <lua_Number lua_tonumber (lua_State *L, int index);--- >lua_Number lua_tonumber (lua_State *L, int index);5694c5694 <lua_Number lua_tonumberx (lua_State *L, int index, int *isnum);--- >lua_Number lua_tonumberx (lua_State *L, int index, int *isnum);5715c5715 <const void *lua_topointer (lua_State *L, int index);--- >const void *lua_topointer (lua_State *L, int index);5735c5735 <const char *lua_tostring (lua_State *L, int index);--- >const char *lua_tostring (lua_State *L, int index);5746c5746 <lua_State *lua_tothread (lua_State *L, int index);--- >lua_State *lua_tothread (lua_State *L, int index);5760c5760 <void *lua_touserdata (lua_State *L, int index);--- >void *lua_touserdata (lua_State *L, int index);5775c5775 <int lua_type (lua_State *L, int index);--- >int lua_type (lua_State *L, int index);5799c5799 <const char *lua_typename (lua_State *L, int tp);--- >const char *lua_typename (lua_State *L, int tp);5810c5810 <typedef ... lua_Unsigned;--- >typedef ... lua_Unsigned;5821c5821 <int lua_upvalueindex (int i);--- >int lua_upvalueindex (int i);5834c5834 <lua_Number lua_version (lua_State *L);--- >lua_Number lua_version (lua_State *L);5844c5844 <typedef void (*lua_WarnFunction) (void *ud, const char *msg, int tocont);--- >typedef void (*lua_WarnFunction) (void *ud, const char *msg, int tocont);5865c5865 <void lua_warning (lua_State *L, const char *msg, int tocont);--- >void lua_warning (lua_State *L, const char *msg, int tocont);5881c5881 <typedef int (*lua_Writer) (lua_State *L, --- >typedef int (*lua_Writer) (lua_State *L, 5907c5907 <void lua_xmove (lua_State *from, lua_State *to, int n);--- >void lua_xmove (lua_State *from, lua_State *to, int n);5923c5923 <int lua_yield (lua_State *L, int nresults);--- >int lua_yield (lua_State *L, int nresults);5940c5940 <int lua_yieldk (lua_State *L, --- >int lua_yieldk (lua_State *L, 6012c6012 <typedef struct lua_Debug { --- >typedef struct lua_Debug { 6155c6155 <lua_Hook lua_gethook (lua_State *L);--- >lua_Hook lua_gethook (lua_State *L);6166c6166 <int lua_gethookcount (lua_State *L);--- >int lua_gethookcount (lua_State *L);6177c6177 <int lua_gethookmask (lua_State *L);--- >int lua_gethookmask (lua_State *L);6188c6188 <int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar);--- >int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar);6274c6274 <const char *lua_getlocal (lua_State *L, const lua_Debug *ar, int n);--- >const char *lua_getlocal (lua_State *L, const lua_Debug *ar, int n);6315c6315 <int lua_getstack (lua_State *L, int level, lua_Debug *ar);--- >int lua_getstack (lua_State *L, int level, lua_Debug *ar);6338c6338 <const char *lua_getupvalue (lua_State *L, int funcindex, int n);--- >const char *lua_getupvalue (lua_State *L, int funcindex, int n);6357c6357 <typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar);--- >typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar);6406c6406 <void lua_sethook (lua_State *L, lua_Hook f, int mask, int count);--- >void lua_sethook (lua_State *L, lua_Hook f, int mask, int count);6456c6456 <const char *lua_setlocal (lua_State *L, const lua_Debug *ar, int n);--- >const char *lua_setlocal (lua_State *L, const lua_Debug *ar, int n);6480c6480 <const char *lua_setupvalue (lua_State *L, int funcindex, int n);--- >const char *lua_setupvalue (lua_State *L, int funcindex, int n);6504c6504 <void *lua_upvalueid (lua_State *L, int funcindex, int n);--- >void *lua_upvalueid (lua_State *L, int funcindex, int n);6530c6530 <void lua_upvaluejoin (lua_State *L, int funcindex1, int n1, --- >void lua_upvaluejoin (lua_State *L, int funcindex1, int n1, 6605c6605 <void luaL_addchar (luaL_Buffer *B, char c);--- >void luaL_addchar (luaL_Buffer *B, char c);6617c6617 <const void luaL_addgsub (luaL_Buffer *B, const char *s, --- >const void luaL_addgsub (luaL_Buffer *B, const char *s, 6631c6631 <void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l);--- >void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l);6645c6645 <void luaL_addsize (luaL_Buffer *B, size_t n);--- >void luaL_addsize (luaL_Buffer *B, size_t n);6658c6658 <void luaL_addstring (luaL_Buffer *B, const char *s);--- >void luaL_addstring (luaL_Buffer *B, const char *s);6671c6671 <void luaL_addvalue (luaL_Buffer *B);--- >void luaL_addvalue (luaL_Buffer *B);6691c6691 <void luaL_argcheck (lua_State *L, --- >void luaL_argcheck (lua_State *L, 6706c6706 <int luaL_argerror (lua_State *L, int arg, const char *extramsg);--- >int luaL_argerror (lua_State *L, int arg, const char *extramsg);6725c6725 <void luaL_argexpected (lua_State *L, --- >void luaL_argexpected (lua_State *L, 6740c6740 <typedef struct luaL_Buffer luaL_Buffer;--- >typedef struct luaL_Buffer luaL_Buffer;6812c6812 <char *luaL_buffaddr (luaL_Buffer *B);--- >char *luaL_buffaddr (luaL_Buffer *B);6825c6825 <void luaL_buffinit (lua_State *L, luaL_Buffer *B);--- >void luaL_buffinit (lua_State *L, luaL_Buffer *B);6839c6839 <size_t luaL_bufflen (luaL_Buffer *B);--- >size_t luaL_bufflen (luaL_Buffer *B);6851c6851 <char *luaL_buffinitsize (lua_State *L, luaL_Buffer *B, size_t sz);--- >char *luaL_buffinitsize (lua_State *L, luaL_Buffer *B, size_t sz);6863c6863 <void luaL_buffsub (luaL_Buffer *B, int n);--- >void luaL_buffsub (luaL_Buffer *B, int n);6876c6876 <int luaL_callmeta (lua_State *L, int obj, const char *e);--- >int luaL_callmeta (lua_State *L, int obj, const char *e);6897c6897 <void luaL_checkany (lua_State *L, int arg);--- >void luaL_checkany (lua_State *L, int arg);6909c6909 <lua_Integer luaL_checkinteger (lua_State *L, int arg);--- >lua_Integer luaL_checkinteger (lua_State *L, int arg);6922c6922 <const char *luaL_checklstring (lua_State *L, int arg, size_t *l);--- >const char *luaL_checklstring (lua_State *L, int arg, size_t *l);6941c6941 <lua_Number luaL_checknumber (lua_State *L, int arg);--- >lua_Number luaL_checknumber (lua_State *L, int arg);6953c6953 <int luaL_checkoption (lua_State *L, --- >int luaL_checkoption (lua_State *L, 6984c6984 <void luaL_checkstack (lua_State *L, int sz, const char *msg);--- >void luaL_checkstack (lua_State *L, int sz, const char *msg);6998c6998 <const char *luaL_checkstring (lua_State *L, int arg);--- >const char *luaL_checkstring (lua_State *L, int arg);7015c7015 <void luaL_checktype (lua_State *L, int arg, int t);--- >void luaL_checktype (lua_State *L, int arg, int t);7027c7027 <void *luaL_checkudata (lua_State *L, int arg, const char *tname);--- >void *luaL_checkudata (lua_State *L, int arg, const char *tname);7040c7040 <void luaL_checkversion (lua_State *L);--- >void luaL_checkversion (lua_State *L);7052c7052 <int luaL_dofile (lua_State *L, const char *filename);--- >int luaL_dofile (lua_State *L, const char *filename);7070c7070 <int luaL_dostring (lua_State *L, const char *str);--- >int luaL_dostring (lua_State *L, const char *str);7088c7088 <int luaL_error (lua_State *L, const char *fmt, ...);--- >int luaL_error (lua_State *L, const char *fmt, ...);7111c7111 <int luaL_execresult (lua_State *L, int stat);--- >int luaL_execresult (lua_State *L, int stat);7124c7124 <int luaL_fileresult (lua_State *L, int stat, const char *fname);--- >int luaL_fileresult (lua_State *L, int stat, const char *fname);7137c7137 <int luaL_getmetafield (lua_State *L, int obj, const char *e);--- >int luaL_getmetafield (lua_State *L, int obj, const char *e);7152c7152 <int luaL_getmetatable (lua_State *L, const char *tname);--- >int luaL_getmetatable (lua_State *L, const char *tname);7166c7166 <int luaL_getsubtable (lua_State *L, int idx, const char *fname);--- >int luaL_getsubtable (lua_State *L, int idx, const char *fname);7182c7182 <const char *luaL_gsub (lua_State *L, --- >const char *luaL_gsub (lua_State *L, 7199c7199 <lua_Integer luaL_len (lua_State *L, int index);--- >lua_Integer luaL_len (lua_State *L, int index);7214c7214 <int luaL_loadbuffer (lua_State *L, --- >int luaL_loadbuffer (lua_State *L, 7228c7228 <int luaL_loadbufferx (lua_State *L, --- >int luaL_loadbufferx (lua_State *L, 7252c7252 <int luaL_loadfile (lua_State *L, const char *filename);--- >int luaL_loadfile (lua_State *L, const char *filename);7263c7263 <int luaL_loadfilex (lua_State *L, const char *filename, --- >int luaL_loadfilex (lua_State *L, const char *filename, 7294c7294 <int luaL_loadstring (lua_State *L, const char *s);--- >int luaL_loadstring (lua_State *L, const char *s);7316c7316 <void luaL_newlib (lua_State *L, const luaL_Reg l[]);--- >void luaL_newlib (lua_State *L, const luaL_Reg l[]);7338c7338 <void luaL_newlibtable (lua_State *L, const luaL_Reg l[]);--- >void luaL_newlibtable (lua_State *L, const luaL_Reg l[]);7359c7359 <int luaL_newmetatable (lua_State *L, const char *tname);--- >int luaL_newmetatable (lua_State *L, const char *tname);7382c7382 <lua_State *luaL_newstate (void);--- >lua_State *luaL_newstate (void);7402c7402 <void luaL_openlibs (lua_State *L);--- >void luaL_openlibs (lua_State *L);7413c7413 <T luaL_opt (L, func, arg, dflt);--- >T luaL_opt (L, func, arg, dflt);7434c7434 <lua_Integer luaL_optinteger (lua_State *L, --- >lua_Integer luaL_optinteger (lua_State *L, 7452c7452 <const char *luaL_optlstring (lua_State *L, --- >const char *luaL_optlstring (lua_State *L, 7483c7483 <lua_Number luaL_optnumber (lua_State *L, int arg, lua_Number d);--- >lua_Number luaL_optnumber (lua_State *L, int arg, lua_Number d);7498c7498 <const char *luaL_optstring (lua_State *L, --- >const char *luaL_optstring (lua_State *L, 7515c7515 <char *luaL_prepbuffer (luaL_Buffer *B);--- >char *luaL_prepbuffer (luaL_Buffer *B);7527c7527 <char *luaL_prepbuffsize (luaL_Buffer *B, size_t sz);--- >char *luaL_prepbuffsize (luaL_Buffer *B, size_t sz);7543c7543 <void luaL_pushfail (lua_State *L);--- >void luaL_pushfail (lua_State *L);7554c7554 <void luaL_pushresult (luaL_Buffer *B);--- >void luaL_pushresult (luaL_Buffer *B);7566c7566 <void luaL_pushresultsize (luaL_Buffer *B, size_t sz);--- >void luaL_pushresultsize (luaL_Buffer *B, size_t sz);7577c7577 <int luaL_ref (lua_State *L, int t);--- >int luaL_ref (lua_State *L, int t);7605c7605 <typedef struct luaL_Reg { --- >typedef struct luaL_Reg { 7624c7624 <void luaL_requiref (lua_State *L, const char *modname, --- >void luaL_requiref (lua_State *L, const char *modname, 7648c7648 <void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup);--- >void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup);7675c7675 <void luaL_setmetatable (lua_State *L, const char *tname);--- >void luaL_setmetatable (lua_State *L, const char *tname);7687c7687 <typedef struct luaL_Stream { --- >typedef struct luaL_Stream { 7726c7726 <void *luaL_testudata (lua_State *L, int arg, const char *tname);--- >void *luaL_testudata (lua_State *L, int arg, const char *tname);7739c7739 <const char *luaL_tolstring (lua_State *L, int idx, size_t *len);--- >const char *luaL_tolstring (lua_State *L, int idx, size_t *len);7762c7762 <void luaL_traceback (lua_State *L, lua_State *L1, const char *msg, --- >void luaL_traceback (lua_State *L, lua_State *L1, const char *msg, 7778c7778 <int luaL_typeerror (lua_State *L, int arg, const char *tname);--- >int luaL_typeerror (lua_State *L, int arg, const char *tname);7793c7793 <const char *luaL_typename (lua_State *L, int index);--- >const char *luaL_typename (lua_State *L, int index);7804c7804 <void luaL_unref (lua_State *L, int t, int ref);--- >void luaL_unref (lua_State *L, int t, int ref);7824c7824 <void luaL_where (lua_State *L, int lvl);--- >void luaL_where (lua_State *L, int lvl);12053c12053 < Wed May 21 21:09:59 UTC 2025 --- > Fri Aug 7 20:25:45 UTC 2026 12056c12056 < Last change: revised for Lua 5.4.8 --- > Last change: revised for Lua 5.4.9 diff -Nr lua-5.4.8/doc/readme.html lua-5.4.9/doc/readme.html 32c32 <--- >
89,90c89,90 < Lua is implemented in pure ANSI C and compiles unmodified in all known < platforms that have an ANSI C compiler. --- > Lua is implemented in pure ISO C and compiles unmodified in all known > platforms that have an ISO C compiler. 112c112 < the top-level directory, which is named lua-5.4.8. --- > the top-level directory, which is named lua-5.4.9. 290c290 <
--- >
305c305 < Copyright © 1994–2025 Lua.org, PUC-Rio. --- > Copyright © 1994–2026 Lua.org, PUC-Rio. 332c332 < Wed May 21 21:12:01 UTC 2025 --- > Wed Aug 5 21:42:45 UTC 2026 335c335 < Last change: revised for Lua 5.4.8 --- > Last change: revised for Lua 5.4.9 diff -Nr lua-5.4.8/src/lapi.c lua-5.4.9/src/lapi.c 1091a1092 > luaC_checkGC(L); diff -Nr lua-5.4.8/src/lauxlib.c lua-5.4.9/src/lauxlib.c 503a504,517 > /* > ** Get/create metatable (MT) for boxes > */ > static void getBoxMT (lua_State *L) { > const char *BOXMT = "_UBOX*"; /* key for the metatable */ > if (luaL_getmetatable(L, BOXMT) == LUA_TNIL) { /* MT not created yet? */ > luaL_newlibtable(L, boxmt); /* create it */ > luaL_setfuncs(L, boxmt, 0); /* initialize it */ > lua_copy(L, -1, -2); /* change stack from nil,MT to MT,MT */ > lua_setfield(L, LUA_REGISTRYINDEX, BOXMT); /* store MT in the registry */ > } > } > > 508,509c522 < if (luaL_newmetatable(L, "_UBOX*")) /* creating metatable? */ < luaL_setfuncs(L, boxmt, 0); /* set its metamethods */ --- > getBoxMT(L); diff -Nr lua-5.4.8/src/ldo.c lua-5.4.9/src/ldo.c 208a209,227 > ** Check whether stacks have enough space to run a simple function (such > ** as a finalizer): At least BASIC_STACK_SIZE in the Lua stack, two > ** available CallInfos, and two "slots" in the C stack. > */ > int luaD_checkminstack (lua_State *L) { > if (getCcalls(L) >= LUAI_MAXCCALLS - 2) > return 0; /* not enough C-stack slots */ > if (L->ci->next == NULL && luaE_extendCI(L, 0) == NULL) > return 0; /* unable to allocate first ci */ > if (L->ci->next->next == NULL && luaE_extendCI(L, 0) == NULL) > return 0; /* unable to allocate second ci */ > if (L->stack_last.p - L->top.p >= BASIC_STACK_SIZE) > return 1; /* enough (BASIC_STACK_SIZE) free slots in the Lua stack */ > else /* try to grow stack to a size with enough free slots */ > return luaD_growstack(L, BASIC_STACK_SIZE, 0); > } > > > /* 506c525 < #define next_ci(L) (L->ci->next ? L->ci->next : luaE_extendCI(L)) --- > #define next_ci(L) (L->ci->next ? L->ci->next : luaE_extendCI(L, 1)) diff -Nr lua-5.4.8/src/ldo.h lua-5.4.9/src/ldo.h 82a83 > LUAI_FUNC int luaD_checkminstack (lua_State *L); diff -Nr lua-5.4.8/src/lgc.c lua-5.4.9/src/lgc.c 556,557c556,561 < else /* all weak */ < linkgclist(h, g->allweak); /* nothing to traverse now */ --- > else { /* all weak */ > if (g->gcstate == GCSpropagate) > linkgclist(h, g->grayagain); /* must visit again its metatable */ > else > linkgclist(h, g->allweak); /* must clear collected entries */ > } 1241c1245 < if (!g->gcemergency) --- > if (g->tobefnz != NULL && !g->gcemergency && luaD_checkminstack(L)) 1631c1635 < if (g->tobefnz && !g->gcemergency) { --- > if (g->tobefnz && !g->gcemergency && luaD_checkminstack(L)) { 1635c1639,1640 < else { /* emergency mode or no more finalizers */ --- > else { /* no more finalizers or emergency mode or no enough stack > to run finalizers */ diff -Nr lua-5.4.8/src/lparser.c lua-5.4.9/src/lparser.c 942a943,944 > checklimit(fs, cc.tostore + cc.na + cc.nh, INT_MAX/2, > "items in a constructor"); diff -Nr lua-5.4.8/src/lstate.c lua-5.4.9/src/lstate.c 105c105 < CallInfo *luaE_extendCI (lua_State *L) { --- > CallInfo *luaE_extendCI (lua_State *L, int err) { 107,110c107,113 < lua_assert(L->ci->next == NULL); < ci = luaM_new(L, CallInfo); < lua_assert(L->ci->next == NULL); < L->ci->next = ci; --- > ci = luaM_reallocvector(L, NULL, 0, 1, CallInfo); > if (l_unlikely(ci == NULL)) { /* allocation failed? */ > if (err) > luaM_error(L); /* raise the error */ > return NULL; /* else only report it */ > } > ci->next = L->ci->next; 112c115,117 < ci->next = NULL; --- > L->ci->next = ci; > if (ci->next) > ci->next->previous = ci; diff -Nr lua-5.4.8/src/lstate.h lua-5.4.9/src/lstate.h 398c398 < LUAI_FUNC CallInfo *luaE_extendCI (lua_State *L); --- > LUAI_FUNC CallInfo *luaE_extendCI (lua_State *L, int err); diff -Nr lua-5.4.8/src/lstrlib.c lua-5.4.9/src/lstrlib.c 760d759 < ms->matchdepth = MAXCCALLS; 767a767 > ms->matchdepth = MAXCCALLS; 769d768 < lua_assert(ms->matchdepth == MAXCCALLS); diff -Nr lua-5.4.8/src/lua.c lua-5.4.9/src/lua.c 305c305,306 < *first = i + 1; --- > /* if there is a script name, it comes after '--' */ > *first = (argv[i + 1] != NULL) ? i + 1 : 0; diff -Nr lua-5.4.8/src/lua.h lua-5.4.9/src/lua.h 21c21 < #define LUA_VERSION_RELEASE "8" --- > #define LUA_VERSION_RELEASE "9" 24c24 < #define LUA_VERSION_RELEASE_NUM (LUA_VERSION_NUM * 100 + 8) --- > #define LUA_VERSION_RELEASE_NUM (LUA_VERSION_NUM * 100 + 9) 28c28 < #define LUA_COPYRIGHT LUA_RELEASE " Copyright (C) 1994-2025 Lua.org, PUC-Rio" --- > #define LUA_COPYRIGHT LUA_RELEASE " Copyright (C) 1994-2026 Lua.org, PUC-Rio" 500c500 < * Copyright (C) 1994-2025 Lua.org, PUC-Rio. --- > * Copyright (C) 1994-2026 Lua.org, PUC-Rio. diff -Nr lua-5.4.8/src/lutf8lib.c lua-5.4.9/src/lutf8lib.c 67a68,69 > else if (c >= 0xfe) /* c >= 1111 1110b ? */ > return NULL; /* would need six or more continuation bytes */ 77c79 < if (count > 5 || res > MAXUTF || res < limits[count]) --- > if (res > MAXUTF || res < limits[count]) diff -Nr lua-5.4.8/src/lvm.c lua-5.4.9/src/lvm.c 364c364,369 < luaV_finishfastset(L, t, slot, val); --- > /* execute 'luaV_finishfastset', but preserving the original 't' > for the barrier. 't' and 'slot' can point to the same value, > and so the assignment can change 't' value */ > GCObject *h = gcvalue(t); > setobj2t(L, cast(TValue *,slot), val); > luaC_barrierback(L, h, val);