Hello Orbiter community,
We're at a crossroads regarding Orbiter's Lua language support implementation, and would like to get community input on the best way to proceed.
There is an ongoing push to modernise Orbiter codebase, namely:
Keeping in mind above 3 priorities, we've arrived at a decision point. Orbiter uses Lua 5.1, and due to various reasons listed below it would be beneficial to consider upgrade to 5.4
The primary benefits of upgrading would be infrastructure-related:
1. Linux Compilation Support - This upgrade would remove one of the key blockers for Linux builds
2. Modern Language Support - 5.1 is not supported, upgrade needs to happen at some point
3. Simplified Dependencies - We could leverage vcpkg for more streamlined dependency management
The main downside this upgrade brings is that - due to lack of backward compatibility between Lua versions - a lot of existing Lua-based add-ons & Orbiter code would break. Any addon using Lua may end up on incompatible list will need some changes to accommodate the upgrade. There is also some community effort which would be required to update Lua scripts used within Orbiter itself
There has been an attempt to use luajit in Orbiter, which also supports 5.1 version of the language. However, using Luajit will lock us out of using vcpkg (due to luafilesystem package requiring Lua 5.3 there), as well as language upgrade in future
Please share your thoughts on how we should proceed:
If you're an add-on developer, we'd especially appreciate your perspective on:
This is an exploratory discussion at this stage - no decisions have been made, and your
input will help shape the path forward
We're at a crossroads regarding Orbiter's Lua language support implementation, and would like to get community input on the best way to proceed.
There is an ongoing push to modernise Orbiter codebase, namely:
- To remove support for obsolete platforms (x86, DX7)
- To achieve building Orbiter under Linux
- To support & improve the "plug & play" nature of Orbiter development - you just need Visual Studio and a codebase checkout to compile
Keeping in mind above 3 priorities, we've arrived at a decision point. Orbiter uses Lua 5.1, and due to various reasons listed below it would be beneficial to consider upgrade to 5.4
Why Consider This Change?
The primary benefits of upgrading would be infrastructure-related:
1. Linux Compilation Support - This upgrade would remove one of the key blockers for Linux builds
2. Modern Language Support - 5.1 is not supported, upgrade needs to happen at some point
3. Simplified Dependencies - We could leverage vcpkg for more streamlined dependency management
The Challenge
The main downside this upgrade brings is that - due to lack of backward compatibility between Lua versions - a lot of existing Lua-based add-ons & Orbiter code would break. Any addon using Lua may end up on incompatible list will need some changes to accommodate the upgrade. There is also some community effort which would be required to update Lua scripts used within Orbiter itself
Other factors to consider
There has been an attempt to use luajit in Orbiter, which also supports 5.1 version of the language. However, using Luajit will lock us out of using vcpkg (due to luafilesystem package requiring Lua 5.3 there), as well as language upgrade in future
What is needed?
Please share your thoughts on how we should proceed:
- Proceed with the 5.4 upgrade?
- Switch to Luajit, keeping 5.1 language but removing/adapting luafilesystem?
- Keep Lua 5.1 & invest in hacks/workarounds?
- Add more information?
If you're an add-on developer, we'd especially appreciate your perspective on:
- How this would impact your development work
- Would you be willing to update your add-ons
- Any specific concerns about the migration process
This is an exploratory discussion at this stage - no decisions have been made, and your
input will help shape the path forward
