Skip to content

Maximum the Speed

Compare
Choose a tag to compare
@ThePhD ThePhD released this 22 Jun 17:41
· 1368 commits to develop since this release

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 of std::optional for sol::optional's choice of implementation
  • sol::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 and sol::variadic_args (e.g., the transparent 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 bolsters make_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.