Releases: miquido/MQ-iOS
Default Error messages and fixes
Improve CriticalSection memory management.
Add IID for quick internal object identifiers.
Add TheErrorDisplayableMessages for customizing TheError displayable messages.
Fixes and error formatting
Fix CriticalSection thread safety issues.
Add runtime warning.
Improve TheError description / display formatting and errors composition.
Sendable and cleanup
- add Sendable support
- cleanup concurrency related functions
- tweak DisplayableString API and internals
OS Support extension
Add support for iOS, tvOS & Catalyst v13 support.
Update debug messages type conversion
Localization and Locking
Rework DisplayableString to be Hashable, Localizable and create custom StringInterpolation for it.
Add os_unfair_lock implementation for Lock.
Add atomic_flag based (spin lock) implementation of CriticalSection type for memory access synchronization .
Remove NSLock implementation for Lock.
Remove Lock.acquireBefore method.
Add identity function.
Add Task waiting methods.
Ergonomy
Extensions
Extending initial interfaces adding some convenience methods, more overloads and more useful functions.
Including:
- additional overloads for noop, always and unimplemented
- breakpoint trigger and check
- DisplayableString for user facing messages
- improved errors ergonomy and metadata
Initial release
Initial release of MQ 🎉
Includes:
- tools for gathering metadata from the source code: SourceCodeLocation, SourceCodeMeta, SourceCodeContext
- base interface for errors and error handling: TheError
- common errors: Cancelled, InternalInconsistency, StringEncodingFailure, Undefined, Unexpected, Unimplemented, Unreachable
- abstraction over locking: Lock
- placeholders for various of contexts: void, always, noop, unreachable, unimplemented
- replacement for Swift assertions that can be manually controlled i.e. to allow unit test coverage for paths using assertions: runtimeAssert, runtimeAssertionFailure