Hacker News new | ask | show | jobs
by lifthrasiir 2434 days ago
> Going to a new version is as simple as installing it and running your program.

Not true. Each minor version of Lua tended to inject incompatibilities that can't be trivially resolved. Lua 5.2 had made a catastrophic change to the environment [1], and Lua 5.3 was less severe but there are subtle issues with integer-number conversions you won't ever want in your large codebase [2]. And that is not a theoretical matter, we had to stick to Lua 5.1 exactly due to the environment changes even though 64-bit integers would have made our codebase much cleaner. And Lua 5.1 and 5.2 are no longer supported [3] (though as you have said, LuaJit may be supported) despite of all remaining issues.

[1] https://www.lua.org/manual/5.2/manual.html#8

[2] https://www.lua.org/manual/5.3/manual.html#8

[3] https://www.lua.org/versions.html

1 comments

True, the environment change was a big one.

But otherwise many codebases do move up Lua versions (outside of LuaJit), it's not a Python 3 "wait 10 years", Perl 6 "Wait 20 years" situation/

Python 2.7 was supported for a decade, providing a reasonable environment when Python 3 was not really matured enough. And while it didn't work, Python 3 tried to provide the migration path.

Perl 6 requires the full p5 compatibility as far as I recall. It was designed to coexist.

Lua only provides some C preprocessor flags for partial backward compatibility.