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 < Lua --- > Lua 35c35 < Copyright © 2020–2025 Lua.org, PUC-Rio. --- > Copyright © 2020–2026 Lua.org, PUC-Rio. 88c88 <
  • 3.4.12 – Lists of expressions, multiple results, and adjustment --- >
  • 3.4.12 – Lists of expressions, multiple results, and adjustment 671c671 < Wed May 21 21:11:33 UTC 2025 --- > Thu Aug 6 00:05:48 UTC 2026 674c674 < Last change: revised for Lua 5.4.8 --- > Last change: revised for Lua 5.4.9 Binary files lua-5.4.8/doc/logo.gif and lua-5.4.9/doc/logo.gif differ Binary files lua-5.4.8/doc/logo.png and lua-5.4.9/doc/logo.png differ diff -Nr lua-5.4.8/doc/manual.css lua-5.4.9/doc/manual.css 9a10,13 > pre.api { > white-space: normal ; > } > diff -Nr lua-5.4.8/doc/manual.html lua-5.4.9/doc/manual.html 13c13 < Lua --- > Lua 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 to lua_createtable(L, 0, 0). --- > It is equivalent to lua_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 < Lua --- > Lua 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 < [Open Source Initiative Approved License] --- > [Open Source Initiative Approved License] 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);