Commit Graph

53 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
ce40e894d0
✍ Update Copyright Year 2022-06-25 04:00:53 -04:00
ThePhD
d20cca5261
💚 Just for fixing Windows, hopefully!
- Remove ~syncthing
2021-05-07 09:14:05 -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
e4658e3545
⚠ BROKEN: No more single inside!!!
- Generate it if you want it!!
2021-03-06 10:48:25 -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
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
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
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
de87bec171
Even better Regression Testing™ 2020-08-13 10:42:37 -04:00
ThePhD
83a656ae61
Break all the behaviors. _All_ of them. 2019-11-29 13:08:41 -05:00
ThePhD
9294afc082
memory tracker and separate-definition ADL customization points, inspired by Olek and Aurailus 2019-09-01 02:27:58 -04:00
ThePhD
c3c08df787
threads is now reqiured for examples 2019-08-15 02:35:49 -04:00
ThePhD
fd6feec382
heavily improve examples and docs 2019-07-04 11:16:03 -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
e8467334f6
Completley overhaul tests
Add unregister funcationality
Make sure clearing is stack-size-safe.
2019-03-22 16:28:17 -04:00
ThePhD
c1a8cb1dc5
Update copyright year, add dump function 2019-03-13 05:18:06 -04:00
ThePhD
ee13a7812f
Full fixes for everything. 2019-03-09 20:57:49 -05:00
ThePhD
b938e42af6
SUPER DUPER UPDATE WOO 2019-02-14 02:40:57 -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
0a21fbf3f0
clean up more warnings, wew 2018-12-27 13:02:31 -05:00
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
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
0a9dc24f1f
first big sol3 push... tests not updated yet 2018-09-27 22:27:38 -07:00
ThePhD
4f366a17a9 begin migrating benchmarks and preparing documentation for sol3 2018-05-17 02:31:28 -04: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
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
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
0051548dfa big sigh; one day we'll get this all right... 2017-12-27 07:42:37 -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