Releases: averlyst/NamedSignal
Release list
v2.3.2
Version 2.3.2
Fixed
- Fixed a regression in v2.3.x where immediate-mode disconnections did not stop the listener from being dispatched.
Changed
- Improved performance when dispatching signals with no connections.
Full Changelog: v2.3.1...v2.3.2
v2.3.1
Version 2.3.1
Removed
- Removed the internal
SIGNAL_BEHAVIORflag that toggledtask.spawnvstask.defer.- Flags are considered unstable and subject to change, this flag conflicted with internal dispatching and caused an infinite loop which froze the program when enabled.
- The edge cases this was originally meant to address are now handled by deferred mutations, a much more comprehensive and performant mechanism — making the flag redundant.
- This does not affect your ability to defer other operations (e.g. functions in listeners); only the internal spawn/defer toggle has been removed.
Full Changelog: v2.3.0...v2.3.1
v2.3.0
Version 2.3.0
Changes since v2.2.0:
Changed
-
Maintenance: Refactored Types module. Shouldn't change type behavior in public APIs, but may improve inference speed.
-
Config: The default
ERROR_INFO_MODEhas been changed to"Full"(always prefertask.spawn) due to possible C-side issues withcoroutine.resume.- You may opt back into a different mode if you require the additional performance and are aware of the risks.
-
Performance: Greatly improved non-yielding fire performance by switching to a more efficient dispatching technique with minimized thread resumptions.
- Signals with only one connection may be slightly slower, but benefits should be visible with two or more connections.
From internal benchmarking:
Connection Count % Improvement from v2.2.0 1 -18.8% (Slower) 2 +49.2% (Faster) 5 +258.6% (Faster) 10 +535.1% (Faster) 50 +1523.2% (Faster) - Signals with only one connection may be slightly slower, but benefits should be visible with two or more connections.
Fixed
- Fixed a missing type export for
WrapConnectionin the main module.
Full Changelog: v2.2.0...v2.3.0
v2.3.0-rc.1
Version 2.3.0-rc.1
Changed
-
Maintenance: Refactored Types module. Shouldn't change type behavior in public APIs, but may improve inference speed.
-
Config: The default
ERROR_INFO_MODEhas been changed to"Full"(always prefertask.spawn) due to possible C-side issues withcoroutine.resume.- You may opt back into a different mode if you require the additional performance and are aware of the risks.
-
Performance: Greatly improved non-yielding fire performance by switching to a more efficient dispatching technique with minimized thread resumptions.
- Signals with only one connection may be slightly slower, but benefits should be visible with two or more connections.
From internal benchmarking:
Connection Count % Improvement from v2.2.0 1 -18.8% (Slower) 2 +49.2% (Faster) 5 +258.6% (Faster) 10 +535.1% (Faster) 50 +1523.2% (Faster)
v2.2.0
Version 2.2.0
Changes since v2.1.7:
Fixed
- Fixed a class of iterator invalidation edge cases involving connections made after immediate-mode 'Now' disconnections on the active node.
- Note: Those who've not used deferred mutation opt-outs were not impacted.
- Fixed an iterator invalidation edge case when
DisconnectNow()was used on a tail connection beforeDisconnectAllNow().
Added
- Added new method
Signal:GetConnections(), which returns an array of active connections on the signal, ordered from oldest to newest. Connection:DestroyNow()is now supported.
Full Changelog: v2.1.7...v2.2.0
v2.2.0-rc.1
Version 2.2.0-rc.1
Fixed
- Fixed a class of iterator invalidation edge cases involving connections made after immediate-mode 'Now' disconnections on the active node.
- Note: Those who've not used deferred mutation opt-outs were not impacted.
Added
- Added new method
Signal:GetConnections(), which returns an array of active connections on the signal, ordered from oldest to newest. Connection:DestroyNow()is now supported.
v2.1.7
Version 2.1.7
Fixed
- Changed the approach on how we handled the iterator invalidation bug where immediate-mode 'Now' connections made within Once connections were missed in the same dispatch cycle.
- This fixes the behavior of
FireNowin such cases.
- This fixes the behavior of
- Fixed the
Connectiontype not having the default signature in the exported public type.
Full Changelog: v2.1.5...v2.1.7
v2.1.5
Version 2.1.5
Fixed
- Fixed an edge-case iterator invalidation bug involving immediate-mode 'Now' connections made within Once connections.
Full Changelog: v2.1.4...v2.1.5
v2.1.4
Version 2.1.4
Fixes
- Uninstantiated generic from
Signal.new()is now handled properly. Previously, the signature was not being sanitized in all cases.
Full Changelog: v2.1.3...v2.1.4
v2.1.3
Version 2.1.3
Hello again, this release is mostly just some codebase maintenance and cleaning up.
Added
- Minor documentation improvements.
- Improved guidance on how to use
wally-package-typesduring installation. - Added changelogs, available at the project root and on the documentation website.
- Added Function
coroutine.finally(thread, callback)to Future Considerations.
- Improved guidance on how to use
Changes
- Codebase cleanup and workflow improvements.
- I've changed my GitHub username, however I've taken care to prevent hijacking and to redirect all URLs.
- Repository has been moved to https://github.com/averlyst/NamedSignal — GitHub redirects these automatically.
- Documentation has been moved https://personal.averlyst.dev/NamedSignal — Old links will lead to a redirection page!