Petr Vaněk posted on Mon, 12 Jan 2026 18:30:30 +0100 as excerpted: > 2. why are we still on Lua 5.1 by default? Did we consider move to > more recent version?
I didn't see this bit answered so here's what I understand as a lua user focused on conky lua scope starting with lua 5.3 and now on 5.4 (only, FWIW handled in the ebuild with LUA_COMPAT=( 5.4 ) before inherit lua- single), so 5.1 is history I've not focused on directly or experienced: A 5.1 default is likely due to an emphasis on luaJIT compatibility with luaJIT stuck on 5.1, with that in turn due to the strong incompatibilities introduced in each 5.x version, particularly the scoping rules in 5.2 and int in 5.3 (5.1 was all float). This 2020 LWN article covering the introduction of 5.4 mentions both and says the luaJIT author Mike Pall has been a major critic of such backward- incompatible changes in the main lua interpreter. Two paragraphs from LWN: https://lwn.net/Articles/826134/ Major versions of Lua are released every few years, not on any particular release cycle. The previous major version, 5.3, was released over five years ago, in January 2015, with the addition of a separate integer type (previously Lua used only floating-point numbers), bitwise operators, a basic UTF-8 library, and many minor features. [Much farther down the article] Those who need much higher performance can use Mike Pall's LuaJIT, a just- in-time compiler for Lua 5.1 that is significantly faster than the stock Lua interpreter. However, LuaJIT hasn't added any of Lua's new features since version 5.1 (which was released in 2006). Doing so would be quite an undertaking due to many breaking changes, including new scoping rules in 5.2 and the new integer type in 5.3. For this reason, Pall has been a vocal critic of the backward-incompatible changes that the Lua team makes. Yes that LWN article is from 2020 but it seems the (base) 5.1 api/abi match status hasn't changed as the luaJIT site still says 5.1, tho mentioning selected extensions from newer: https://luajit.org/extensions.html (quote from near the top): LuaJIT is fully upwards-compatible with Lua 5.1. It supports all standard Lua library functions and the full set of Lua/C API functions. LuaJIT is also fully ABI-compatible to Lua 5.1 at the linker/dynamic loader level. This means you can compile a C module against the standard Lua headers and load the same shared library from either Lua or LuaJIT. LuaJIT extends the standard Lua VM with new functionality and adds several extension modules. Farther down the page it lists its extensions including those from 5.2 and 5.3 (nothing from 5.4 listed). -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman
