Skip to content

Releases: apple/swift-collections

Swift Collections 1.0.1

20 Sep 23:09
2d33a0e
Compare
Choose a tag to compare

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

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

10 Sep 22:10
07e47b1
Compare
Choose a tag to compare

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

20 Aug 18:52
Compare
Choose a tag to compare

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 renamed updateValue, to better align with the standard updateValue 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 the elements 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

30 Jul 03:10
0959ba7
Compare
Choose a tag to compare

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

09 Jul 01:54
3426dba
Compare
Choose a tag to compare

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 to distance(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

28 May 03:35
d45e634
Compare
Choose a tag to compare

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.)

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

10 Apr 19:49
2d719d7
Compare
Choose a tag to compare

Additions

  • OrderedSet now implements an efficient, linear time diffing algorithm, like Foundation's NSOrderedSet and SwiftUI's List. (#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

05 Apr 20:41
Compare
Choose a tag to compare

This is the initial release.