aboutsummaryrefslogtreecommitdiff
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Test full userdata keys with verbose_errorsBenoit Germain2025-10-301-1/+5
|
* Two less global variablesBenoit Germain2025-10-271-2/+3
|
* verbose_errors improvementBenoit Germain2025-10-272-12/+12
| | | | | * Use std::format instead of sprintf for verbose errors when decoding table keys * Add a unit test for the different table key types
* Fix STACK_GROW under ClangBenoit Germain2025-10-211-1/+1
| | | | Repeat change e0236dc2c4fffab98b6ce4f7126c1b260b87416d of C-implementation
* Lift restriction on functions and userdata as table keysBenoit Germain2025-09-301-7/+0
| | | | As demonstrated by the unit tests, there is no problem with using a function or a userdata as a table key, as long as they are transferable
* Lift restriction on tables as table keysBenoit Germain2025-09-291-4/+0
| | | | As demonstrated by the unit tests, there is no problem with using a table as a table key
* Improve table and userdata conversionsBenoit Germain2025-09-206-128/+263
| | | | | | | | * add convert_fallback and convert_max_attempts to global settings * if no __lanesconvert is available, use convert_fallback (can be useful for externally provided full userdata with fixed metatables) * only try conversion on non-deep and non-clonable userdata * conversion can be applied recursively, up to convert_max_attempts times * plus all the relevant unit tests of course
* RAII + setjmp = UBBenoit Germain2025-07-312-40/+13
|
* I don't even know why I ever included luajit.h. removed it.Benoit Germain2025-07-281-1/+0
|
* Fix crashes in MSVC release builds related to KeeperOperationInProgressBenoit Germain2025-07-253-14/+24
| | | | | * scope the KeeperOperationInProgress object on linda calls * but since it's not enough, just comment it, it is only debug stuff anyway
* Rework function bytecode dumping to be Lua5.5-readyBenoit Germain2025-07-243-35/+28
| | | | * prepare the luaL_Buffer in the destination state instead of the source state to prevent stack issues when everything happens in the same state
* Use LANES_DEBUG instead of MSVC-specific _DEBUG to activate debug codeBenoit Germain2025-07-241-4/+4
|
* workaround a possible Lua 5.5 bug when dumping functions (but it doesn't ↵Benoit Germain2025-07-221-0/+5
| | | | solve everything)
* New helper to push function bytecode (to facilitate Lua 5.5 support)Benoit Germain2025-07-223-38/+53
|
* Added Lua 5.5 supportBenoit Germain2025-07-044-25/+88
| | | | * some unit tests fail/segfault/freeze, but that could be because Lua 5.5 is still in beta yet
* Changed lua wrapper prefixes from luaG_ to luaW_ (w as in wrapper!)Benoit Germain2025-07-0420-357/+357
|
* Fix more issues related to suspended coroutines and join/indexing operationsBenoit Germain2025-07-032-118/+163
| | | | | * indexing and joining a suspended lane closes the coroutine, causing the termination of the lane * properly close coroutine to-be-closed variables on interruption
* Clarified interactions between join() and coroutinesBenoit Germain2025-07-011-28/+48
|
* Preparation for lane:close() and correct to-be-closed variablesBenoit Germain2025-06-261-17/+62
| | | | | | | | * lane:join() can no longer be used to read yielded values * same with lane indexing * stub for lane:close(), similar to coroutine.close() (not implemented yet) * preparing tests for to-be-closed variables in yielded coroutine lanes * yielded lanes unlock and terminate properly at Lanes shutdown
* Minor code refacto (Lane::waitForCompletion)Benoit Germain2025-06-252-27/+15
|
* Better protection of selfdestruct chain at universe shutdownBenoit Germain2025-06-241-15/+18
|
* Change lane:join() return valuesBenoit Germain2025-06-051-14/+20
| | | | | | * when no error is raised in the lane, lane:join() now precedes the lane returned values with true * lane body is no longer forced to return something when used with join() * adjusted all relevant unit tests accordingly
* Minor code cosmetic changesBenoit Germain2025-05-223-64/+89
|
* Code factorization in KeyUD::pop()Benoit Germain2025-05-211-9/+19
|
* Thread priority reworkBenoit Germain2025-05-077-100/+175
| | | | | | | * thread priorities can now be set using the native range of values, if desired. * thread API errors cause a Lua error instead of aborting the program. * new function lanes.thread_priority_range(), to query the valid range of priorities. * unit tests for all of the above
* Fix priorities for Mingw buildsBenoit Germain2025-05-061-2/+2
|
* Move ProtectedAllocator::Protected_lua_Alloc in universe.cppBenoit Germain2025-04-292-8/+13
|
* Updated comments on unit test lanes.configure.allocator/protectedBenoit Germain2025-04-291-1/+1
|
* Remove a useless mutex guard on lane setf-destructBenoit Germain2025-04-282-2/+2
|
* Minor internal tweaks in shutdown codeBenoit Germain2025-04-284-12/+23
|
* Code factorization in linda send/receive implementationBenoit Germain2025-04-251-64/+40
|
* cancel_test() returns "soft"/"hard" instead of trueBenoit Germain2025-04-231-1/+5
|
* Make gcc happyBenoit Germain2025-04-202-3/+3
|
* A unit test for linda wake_periodBenoit Germain2025-04-182-1/+10
|
* New feature: Linda periodical cancellation checksBenoit Germain2025-04-186-77/+118
| | | | | | | * lanes.linda() api change: takes all settings in a single table argument * new linda creation argument wake_period * new lanes.configure setting linda_wake_period * adjusted all unit tests (one TODO test fails on purpose)
* Linda batched mode reworkBenoit Germain2025-04-155-154/+155
| | | | | * linda.batched special value is removed * new function linda:receive_batched
* A bit of code factorizationBenoit Germain2025-04-151-88/+86
|
* Implement THREAD_SETNAME for mingwBenoit Germain2025-04-071-1/+3
|
* Fix crash with multi keepers (invalid memory access on close)Benoit Germain2025-04-072-34/+15
|
* Fix 32 bits compilation warningsBenoit Germain2025-04-041-2/+2
|
* Fix threading compilation for MinGWBenoit Germain2025-04-013-31/+51
|
* Circumvent MSVC possible bug causing a crash in optimized buildsBenoit Germain2025-03-171-1/+3
|
* Fix test "allocator = <bad C function>" not failing against LuaJIT like it ↵Benoit Germain2025-03-173-7/+7
| | | | should
* Raise a regular Lua error instead of throwing a C++ std::logic_error ↵Benoit Germain2025-03-174-11/+48
| | | | exception in Universe::UniverseGC
* Fix crash with LuaJIT when using { name = 'auto' } for lane name detectionBenoit Germain2025-03-171-1/+3
|
* Fix crash when using { name = 'auto' } with a lane generated from a stringBenoit Germain2025-03-141-4/+11
|
* lanes/core.[so|dll] → lanes_core.[so|dll]Benoit Germain2025-03-146-24/+20
|
* More makefile tweaksBenoit Germain2025-03-141-3/+5
|
* More work on MakefilesBenoit Germain2025-03-131-15/+14
| | | | | | | | | | | * renamed makefiles: - Shared.mk → Shared.makefile - src/Makefile → src/Lanes.makefile - unit_tests/Makefile → unit_tests/UnitTests.makefile - deep_userdata_example/Makefile → deep_userdata_example/DUE.makefile * Add a makefile for deep_userdata_example * added a target 'unit_tests' to build them (not running them yet) * plus some minor internal improvements
* Disable unit test "lanes.stack checker" in Release buildsBenoit Germain2025-03-131-0/+1
|