Releases: ThePhD/sol2
v3.3.0
🎉 v3.3.0
This follows the version 3 release, incorporating a few improvements from the still-in-progress v4 and a number of critical fixes for keep-alive during iteration (especially w.r.t. Lua coroutines) and fixes for Lua 5.4. It also cleans up some logical bugs in many different places and improves the header hygiene.
It also gives a chance to update various package managers which were waiting for a newer stable release.
What's Changed
- Add CMake option to disable installation by @violinyanev in #1056
- Fix typos in configuration macros. by @atom0s in #1058
- Add override qualifier to bad_optional_access::what() by @cuavas in #1065
- Fixed typos in quick n' dirty tutorial. by @TwinHits in #1077
- Ignore unused variables; Ignore -Wshadow and -Wconversion on Clang by @dimitrisudell in #1059
- Fix argument usage typo. by @atom0s in #1091
- Support constexpr boost::none with recent Boost versions. by @vlichevsky in #1129
- Remove duplicate constructor type section from docs by @Riyyi in #1116
- Added FFI enabled check by @RinatNamazov in #1194
- Fix sol2 cmake include failing as a dependency by @edunad in #1196
- Fix aligned memory allocation by @Smertig in #1193
- Update
is_string_constructible
for C++23 P2166R1 by @StephanTLavavej in #1222 - Fixed:
std::cout
not found on msvc by @Klaim in #1295 - Add missing parenthesis for std::max by @halx99 in #1292
- Fix issues with
is_c_str_or_string
andis_c_str
by @cschreib in #1331 - 🐛 Fix #1346 by @Immortalety in #1347
- ✨ Test and fix #1315 by @ShepherdSoasis in #1369
- CMake: Build LuaJIT: use copy_if_different by @DerSauron in #1352
- Fix compile error when registering new user types with operator() by @matusfedorko in #1277
- fix #1354 by @qinix in #1355
New Contributors
- @violinyanev made their first contribution in #1056
- @atom0s made their first contribution in #1058
- @cuavas made their first contribution in #1065
- @TwinHits made their first contribution in #1077
- @dimitrisudell made their first contribution in #1059
- @vlichevsky made their first contribution in #1129
- @Riyyi made their first contribution in #1116
- @RinatNamazov made their first contribution in #1194
- @edunad made their first contribution in #1196
- @StephanTLavavej made their first contribution in #1222
- @Klaim made their first contribution in #1295
- @halx99 made their first contribution in #1292
- @cschreib made their first contribution in #1331
- @Immortalety made their first contribution in #1347
- @ShepherdSoasis made their first contribution in #1369
- @DerSauron made their first contribution in #1352
- @matusfedorko made their first contribution in #1277
- @qinix made their first contribution in #1355
Full Changelog: v3.2.3...v3.3.0
v3.2.2
This release is a patch update. It adds a new feature but because that feature is gated behind a macro definition, the minor nor major versions are changed. New code should be unaffected!
- New feature: function pointer retrieval! It is not on by default!
- Please note this is unsafe, see the documentation for
SOL_GET_FUNCTION_POINTERS_UNSAFE
- https://sol2.readthedocs.io/en/latest/safety.html
- Please note this is unsafe, see the documentation for
- A UBSan error for null pointer arithmetic was fixed up, resulting in UB-free codegen (It hadn't become a problem yet, but it was probably going to! #1017)
load_result
and friends are not copyable. They were never supposed to be, and since I only ever used them transiently it almost never came up until now (#995)- An API for accessing and messing with the garbage collector has been added (#997)
- MoonJIT is totally supported. The author was very nice to us! (#967)
- Recently, documentation was improved around certain configuration macros (https://sol2.readthedocs.io/en/latest/safety.html):
SOL_CONTAINERS_START
SOL_NO_THREAD_LOCAL
SOL_ID_SIZE
- Configuration has been reworked through the library:
- The user-facing definitions are, however, the same, and cleaned up a little bit.
- You can place a folder and a in some directly that follows the convention
<sol/config.hpp>
and put your macro definitions in there to make it easier to manage your library-specific defines. This makes it easier to keep all your definitions together.
- Build issues on all systems from Mac OSX with Apple Clang to Windows with VC++ should be resolved now! (#1021 #1031 #1034)
- Issues with certain constant definitions in the Lua 5.4 release should not happen.
- Fixed some bugs in the use of
is_lvalue_reference
(thanks, #1028 !)
v3.2.1 - Please Stop Erroring Me Visual Studio
This release is basically what it says on the tin: please stop erroring my users, Visual Studio.
Pretty please. :)
Docs Fixup, Minor Tweaks
The tutorials were made better!
-
C++ in Lua walkthrough was greatly enhanced for quality: https://sol2.readthedocs.io/en/latest/tutorial/cxx-in-lua.html
-
Ownership is now very clearly explained (or at least better than before): https://sol2.readthedocs.io/en/latest/tutorial/ownership.html
-
And various other minor documentation improvements
Some variant fixes were deployed and more CMake fiddling was done.
Have fun!~
sol3
This is the official sol3 release. Get it while it's hot, and read up about it using the blog posts and the documentation:
- https://thephd.github.io/sol3-released
- https://thephd.github.io/sol3-compile-times-binary-sizes
- https://sol2.rtfd.io
Thank you for your love and support over the years!
v2.20.6 - Handling the Regular Optional
This fix backports a handling of the regular std::optional
properly.
Thanks to everyone who made this release nice!
v2.20 Bugfixes
This release is a move of some of the bugfixes and improvements that were contained in sol3 back into sol2, with some modification to not break things!
This closes all known open issues, including those reported privately VIA Discord and E-mail. Thank you for your help in making sol2 great!
v2.20 Bugfix
This release adds a number of bug fixes to 2.20 backported from current sol3 development. No major features were added in this change and it solves quite a few problems.
Last official v2 Release
With the new logo in place and everything prepared, I'm going to be focusing on developing for sol v3 now.
This last release focuses on getting the semantics for configuration macros right and fixing some older warnings. It also handles some integer madness and does its best to straighten out exceptions.
Newer development is going to specifically use features from C++17 and C++20, in an effort to bring the same performance, with BETTER, compile times and to investigate some of the issues discovered while writing the C++Now talk. This means that the v2.x.x releases will still work with VS 2015, and older toolsets, but the stuff in the branch sol3 will not.
The sol3 branch will not be merged anytime soon, so don't worry about anything breaking unduly!
Thanks for using sol2.
friendly state injection, sol::reference / sol::object and friends now take nil
This release is a small Quality of Implementation fix. sol::reference
and sol::object
(but not their derived types) accept nil/none as types now when passing from C++-bound Lua functions. This emulates the default behavior of how Lua functions work. It also contains minor fixes for const vs. nonconst size()
functions.
This release also allows you to call the same function sol2 uses to set up good default tracebacks and a proper default protected_function
error handler.
Docs: sol2.readthedocs.io/en/latest/api/state.html#sol-state-automatic-handlers
Example: https://github.com/ThePhD/sol2/blob/develop/examples/functions_empty_arguments.cpp