Releases: apple/swift-collections
Swift Collections 1.0.1
Changes
-
The CMake configuration now supports building the package for AArch64 Linux distributions, unblocking adoption in SPM.
(Note that the CMake configuration is intended only to support the use of this package from within Swift toolchain builds. It is provided as is, with no source compatibility guarantees.)
-
Minor documentation updates.
Pull requests
- #111 [CMake] Match lowercase "aarch64" (by @neonichu)
- #112 [OrderedSet][doc] Fix thinko (by @lorentey)
Thank you to everyone who contributed to this release! Your bug reports, discussions and pull requests all help improve this package.
Swift Collections 1.0.0
This release marks an important milestone for this package -- the advent of source stability!
Changes
- The public API of Swift Collections is now considered source stable. The README defines what we consider public API.
- The three
OrderedDictionary
methods that were deprecated in 0.0.7 are now marked unavailable. OrderedDictionary.init(uncheckedUniqueElements:)
no longer creates large dictionary instances without an associated hash table.
Pull requests
- #95 Follow stdlib's leading underscore rule (by @ejmarchant)
- #96 Documentation: Remove in-place mutation comments (by @ejmarchant)
- #97 Freeze some types for consistency with their inlinable initializers (by @lorentey)
- #102 1.0 release preparations (by @lorentey)
- #106 [OrderedSet] Make _checkInvariants public and call it in more operations (by @lorentey)
- #107 [OrderedSet] Don't let the unchecked init create large sets with no hash table (by @lorentey)
- #110 [run-full-tests.sh] Fix bashism: == vs = (by @lorentey)
Thank you to everyone who contributed to this release! Your bug reports, discussions and pull requests all help improve this package.
Swift Collections 0.0.7
This release prepares for source stability by deprecating some OrderedDictionary APIs that we'd like to remove in version 1.0 of the package. (All deprecated names have reasonable replacements.)
Changes
-
The two
OrderedDictionary.modifyValue
methods were renamedupdateValue
, to better align with the standardupdateValue
function (#90)/* Old: */ d.modifyValue(forKey: key, default: []) { $0.append(newValue) } /* New: */ d.updateValue(forKey: key, default: []) { $0.append(newValue) } /* Old: */ d.modifyValue(forKey: key, insertingDefault: [], at: 0) { $0.append(newValue) } /* New: */ d.updateValue(forKey: key, insertingDefault: [], at: 0) { $0.append(newValue) }
-
OrderedDictionary.subscript(offset:)
was removed; it used inconsistent terminology. To access a key-value pair at a given position, you can continue using the unlabeled subscript on theelements
view./* Deprecated: */ d[offset: 42] /* Replacement: */ d.element[42]
-
The collections benchmarks were moved to a standalone nested package in a subdirectory of the repository, allowing the top-level package manifest to stop declaring a dependency on swift-collections-benchmark. This will make it easier to add Swift Collections as a dependency, especially in projects such as the Package Manager (or the benchmarking tool itself).
The old names for removed/renamed APIs are still available as deprecated members -- these will be removed in the 1.0 release.
Pull requests
- #81 Fix typos: missing subscript parameters (by @ejmarchant)
- #82 Fix documentation for types conforming to ExpressibleByArrayLiteral or ExpressibleByDictionaryLiteral (by @ejmarchant)
- #86 Stop depending on swift-collections-benchmark (by @lorentey)
- #91 [OrderedDictionary] modifyValue → updateValue (by @lorentey)
- #93 Add Benchmarks package to workspace (by @lorentey)
- #92 [OrderedDictionary] Deprecate
subscript(offset:)
for now (by @lorentey)
Thank you to everyone who contributed to this release! Your bug reports, discussions and pull requests all help improve this package.
Swift Collections 0.0.5
This release consists of an update to the CMake config that is used during non-bootstrapped builds of the Swift toolchain. It contains no changes for package-based projects.
Pull requests
Thank you to everyone who contributed to this release! Your bug reports, discussions and pull requests all help improve this package.
Swift Collections 0.0.4
Fixes
- Work around a nondeterministic build issue that triggered a compiler crash on some machines (#56)
- Basic support for building on OpenBSD (#52)
- Building the package with COLLECTIONS_INTERNAL_CHECKS no longer fails (#53)
Pull requests
- #52: Changes to support OpenBSD (by @3405691582)
- #53: Update invalid OrderedDictionary invariant check (by @vihanb)
- #55: Fixing a small typo on quick help docs (by @rkreutz)
- #54: Mark OrderedSetDiffingTests with availability (by @amonshiz)
- #60: [CMake] Update config to prepare for SwiftPM adoption (by @lorentey)
- #62: Work around another MergeModules crash (by @lorentey)
- #63: [test]
checkCollection
: Don’t pass decreasing indices todistance(from:to:)
(by @lorentey)
Thank you to everyone who contributed to this release! Your bug reports, discussions and pull requests all help improve this package.
Swift Collections 0.0.3
Fixes
- The repository no longer contains files with invalid names on Windows (#33)
Deque.append(contentsOf:)
,.prepend(contentsOf:)
and the sequence-based initializer no longer crash when given an array instance bridged from Objective-C. (#27)OrderedSet.insert
is now marked@discardableResult
. (#19)- The benchmark executable is no longer exposed as a public package product. (#28)
Pull requests
(You can also find a full list of issues resolved and PRs merged in this release by looking at the 0.0.3 milestone.)
- #10: [meta] Update links in PR templates (by @lorentey)
- #13: Add Package.resolved to .gitignore (by @maniramezan)
- #21: Add the @discardableResult attribute to OrderedSet.insert(_:at:) (by @kielgillard)
- #23: Fix CollectionTestCase calling super's setup on tearDown issue (by @abintom)
- #25: Update to swift-collections-benchmark 0.0.2 (by @lorentey)
- #26: [OrderedDictionary] Document encoding format (by @lorentey)
- #28: [OrderedCollections] Correct spelling of BitsetTests filename (by @msteindorfer)
- #32: Replace Index with Int where possible (by @Frizlab)
- #34: Documentation: remove invalid file characters (by @compnerd)
- #36: Remove the benchmark product from the package manifest (by @lorentey)
- #40: Add Xcode template file with license comment. (by @vihanb)
- #41: git: ignore vim swap files (by @compnerd)
- #42: build: add a CMake based build system (by @compnerd)
- #44: [Deque] Work around stdlib issue with Array.withContiguousStorageIfAvailable (by @lorentey)
- #47: [manifest] Ignore CMake files (by @lorentey)
- #48: [meta] Update dependencies (by @lorentey)
- #49: [Deque][NFC] Remove unused code (by @lorentey)
Thank you to everyone who contributed to this release! Your bug reports, discussions and pull requests all help improve this package.
Swift Collections 0.0.2
Additions
OrderedSet
now implements an efficient, linear time diffing algorithm, like Foundation'sNSOrderedSet
and SwiftUI'sList
. (#6)
Fixes
- We've worked around a nondeterministic build issue that triggered a compiler crash on a minority of machines. (#7)
Pull requests
(You can also find a full list of issues resolved and PRs merged in this release by looking at the 0.0.2 milestone.)
- #6: Efficient diffing for OrderedSet (by @numist)
- #8: Fixes link to combinatorics. (by @powerje)
- #9: Minor doc fix (by @byaruhaf)
- #12: Remove outdated passage in OrderedSet.init(minimumCapacity:persistent:) docs (by @lorentey)
- #14: Correct typo for address sanitizer (by @toddpress)
- #15: Update Package.resolved with swift-collections-benchmark package (by @Sajjon)
- #16: Update Xcode schemes for the package (by @lorentey)
- #18: Fix nondeterministic compiler crash in debug builds (by @lorentey)
Thank you to everyone who contributed to this release! Your bug reports, discussions and pull requests all help improve this package.
Swift Collections 0.0.1
This is the initial release.