Commit Graph

158 Commits

Author SHA1 Message Date
Orfeas Zafeiris
efef730ee8 Fix compilation issue with alignment (possibly) 2018-05-30 08:58:18 +03:00
ThePhD
9106597663 ensure constness does not infect unique usertypes
fix #644
2018-05-12 01:57:55 -06:00
ThePhD
fd58e7fcd1 fix #638
bump microsoft version check up (fx #639)
2018-05-10 05:30:51 -06:00
ThePhD
479575c0ca This update allows for many more definition macros and teh use of a configuration header to be combined with the single.py
Allow for configuration macros to aid in fixing #631
2018-04-17 12:29:03 -04:00
hzwar
2de6447e73 Compile fix for std::variant detection on Apple clang 9.1.0 (Xcode 9.3) (#628)
* Compile fix for std::variant detection on Apple clang 9.1.0 (Xcode 9.3)

* Update single

* Consistently check SOL_CXX17_FEATURES, SOL_STD_VARIANT

* Update single
2018-04-13 14:46:05 -04:00
ThePhD
a83091cba4 implement visible c:pairs() and c:at() functions for the user
adjust metatable types
add example with a std::pair-containing container
2018-03-10 20:45:01 -05:00
ThePhD
623a38e80e add exception trampoline support to sol2 and add an example on how to use it 2018-03-09 22:27:49 -05:00
ThePhD
68738cdc83 improve docs
refactor default state additions to let user do the same thing with less effort
prepare for sol::upvalues tinkering
2018-03-05 22:54:31 -05:00
ThePhD
94a63902a7 fix order of is_specialization_of, since mpark and arthur and friends convinced me of The One True Way
add workaround for VC++ /std:c++17 and /std:c++latest bugs
try to add MD/MDd flags, pray it works...
update single
2018-03-01 22:08:27 -05:00
ThePhD
9bddce66f8 Visual C++ introduced a regression in all frontends that were not /std:c++14.
Kind of tired, don't want to file the bug....
2018-02-28 19:20:20 -05:00
ThePhD
8d62fbaf5d add handle for potentially overloaded size() definitions (pray it works with noexcept anyhow). 2018-02-22 12:26:46 -05:00
ThePhD
c377ecebcb more travis stuff, add missing license notice, update license year 2018-02-19 21:15:26 -05:00
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