Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation:
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.
is_string_constructible
for C++23 P2166R1 by @StephanTLavavej in https://github.com/ThePhD/sol2/pull/1222
std::cout
not found on msvc by @Klaim in https://github.com/ThePhD/sol2/pull/1295
is_c_str_or_string
and is_c_str
by @cschreib in https://github.com/ThePhD/sol2/pull/1331
Full Changelog: https://github.com/ThePhD/sol2/compare/v3.2.3...v3.3.0
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!
SOL_GET_FUNCTION_POINTERS_UNSAFE
- https://sol2.readthedocs.io/en/latest/safety.html
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)SOL_CONTAINERS_START
SOL_NO_THREAD_LOCAL
SOL_ID_SIZE
<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.is_lvalue_reference
(thanks, #1028 !)This release is basically what it says on the tin: please stop erroring my users, Visual Studio.
Pretty please. :)
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!~
This is the official sol3 release. Get it while it's hot, and read up about it using the blog posts and the documentation:
Thank you for your love and support over the years!
This fix backports a handling of the regular std::optional
properly.
Thanks to everyone who made this release nice!
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!
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.
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.
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