#14839 closed enhancement (fixed)
lua-5.4.3
| Reported by: | Douglas R. Reno | Owned by: | Douglas R. Reno |
|---|---|---|---|
| Priority: | normal | Milestone: | 11.0 |
| Component: | BOOK | Version: | SVN |
| Severity: | normal | Keywords: | |
| Cc: |
Description
New point version
Change History (4)
comment:1 by , 5 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:2 by , 5 years ago
Note:
See TracTickets
for help on using tickets.

The known bugs for lua-5.4.2 that were fixed in lua-5.4.3
'table.sort' does not work for partial orders. reported by Egor Skriptunof on 04 Jan 2021. existed since 5.3. Example: nan = 0/0 t = {nan, nan, 20, 10} table.sort(t) print(table.concat(t, ", ")) --> -nan, 20, -nan, 10 Patch: The manual is deceptive. It is necessary but not sufficient for the sort function to define a partial order. Parameter 'what' of 'debug.getinfo' cannot start with '>'. reported by Xmilia Hermit on 01 Feb 2021. existed since 5.1. Example: -- with Lua compiled with option LUA_USE_APICHECK debug.getinfo(0, ">") Patch: ldblib.c: @@ -152,6 +152,7 @@ static int db_getinfo (lua_State *L) { lua_State *L1 = getthread(L, &arg); const char *options = luaL_optstring(L, arg+2, "flnSrtu"); checkstack(L, L1, 3); + luaL_argcheck(L, options[0] != '>', arg + 2, "invalid option '>'"); if (lua_isfunction(L, arg + 1)) { /* info about a function? */ options = lua_pushfstring(L, ">%s", options); /* add '>' to 'options' */ lua_pushvalue(L, arg + 1); /* move function to 'L1' stack */ Error message in 'string.concat' uses wrong format. reported by no-n and Andrew Gierth on 14 Feb 2021. existed since 5.3.0. Example: -- the following call gives an error message with a wrong index table.concat({}, "", math.maxinteger, math.maxinteger) Patch: ltablib.c: @@ -146,7 +146,7 @@ static int tmove (lua_State *L) { static void addfield (lua_State *L, luaL_Buffer *b, lua_Integer i) { lua_geti(L, 1, i); if (!lua_isstring(L, -1)) - luaL_error(L, "invalid value (%s) at index %d in table for 'concat'", + luaL_error(L, "invalid value (%s) at index %I in table for 'concat'", luaL_typename(L, -1), i); luaL_addvalue(b); } 'isinstack' wrongly assumes we can work around an undefined behavior. reported by Yongheng Chen on 21 Feb 2021. existed since 5.3.0. Example: This bug probably will not cause a failure in flat-memory architectures. We can force it by compiling Lua with the gcc option '-fsanitize=pointer-subtract' (plus what it needs to work) and running the following code: print(setmetatable({}, {__index = 4}).x)https://www.lua.org/work/diffs-lua-5.4.2-lua-5.4.3.html contains a full diff
https://www.lua.org/bugs.html#5.4.2 contains bug fixes
https://www.lua.org/work/ is the Lua work area, where more information can be found
This should be a smooth update.