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
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