Releases: pointfreeco/swift-nonempty
Releases · pointfreeco/swift-nonempty
0.5.0
What's Changed
- Added: Conformances to
ExpressibleByArrayLiteral
andExpressibleByDictionaryLiteral
(thanks @fwcd, #49). - Added: Conditional conformance to
Sendable
(thanks @tgrapperon, #52). - Fixed: Codability now use single value containers (thanks @john-flanagan, #47).
- Infrastructure: CI updates (#42); README fixes (thanks @ohwhen, #54).
New Contributors
- @john-flanagan made their first contribution in #47
- @fwcd made their first contribution in #49
- @ohwhen made their first contribution in #54
- @tgrapperon made their first contribution in #52
Full Changelog: 0.4.0...0.5.0
0.4.0
- Bug fixed:
NonEmpty
now manages its own synthesized iterator in order to avoid potential stack overflows when calling to APIs on the iterator of the collection it wraps. - Changed:
NonEmpty
no longer conditionally conforms toStringProtocol
. Apple documents against this conformance, and though engineers say there should be no issue with doing so, ABI-wise, we encountered a compiler crash when fixing the bug in the previous bullet point.
0.3.1
- Fixed:
+
operator between twoNonEmpty
s was ambiguous (thanks @buscarini).
0.3.0
- Changed:
NonEmpty
now wraps a base collection rather than a single element and collection as separate fields. This improves the performance and reliability of working withNonEmpty
collections. This does unfortunately mean that invariants can compile and make their way into the system at run time, but we do our best to ensure they cannot be constructed. - Changed: the SPM package name has been changed from
NonEmpty
toswift-nonempty
(thanks @maximkrouk). - Fixed: range subscripts no longer cause runtime stack overflows (thanks @clang13).
- Removed: CocoaPods and Carthage support has been deprecated in favor of SPM.
0.2.2
0.2.1
Swift 5
This release brings Swift 5 support, including an optimization around the mutation of non-empty collections!
Swift 4.2 Linux Edition
Swift 4.2 on Linux has a regression that prevents NonEmpty
from conditionally conforming to RandomAccessCollection
. We're temporarily removing support for the sake of compatibility.
Randomly Ready for Swift 4.2
This release updates NonEmpty to be compatible with Swift 4.2's randomness APIs.
Announcing NonEmpty!
This preliminary release has the basic NonEmpty
type implemented with a few starting conformances to common Swift protocols.