#14839: lua-5.4.3
-------------------------+-----------------------
 Reporter:  renodr       |       Owner:  renodr
     Type:  enhancement  |      Status:  assigned
 Priority:  normal       |   Milestone:  10.2
Component:  BOOK         |     Version:  SVN
 Severity:  normal       |  Resolution:
 Keywords:               |
-------------------------+-----------------------

Comment (by renodr):

 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.

--
Ticket URL: <http://wiki.linuxfromscratch.org/blfs/ticket/14839#comment:2>
BLFS Trac <http://wiki.linuxfromscratch.org/blfs>
Beyond Linux From Scratch
-- 
http://lists.linuxfromscratch.org/listinfo/blfs-book
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to