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 Ditto, reference master (8db3fe), with Swift 6.0 for macOS (SPM) on 31 Oct 2024 10:10:05 UTC.

Swift 6 data race errors: 2

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/xspyhack/ditto.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/xspyhack/ditto
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 8db3fee Rename routing to router
Cloned https://github.com/xspyhack/ditto.git
Revision (git rev-parse @):
8db3feeca356eb3d5debb63dd1bdb1e1d58b2c9f
SUCCESS checkout https://github.com/xspyhack/ditto.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": "ditto",
      "name": "Ditto",
      "url": "https://github.com/xspyhack/ditto.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/ditto",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/xspyhack/ditto.git
[1/202] Fetching ditto
Fetched https://github.com/xspyhack/ditto.git from cache (0.86s)
Creating working copy for https://github.com/xspyhack/ditto.git
Working copy of https://github.com/xspyhack/ditto.git resolved at master (8db3fee)
warning: '.resolve-product-dependencies': dependency 'ditto' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/xspyhack/ditto.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--7754E27361AE5C74.txt
[3/11] Compiling Ditto Route.swift
[4/11] Emitting module Ditto
/Users/admin/builder/spi-builder-workspace/Sources/Ditto/Router.swift:80:14: warning: associated value 'registerFailed(reason:)' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Router<Coordinator>.Error.RegisterFailureReason'; this is an error in the Swift 6 language mode
 73 | public extension Router {
 74 |     enum Error: Swift.Error, Equatable {
 75 |         public enum RegisterFailureReason: Equatable {
    |                     `- note: consider making enum 'RegisterFailureReason' conform to the 'Sendable' protocol
 76 |             case invalidScheme
 77 |             case invalidHost
 78 |         }
 79 |
 80 |         case registerFailed(reason: RegisterFailureReason)
    |              `- warning: associated value 'registerFailed(reason:)' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Router<Coordinator>.Error.RegisterFailureReason'; this is an error in the Swift 6 language mode
 81 |
 82 |         public static func ==(lhs: Error, rhs: Error) -> Bool {
/Users/admin/builder/spi-builder-workspace/Sources/Ditto/SIL.swift:181:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SIL' may have shared mutable state; this is an error in the Swift 6 language mode
177 |
178 | // A C function pointer cannot be formed from a closure that captures generic parameters
179 | class SIL {
    |       `- note: class 'SIL' does not conform to the 'Sendable' protocol
180 |     private(set) var symbols: [String: UnsafeMutableRawPointer?] = [:]
181 |     static let shared = SIL()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SIL' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
182 |
183 |     static func install() {
[5/11] Compiling Ditto Routing.swift
[6/11] Compiling Ditto Extractable.swift
[7/11] Compiling Ditto Routable.swift
[8/11] Compiling Ditto Router.swift
/Users/admin/builder/spi-builder-workspace/Sources/Ditto/Router.swift:80:14: warning: associated value 'registerFailed(reason:)' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Router<Coordinator>.Error.RegisterFailureReason'; this is an error in the Swift 6 language mode
 73 | public extension Router {
 74 |     enum Error: Swift.Error, Equatable {
 75 |         public enum RegisterFailureReason: Equatable {
    |                     `- note: consider making enum 'RegisterFailureReason' conform to the 'Sendable' protocol
 76 |             case invalidScheme
 77 |             case invalidHost
 78 |         }
 79 |
 80 |         case registerFailed(reason: RegisterFailureReason)
    |              `- warning: associated value 'registerFailed(reason:)' of 'Sendable'-conforming enum 'Error' has non-sendable type 'Router<Coordinator>.Error.RegisterFailureReason'; this is an error in the Swift 6 language mode
 81 |
 82 |         public static func ==(lhs: Error, rhs: Error) -> Bool {
/Users/admin/builder/spi-builder-workspace/Sources/Ditto/Router.swift:122:13: warning: capture of 'self' with non-sendable type 'Router<Coordinator>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 11 | public typealias SimpleRouter = Router<Void>
 12 |
 13 | public final class Router<Coordinator>: Routing {
    |                    `- note: generic class 'Router' does not conform to the 'Sendable' protocol
 14 |     private let schemes: Set<String>
 15 |     private let hosts: Set<String>
    :
120 |         SIL.install()
121 |         DispatchQueue.main.async {
122 |             self.register(prefix: prefix, symbols: SIL.shared.symbols)
    |             `- warning: capture of 'self' with non-sendable type 'Router<Coordinator>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
123 |         }
124 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Ditto/SIL.swift:181:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SIL' may have shared mutable state; this is an error in the Swift 6 language mode
177 |
178 | // A C function pointer cannot be formed from a closure that captures generic parameters
179 | class SIL {
    |       `- note: class 'SIL' does not conform to the 'Sendable' protocol
180 |     private(set) var symbols: [String: UnsafeMutableRawPointer?] = [:]
181 |     static let shared = SIL()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SIL' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
182 |
183 |     static func install() {
/Users/admin/builder/spi-builder-workspace/Sources/Ditto/Router.swift:122:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
120 |         SIL.install()
121 |         DispatchQueue.main.async {
122 |             self.register(prefix: prefix, symbols: SIL.shared.symbols)
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
123 |         }
124 |     }
[9/11] Compiling Ditto SIL.swift
/Users/admin/builder/spi-builder-workspace/Sources/Ditto/SIL.swift:181:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SIL' may have shared mutable state; this is an error in the Swift 6 language mode
177 |
178 | // A C function pointer cannot be formed from a closure that captures generic parameters
179 | class SIL {
    |       `- note: class 'SIL' does not conform to the 'Sendable' protocol
180 |     private(set) var symbols: [String: UnsafeMutableRawPointer?] = [:]
181 |     static let shared = SIL()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SIL' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
182 |
183 |     static func install() {
[10/11] Compiling Ditto Endpoint.swift
[11/11] Compiling Ditto Context.swift
Build complete! (14.12s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Ditto",
  "name" : "Ditto",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Ditto",
      "targets" : [
        "Ditto"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "DittoTests",
      "module_type" : "SwiftTarget",
      "name" : "DittoTests",
      "path" : "Tests/DittoTests",
      "sources" : [
        "ContextTests.swift",
        "EndpointTests.swift",
        "RouteTests.swift",
        "RouterTests.swift"
      ],
      "target_dependencies" : [
        "Ditto"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Ditto",
      "module_type" : "SwiftTarget",
      "name" : "Ditto",
      "path" : "Sources/Ditto",
      "product_memberships" : [
        "Ditto"
      ],
      "sources" : [
        "Context.swift",
        "Endpoint.swift",
        "Extractable.swift",
        "Routable.swift",
        "Route.swift",
        "Router.swift",
        "Routing.swift",
        "SIL.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.0"
}
Done.