Commit Graph

195 Commits

Author SHA1 Message Date
ThePhD
e21614d7f6
I n t e r f a c e l i b r a r i e s a r e r e a l l y g o o d 2018-12-27 12:41:43 -05:00
ThePhD
f6e6398f64
Be consistent with the use of target_link_libraries...
I really dislike CMake
2018-12-27 12:37:56 -05:00
ThePhD
486086ffe0
fix up CMake files once more, and hopefully prepare for a new test coverage paradigm
notably, test normal + single + generated + Lua 5.3.5 only once,
then only run the runtime_test and compile_test for normal for all other permutations to help increase text matrix throughput
2018-12-27 02:17:25 -05:00
ThePhD
9760a400cd
testing and test matrix improvements 2018-12-23 13:18:14 -05:00
ThePhD
a6abc0a0d9
update everything 2018-12-22 15:36:42 -05:00
ThePhD
88cafb281f
improve all tests, fix all tests, and improve metatable for GCC builds 2018-12-21 01:07:05 -05:00
ThePhD
c35c66baf7
update all tests and fix all the small derps and typos 2018-12-20 01:18:07 -05:00
ThePhD
bbd5bd7fa1
Fix Linux build as best as possible while size issues still remain with MinGW. 2018-12-19 23:17:15 -05:00
ThePhD
162746dac9
Merge branch 'develop' into sol3
# Conflicts:
#	docs/source/tutorial/variables.rst
#	include/single/sol/sol.hpp
#	include/single/sol/sol_forward.hpp
#	include/sol/proxy.hpp
#	sol/usertype_metatable.hpp
2018-11-10 07:12:13 -08:00
ThePhD
2cfbc8c0ea
Fix up the remaining sol2 issues, prepare for more sol3 stuff 2018-11-10 06:41:06 -08:00
ThePhD
a7048aea45
fix up variables tutorial 2018-11-09 14:36:27 -08:00
ThePhD
0a9dc24f1f
first big sol3 push... tests not updated yet 2018-09-27 22:27:38 -07:00
ThePhD
0e321272e6
update docs a bit, think aobut changes to container_traits and friends... 2018-08-10 11:17:31 -04:00
ThePhD
4f366a17a9 begin migrating benchmarks and preparing documentation for sol3 2018-05-17 02:31:28 -04:00
ThePhD
c72a012927 Fix Visual Studio 2015 builds, fix error handling printouts / exceptions, fix constexpr usage that trips up Visual Studio 2015. 2018-04-17 20:08:07 -04:00
ThePhD
818f766066 Trying to clean up all the macros. One day, I'll finish the configuration layer and everything will be beautiful. 2018-04-17 15:04:17 -04:00
ThePhD
612c1232e2 add reference to stack here 2018-04-01 21:38:21 -04:00
ThePhD
0c380da637 in place modification function there, but it won't be documented because it's a BAD IDEA 2018-03-30 04:51:29 -04:00
ThePhD
c464888c3e add more explicit readme notes for things we support
add examples about shared/unique
update documentation
2018-03-25 12:45:28 -04:00
ThePhD
8e8dd379ff update tests because AAAAHHHH exceptions 2018-03-22 10:59:37 -04:00
ThePhD
b447c3d69c Add custom metatable and c_array example 2018-03-21 17:19:46 -04:00
ThePhD
947945d098 Full documentation overhaul. Add a billion more examples. Fix r-values getting stuck as r-value references in proxy keys. 2018-03-16 16:47:09 -04:00
ThePhD
6c40c559e3 prepare for new usertype
change how type T is gleaned from destructors and constructors in case of new syntax
add a hell of a lot more examples, update and clean documentation
2018-03-15 17:16:28 -04:00
ThePhD
22ecb743d7 container with pairs had some bad syntax, oops 2018-03-10 22:00:08 -05: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
6a6025393f meow 2018-03-09 23:40:37 -05:00
ThePhD
c8bfcd2dc2 update stack docs
fix examples
do not throw std::exception directly: always use std::runtime_error, as it is the only one with a proper exception hole
2018-03-09 23:32:03 -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
560b5b2673 ᕕ༼ •̀︿•́༽ᕗ VC++ COMING THROUGH WAHAAAY ᕕ༼ •̀︿•́༽ᕗ 2018-03-06 17:36:33 -05:00
ThePhD
e8119ec9a3 Fix semantics of check_get for objects obtained by proxy 2018-03-04 10:56:05 -05:00
ThePhD
e8e5ddc890 fix overpop from stack_check_get tracking 2018-03-04 05:40:57 -05:00
ThePhD
cd13f2dc0d Hammer down function behavior and provide an example to show how it works 2018-03-03 13:42:13 -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
b46b106114 update docs and examples 2018-02-28 01:56:11 -05:00
ThePhD
22c41d9482 Update documentation, refactor examples out of docs, fix warning about static entry path
Still need help refactoring out more code from docs...
2018-02-24 17:19:16 -05:00
ThePhD
b78d900d05 One day, everything will build proper.
One day.
2018-02-17 11:00:27 -05:00
ThePhD
258acff99b fix coroutine handler, change examples compilation, try to handle m32 compilation issues 2018-02-17 10:45:08 -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
eca9ec46fd Beef up testing suite significantly and make sure that the interop examples compile, at least on Linux
These damn libraries definitely don't compile clean on Windows... but then again, most people don't give a damn about Windows :<
2018-02-12 17:01:30 -05:00
ThePhD
8d2a25988c Maybe this will finally fix all the example errors 2018-02-12 03:55:14 -05:00
ThePhD
6f80e271d7 these cmake details are starting to get unruly... 2018-02-11 00:53:53 -05:00
ThePhD
7056156273 Case sensitivity, but it doesn't show on VirtualBox because VirtualBox's file system for shared folders emulates Window's case insensitivity, lel! 2018-02-10 21:24:21 -05:00
ThePhD
1d0683a53e add all examples for all interop types
Implements #578
2018-02-10 16:24:17 -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
88ba80bb61 add additional CMake presentation
Update container documentation
Fix ISSUE_TEMPLATE
Fix up documentation for quick and dirty, pulling example source directly from bundled code
addresses #578
2018-02-08 00:40:34 -05:00
ThePhD
1a64ba0fe5 Improve the docs, set up LuaJIT, and try to figure out why we can't build a DLL as an external projcet target with LuaJIT... 2018-01-19 15:03:22 -05:00
ThePhD
71963f9678 Try to always use the dedicated library built for the docker image by the LLVM team, otherwise everything goes to hell.... 2018-01-10 08:40:37 -05:00
ThePhD
a98e0633ce update travis usage and build description, and change inclusion matrix to allow for more failures 2018-01-08 09:06:03 -05:00
ThePhD
732b4bd700 add new tests for unqualified returns through as_nested/as_table 2017-12-28 12:11:12 -05:00
ThePhD
0051548dfa big sigh; one day we'll get this all right... 2017-12-27 07:42:37 -05:00
ThePhD
70b2fa0b41 unless the LLVM and MINGW builds once again 2017-12-26 20:42:40 -05:00
ThePhD
d05769b80e fix up examples and use build log to get neat messages 2017-12-26 08:04:54 -05:00
ThePhD
6000dcd490 update assert implementation 2017-12-26 01:11:09 -05:00
ThePhD
002303d52b update tests and single again
add assert.hpp for better code understanding
prepare to rewrite all the damn docs, and update the tutorials...
2017-12-25 23:27:22 -05:00
ThePhD
6d2100e814 Prepare for full appveyor build.
Add abort_clean so that CI does not get stuck on a message box that can never be answered
alignment rules do not apply to stack variables, so the tests cannot have the alignment check in the destructor: only for memory pushed into and coming straight out of Lua
2017-12-25 11:44:04 -05:00
ThePhD
83013333d7 Let it rip! 2017-12-24 12:32:23 -05:00
ThePhD
453a0daaaf fix VC++ build of examples and try to get appveyor to compile and run... 2017-12-24 01:30:55 -05:00
ThePhD
ed3de48cce make sure bogus deprecation warnings and killed 2017-12-23 22:26:27 -05:00
ThePhD
9a009e5cf1 gate features behind check 2017-12-23 21:29:29 -05:00
ThePhD
9524fd061e All these platforms are so hard to deal with... 2017-12-23 20:34:34 -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
e06d2fb581 add single, add examples 2017-12-10 15:56:49 -05:00
ThePhD
a86e9ee62d update examples and fix error_result returns 2017-12-07 09:04:19 -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
a67974250e add singleton example 2017-10-12 10:20:57 -04:00
ThePhD
22d9905f39 another state example 2017-10-02 20:03:26 -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
f9c93fc2bc update examples and documentation 2017-09-24 16:36:45 -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
0c20d066b9 LuaBridge and luwra interop examples as well, to give people a good idea 2017-09-24 03:12:50 -04:00
ThePhD
469be6670f should probably not include all of kaguya with sol2's examples, aha. 2017-09-23 20:40:37 -04:00
ThePhD
6d879f571a add code to steal guts and grab stuff from other frameworks. 2017-09-23 20:26:03 -04:00
ThePhD
7ff3a390b1 final lua_xmove fixes 2017-09-13 11:29:32 -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
b2f9822632 Mmmn, still can't type conditionals 2017-08-24 17:49:08 -04:00
ThePhD
78fd95d456 I'm also a dumby sometimes 2017-08-24 17:37:13 -04:00
ThePhD
2b2a6d2ab1 One day, Lua 5.1 will be phased out of existence and everyone will have the latest and greatest...
... One day.
2017-08-24 17:12:13 -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
a163ae7b33 add dynamic_object example
add note to functions about lambda return types
2017-08-23 15:48:09 -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
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
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
038ae3b99b minor fixes 2017-07-09 13:52:02 -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
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
51d6f6fa54 You would think that we'd have accounted for this earlier...
Fixes #405
2017-05-16 06:12:28 -04:00
ThePhD
58003669fb this_environment is now live 2017-05-09 13:24:56 -04:00
ThePhD
c7237806ef add a new example, add a note, adjust for LuaJIT Beta3 and beyond (hopefully it doesn't flip its crap: will have to warn suers....) 2017-05-07 10:16:47 -04:00
ThePhD
0db6d99d4b add new examples 2017-04-20 22:31:59 -04:00
sjaustirni
eebda40507 made "error" accessible in the Lua state
We need to expose `error()` in Lua in order to let it call the error handler function. However, for that the base library needs to be available in the Lua state.
 
Without this fix the output of the program is
`call failed, sol::error::what() is Handled this message: [string "..."]:7: attempt to call a nil value (global 'error')`
while it's supposed to be
`call failed, sol::error::what() is Handled this message: [string "..."]:7: negative number detected`
2017-04-20 20:17:06 -04:00
ThePhD
2acc8bee14 get_environment, documentation updates, and tests 2017-04-18 20:23:20 -04:00
ThePhD
32feb7ab7b unused variable warnings 2017-04-03 08:19:16 -04:00
ThePhD
36071801d6 script error handling example 2017-04-03 02:45:06 -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