Commit Graph

75 Commits

Author SHA1 Message Date
ThePhD
ff3f254f7b
🛠 Disable semantic difference between this and LuaJIT
💬 "This removes some performance savings, but it's the best we can do for now."
2023-07-20 00:53:31 -04:00
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
ShepherdSoasis
3592851a2a New exhaustive check feature for vectors & similar 2022-11-09 18:33:16 -05:00
ThePhD
ce40e894d0
✍ Update Copyright Year 2022-06-25 04:00:53 -04:00
Daniel Volk
de0e9de816 CMake: Build LuaJIT: use copy_if_different
Use copy_if_different to move luajit products in the post build step to
avoid relinking of projects depending on sol2/luagit.
This is mostly relevant when building sol2 and luajit as subprojects.
2022-06-24 12:55:33 -04:00
Shepherd
612b469ad9 🛠 Retrieve main thread to prevent collapses on Luas
— Lua 5.1, 5.2, and 5.3 seemed to have a deficiency in which the stack thread space variable (given as a lua_State*) would die before everything referencing it would be properly dead. This made holding a reference for keep-alive purposes impossible to maintain. Therefore, we retrieve the main thread to keep it alive.
2022-06-24 12:51:09 -04:00
ThePhD
ba1dc4f9f4
Relocate build flags / settings to the internal cmake space!
Closes #1209
2021-10-23 15:56:57 -04:00
ThePhD
b43cee5c9d
Preparing to separate the build from the table 2021-09-15 03:26:40 -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
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
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
de87bec171
Even better Regression Testing™ 2020-08-13 10:42:37 -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
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
c77b5b432e
Update catch, move yielding check up one level to avoid problems with trampoline and exception handling, and add a new test/example from an issue. Closes #906. Closes #917. 2020-01-17 05:22:52 -05:00
ThePhD
36972a994b
mmm double trampolining is not good
add new ways to shoot myself in the foot with CMake
2019-12-23 09:09:23 -05:00
ThePhD
83a656ae61
Break all the behaviors. _All_ of them. 2019-11-29 13:08:41 -05:00
ThePhD
bc1106cdea
Tackle bug in indexing on Lua Version < 5.3
Figure out LuaJIT bug for allocations on x64 on Version < 2.1.x
2019-11-13 05:18:02 +01:00
ThePhD
12f8f046cc
fix up container handling 2019-08-15 02:28:37 -04:00
ThePhD
09f5e862b8
Lua 5.4 changes... oh boy! 2019-08-12 14:07:25 -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
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
52ec50010b
Update single, make sure warnings are not there. 2019-03-23 21:50:02 -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
c1a8cb1dc5
Update copyright year, add dump function 2019-03-13 05:18:06 -04: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
91faa7a014
Update single, fix more CMakeLists stuff to work with Local and Not-From-Source builds of Lua 2019-01-05 13:56:21 -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
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
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
Sztergbaum Roman
4131de60d9 Update sol2-config.cmake.in 2018-06-27 07:17:31 -04:00
Roman Sztergbaum
2894f2a573 fix sol2-config.cmake.in 2018-06-27 07:17:31 -04:00
ThePhD
80df3fc915 Fix #626
Fix #625
Fix #624
2018-04-12 13:58:25 -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
ac3aee3349 properly select latest CI 2018-02-19 22:36:53 -05:00
ThePhD
a2e2b08ea9 To quote or not to quote... that is the question 2018-02-19 07:09:51 -05:00
ThePhD
c30d097592 Add comment back in. 2018-02-19 06:36:31 -05:00
ThePhD
2c8e4a8313 Update all modules, now that we seem to have gotten the hang of all the little things we need to do to make it work.
One day, OSX builds will Just Work™.
2018-02-19 06:30:44 -05:00
ThePhD
d26f0ea0e5 Some test printouts to help us debug the MinGW x86 explosion 2018-02-17 21:38:29 -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
0192fcb176 CMake 3.5 is a sad, sad affair. 2018-02-17 01:07:10 -05:00
ThePhD
67116a67f9 Fixes #588
Tentatively supports (?) #589 with sol::yielding and sol::yielding_t
Added Catch as a cmake module
2018-02-17 00:18:26 -05:00