Commit Graph

146 Commits

Author SHA1 Message Date
ThePhD
67116a67f9 Fixes #588
Tentatively supports (?) #589 with sol::yielding and sol::yielding_t
Added Catch as a cmake module
2018-02-17 00:18:26 -05:00
ThePhD
2e648638ef Fixes #580
Adds some code for #579 to warn of bad errors
Update documentation and examples, as well as fix fPIC with static builds on Linux
2018-02-08 23:19:45 -05:00
ThePhD
f48ba8b101 Add shiny new unicode methods to replace shitty codecvt. It needs some work to be safer but this will work for now
string_view to avoid allocations added to a few more places
stack proxy's unused members were removed
container_traits now has the index_adjustment function added onto it.
Fixes #571
Fixes #574
Fixes #575
2018-02-03 01:29:06 -05:00
ThePhD
732b4bd700 add new tests for unqualified returns through as_nested/as_table 2017-12-28 12:11:12 -05:00
ThePhD
0e19156d52 update everything for the new cmake build, prepare for new .travis.yml and new appveyor.yml
Add name of project at top of license
fix container_traits with respect to boost::property_tree: Fixes #554
fix as_table with a vector of tuples (forward_get ignored constness): Fixes #552
2017-12-20 04:58:50 -05:00
ThePhD
c0660b454c fix multiply-declared forward declaration values
transition to CATCH2 (no changes really)
fix diagnostic printout for single.py
update ignores
update CMake to download CATCH single
update single
2017-12-11 12:31:30 -05:00
ThePhD
e06d2fb581 add single, add examples 2017-12-10 15:56:49 -05:00
ThePhD
4256c07ee0 error handling improvements
update single
2017-11-17 16:54:42 -05:00
ThePhD
2d31d84070 attempt to wrangle exception handling on multiple systems 2017-11-11 07:42:14 -05:00
ThePhD
2203c1f64f Overhaul examples
Overhaul docs for examples
Overhaul function_result and protected_function_result proxies
2017-11-09 17:41:46 -05:00
ThePhD
10b1bb04a9 formalize unsafe_function_result
add index-based getter to function_result
add safety checks for double deleters and other things of that nature
2017-11-07 20:19:36 -05:00
ThePhD
882f337c48 vet propagation handlers 2017-10-26 13:15:02 -04:00
ThePhD
8811a268a2 improvement to how handling of safe exceptions are done 2017-10-20 20:59:52 -04:00
ThePhD
5c9e8e2e45 is_stringable trait 2017-09-28 19:07:33 -04:00
ThePhD
8f3699bea5 initializer_list support and tests, waiting for the day when we can use some kind of lua_any to store any value into Lua and thus have initializer lists become the new hot stuff 2017-09-22 18:54:49 -04:00
ThePhD
290a67134a Make sure nil_t is still available, even if nil is defined.
One day, there'll be a time when I get nearly everything right
2017-09-22 11:04:46 -04:00
ThePhD
0114882e13 force usage of lua_nil across everything and add a proper macro / feature-test for it 2017-09-22 07:30:41 -04:00
ThePhD
1b23ad8b4f attempt to silence warnings about array usage and keep a definition check for nil
add some "max size" checks in other places.
2017-09-21 21:32:52 -04:00
ThePhD
1fc00278d5 repair all constructors, expand type recognition 2017-09-14 08:45:44 -04:00
ThePhD
8d828ac47b implement main_reference as per @eliasdaler's suggestions 2017-09-14 00:35:40 -04:00
ThePhD
5816c6c34b .clang-format the crap out of everything, I guess...! 2017-09-13 02:46:56 -04:00
ThePhD
074b9ae655 add xmove constructors for function, (light )userdata, table, reference and object
add additional coroutine example
improve traits
add tests for thread transfers
update single
2017-09-11 16:12:23 -04:00
ThePhD
fb276676d1 create and test raw_set and raw_get
add `new_enum` overload for initializer lists
add ipairs overload for 5.2 users
2017-09-06 15:09:51 -04:00
ThePhD
eb313eb8bc remove string_shim and just outright make a basic_string_view mockup that serves our purposes. It won't be a real string view, but then again nobody should be using it extensively!~ 2017-09-05 20:29:21 -04:00
ThePhD
761641202f initial __type implementation, need to bikeshed over what goes in it and how to query information (sol::lib::extensions time?)
fixed `sol::string_view` not pushing a string based on return type
2017-09-05 13:58:17 -04:00
ThePhD
54bcda140c upgrade checkers and handlers to take a semi-optional "reason" type (const char* c-string desired)
add constructor_handler in same vein of handlers
add argument_handler in same vein of handlers
rewrite env_t checkers
2017-08-31 20:47:09 -04:00
ThePhD
64baf6e491 testing fixes for proxy_base stuff 2017-08-27 01:59:37 -04:00
ThePhD
d98155cd22 update examples and documentation, proof typing for user 2017-08-24 14:57:28 -04:00
ThePhD
92a6fb8c11 update all the examples
fix implicitly convertible function pointers from classes using `call_detail`'s `lua_call_wrapper`
specificaly add documentation for working with `std::function`
2017-08-24 14:39:02 -04:00
ThePhD
0c9d567d0a "automatic usertypes" are now applied everywhere, regardless of what happens
new sol::filters (currently undocumented)
new gc tests, new plain_type tests
core abstractions over usertypes streamlined
SOL_STRINGS_ARE_NUMBERS triggers added
update single
2017-08-21 15:25:43 -04:00
ThePhD
ca685e01c9 gcc plagues me , and will continue to, for a while to come
BUT IT WOOORKS!
2017-08-07 02:07:21 -04:00
ThePhD
03c229b25b overhaul examples and add 2 new ones in preparation for the coming hell
fix how `stack_aligned_protected_function` and its friends behave
add new internal handler details to allow for stack-based handlers with maximum performance
update `string_shim` typedef to simply be called `string_view` and use `string_view` in all public-facing APIs.
2017-08-06 12:20:32 -04:00
ThePhD
104485bebd this mega commit prepares to fix all of the issues listed in the repository for the past 3 weeks 2017-08-05 19:20:28 -04:00
ThePhD
e69e7c79fa C++17 additions: std::variant, string_views of all types, checker for if we have the right version
added variadic_results, to return a variable number of arguments to Lua
added variadic_results and as_results
added improved function examples (for multiple results and split overloading out)
added tests for variadics
added tests for C++17 utilities
added a forwarding header
added a specific `unsafe_function` header
added and improved documetation pages
2017-07-09 12:54:52 -04:00
ThePhD
17271c84cb BREAKING CHANGE: std::pair for regular containers that are not marked as as_table_t or as_nested will now behave like regular containers and not force themselves to be key-value pairs. table-style serialization is still unaffected. 2017-06-23 18:07:24 -04:00
ThePhD
b811e73b90 who knew noexcept proofing would be so hard...? And there's so many places it could be activated in...! 2017-06-17 00:43:26 -04:00
ThePhD
11916a7c72 add noexcept function type barriers and guards
noexcept-proof function call trampolines
add noexcept tests to ensure its being checked
TODO: check g++ 7.1 builds when using -std=c++17 ...
2017-06-16 18:43:40 -04:00
ThePhD
090c834f2c Let nullptr pass through, but we still can't do a conversion from lua_nil to unique_usertypes. 2017-06-07 11:02:47 -04:00
ThePhD
c6d11a2bac fix index and newindex semantics on simple_usertypes
we do not have to hit the metatable by-name since we go to special lengths to ensure we have a simple usertype table we can use
2017-05-28 19:14:18 -04:00
ThePhD
34b81bef6b Handle qualified name failures of VC++, where using templates do not match the fully qualified names of what they alias to (Thanks, VC++) 2017-05-15 10:41:50 -04:00
ThePhD
58003669fb this_environment is now live 2017-05-09 13:24:56 -04:00
ThePhD
a3d6f8044c working stuff!~ 2017-04-19 13:00:47 -04:00
ThePhD
2acc8bee14 get_environment, documentation updates, and tests 2017-04-18 20:23:20 -04:00
ThePhD
8c94cb730b Fix static initialization order fiasco with meta_function_names 2017-04-04 16:16:22 -04:00
ThePhD
185f5ecc05 new travis environments to be tested out for osx stuff, plus new_table docs and environments on function calls 2017-04-02 22:37:01 -04:00
ThePhD
309325d0f5 New feature: environment plus documentation about the environment table and its usage with scripts. 2017-04-02 16:10:00 -04:00
ThePhD
59b196a1db add a new kind of error handling script call, updating docs and examples 2017-03-31 17:38:04 -04:00
ThePhD
4094ba3e7a New feature: nested getter for complex nested tables, plus docs and example 2017-03-30 14:11:43 -04:00
ThePhD
791aecbcd0 New documentation for as_table and some container examples 2017-03-30 01:31:55 -04:00
ThePhD
dce8053248 Time to break everything.
Added the ability to extend all usertypes at runtime. The performance implications need to be examined closely.
variadic_args documentation was updated with the desired example demonstrating proper usage
usertype examples were updated demonstrating Lua runtime and C++ runtime updating of a usertype table
SOL_SAFE_FUNCTIONS is now part of the definitions and defined (thanks @eliasdaler)
2017-03-12 21:35:19 -04:00