Commit Graph

785 Commits

Author SHA1 Message Date
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
9a0b5ef34a fixed ipairs swap bug 2017-10-30 14:38:16 -04:00
ThePhD
882f337c48 vet propagation handlers 2017-10-26 13:15:02 -04:00
ThePhD
d107cb8cc9 allow final classes to be used
improve error reporting for stack checks
2017-10-26 12:54:30 -04:00
ThePhD
8811a268a2 improvement to how handling of safe exceptions are done 2017-10-20 20:59:52 -04:00
ThePhD
3ee36c7d2e fix proxy compare
try to silence some really dumb PVS STudio warnings
2017-10-16 19:28:43 -04:00
ThePhD
475b285347 update compat layer 2017-10-04 08:36:25 -04:00
ThePhD
8f007074ff I REMEMBER NOW 2017-10-03 10:46:26 -04:00
ThePhD
c5505c234a I'm not the smartest. 2017-10-03 08:26:23 -04:00
ThePhD
3660aec56e continue to analyze alignment issues 2017-10-03 08:11:48 -04:00
ThePhD
73484bf8e9 add smaller environment example that's easier to process
vet entire framework for aligned reads/writes of memory for userdata
update documentation, links and tutorials accordingly
2017-10-02 17:32:58 -04:00
ThePhD
228df2630d apple platforms use XSI-style strerror_r 2017-09-30 23:00:40 -04:00
ThePhD
5c9e8e2e45 is_stringable trait 2017-09-28 19:07:33 -04:00
ThePhD
0027ce6c84 make sure default userdata_getter does not error everything horribly
update single
2017-09-24 16:04:10 -04:00
ThePhD
6d879f571a add code to steal guts and grab stuff from other frameworks. 2017-09-23 20:26:03 -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
61d610bb70 make minor changes for XCode and Visual Studio Warning Level 4. 2017-09-21 19:24:21 -04:00
ThePhD
76d7195e64 test new compat mode (we only test text, but I don't really generate binary files, and it seems to play ball both ways, so...) 2017-09-16 14:18:45 -04:00
ThePhD
2aecb11e97 update single 2017-09-14 08:51:12 -04:00
ThePhD
1fc00278d5 repair all constructors, expand type recognition 2017-09-14 08:45:44 -04:00
ThePhD
ed341e00aa clang error on some proxy stuff 2017-09-14 00:46:38 -04:00
ThePhD
8d828ac47b implement main_reference as per @eliasdaler's suggestions 2017-09-14 00:35:40 -04:00
ThePhD
72143a494b don't forget to pop! 2017-09-13 11:45:31 -04:00
ThePhD
7ff3a390b1 final lua_xmove fixes 2017-09-13 11:29:32 -04:00
ThePhD
dcff5cdaa0 re-implement xmove implicit transfers and hope it works proper this time 2017-09-13 10:20:24 -04:00
ThePhD
5816c6c34b .clang-format the crap out of everything, I guess...! 2017-09-13 02:46:56 -04:00
ThePhD
e3bd984062 cannot do automatic lua_xmove because of state differences 2017-09-12 22:01:29 -04:00
ThePhD
0325e27454 update single and add unused parameter checks to thread 2017-09-12 19:52:09 -04:00
ThePhD
fcdb471167 update docs and benchmarks to include images directly to cut down on doc build warnings
add coroutine tests for new xmove copy and move constructors
cry tears because Lua does not kill the variables on the thread before killing the thread
2017-09-12 19:15:23 -04:00
ThePhD
8643dec9e5 with the xmove constructors, we finally are forced to do safety checks. 2017-09-11 16:44:02 -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
85c81f618c ignore test files
fix using wrong mode in the improper place
2017-09-11 13:25:05 -04:00
ThePhD
ac849a54c7 add compat53_ prefix where appropriate
make sure all checking macros define to 0 if not defined
make sure to vet use of `fsopen` on Windows since it it may or may not lock: use non-locking security version by default if possible
2017-09-11 13:15:27 -04:00
ThePhD
b4c1ab0915 add f and update single 2017-09-11 11:42:11 -04:00
ThePhD
7a29676633 update implementation of luaL_loadfilex 2017-09-11 11:31:18 -04:00
ThePhD
5fe73be5b5 use sizeof(buf), and update single 2017-09-10 12:28:39 -04:00
ThePhD
b38a382b03 fix compat loadfilex issues and investigate luajit completely 2017-09-10 12:08:43 -04:00
ThePhD
7aca8ac8cd fix macro definitions to define to 0 when not explicitly defined and requirements are not met
macro checks now used defined() plus an is-truth check to see if its valid
fix void return for declaration but int return for definition of luaL_loadbufferx and luaL_loadfilex
update macro style to be similar to the rest of the library
fix comment styling
2017-09-10 11:02:47 -04:00
ThePhD
ae07a5dd67 fix unused parameter warnings using (void)
make sure signatures of macro declarations match
2017-09-10 10:30:30 -04:00
ThePhD
2ca0393a94 hunt down all uses of the k variants of lua_pcall and lua_call 2017-09-10 04:11:30 -04:00
ThePhD
a6d209fbec Not sure I want these compat changes but hopefully I'll get all the tests to pass one day. 2017-09-10 04:02:50 -04:00
ThePhD
232abab96a EXPERIMENTAL DO NOT PULL
using new compatibility headers and testing on the tests (works on VC++ Lua 5.3 and LuaJIT so far)
2017-09-09 21:38:13 -04:00
ThePhD
d80748e6bb fix raw/global parameter swapping
prepare for compat changes
2017-09-07 00:51:35 -04:00
ThePhD
30c7e40f08 ipairs for array types too 2017-09-06 16:50:27 -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
adff0ccbce one day, i'll make a commit and it'll work first try 2017-09-05 23:06:02 -04:00
ThePhD
fc91147edc fix errors 2017-09-05 21:07:33 -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
a11e127d4d update single and remove traits from the right place properly 2017-09-03 09:52:51 -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
3549bfa8ae android fixes, wee? 2017-08-30 16:16:48 -04:00
ThePhD
dea0ec0a8a update single and properly group tests 2017-08-28 09:38:30 -04:00
Stanislav Zhukov
043deed2be Fix "'_MSVC_LANG' is not defined" warning 2017-08-28 09:28:50 -04:00
ThePhD
64baf6e491 testing fixes for proxy_base stuff 2017-08-27 01:59:37 -04:00
ThePhD
ec34e2ca96 inline iiiiiit 2017-08-27 00:41:10 -04:00
ThePhD
a39679293c add constructors and assignment operators for protected function results and the like
improve documentation about saving compilation time and space
add docs about the two `script_..._error` functions
update single
2017-08-27 00:05:35 -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
e4c3ded4b2 update table documentation and force traits not to use a deleted destructor -- rather, default it according to what it inherits 2017-08-22 10:53:46 -04:00
ThePhD
8d034adbdd Merge remote-tracking branch 'origin/develop' into develop
# Conflicts:
#	sol/simple_usertype_metatable.hpp
2017-08-21 15:34:21 -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
Elias Daler
06e0ba7417 Update simple_usertype_metatable.hpp
Renamed loop index to j to avoid hiding function parameter
2017-08-17 08:57:09 -04:00
ThePhD
488edd9cd1 More MinGW fixes because Thanks MinGW SeemsGood 2017-08-14 10:00:17 -04:00
ThePhD
9b1c70cdf8 jit should be opened with a non-global name of "jit". 2017-08-13 20:40:32 -04:00
ThePhD
3a12435b17 yaaay, mingw..... 2017-08-13 13:24:59 -04:00
ThePhD
769faeec64 e.e weak standards suck 2017-08-13 13:17:04 -04:00
ThePhD
5683216e26 thread_local weee 2017-08-12 09:42:44 -04:00
ThePhD
b81483a406 shift travis test to run the luaJIT on the most updated
block windows macro crap
update single
2017-08-11 22:27:05 -04:00
ThePhD
7af8b4e80a make sure tests don't throw where possible
edit stack checks
update container_usertype_as_container examples
2017-08-11 18:12:13 -04:00
mrgreywater
372db6f6ab large integer 2017-08-11 11:39:46 -04:00
ThePhD
5e109c2c37 clang keeps complaining about overload issues... 2017-08-11 10:36:11 -04:00
ThePhD
4f7f1af515 trying to pin this error down... 2017-08-11 10:21:15 -04:00
ThePhD
644a5c549b modifying tests to find out where crash is... 2017-08-11 09:59:42 -04:00
ThePhD
e0f6b636f1 now we start making a half-dozen commits trying to appease the various forms of clang++ and g++ 2017-08-11 09:40:56 -04:00
ThePhD
eb1560d12a add as_container documentation
improve exception documentation
improve state_view default handlers
add SAFE_PROPAGATION defines for compiling C++ as Lua
add examples for automatic operator registrations and as_container
fix tutorial code
change tests to not throw unless absolutely necessary
provide synchronization for file writing in tests
provide thread safety around thread tests for REQUIRE
add ostream automatic support
change 5.1 compat to only kick in luaL_loadbufferx and luaL_loadfilex when LuaJIT is version 2.0.1 and lower
2017-08-11 03:24:17 -04:00
ThePhD
b1f7d81acb immunize as_table from std::reference_wrapper and pointer types. 2017-08-07 15:10:05 -04:00
ThePhD
c4b13b2b73 modify table push operations 2017-08-07 14:54:17 -04:00
ThePhD
c8728af5b5 throwing is unreliable... sigh 2017-08-07 14:22:56 -04:00
ThePhD
6eaa277860 bootstrap update to link pthreads, on top of container_traits improvement because of clang++ bounds-checking 2017-08-07 13:58:06 -04:00
ThePhD
092fec7afb improve traits 2017-08-07 08:47:17 -04:00
ThePhD
62b242bc96 unused parameter, accidental string 2017-08-07 07:59:13 -04:00
ThePhD
f1ff3d6492 improve tests
change the default chunk name (and make it trail off if chunk name is too small)
minor changes to appease g++'s and clang++'s many warnings
2017-08-07 07:54:43 -04:00
ThePhD
b86d90f0e5 std::cend doesn't exist in C++11
remove unused variables detected by clang and g++
appease the parenthesis monster that was put into g++ 5.0
2017-08-07 02:27:08 -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
2d65f6caa5 vetting for C++17 2017-07-09 19:04:51 -04:00
ThePhD
afaecbad2c in_place will be the death of me 2017-07-09 13:44:28 -04:00
ThePhD
930f82cd5b missed some comment markers 2017-07-09 12:59: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
Rohlem
077448bfc8 enable move semantics when pushing rvalue optional
add forward_like-style cast to stack::pusher<optional<O>>
2017-07-06 20:13:09 -04:00
ThePhD
504f49f3c7 update state to use default handler 2017-07-04 04:41:32 -04:00
ThePhD
da28527421 prepare for container_traits to be a thing
update large parts of the documentation and add a new section to streamline information about functions
2017-07-01 11:02:15 -04:00
ThePhD
1a6937e24e Revert previous change of not pushing nil when we encounter a nullptr from special usertypes. If people want to check, they'll need to use optional or a raw pointer: messing with the raw usertype can also lead to some surprising problems, so we don't need to specialize for that use case. 2017-06-30 18:18:25 -04:00