Commit Graph

201 Commits

Author SHA1 Message Date
Shepherd
268b58964c 🛠 Avoid shadowing warning 2022-06-24 12:51:09 -04:00
Shepherd
7859f53e81 🛠 Fix many missing <memory> includes 2022-06-24 12:51:09 -04:00
Shepherd
4efea0ff3c Test and fix #1315
— 🛠 Update SOL_IS_(DEFAULT_)ON/OFF usage to be more idiomatic and less confusing (add SOL_RAW_* alternatives as well)
— 💚 Re-check CI
— 👷‍♀️ Add missing header from ebco.hpp
2022-06-24 12:51:09 -04:00
Klaim (Joël Lamotte)
96267b4a75 Fixed: std::cout not found on msvc 2022-01-03 13:47:48 -05:00
ThePhD
a7da2a8e88
🛠 Fix up some bad defines and CMake paths 2021-10-27 17:37:55 -04:00
ThePhD
b43962957f
New dedicated loose table check 2021-10-23 18:13:25 -04:00
ThePhD
3b4144c6ec
Proper keep-alive semantics!
Fixes #1247
2021-10-23 17:38:50 -04:00
ThePhD
002233ba84
Proper read-only pair iteration!
🔨 Fix up the general build
2021-10-22 16:17:49 -04:00
Smertig
bb5f60e138 Rename test 2021-05-21 13:20:59 -04:00
Smertig
05235646ef Fix required memory size calculations, do only one pass. 2021-05-21 13:20:59 -04:00
Smertig
35c71f1b47 Add test with misaligned allocation 2021-05-21 13:20:59 -04:00
ThePhD
430b55a496
😢 Crash mode; need to rearchitecture to fix 2021-05-16 00:00:42 -04:00
ThePhD
f92c28b1b5
🔨 Fix up unreachable code failures 2021-05-07 15:23:24 -04:00
ThePhD
c6a04afa12
💚 Bless the windows build! 2021-05-07 13:44:45 -04:00
ThePhD
d20cca5261
💚 Just for fixing Windows, hopefully!
- Remove ~syncthing
2021-05-07 09:14:05 -04:00
ThePhD
a3e3a62ad6
💚 Try to tamp down Clang errors 2021-05-07 03:17:24 -04:00
ThePhD
80ede904d6
💚 Some stuff to make the CI builds a bit better
- Thanks, blobthing & zasz!
2021-05-07 01:56:32 -04:00
ThePhD
7aae1aaaaa
🔨 asdhjsahd DO NOT BUILD
- Add a flag to allow size_t(-1) and similar shenanigans (SOL_ALL_INTEGER_VALUES_FIT)
- Half-fix, but not fully, for #1183, #1072, #1038, #965
- Fix #1126
- Prepare for #1061
2021-05-06 18:44:25 -04:00
ThePhD
0590f0e75c
🐛 Squash warnings with SYSTEM include
- Fixes #1139
2021-03-07 14:46:13 -05:00
ThePhD
a53819531d
🐛 Fix #1144 for now 2021-03-07 14:24:52 -05:00
ThePhD
d0ab12e965
🐛 Fix #1149 2021-03-07 13:43:56 -05:00
ThePhD
bc04471c11
🔨 Continuing to fix the CI... 2021-03-06 11:05:21 -05:00
ThePhD
e4658e3545
⚠ BROKEN: No more single inside!!!
- Generate it if you want it!!
2021-03-06 10:48:25 -05:00
ThePhD
5fed8e48d5
🛠 gitignore syntax is hard 2021-03-06 10:29:09 -05:00
ThePhD
57d9a05f88
🎨 Refactor tutorial examples
- 🛠 Make sure the tutorials compile across platforms!
- ✍ Redo quite a bit of the documentation
2021-03-06 10:14:48 -05:00
ThePhD
8618e39486
🛠 Prepare for the a sol4 release...
- 🎨 Refactor the CMake a whle bunch
2021-03-06 01:03:23 -05:00
ThePhD
b77f1a2102
Fix up the pop<> behavior here... 2021-02-02 20:36:49 -05:00
ThePhD
22ecd349ab
Remove const/volatile from Type 2021-02-01 23:32:52 -05:00
ThePhD
27c352149d
Protect against empty requires 2021-01-24 22:53:35 -05:00
ThePhD
d363ccd759
Implement better insert-with-no-iterator support
- reorder constructor values to match class order
- Fix up compilation related to GCC
- Add new shim tests to confirm insertion works properly
- regenerate single
2021-01-22 01:32:42 -05:00
ThePhD
a9ff1d4187
Fix up string_view handling
- Fix mispelling for is_stackED_based_v
- Regenerate single
- Repair badly named test
- Remove unused variable names
2021-01-21 15:58:27 -05:00
ThePhD
c032cda56e
M O R E B R E A K I N G C H A N G E S
- constant_automagic_enrollments use compile-time flags to avoid crappy shenanigans with linker-unavailable methods
2021-01-21 03:26:42 -05:00
ThePhD
6fde9c3f14
B R E A K I N G C H A N G E
- This is going to start the mark of v4
- pairs() implemented on tables for pairs-like iteration
- .error_handler variable is now hidden from view on protected function! Use set_error_handler/get_error_handler
- packaged_coroutine skeleton, but code is blacked out
- tests rearranged a little bit
- auxiliary keys lookup, search, and storage improved
- overhead of stored tables improved
- usertype registration and un-registration improved
2021-01-20 13:55:44 -05:00
ThePhD
68fd0c0166
Some fixups!
- Formatting on a test file
- Fix up of some errors in the usertype traits usage
2021-01-04 14:58:54 -05:00
ThePhD
8f7d4dbb4c
Add more comprehensive unregistration tests
- Make sure multiple states don't interfere with each other's keys
- Make sure re-registration of the same type does not cause too many problems
- Make sure the variadics test is present
- Make sure the storage keys are cleared out properly
2020-12-30 09:36:23 -05:00
ThePhD
b9115623b2
Overhaul stack_field tableless handlers
- Ensure stack field_get/field_set has consistent metaprogramming for needing a pushed table, and at what offset
- Avoid duplicate logic in table_core for the same logic by deferring to detail helper
- Fixes #1095
2020-12-29 21:50:16 -05:00
ThePhD
bf75afa250
Some changes for Shadowing Errors
- Not all were done, though; gave up at enumerations in an enum class being marked as shadowers.
- Which is just the dumbestt hing I've ever had to deal with. At least Clang is smarter!
2020-12-19 00:47:55 -05:00
ThePhD
4649a76507
New Workflows, More Optional Tests
- Add a test for picking deeply nested / constructible values out of an optional
- Fix up the readme to show where users can get support
2020-12-18 23:48:42 -05:00
ThePhD
220335d95c
Fix up inheritance with special metamethods
- Inheritance was causing __index and __new_index to be overriden on the named metatables
- This meant special constructors and other metamethods might not have been set properly
- Use lua_rawset to directly slam dunk the value into the table
2020-12-18 10:04:46 -05:00
ThePhD
9c4e2d1094
Add regression test for #1087 2020-12-17 23:37:00 -05:00
ThePhD
d39330eab9
Overhaul function calls and usage
- add noexcept to some of the core function calls
- type usage for both trampolines and yields can now be fully tracked, at the expense of more template instantiations when using both
- exceptions should be less prone to explosion in C versions, but will break in C++ code (the trampolines need to be modified for usertype calls to avoid this problem, specifically)
2020-12-17 23:25:48 -05:00
ThePhD
561c90abf4
Fix a lot of errors
- Add a new feature for SOL_FUNCTION_CALL_VALUE_SEMANTICS. Fixes #1059
- Detect deprecated/removed bit32 library. Fixes #1086
- Format the entire repository. Close #1073
- SOL_LUAJIT was not being properly defined. Close #1082
- Fix alignment issue. #1071
2020-12-16 15:25:35 -05:00
ThePhD
ef33531df4
Fix most of the most pressing warnings
- Fixes #1000
- Fixes #1060
- Fixes #1062
- Fixes #1067
2020-11-19 16:42:02 -05:00
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