Commit Graph

6 Commits

Author SHA1 Message Date
Vas Crabb
c75845b1ef 3rdparty/sol2: Fixed build with clang 19.
sol::optional<T&>::emplace was broken, and depended on the compiler not
checking that members exist if the template wasn't instantiated.  See
ThePHD/sol2#1606 and ThePHD/sol2#1648.
2024-11-18 06:19:06 +11:00
Vas Crabb
b7e0fa72b9 3rdparty/sol2: Work around another place where noexcept depends on class template arguments. 2024-05-08 03:58:36 +10:00
Vas Crabb
4da99a13f5 3rdparty/sol2: Worked around apparent regression in clang 18.
When taking a pointer to a static member function template in a class
template, clang reports a substitution error if the noexcept
specification uses an expression that depends on class template
arguments.

See llvm/llvm-project#91362 on GitHub.
2024-05-08 03:32:05 +10:00
Vas Crabb
b5475eb38b Various updates, mostly around Lua:
Compile Lua as C++.  When Lua is compiled as C, it uses setjmp/longjmp
for error handling, resulting in failure to unwind intermediate stack
frames.  Trying to ensure no objects with non-trivial destructors are in
scope when raising a Lua error is error-prone.  In particular,
converting an exception to a Lua error becomes convoluted, and raising a
Lua error from a constructor is effectively impossible.

Updated Lua to 5.4.4 - this includes a brand-new garbage collector
implementation with better performance.  The main thing removed is the
deprecated bitlib.

Updated sol2 to version 3.3.0 - this adds support for Lua 5.4 and fixes
a number of issues, including not correctly handling errors when Lua is
built as C++.

Updated LuaFileSystem to version 1.8.0 - this adds support for symbolic
links on Windows, as well as Lua 5.4 compatibility.

Updated LuaSQLite3 to version 0.9.5 - this fixes issues in
multi-threaded environments, as well as Lua 5.4 compatibility.

Fixed double-free after attempting to construct a debugger expression
from Lua with an invalid string, and exposed expression error to Lua in
a better way.

Added warning level print function to Lua.

Fixed saving cheats with shift operators in expressions, although this
code isn't actually used as there's no cheat editor.
2023-03-07 01:39:42 +11:00
Vas Crabb
f191d038ec Minimal changes to sol2 and bgfx to compile as C++17.
These changes should be sent upstream as pull requests.
2020-11-15 03:57:08 +11:00
Vas Crabb
55b8ca317a -Switch to building MAME as C++17.
* Updated sol2 to 3.2.2
* Updated pugixml to 1.10
* Increased minimum clang version to 6
* Cleaned up some stuff that can use new features
2020-11-15 03:53:47 +11:00