Releases: LuaLanes/lanes
Releases · LuaLanes/lanes
version 3.17.0
- add manual control over GC behavior in keeper states
- update a bunch of test scripts
- minor internal fixes
- probably the last C implementation update, unless a critical bug creeps up
- expose nil sentinel as lanes.null
version 3.16.3
- naive luajit detection in PUC-Lua-based builds, and vice-versa to detect mismatches
version 3.16.2
- Prevent crash on linux as non-root
version 3.16.1
- provide user control over the allocator used by Lanes to manage internal allocations (can either reuse the allocator from the master Lua state or force libc functions).
- a Lane thread no longer forces its priority unless an explicit value is provided by the generator.
version 3.16.0
- fix require() wrapper to return all values returned by original require()
- Lanes no longer relies on malloc/free for internal allocations, but uses the primary alloc function from the master Lua state (excepted for LuaJIT flavors, because the allocator seems to assume that it won't be used oustide the Lua state).
- __lanesclone is now called only once with 3 parameters dest, source, size -> BREAKS CUSTOM DEEP USERDATA API
version 3.15.1
Fix Lanes not working with Lua 5.4 due to changes in the way luaL_buffer is working compared to previous versions of Lua.
version 3.15
- a bunch of code cleanup.
- some build fixes pull from external contributors working on platforms I don't have access to.
- fixed set_tread_affinity.
- changed lanes.threads() output so that several lanes with the same name don't clobber each other in the result table
- __lanesclone now receives the original as light userdata the first time it is called
- correctly transfer the uservalue of a deep userdata
- fix stack overflow when transfering a clonable userdata referencing itself through a uservalue.
- fixed some unit tests.
version 3.13
- Lua 5.4 support
- New API lanes.set_thread_affinity()
- Add support for user-provided __gc in deep userdata
- Add deep user data cloning support though __lanesclone metamethod
- Deep userdata must embed DeepPrelude to save an allocation (also changes Deep protocol)
- set_debug_threadname implemented with win32 pthread
- lane:join() now returns nil, "timeout" in case of timeout
- Don't test __lanesignore for POD types (-> slightly faster when trasnfering lots of data)
- protected_allocator option replaced by something else more flexible (see documentation)
- Version is available in public header
- More complete deep userdata sample
- Raise an error instead of crashing when attempting to transfer a non-deep full userdata
- Make sure any linda operation that can raise an error won't ever leave a mutex unreleased
- Support for integer formatting in verbose errors
- Fix a stack overflow when copying large tables with verbose_errors option enabled
- Compilation and runtime fixes for LuaJIT, MacOS and Android.
- Fix crash trying to use a deep-aware module while not requiring Lanes
- Fix an internal error trying to call on_state_create in a lane without any libs loaded
- Fix potential crash at application shutdown when deep userdata were created before Lanes is required
- Lots of internal code changes (function split, file split, type declarations moved around, etc.)
version 3.11
- Fixed some compilation warnings and some lua API call errors in DEBUG_SPEW code
- Improved LuaJIT support
- new Lanes API function lanes.register( "name", module) to manually register a module table after it was required. Transfering registered module tables will link the equivalent in the destination state instead of cloning it
version 3.10.1
- Fix an implicit number-to-string conversion in keeper.c.
- Fix 64 bits compilation warnings.
- Added support __of lanesignore field in metatables.