Maximum the Speed
This release brings Sol to its theoretical macro-less maximum performance while also adding support for many user requested features (with only a few potential edge cases left). Documentation has been improved and the full tutorial -- from writing variables to usertypes -- is now formally completed.
Some additional features of note:
boost::optional
is now detected and can be used in place ofstd::optional
forsol::optional
's choice of implementationsol::c_call
now provides additional performance by trading in clarity and readability. Use at your own discretion.- All functions bound to Lua can now take
sol::this_state
andsol::variadic_args
(e.g., thetransparent argument
types). This includes property getters and setters. - Casting to bases from a derived class that engages in multiple inheritance is now correct and part of the tests (e.g., regressions won't be tolerated in releases): [ IMPORTANT ] Note that you must specify
sol::base_classes, sol::bases<...>
for this to work proper. - Add a function
table::add( ... )
that 'appends' an entry as if to a linear sequential array. It has caveats to in order to behave this way: see documentation for details. - Add a utility function,
make_reference
, which bolstersmake_object
's capabilities.
Of course, bug fixes and many more new tests to ensure this functionality stays rock-solid.
This release marks being almost done with Sol's extended feature set. Potential addons include utf8/16/32 transformations for char16_t
, char32_t
and friends, as well as convenience wrappers for the Lua debug
API. However, it is unlikely I will have time to commit to these, as I have several summer classes and a lot of Graphics API work I have shelved in order to make 2.8 a reality. I will continue to do bugfixes and releases as necessary, and please do not hesitate to try your own hand at adding to Sol2
(or even tackling one of the features necessary, like a debug
wrapper!).
Thank you for all your support over the months.