- Just how incompatible is 5.3 with 5.1?
There are some changes that may break existing scripts. Some special Lua functions don't exist anymore or have changed their meaning.
- Does the engine code that hooks into Lua do anything that is incompatible with Lua 5.3 itself?
The engine code is not the problem since we can always change that to be compatible again. There are some minor changes to the C API but nothing that can't be fixed by a few code changes.
- What kind of effort would be needed to migrate existing scripts? Are we talking major community wide effort to try to reach all the bases?
Since the existing scripts are within released mods there is not much we can do to fix them. We could do community patches for those mods but if there are source incompatibilities then that general issue can't be fixed.
- Will there be any way for mods to maintain support for both older and newer builds with different Lua versions?
The Lua scripts can check the Lua version and check if some required function exists to maintain compatibility with newer or older Lua versions.
- Could we try to link both interpreters and allow a transitional period where we support both Lua 5.1 and Lua 5.3 scripts?
Unless we put the different Lua interpreters into DLLs and then manually load the API functions from the correct DLL it will not be possible to keep both versions in the same executable.
Also, if we move to 5.3 we lose the ability to switch to LuaJIT if we ever want to do that. I don't think is is a big issue since we can always compile Lua 5.1 as part or our build if the system does not have that library.