Commit Graph

556 Commits

Author SHA1 Message Date
ShepherdSoasis
64e3823bd2 🛠 Address lifetime issues through Lua references in iterators.
📝 Fixes #1315, #1374, and #1400.
— 📝 Lifetime in iterators was referencing the wrong stack (the main thread) rather than the coroutine's stack at time of creation.
— 📝 Using main_reference/main_* objects was a suitable enough fix for most of these problems.
— 🛠 Prevent performance and usability issues from changing containers by storing the being/end iterator separately, rather than continually invoking `deferred_uc::end(…)` every time.
— 🛠 Improve sizes for stored iterators in select cases.
— 🛠 Allow for sentinel-style C++20-and-beyond ranges.
— 🔧 Improve single file generation CMake.
— 👷‍♀️ Fix up internal Lua build system issues.
2023-07-18 13:12:11 -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
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
8618e39486
🛠 Prepare for the a sol4 release...
- 🎨 Refactor the CMake a whle bunch
2021-03-06 01:03:23 -05:00
ThePhD
d4b13ff864
Joy, missed an underscore 2021-02-14 00:45:14 -05:00
ThePhD
37d891fa40
Give constexpr macro a better name
- Put it in the version.hpp properly
- Change its spelling and usage
2021-02-14 00:33:09 -05:00
ThePhD
4e2ee29b34
Get out of MSVC's crash on latest preview.
- Honestly, no clue if this will even work...
2021-02-14 00:28:31 -05:00
Vladimir Lichevsky
810c96b97b Support constexpr boost::none with recent Boost versions. 2021-02-10 13:10:53 -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
e1950b9a55
protected_function, not function 2021-01-24 12:38:37 -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
f7d8e1e822
Unqualify type names to transparent argments 2021-01-21 02:20:31 -05:00
ThePhD
e892aa3470
Update single config 2021-01-20 13:59:06 -05:00
ThePhD
24584f04a4
Upate single 2021-01-20 13:58:52 -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
955418fe13
First draft of sol_lua_check_access fixes
- Should address #1074 and #1010!
2021-01-04 05:52:30 -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
f7d99b05a5
Fold string literals better by moving them inside
- Partially addresses #1094
- Fix a warning for unreachable code (I still don't like this part of if constexpr)
- Update single
2020-12-29 21:59:28 -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
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
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
30019c4076
Freeze current progress 2020-12-06 00:41:32 -05:00
Vas Crabb
38473d39fe Add override qualifier to bad_optional_access::what() - fixes GCC -Wsuggest-override warning 2020-11-19 17:42:08 -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
ThePhD
b8aa189e32
Revert to using 1 for lua_newuserdatauv
- This needs to be addressed in the future
- Prevents failures when "attaching" a free-standing table.
2020-11-02 05:53:57 -05:00
atom0s
63e396b996 Fix typos in configuration macros. 2020-11-02 05:33:44 -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
e108f8bbbf
Work around non-constexpr boost shenanigans....... 2020-10-24 04:53:21 -04:00
ThePhD
651b90ba24
Fix boost build and optimize for lua_newuserdatauv 2020-10-23 18:59:07 -04:00
ThePhD
c068aefbed
Update single versions 2020-10-15 01:19:38 -04:00
ThePhD
e5e6466e09
Fix configuration macros
- Enable all necessary configuration macros to be deliberately shut off, appropriately
- Fix version macro headings
2020-10-15 01:18:12 -04: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
1fb483db91
Update single 2020-09-26 06:48: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
e89b6ac2e7
Actually use the correct value instead of pushing without saving the file
- I promise
- I am smarter than I commit
2020-09-08 20:47:39 -04:00
ThePhD
e4f588d18c
Turns out I'm not very smart - who knew?! 2020-09-08 20:17:12 -04:00
ThePhD
275ae2c096
Fix ambiguous overload for array vs. pointer
- Arrays vs. pointers continue to be the bane of my existence in working with """text""" in C++.
- Fixes #1001 and the issue that was ongoing in Mugen.
2020-09-05 17:46:20 -04:00
ThePhD
63df43e061
Get rid of MSVC problems and improve state API.
- Just let MSVC have crap codegen. The compiler sucks anyways. Fixes
- Add incremental GC power. Fixes #997.
- Add non-null offset manipulation. Did I mention I hate VC++ and how it implemented _Aligned? Fixes #1017.
2020-09-05 17:25:15 -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
7be51ebbef
Add tons of redundant includes in the single, since they may be conditionally compiled out, and add a note to see if this can be looked into more closely later... 2020-07-16 19:46:15 -04:00
ThePhD
4a16979adf
Use a specified configuration macro for the size of a given chunk.
This might help with error reporting for larger non-text based chunks. Maybe helps #989, but that looks like it needs the user to define their own traceback handler.
Fix compilation issues with boost optional usage. Fixes #990
Fix more shitty docs (thanks, @nabijaczleweli)
2020-07-15 09:29:27 -04:00