Bump github.com/apple/swift-collections from 1.2.0 to 1.3.0
Bumps github.com/apple/swift-collections from 1.2.0 to 1.3.0.
Release notes
Sourced from github.com/apple/swift-collections's releases.
Swift Collections 1.3.0
This feature release supports Swift toolchain versions 6.0, 6.1 and 6.2, and it includes the following improvements:
BasicContainersmoduleThis new module collects ownership-aware, low-level variants of existing data structures in the core standard library. In this release, this module consists of two array variants,
UniqueArrayandRigidArray.These new types are provided as less flexible, noncopyable alternatives to the classic
Arraytype. The standardArrayimplements value semantics with the copy-on-write optimization; this inherently requires elements to be copyable, and it is itself copyable.
struct UniqueArray<Element>is a noncopyable array variant that takes awayArray's copy-on-write behavior, enabling support for noncopyable elements. This type's noncopyability means mutations can always assume that the array is uniquely owned, with no shared copies (hence the name!). This means that array mutations such as mutating an element at an index can behave much more predictably, with no unexpected performance spikes due to having to copy shared storage.
struct RigidArray<Element>goes even further, by also disabling dynamic resizing. Rigid arrays have a fixed capacity: they are initialized with room for a particular number of elements, and they never implicitly grow (nor shrink) their storage. When a rigid array's count reaches its capacity, it becomes unable to add any new items -- inserting into a full array is considered a programming error. This makes this a quite inflexible (or rigid) type indeed, as avoiding storage overflow requires careful, up front planning on the resource needs of the task at hand. In exchange, rigid arrays can have extremely predictable performance characteristics.
UniqueArrayis a great default choice when a task just needs an array type that is able store noncopyable elements.RigidArrayis best reserved for use cases that require absolute, pedantic control over memory use or latency -- such as control software running in environments with extremely limited memory, or when a certain task must always be completed in some given amount of time.The
UniqueandRigidprefixes applied here establish a general naming convention for low-level variants of the classic copy-on-write data structure implementations. Future releases are expected to flesh out our zoo of container types by addingUniqueandRigidvariants of the existingSet,Dictionary,Deque,Heapand other constructs, with type names such as asRigidDictionaryandUniqueDeque.
TrailingElementsModulemoduleThis new module ships a new
TrailingArrayconstruct, a preview of a new low-level, ownership-aware variant ofManagedBuffer. This is primarily intended as a interoperability helper for C constructs that consist of a fixed-size header directly followed by variable-size storage buffer.
ContainersPreviewmoduleThis module is intended to contain previews of an upcoming ownership-aware container model. In this initial release, this module consists of just one construct:
struct Box<T>.
Boxis a wrapper type that forms a noncopyable, heap allocated box around an arbitrary value.What's Changed
- Merge release/1.1 to main by
@lorenteyin apple/swift-collections#204- Merge relase/1.1 to main, without taking any changes by
@lorenteyin apple/swift-collections#206- [Heap] Add methods to replace minimum/maximum (redux) by
@lorenteyin apple/swift-collections#208- Persistent collections updates (part 10) by
@lorenteyin apple/swift-collections#207- Update CMakeLists.txt by
@compnerdin apple/swift-collections#215- Merge latest changes from release/1.1 to main by
@lorenteyin apple/swift-collections#220- Merge branch release/1.1 to main by
@lorenteyin apple/swift-collections#231- [SortedCollections] Disable tests with
@testableimports in release builds by@lorenteyin apple/swift-collections#232- [Hashtable] Minor Documentation Fix (Typo) by
@nickkohrnin apple/swift-collections#241- Merge branch
release/1.1tomainby@lorenteyin apple/swift-collections#248- Update README.md by
@glessardin apple/swift-collections#251- [OrderedDictionary] Explicitly mention in documentation that keys/values are ordered by
@warplingin apple/swift-collections#254- build: support ARM64 spelling by
@compnerdin apple/swift-collections#282- Merge release/1.1 to main by
@lorenteyin apple/swift-collections#284- Update release checklist by
@lorenteyin apple/swift-collections#323- build: update the build rules for adjusted tree layout by
@compnerdin apple/swift-collections#331- build: support using swift-collections in larger projects by
@compnerdin apple/swift-collections#330- Merge release/1.1 to main by
@lorenteyin apple/swift-collections#332- build: support building in Debug mode on Windows by
@compnerdin apple/swift-collections#333- Bugfix Incorrect Assert in BTree.removeFirst/removeLast by
@LeoNavelin apple/swift-collections#349- Fix typos by
@rex4539in apple/swift-collections#356- Merge branch
release/1.1tomainby@lorenteyin apple/swift-collections#358
... (truncated)
Commits
7b847a3Merge pull request #525 from apple/interim-1.3-branchccb6059Update docsbf71f06Merge pull request #524 from apple/interim-1.3-branch68eca94RigidArray: Fix discrepancy between adjusted copy() behavior and its testaae7896Merge branch 'release/1.2' into interim-1.3-branch8df8ae3More doc updates9cf2cf2Update RigidArray API docsc6cc6edAdd some rudimentary docs to Boxe5577bbUpdate DocC documentationc185d8dUpdate Swift Package Index configuration- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
-
@dependabot rebasewill rebase this PR -
@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it -
@dependabot mergewill merge this PR after your CI passes on it -
@dependabot squash and mergewill squash and merge this PR after your CI passes on it -
@dependabot cancel mergewill cancel a previously requested merge and block automerging -
@dependabot reopenwill reopen this PR if it is closed -
@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually -
@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency -
@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) -
@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) -
@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)