Commit Graph

208 Commits

Author SHA1 Message Date
ThePhD
62804667ee
Fix various issues
- 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)
2020-11-19 15:12:56 -05:00
Violin Yanev
ca3d30d8e9 Add CMake option to disable installation
Rationale: since sol2 is a header-only library, some projects might
use it as a private dependency instead of exposing it through their API.
Thus, it is useful to have an option to not install sol2, in order to
reduce the installation size as well as to avoid accidentally exposing
internal dependencies in the top-level project.

The project I work on is a demonstration of how the feature might be
used:
f4a20ec39e/external/CMakeLists.txt (L84)
(mind the different name of the CMake variable, I renamed it to fit the rest
of the sol options convention)

We have an install-check script script which verifies that only expected
headers, libs, targets and docs are exported (the one which are interesting
from users PoV). I wouldn't mind contributing the script as github workflows
if you want to use it as well - please provide feedback if that's desired.
Here is a link to our script for preview:
https://github.com/GENIVI/ramses-logic/blob/master/ci/scripts/installation-check/check-installation.py

While modifying the CMake code, I noticed a 4-space instead of TAB in one
place and fixed it to be consistent with the rest of the CMake code.
2020-11-01 12:32:18 -05:00
ThePhD
48e5fc9e44
Fix unorded_map derp 2020-10-03 17:34:34 -04:00
ThePhD
48eea7b573
New Unsafe Feature: Function Pointers!
- 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
2020-09-26 09:46:11 -04:00
ThePhD
000fa31809
Heavily improve usage of Preprocessor checks
- 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.
2020-09-26 06:47:32 -04:00
ThePhD
de87bec171
Even better Regression Testing™ 2020-08-13 10:42:37 -04:00
ThePhD
af779f0bed
Improve the testing macros to work across platforms.
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.
2020-08-12 19:07:32 -04:00
ThePhD
5bbc095396
Improve configuration macros and other things while trying to track down ways to make MSVC stop being a butt on its latest iterations. 2020-08-09 17:17:47 -04:00
ThePhD
862c01019a
Use invoke_result_t to get rid of deprecated result_of_t (Fixes #986).
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.
2020-07-04 03:58:24 -04:00
ThePhD
e09d2ffef8
Fix up protected function returns and fix/use the horrible size extension point derp. Fixes #973 2020-05-26 20:08:38 -04:00
ThePhD
5022c4d8f6
Improve container handling and the vec[#vec] = nil idiom from Lua 2020-05-06 22:17:02 -04:00
ThePhD
053a7fdcb1
Fix #949, #935, #948, #945, and #933.
We will need a new feature to fix #941, which is related to #872.
2020-03-31 00:24:23 -04:00
ThePhD
82812c56d9
__mt is the wrong name. 2020-03-09 21:33:41 -04:00
ThePhD
1f27149239
Fix usage of the traits, rename them to say more directly what they are. 2019-12-02 15:54:58 -05:00
ThePhD
83a656ae61
Break all the behaviors. _All_ of them. 2019-11-29 13:08:41 -05:00
ThePhD
ce32549bc6
Remove as many of the std::string error handlers as possible to avoid memory leaks in C mode
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)
2019-11-09 04:53:48 +00:00
ThePhD
bafac3abbd
Change how proxies are done for the sake of efficiency. 2019-09-15 00:43:44 -04:00
ThePhD
e8649d276b
NOW it's REALLY fixed, super duperly. 2019-08-28 00:17:11 -04:00
ThePhD
e60a628e16
should use safe_script, not just script 2019-08-27 20:36:17 -04:00
ThePhD
0b6c7f47e7
kek tests 2019-08-27 20:32:55 -04:00
ThePhD
683d1393d7
std function can be empty
fixes #862
2019-08-27 18:36:45 -04:00
ThePhD
cb3acaa97b
add more documentation, add clear() to bytecode, include additional examples and better data 2019-08-15 01:26:52 -04:00
ThePhD
e440d7a79b
some utility changes because of the way variants are checked now... 2019-07-03 01:01:07 -04:00
ThePhD
dafb184338
gate the warnng check better... 2019-06-10 07:56:22 -04:00
ThePhD
4ca24f9bc7
Handle weird types for number and shit 2019-06-10 04:22:59 -04:00
ThePhD
ef1c0e7a38
fix weird nested shit 2019-06-08 21:48:34 -04:00
ThePhD
3dd617d33a
blah lua versions 2019-05-29 19:31:52 -04:00
ThePhD
5a4d7dca7f
pointers just wanna be included in the fun, man 2019-05-29 17:14:35 -04:00
ThePhD
f701fd2de7
HEAVILY improve the entire infrastructure and documentation along with all the examples 2019-05-21 19:17:31 -04:00
ThePhD
4808e7cad8
filters -> policies
shill out on the docs
prepare to update all docs
fix #809
2019-05-21 03:57:10 -04:00
ThePhD
5dee45cd9e
Rework table internals for more performance in more cases and handle additional cases of update_if_empty and create_if_nil 2019-05-21 02:13:56 -04:00
ThePhD
c442c6c620
static indexing is a real thing now 2019-04-29 01:38:01 -04:00
ThePhD
3426947340
the god-tier commit-without-running-tests... 2019-04-28 09:40:51 -04:00
ThePhD
b47997ff65
pointer_like, now, more traits being separated out... 2019-04-13 10:15:14 -04:00
ThePhD
6282ed4bf0
Improve unique_usertype handling to avoid needing the rebind_base typedef 2019-04-13 04:05:34 -04:00
ThePhD
7cce3e4d42
unused parameters are the devil 2019-04-05 21:26:49 -04:00
ThePhD
2f7607840f
A very simple fix for a very complex problem 2019-04-05 18:56:37 -04:00
ThePhD
7e7189735e
change behavior to set metatable before construction, not after
inherently dangerous, since that means the destructor can be called on incomplete memory if a constructor throws...
.... Not my problem! :D
blah blah shitty warnings
2019-04-04 09:38:23 -04:00
ThePhD
26cbadc5b2
Livnig dangerously and not running the tests, just shooting from the hip.
One day I'll get this all right...
2019-03-30 23:30:59 -04:00
ThePhD
55ebe1b76a
improve gc and call handling, o boi 2019-03-28 23:18:59 -04:00
ThePhD
a121366a29
More LLVM warnings as errors kicking things in the mouth... 2019-03-23 12:22:38 -04:00
ThePhD
a925963708
appveyor.yml updates to try and more properly capture constraints
travis.yml updates to try and more properly capture constraints
I truly dislike MSVC's inability to handle lots of using statements.
2019-03-23 12:09:51 -04:00
ThePhD
e8467334f6
Completley overhaul tests
Add unregister funcationality
Make sure clearing is stack-size-safe.
2019-03-22 16:28:17 -04:00
ThePhD
b63d7af060
Add lua_table and lua_value abstractions
Improve dump handler, bytecode, and base traits
Fix tolua on bad calls, fix interop handler changes
We are now truly done with all feature requests...
2019-03-18 07:41:51 -04:00
ThePhD
70bc1113cb
Create base_traits
Improve all of the tests
This is the final featureset, now everything is frozen just for docs...
2019-03-14 16:15:43 -04:00
ThePhD
c1a8cb1dc5
Update copyright year, add dump function 2019-03-13 05:18:06 -04:00
ThePhD
466e21bf7c
omegalul MSVC 2019-03-10 11:09:52 -04:00
ThePhD
b6f40935c8
add new tas for override_value and update_if_empty, improve the enable_if for a bunch of field_setter stuff
perform the last breaking change with .source()
prepare for the coming release...
2019-02-16 17:27:03 -05:00
ThePhD
95ffd10283
force variable now works in traverse_set and proxy setters. 2019-02-15 04:01:03 -05:00
ThePhD
9c050230f3
push/pop pragma macros, wew lad 2019-02-14 04:52:30 -05:00
ThePhD
b938e42af6
SUPER DUPER UPDATE WOO 2019-02-14 02:40:57 -05:00
ThePhD
4fd197d956
ebco optimizations for certain classes 2019-02-10 16:40:37 -05:00
ThePhD
b4e83ca866
attempt to improve throughput and compile times even more
change CMake to stop being such a goddamn fucking menance with the warnings and errors
try to get full /W4 clean compliance
2019-02-10 15:02:40 -05:00
ThePhD
fbf5b48dc8
void support 2019-01-28 12:33:21 -05:00
ThePhD
e1f3e5f009
cull a good chunk of SFINAE, see what results... 2019-01-28 11:32:32 -05:00
ThePhD
a2f86d88dc
optimize get/traverse_get and set/traverse_set items
consider potential optimizations for new_enum to reduce compiler churn
consider potential optimizations for proxy
2019-01-17 08:28:34 -05:00
ThePhD
88a089c4ae
proxy testing 2019-01-14 07:27:55 -05:00
ThePhD
5b3ca9343c
update single
update forward declaration
update container traits usage
fix vector of pair as a usertype
2019-01-13 21:46:53 -05:00
ThePhD
59174e76af
Update patrons
Reduce compile-times by removing lambda shenanigans and moving data that is already serialized into runtime systems to runtime
Fix bugs with precedence ordering related to index and new_index
Prepare to add 20000 more if constexpr to reduce compile-times even further.
2019-01-05 05:48:51 -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
7e5f2837a8
Merge branch 'develop' into sol3
# Conflicts:
#	include/single/sol/sol.hpp
#	include/single/sol/sol_forward.hpp
2018-11-21 15:06:23 -05:00
ThePhD
4906e43918
beep boop fixes 2018-11-21 15:03:45 -05:00
ThePhD
d15709d85a
Merge branch 'develop' into sol3
# Conflicts:
#	include/single/sol/sol.hpp
#	include/single/sol/sol_forward.hpp
#	include/sol/coroutine.hpp
#	include/sol/stack_core.hpp
#	sol/usertype_metatable.hpp
2018-11-21 08:19:26 -05:00
ThePhD
55e92056c1
Fiiiiixes. 2018-11-21 07:34:32 -05:00
ThePhD
094ace3c7b
freeze changes 2018-11-20 11:59:36 -05:00
ThePhD
9b47849110
update tests (which compile, but now all fail) 2018-11-18 13:06:01 -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
fa07e54e08
some small fixes for usertypes, still need a few more drastic improvements... 2018-10-15 21:53:16 -04:00
ThePhD
e56cbc1dc5
update sol3 tag 2018-09-27 23:55:09 -07: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
89dbc160ab fix utility stuff 2018-06-27 16:16:24 -04:00
ThePhD
b688606007 pointer is unstable, which makes sense, but... nullptr? Really? :< 2018-06-27 13:24:56 -04:00
ThePhD
8a27648b77 add pointer() method 2018-06-27 11:35:09 -04:00
ThePhD
254466eb4b add pointer() method 2018-06-27 11:34:40 -04:00
ThePhD
af8432123a fix #673
fix #670
2018-06-27 07:17:32 -04:00
ThePhD
f85a5c0ae7 fix #674
fix #673
make a full decision on #672; not worth the implementation effort
2018-06-27 07:17:31 -04:00
ThePhD
3935dc497c fix #673
fix #670
2018-06-27 07:14:02 -04:00
ThePhD
301547f260 fix #674
fix #673
make a full decision on #672; not worth the implementation effort
2018-06-26 15:57:55 -04:00
ThePhD
c6bb3c6ce5 fix all warnings on GCC and get new tests and old tests back to 100% 2018-06-15 17:33:09 -04:00
ThePhD
92f3330e03 fix #668
update single
2018-06-15 15:50:51 -04:00
The Phantom Derpstorm
15fe28c57f
Merge branch 'develop' into vc140-fixes 2018-06-15 13:27:58 -04:00
ThePhD
8039dd22a6 update documentation with additional information about resolve and overload (fixes #664 and fixes #665)
add new shared_ptr differentiation mechanism that persists between DLLs (fixes #661)
change valid Lua version to handle Lua 5.4.0-work1 (fixes #649)
remove upper limit on MSVC version: they're not fixing it anytime soon (fixes #655)
add integer value for definition (fixes #651)
2018-06-15 13:19:09 -04:00
Orfeas Zafeiris
3fe08ec2c1 Fix header inclusion order 2018-06-03 02:22:14 +03:00
Orfeas Zafeiris
f4f166f88c Fix x64 compilation error in usertype tests 2018-05-30 08:57:44 +03:00
ThePhD
f8ee7abe52 tfw no common_type for ternary... 2018-05-12 18:04:33 -06:00
ThePhD
fd58e7fcd1 fix #638
bump microsoft version check up (fx #639)
2018-05-10 05:30:51 -06: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
97525d8b72 don't put catch in the sol2 include 2018-04-17 16:13:50 -04:00
ThePhD
80df3fc915 Fix #626
Fix #625
Fix #624
2018-04-12 13:58:25 -04:00
ThePhD
8e8dd379ff update tests because AAAAHHHH exceptions 2018-03-22 10:59:37 -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
cd13f2dc0d Hammer down function behavior and provide an example to show how it works 2018-03-03 13:42:13 -05:00