Update dependency apple/swift-collections to from: "1.5.0"#19
Merged
Conversation
26583f7 to
2519a32
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
from: "1.4.1"→from: "1.5.0"Release Notes
apple/swift-collections (apple/swift-collections)
v1.5.0: Swift Collections 1.5.0Compare Source
This feature release supports Swift toolchain versions 6.0, 6.1, 6.2, and 6.3. It includes the following new features and bug fixes:
Debugging enhancements
The package now defines LLDB data formatters for
RigidArray. The formatters are emitted into the executable binary, and they are automatically loaded by LLDB. We expect to implement formatters for (many) more types in subsequent releases.New stable APIs
RigidArrayandUniqueArraynow conform toEquatablewhen their element type isEquatable. This conformance requires a Swift 6.4 or later toolchain (it relies on SE-0499 generalizations ofEquatable/Hashableto support noncopyable conforming types).RigidArrayandUniqueArraygained anisTriviallyIdentical(to:)operation, which reports whether two instances share their underlying storage allocation. This does not require the element type to beEquatable, and it works with noncopyable elements.BitSetgained amakeIterator(from:)shortcut for starting iteration at (or after) a specific member, avoiding a linear scan from the start of the set.OrderedDictionarygained areplaceElement(at:withKey:value:)operation that replaces the key-value pair at a given index. The new key is allowed to equal the existing key at that index (in which case only the value is updated).Experimental hashed containers (
UnstableHashedContainerstrait)The Robin-Hood-hashed
UniqueSet,RigidSet,UniqueDictionary, andRigidDictionarytypes in theBasicContainersmodule continue to evolve behind theUnstableHashedContainerspackage trait. This release brings a number of correctness fixes and performance improvements:maxProbeLengthmaintenance to avoid probe-length bloat.RigidDictionary.updateValue(forKey:with:)(the latter exhibited undefined behavior on removals).RigidSet.insert(maximumCount:from:)no longer spuriously reports a capacity overflow due to incorrect accounting.UnstableHashedContainerstrait can now be enabled independently ofUnstableContainersPreview.These types remain source-unstable for now.
Experimental sorted collections (
UnstableSortedCollectionstrait)The
SortedCollectionsmodule'sSortedSethas gained the following additions:SortedSetnow supports value-range subscripts for the full variety of standard range expression types,ClosedRange,PartialRangeFrom,PartialRangeThrough, andPartialRangeUpTo.SortedSet.firstIndex(after:)andSortedSet.lastIndex(before:)return the index to the nearest member following or preceding a given value.This release also fixes several underlying B-tree bugs that were surfaced by these additions.
These types remain source-unstable; they have known API deficiencies that will need to be addressed before they ship.
Experimental container protocols (
UnstableContainersPreviewtrait)The
ContainersPreviewmodule's protocol hierarchy and associated types continue to be developed. Several constructs have been renamed to follow Swift Evolution proposals in flight.struct Box<T>struct UniqueBox<Value>struct Borrow<Target>struct Ref<Target>struct Inout<Target>struct MutableRef<Target>Producer.ProducerErrorProducer.FailureProducer.generateNext()Producer.next()Producer.skip(upTo:)Producer.skip(by:)For
UniqueBox,RefandMutableRef, there are deprecated typealiases for the old names, preserving source compatibility.Other changes to the experimental container model:
Container.Indexno longer needs to conform toComparable. This allows linked lists to become containers.RigidArray,UniqueArray,RigidDeque, andUniqueDequenow conform to the container protocols.Producer.collect(into:)for collecting a producer's output into aRangeReplaceableContainer.BorrowingIteratorProtocol.copy()for turning a borrowing iterator into a producer.filterandmapoverloads forBorrowingIteratorProtocol,Producer, andDrain.BorrowingSequence.firstwas removed.BorrowingSequence,BorrowingIteratorProtocoland their requirements have temporarily gained trailing underscores to avoid naming conflicts with the (provisional) protocol definition in the Standard Library. We expect these definitions to be removed when these protocols officially become part of the stdlib.The protocol-based APIs in
ContainersPreviewnow require a Swift 6.4 or later toolchain.UniqueBoxis source-stable, therefore it continues to require Swift 6.2.Notable bug fixes
HashTreeCollections: Fixed an invariant violation that could be triggered by some operations onTreeSet/TreeDictionary._RopeModule: Fixed an infinite loop when hashing the UTF-8 view of a multi-chunk big substring.BitCollections: Fixed a bogus precondition inBitArray.insert(repeating:count:at:); fixedBitSet.isSubset(of: Range<Int>)to correctly examine elements above the range's upper word.HeapModule: FixedHeap.insert(contentsOf:)to use a wrapping multiply in its Floyd-heuristic computation; added a missing bounds assertion inHeap._UnsafeHandle.swapAt(_:with:).OrderedCollections: FixedOrderedSetcrash on negative capacity values; minor fixes in_HashTable.UnsafeHandle.DequeModule: Fixed sizing issue inUniqueDeque.replace(removing:addingCount:initializingWith:); fixed a missing argument validation inRigidDeque.nextMutableSpan(after:maximumCount:);RigidDeque.consume(_:consumingWith:)now closes the resulting gap before returning; added zero-count fast-paths; replace/prepend operations taking aCollectionnow verify that the source's count matches its contents.BasicContainers: Fixed an overallocation issue inUniqueArray.replace(removing:copying:); fixed a partial-initialization correctness issue inRigidArray.replace(removing:consumingWith:addingCount:initializingWith:).What's Changed
BorrowingSequenceimplementation with proposal by @natecook1000 in #609Container.Indexto conform toComparableby @lorentey in #623BitSet.makeIterator(from:)by @lorentey in #627UniqueArray.edit’s docs by @lorentey in #642BoxtoUniqueBox; align API surface with SE-0517 by @lorentey in #640struct Borrow⟹struct Refby @lorentey in #643struct Inout⟹struct MutableRefby @lorentey in #646New Contributors
Full Changelog: apple/swift-collections@1.4.1...1.5.0
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.