The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of Dwifft, reference master (6fec2b), with Swift 6.1 for macOS (SPM) on 25 Apr 2025 20:42:50 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/jflinter/Dwifft.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/jflinter/Dwifft
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 6fec2bc Merge pull request #100 from DenTelezhkin/swift-pm
Cloned https://github.com/jflinter/Dwifft.git
Revision (git rev-parse @):
6fec2bc0246091b3e17a9d42e722fb98e05ac3ff
SUCCESS checkout https://github.com/jflinter/Dwifft.git at master
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "dwifft",
      "name": "Dwifft",
      "url": "https://github.com/jflinter/Dwifft.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Dwifft",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/jflinter/Dwifft.git
[1/1590] Fetching dwifft
Fetched https://github.com/jflinter/Dwifft.git from cache (1.11s)
Creating working copy for https://github.com/jflinter/Dwifft.git
Working copy of https://github.com/jflinter/Dwifft.git resolved at master (6fec2bc)
warning: '.resolve-product-dependencies': dependency 'dwifft' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/jflinter/Dwifft.git
https://github.com/jflinter/Dwifft.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Dwifft",
  "name" : "Dwifft",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "8.0"
    },
    {
      "name" : "tvos",
      "version" : "9.0"
    },
    {
      "name" : "macos",
      "version" : "10.11"
    }
  ],
  "products" : [
    {
      "name" : "Dwifft",
      "targets" : [
        "Dwifft"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "Dwifft",
      "module_type" : "SwiftTarget",
      "name" : "Dwifft",
      "path" : "Dwifft",
      "product_memberships" : [
        "Dwifft"
      ],
      "sources" : [
        "AbstractDiffCalculator.swift",
        "Dwifft+AppKit.swift",
        "Dwifft+UIKit.swift",
        "Dwifft.swift",
        "SectionedValues.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.1"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/8] Compiling Dwifft SectionedValues.swift
[4/8] Compiling Dwifft Dwifft+UIKit.swift
[5/8] Compiling Dwifft Dwifft.swift
/Users/admin/builder/spi-builder-workspace/Dwifft/Dwifft.swift:39:26: warning: enum case 'insert' has 2 associated values; matching them as a tuple is deprecated
 11 | public enum DiffStep<Value> : CustomDebugStringConvertible {
 12 |     /// An insertion.
 13 |     case insert(Int, Value)
    |          `- note: 'insert' declared here
 14 |     /// A deletion.
 15 |     case delete(Int, Value)
    :
 37 |     public var value: Value {
 38 |         switch(self) {
 39 |         case let .insert(j):
    |                          `- warning: enum case 'insert' has 2 associated values; matching them as a tuple is deprecated
 40 |             return j.1
 41 |         case let .delete(j):
/Users/admin/builder/spi-builder-workspace/Dwifft/Dwifft.swift:41:26: warning: enum case 'delete' has 2 associated values; matching them as a tuple is deprecated
 13 |     case insert(Int, Value)
 14 |     /// A deletion.
 15 |     case delete(Int, Value)
    |          `- note: 'delete' declared here
 16 |
 17 |     public var debugDescription: String {
    :
 39 |         case let .insert(j):
 40 |             return j.1
 41 |         case let .delete(j):
    |                          `- warning: enum case 'delete' has 2 associated values; matching them as a tuple is deprecated
 42 |             return j.1
 43 |         }
[6/8] Compiling Dwifft AbstractDiffCalculator.swift
[7/8] Compiling Dwifft Dwifft+AppKit.swift
/Users/admin/builder/spi-builder-workspace/Dwifft/Dwifft+AppKit.swift:54:19: warning: call to main actor-isolated instance method 'beginUpdates()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 52 |     override internal func processChanges(newState: SectionedValues<Int, Value>, diff: [SectionedDiffStep<Int, Value>]) {
 53 |         guard let tableView = self.tableView else { return }
 54 |         tableView.beginUpdates()
    |                   `- warning: call to main actor-isolated instance method 'beginUpdates()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 55 |         self._sectionedValues = newState
 56 |         for result in diff {
AppKit.NSTableView.beginUpdates:3:24: note: calls to instance method 'beginUpdates()' from outside of its actor context are implicitly asynchronous
1 | class NSTableView {
2 | @available(macOS 10.7, *)
3 |   @MainActor open func beginUpdates()}
  |                        |- note: calls to instance method 'beginUpdates()' from outside of its actor context are implicitly asynchronous
  |                        `- note: main actor isolation inferred from inheritance from class 'NSControl'
4 |
/Users/admin/builder/spi-builder-workspace/Dwifft/Dwifft+AppKit.swift:58:52: warning: call to main actor-isolated instance method 'removeRows(at:withAnimation:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 56 |         for result in diff {
 57 |             switch result {
 58 |             case let .delete(_, row, _): tableView.removeRows(at: [row], withAnimation: self.deletionAnimation)
    |                                                    `- warning: call to main actor-isolated instance method 'removeRows(at:withAnimation:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 59 |             case let .insert(_, row, _): tableView.insertRows(at: [row], withAnimation: self.insertionAnimation)
 60 |             default: fatalError("NSTableViews do not have sections")
AppKit.NSTableView.removeRows:3:24: note: calls to instance method 'removeRows(at:withAnimation:)' from outside of its actor context are implicitly asynchronous
1 | class NSTableView {
2 | @available(macOS 10.7, *)
3 |   @MainActor open func removeRows(at indexes: IndexSet, withAnimation animationOptions: NSTableView.AnimationOptions = [])}
  |                        |- note: calls to instance method 'removeRows(at:withAnimation:)' from outside of its actor context are implicitly asynchronous
  |                        `- note: main actor isolation inferred from inheritance from class 'NSControl'
4 |
/Users/admin/builder/spi-builder-workspace/Dwifft/Dwifft+AppKit.swift:59:52: warning: call to main actor-isolated instance method 'insertRows(at:withAnimation:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 57 |             switch result {
 58 |             case let .delete(_, row, _): tableView.removeRows(at: [row], withAnimation: self.deletionAnimation)
 59 |             case let .insert(_, row, _): tableView.insertRows(at: [row], withAnimation: self.insertionAnimation)
    |                                                    `- warning: call to main actor-isolated instance method 'insertRows(at:withAnimation:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 60 |             default: fatalError("NSTableViews do not have sections")
 61 |             }
AppKit.NSTableView.insertRows:3:24: note: calls to instance method 'insertRows(at:withAnimation:)' from outside of its actor context are implicitly asynchronous
1 | class NSTableView {
2 | @available(macOS 10.7, *)
3 |   @MainActor open func insertRows(at indexes: IndexSet, withAnimation animationOptions: NSTableView.AnimationOptions = [])}
  |                        |- note: calls to instance method 'insertRows(at:withAnimation:)' from outside of its actor context are implicitly asynchronous
  |                        `- note: main actor isolation inferred from inheritance from class 'NSControl'
4 |
/Users/admin/builder/spi-builder-workspace/Dwifft/Dwifft+AppKit.swift:63:19: warning: call to main actor-isolated instance method 'endUpdates()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 61 |             }
 62 |         }
 63 |         tableView.endUpdates()
    |                   `- warning: call to main actor-isolated instance method 'endUpdates()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 64 |     }
 65 |
AppKit.NSTableView.endUpdates:3:24: note: calls to instance method 'endUpdates()' from outside of its actor context are implicitly asynchronous
1 | class NSTableView {
2 | @available(macOS 10.7, *)
3 |   @MainActor open func endUpdates()}
  |                        |- note: calls to instance method 'endUpdates()' from outside of its actor context are implicitly asynchronous
  |                        `- note: main actor isolation inferred from inheritance from class 'NSControl'
4 |
/Users/admin/builder/spi-builder-workspace/Dwifft/Dwifft+AppKit.swift:129:35: warning: call to main actor-isolated instance method 'performBatchUpdates(_:completionHandler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
127 |     override internal func processChanges(newState: SectionedValues<Section, Value>, diff: [SectionedDiffStep<Section, Value>]) {
128 |         guard let collectionView = self.collectionView else { return }
129 |         collectionView.animator().performBatchUpdates({
    |                                   `- warning: call to main actor-isolated instance method 'performBatchUpdates(_:completionHandler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
130 |             self._sectionedValues = newState
131 |             for result in diff {
AppKit.NSCollectionView.performBatchUpdates:3:24: note: calls to instance method 'performBatchUpdates(_:completionHandler:)' from outside of its actor context are implicitly asynchronous
1 | class NSCollectionView {
2 | @available(macOS 10.11, *)
3 |   @MainActor open func performBatchUpdates(_ updates: (() -> Void)?, completionHandler: ((Bool) -> Void)? = nil)}
  |                        |- note: calls to instance method 'performBatchUpdates(_:completionHandler:)' from outside of its actor context are implicitly asynchronous
  |                        `- note: main actor isolation inferred from inheritance from class 'NSView'
4 |
/Users/admin/builder/spi-builder-workspace/Dwifft/Dwifft+AppKit.swift:129:24: warning: call to main actor-isolated instance method 'animator()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
127 |     override internal func processChanges(newState: SectionedValues<Section, Value>, diff: [SectionedDiffStep<Section, Value>]) {
128 |         guard let collectionView = self.collectionView else { return }
129 |         collectionView.animator().performBatchUpdates({
    |                        `- warning: call to main actor-isolated instance method 'animator()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
130 |             self._sectionedValues = newState
131 |             for result in diff {
AppKit.NSView.animator:3:24: note: calls to instance method 'animator()' from outside of its actor context are implicitly asynchronous
1 | class NSView {
2 | @available(macOS 10.5, *)
3 |   @MainActor open func animator() -> Self}
  |                        |- note: calls to instance method 'animator()' from outside of its actor context are implicitly asynchronous
  |                        `- note: main actor isolation inferred from inheritance from class 'NSResponder'
4 |
/Users/admin/builder/spi-builder-workspace/Dwifft/Dwifft+AppKit.swift:133:68: warning: call to main actor-isolated instance method 'deleteItems(at:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
131 |             for result in diff {
132 |                 switch result {
133 |                 case let .delete(section, item, _): collectionView.deleteItems(at: [IndexPath(item: item, section: section)])
    |                                                                    `- warning: call to main actor-isolated instance method 'deleteItems(at:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
134 |                 case let .insert(section, item, _): collectionView.insertItems(at: [IndexPath(item: item, section: section)])
135 |                 case let .sectionDelete(section, _): collectionView.deleteSections(IndexSet(integer: section))
AppKit.NSCollectionView.deleteItems:3:24: note: calls to instance method 'deleteItems(at:)' from outside of its actor context are implicitly asynchronous
1 | class NSCollectionView {
2 | @available(macOS 10.11, *)
3 |   @MainActor open func deleteItems(at indexPaths: Set<IndexPath>)}
  |                        |- note: calls to instance method 'deleteItems(at:)' from outside of its actor context are implicitly asynchronous
  |                        `- note: main actor isolation inferred from inheritance from class 'NSView'
4 |
/Users/admin/builder/spi-builder-workspace/Dwifft/Dwifft+AppKit.swift:134:68: warning: call to main actor-isolated instance method 'insertItems(at:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
132 |                 switch result {
133 |                 case let .delete(section, item, _): collectionView.deleteItems(at: [IndexPath(item: item, section: section)])
134 |                 case let .insert(section, item, _): collectionView.insertItems(at: [IndexPath(item: item, section: section)])
    |                                                                    `- warning: call to main actor-isolated instance method 'insertItems(at:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
135 |                 case let .sectionDelete(section, _): collectionView.deleteSections(IndexSet(integer: section))
136 |                 case let .sectionInsert(section, _):
AppKit.NSCollectionView.insertItems:3:24: note: calls to instance method 'insertItems(at:)' from outside of its actor context are implicitly asynchronous
1 | class NSCollectionView {
2 | @available(macOS 10.11, *)
3 |   @MainActor open func insertItems(at indexPaths: Set<IndexPath>)}
  |                        |- note: calls to instance method 'insertItems(at:)' from outside of its actor context are implicitly asynchronous
  |                        `- note: main actor isolation inferred from inheritance from class 'NSView'
4 |
/Users/admin/builder/spi-builder-workspace/Dwifft/Dwifft+AppKit.swift:135:69: warning: call to main actor-isolated instance method 'deleteSections' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
133 |                 case let .delete(section, item, _): collectionView.deleteItems(at: [IndexPath(item: item, section: section)])
134 |                 case let .insert(section, item, _): collectionView.insertItems(at: [IndexPath(item: item, section: section)])
135 |                 case let .sectionDelete(section, _): collectionView.deleteSections(IndexSet(integer: section))
    |                                                                     `- warning: call to main actor-isolated instance method 'deleteSections' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
136 |                 case let .sectionInsert(section, _):
137 |                     // NSCollectionViews don't seem to like it when inserting sections beyond numberOfSections
AppKit.NSCollectionView.deleteSections:3:24: note: calls to instance method 'deleteSections' from outside of its actor context are implicitly asynchronous
1 | class NSCollectionView {
2 | @available(macOS 10.11, *)
3 |   @MainActor open func deleteSections(_ sections: IndexSet)}
  |                        |- note: calls to instance method 'deleteSections' from outside of its actor context are implicitly asynchronous
  |                        `- note: main actor isolation inferred from inheritance from class 'NSView'
4 |
/Users/admin/builder/spi-builder-workspace/Dwifft/Dwifft+AppKit.swift:139:49: warning: main actor-isolated property 'numberOfSections' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
137 |                     // NSCollectionViews don't seem to like it when inserting sections beyond numberOfSections
138 |                     // so adjust for that
139 |                     if section > collectionView.numberOfSections {
    |                                                 `- warning: main actor-isolated property 'numberOfSections' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
140 |                         collectionView.insertSections(IndexSet(integer: collectionView.numberOfSections))
141 |                     } else {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSCollectionView.h:206:31: note: property declared here
204 | /* The number of sections displayed by the collection view.
205 | */
206 | @property(readonly) NSInteger numberOfSections API_AVAILABLE(macos(10.11));
    |                               `- note: property declared here
207 |
208 | /* Returns the number of items in the specified "section".
/Users/admin/builder/spi-builder-workspace/Dwifft/Dwifft+AppKit.swift:140:40: warning: call to main actor-isolated instance method 'insertSections' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
138 |                     // so adjust for that
139 |                     if section > collectionView.numberOfSections {
140 |                         collectionView.insertSections(IndexSet(integer: collectionView.numberOfSections))
    |                                        `- warning: call to main actor-isolated instance method 'insertSections' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
141 |                     } else {
142 |                         collectionView.insertSections(IndexSet(integer: section))
AppKit.NSCollectionView.insertSections:3:24: note: calls to instance method 'insertSections' from outside of its actor context are implicitly asynchronous
1 | class NSCollectionView {
2 | @available(macOS 10.11, *)
3 |   @MainActor open func insertSections(_ sections: IndexSet)}
  |                        |- note: calls to instance method 'insertSections' from outside of its actor context are implicitly asynchronous
  |                        `- note: main actor isolation inferred from inheritance from class 'NSView'
4 |
/Users/admin/builder/spi-builder-workspace/Dwifft/Dwifft+AppKit.swift:140:88: warning: main actor-isolated property 'numberOfSections' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
138 |                     // so adjust for that
139 |                     if section > collectionView.numberOfSections {
140 |                         collectionView.insertSections(IndexSet(integer: collectionView.numberOfSections))
    |                                                                                        `- warning: main actor-isolated property 'numberOfSections' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
141 |                     } else {
142 |                         collectionView.insertSections(IndexSet(integer: section))
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSCollectionView.h:206:31: note: property declared here
204 | /* The number of sections displayed by the collection view.
205 | */
206 | @property(readonly) NSInteger numberOfSections API_AVAILABLE(macos(10.11));
    |                               `- note: property declared here
207 |
208 | /* Returns the number of items in the specified "section".
/Users/admin/builder/spi-builder-workspace/Dwifft/Dwifft+AppKit.swift:142:40: warning: call to main actor-isolated instance method 'insertSections' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
140 |                         collectionView.insertSections(IndexSet(integer: collectionView.numberOfSections))
141 |                     } else {
142 |                         collectionView.insertSections(IndexSet(integer: section))
    |                                        `- warning: call to main actor-isolated instance method 'insertSections' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
143 |                     }
144 |                 }
AppKit.NSCollectionView.insertSections:3:24: note: calls to instance method 'insertSections' from outside of its actor context are implicitly asynchronous
1 | class NSCollectionView {
2 | @available(macOS 10.11, *)
3 |   @MainActor open func insertSections(_ sections: IndexSet)}
  |                        |- note: calls to instance method 'insertSections' from outside of its actor context are implicitly asynchronous
  |                        `- note: main actor isolation inferred from inheritance from class 'NSView'
4 |
/Users/admin/builder/spi-builder-workspace/Dwifft/Dwifft+AppKit.swift:129:35: warning: sending value of non-Sendable type '() -> Void' risks causing data races; this is an error in the Swift 6 language mode
127 |     override internal func processChanges(newState: SectionedValues<Section, Value>, diff: [SectionedDiffStep<Section, Value>]) {
128 |         guard let collectionView = self.collectionView else { return }
129 |         collectionView.animator().performBatchUpdates({
    |                                   |- warning: sending value of non-Sendable type '() -> Void' risks causing data races; this is an error in the Swift 6 language mode
    |                                   `- note: sending task-isolated value of non-Sendable type '() -> Void' to main actor-isolated instance method 'performBatchUpdates(_:completionHandler:)' risks causing races in between task-isolated and main actor-isolated uses
130 |             self._sectionedValues = newState
131 |             for result in diff {
[8/8] Emitting module Dwifft
Build complete! (6.23s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Dwifft",
  "name" : "Dwifft",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "8.0"
    },
    {
      "name" : "tvos",
      "version" : "9.0"
    },
    {
      "name" : "macos",
      "version" : "10.11"
    }
  ],
  "products" : [
    {
      "name" : "Dwifft",
      "targets" : [
        "Dwifft"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "Dwifft",
      "module_type" : "SwiftTarget",
      "name" : "Dwifft",
      "path" : "Dwifft",
      "product_memberships" : [
        "Dwifft"
      ],
      "sources" : [
        "AbstractDiffCalculator.swift",
        "Dwifft+AppKit.swift",
        "Dwifft+UIKit.swift",
        "Dwifft.swift",
        "SectionedValues.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.1"
}
Done.