- This is going to start the mark of v4
- pairs() implemented on tables for pairs-like iteration
- .error_handler variable is now hidden from view on protected function! Use set_error_handler/get_error_handler
- packaged_coroutine skeleton, but code is blacked out
- tests rearranged a little bit
- auxiliary keys lookup, search, and storage improved
- overhead of stored tables improved
- usertype registration and un-registration improved
- Make sure multiple states don't interfere with each other's keys
- Make sure re-registration of the same type does not cause too many problems
- Make sure the variadics test is present
- Make sure the storage keys are cleared out properly
- Ensure stack field_get/field_set has consistent metaprogramming for needing a pushed table, and at what offset
- Avoid duplicate logic in table_core for the same logic by deferring to detail helper
- Fixes#1095
- Not all were done, though; gave up at enumerations in an enum class being marked as shadowers.
- Which is just the dumbestt hing I've ever had to deal with. At least Clang is smarter!
- Inheritance was causing __index and __new_index to be overriden on the named metatables
- This meant special constructors and other metamethods might not have been set properly
- Use lua_rawset to directly slam dunk the value into the table
- add noexcept to some of the core function calls
- type usage for both trampolines and yields can now be fully tracked, at the expense of more template instantiations when using both
- exceptions should be less prone to explosion in C versions, but will break in C++ code (the trampolines need to be modified for usertype calls to avoid this problem, specifically)
- Add a new feature for SOL_FUNCTION_CALL_VALUE_SEMANTICS. Fixes#1059
- Detect deprecated/removed bit32 library. Fixes#1086
- Format the entire repository. Close#1073
- SOL_LUAJIT was not being properly defined. Close#1082
- Fix alignment issue. #1071
- readonly(...) should no longer issue errors in bogus manners
- binding for member function pointers and normal pointers should behave better now
- coroutines should now properly transfer the state/identity of their error handlers
- Fix empty base class optimization type
- Improve bind traits metaprogramming
- Add new define to catch-all for exception propagation
- Improve natvis
- Move test defines to build system, as we should
- Add a new example for multiple thread/states in Coroutines
- Add proper direct to mangling in Clang for Windows
- Exceptions are still busted on some platforms (Clang being quite funky)
- Not at all type safe: there should be some investigation into making it less unsafe to work with these things (albeit it looks like it would cost +1 pointer to serialize a string name for each callable in Lua, at LEAST)
- Must be opted into - see the documentation
- Fixes#1015
- A few drive-by fixes here and there
- New configuration test harness with CMake
- Weed out bugs in the numeric checking implementation
- Solve the problem with load_result/protected_function_result/unsafe_function_result being copyable and thus amenable to explosions. Fixes#995.
- Resolve the warning in sol::readonly. Fixes#1000.
- Looke into #1014. Not sure I can help there, honestly; looks like a mix up of multiply-loaded libraries and mixing the two.
std::is_const<T> will always be false if std::is_lvalue_reference<T> is true, we first have to strip off the reference to look at the const-ness. See https://en.cppreference.com/w/cpp/types/is_const
- Just let MSVC have crap codegen. The compiler sucks anyways. Fixes
- Add incremental GC power. Fixes#997.
- Add non-null offset manipulation. Did I mention I hate VC++ and how it implemented _Aligned? Fixes#1017.
Add a note to the documentation about SOL_NO_LUA_HPP being less preferred over the C++ defines, to Fix#1013.
Add regression tests (not yet fixed) so I can get to the bottom of VC++ being ass.
This might help with error reporting for larger non-text based chunks. Maybe helps #989, but that looks like it needs the user to define their own traceback handler.
Fix compilation issues with boost optional usage. Fixes#990
Fix more shitty docs (thanks, @nabijaczleweli)
Make thread local keyword optional by using a config macro SOL_NO_THREAD_LOCAL (off by default) (Fixes#979).
Cannot do anything for #985; that's an architecture issue.
Add some checks for container usertypes that masquerade as convertible from tables
Make sure shared_ptr-like types that are copyable are returned directly (but do not do this for move-only types)