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 Deferred, reference develop (c82b9e), with Swift 6.0 for macOS (SPM) on 28 Nov 2024 23:27:58 UTC.

Swift 6 data race errors: 1

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 -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.58.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/bignerdranch/Deferred.git
Reference: develop
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/bignerdranch/Deferred
 * branch            develop    -> FETCH_HEAD
 * [new branch]      develop    -> origin/develop
HEAD is now at c82b9ef Add concurrency migration guide
Cloned https://github.com/bignerdranch/Deferred.git
Revision (git rev-parse @):
c82b9ef73132ac88a768b9e2fdbab7765346c61d
SUCCESS checkout https://github.com/bignerdranch/Deferred.git at develop
========================================
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": "deferred",
      "name": "Deferred",
      "url": "https://github.com/bignerdranch/Deferred.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Deferred",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/bignerdranch/Deferred.git
[1/6330] Fetching deferred
Fetched https://github.com/bignerdranch/Deferred.git from cache (1.14s)
Creating working copy for https://github.com/bignerdranch/Deferred.git
Working copy of https://github.com/bignerdranch/Deferred.git resolved at develop (c82b9ef)
warning: '.resolve-product-dependencies': dependency 'deferred' 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/bignerdranch/Deferred.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 -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/4] Write sources
[2/4] Compiling CAtomics Empty.c
[3/4] Write swift-version--7754E27361AE5C74.txt
[5/23] Compiling Deferred FutureIgnore.swift
[6/23] Compiling Deferred FutureMap.swift
[7/24] Compiling Deferred Protected.swift
[8/24] Compiling Deferred FutureComposition.swift
[9/24] Compiling Deferred FutureEveryMap.swift
[10/24] Compiling Deferred FuturePeek.swift
[11/24] Compiling Deferred FutureUpon.swift
[12/24] Compiling Deferred FutureAsync.swift
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/FutureAsync.swift:23:13: warning: capture of 'deferred' with non-sendable type 'Deferred<Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
21 |
22 |         queue.async(flags: flags) {
23 |             deferred.fill(with: work())
   |             `- warning: capture of 'deferred' with non-sendable type 'Deferred<Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
24 |         }
25 |
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/Deferred.swift:22:15: note: consider making generic struct 'Deferred' conform to the 'Sendable' protocol
20 | /// If the value never becomes determined, a handler submitted to it will never
21 | /// be executed.
22 | public struct Deferred<Value> {
   |               `- note: consider making generic struct 'Deferred' conform to the 'Sendable' protocol
23 |     /// The primary storage, initialized with a value once-and-only-once (at
24 |     /// init or later).
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/FutureAsync.swift:23:33: warning: capture of 'work' with non-sendable type '() -> Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
21 |
22 |         queue.async(flags: flags) {
23 |             deferred.fill(with: work())
   |                                 |- warning: capture of 'work' with non-sendable type '() -> Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
   |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
24 |         }
25 |
[13/24] Compiling Deferred FutureCollections.swift
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/FutureAsync.swift:23:13: warning: capture of 'deferred' with non-sendable type 'Deferred<Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
21 |
22 |         queue.async(flags: flags) {
23 |             deferred.fill(with: work())
   |             `- warning: capture of 'deferred' with non-sendable type 'Deferred<Value>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
24 |         }
25 |
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/Deferred.swift:22:15: note: consider making generic struct 'Deferred' conform to the 'Sendable' protocol
20 | /// If the value never becomes determined, a handler submitted to it will never
21 | /// be executed.
22 | public struct Deferred<Value> {
   |               `- note: consider making generic struct 'Deferred' conform to the 'Sendable' protocol
23 |     /// The primary storage, initialized with a value once-and-only-once (at
24 |     /// init or later).
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/FutureAsync.swift:23:33: warning: capture of 'work' with non-sendable type '() -> Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
21 |
22 |         queue.async(flags: flags) {
23 |             deferred.fill(with: work())
   |                                 |- warning: capture of 'work' with non-sendable type '() -> Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
   |                                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
24 |         }
25 |
[14/24] Compiling Deferred Locking.swift
[15/24] Compiling Deferred Promise.swift
[16/24] Compiling Deferred Future.swift
[17/24] Compiling Deferred FutureAndThen.swift
[18/24] Compiling Deferred Atomics.swift
[19/24] Compiling Deferred Deferred.swift
[20/24] Emitting module Deferred
[21/24] Compiling Deferred Executor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/Executor.swift:83:24: warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
 80 |     }
 81 |
 82 |     public func submit(_ body: @escaping() -> Void) {
    |                          `- note: parameter 'body' is implicitly non-sendable
 83 |         async(execute: body)
    |                        `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
 84 |     }
 85 |
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/Executor.swift:99:22: warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
 96 | /// operations in the queue.
 97 | extension OperationQueue: Executor {
 98 |     public func submit(_ body: @escaping() -> Void) {
    |                          `- note: parameter 'body' is implicitly non-sendable
 99 |         addOperation(body)
    |                      `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
100 |     }
101 | }
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/Executor.swift:126:17: warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
123 | /// of the run loop.
124 | extension RunLoop: Executor {
125 |     public func submit(_ body: @escaping() -> Void) {
    |                          `- note: parameter 'body' is implicitly non-sendable
126 |         perform(body)
    |                 `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
127 |     }
128 | }
[22/24] Compiling Deferred ExistentialFuture.swift
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/Executor.swift:83:24: warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
 80 |     }
 81 |
 82 |     public func submit(_ body: @escaping() -> Void) {
    |                          `- note: parameter 'body' is implicitly non-sendable
 83 |         async(execute: body)
    |                        `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
 84 |     }
 85 |
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/Executor.swift:99:22: warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
 96 | /// operations in the queue.
 97 | extension OperationQueue: Executor {
 98 |     public func submit(_ body: @escaping() -> Void) {
    |                          `- note: parameter 'body' is implicitly non-sendable
 99 |         addOperation(body)
    |                      `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
100 |     }
101 | }
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/Executor.swift:126:17: warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
123 | /// of the run loop.
124 | extension RunLoop: Executor {
125 |     public func submit(_ body: @escaping() -> Void) {
    |                          `- note: parameter 'body' is implicitly non-sendable
126 |         perform(body)
    |                 `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
127 |     }
128 | }
[23/24] Compiling Deferred DeferredQueue.swift
[24/24] Compiling Deferred DeferredVariant.swift
[25/42] Compiling Task TaskPromise.swift
[26/42] Compiling Task TaskRecovery.swift
[27/43] Compiling Task TaskIgnore.swift
[28/43] Compiling Task TaskMap.swift
[29/43] Compiling Task TaskEveryMap.swift
[30/43] Compiling Task TaskFallback.swift
[31/43] Compiling Task TaskResult.swift
[32/43] Compiling Task TaskUpon.swift
[33/43] Compiling Task TaskAsync.swift
/Users/admin/builder/spi-builder-workspace/Sources/Task/TaskAsync.swift:35:13: warning: capture of 'deferred' with non-sendable type 'Deferred<Task<Success>.Result>' (aka 'Deferred<Result<Success, any Error>>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
33 |             defer { semaphore.signal() }
34 |
35 |             deferred.fill(with: Result(catching: work))
   |             `- warning: capture of 'deferred' with non-sendable type 'Deferred<Task<Success>.Result>' (aka 'Deferred<Result<Success, any Error>>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
36 |         }
37 |
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/Deferred.swift:22:15: note: generic struct 'Deferred' does not conform to the 'Sendable' protocol
20 | /// If the value never becomes determined, a handler submitted to it will never
21 | /// be executed.
22 | public struct Deferred<Value> {
   |               `- note: generic struct 'Deferred' does not conform to the 'Sendable' protocol
23 |     /// The primary storage, initialized with a value once-and-only-once (at
24 |     /// init or later).
/Users/admin/builder/spi-builder-workspace/Sources/Task/TaskAsync.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Deferred'
 8 |
 9 | #if SWIFT_PACKAGE
10 | import Deferred
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Deferred'
11 | #endif
12 | import Dispatch
/Users/admin/builder/spi-builder-workspace/Sources/Task/TaskAsync.swift:35:50: warning: capture of 'work' with non-sendable type '() throws -> Success' in a `@Sendable` closure; this is an error in the Swift 6 language mode
33 |             defer { semaphore.signal() }
34 |
35 |             deferred.fill(with: Result(catching: work))
   |                                                  |- warning: capture of 'work' with non-sendable type '() throws -> Success' in a `@Sendable` closure; this is an error in the Swift 6 language mode
   |                                                  `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
36 |         }
37 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/TaskChain.swift:35:19: warning: class 'Root' must restate inherited '@unchecked Sendable' conformance
 33 |     /// that first task's `Root`.
 34 |     @objc(BNRTaskRootProgress)
 35 |     private class Root: Progress {
    |                   `- warning: class 'Root' must restate inherited '@unchecked Sendable' conformance
 36 |         /// Key for value of type `[Root]?` in `Thread.threadDictionary`.
 37 |         static let threadKey = "_BNRTaskProgressStack"
[34/43] Compiling Task TaskChain.swift
/Users/admin/builder/spi-builder-workspace/Sources/Task/TaskAsync.swift:35:13: warning: capture of 'deferred' with non-sendable type 'Deferred<Task<Success>.Result>' (aka 'Deferred<Result<Success, any Error>>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
33 |             defer { semaphore.signal() }
34 |
35 |             deferred.fill(with: Result(catching: work))
   |             `- warning: capture of 'deferred' with non-sendable type 'Deferred<Task<Success>.Result>' (aka 'Deferred<Result<Success, any Error>>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
36 |         }
37 |
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/Deferred.swift:22:15: note: generic struct 'Deferred' does not conform to the 'Sendable' protocol
20 | /// If the value never becomes determined, a handler submitted to it will never
21 | /// be executed.
22 | public struct Deferred<Value> {
   |               `- note: generic struct 'Deferred' does not conform to the 'Sendable' protocol
23 |     /// The primary storage, initialized with a value once-and-only-once (at
24 |     /// init or later).
/Users/admin/builder/spi-builder-workspace/Sources/Task/TaskAsync.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Deferred'
 8 |
 9 | #if SWIFT_PACKAGE
10 | import Deferred
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Deferred'
11 | #endif
12 | import Dispatch
/Users/admin/builder/spi-builder-workspace/Sources/Task/TaskAsync.swift:35:50: warning: capture of 'work' with non-sendable type '() throws -> Success' in a `@Sendable` closure; this is an error in the Swift 6 language mode
33 |             defer { semaphore.signal() }
34 |
35 |             deferred.fill(with: Result(catching: work))
   |                                                  |- warning: capture of 'work' with non-sendable type '() throws -> Success' in a `@Sendable` closure; this is an error in the Swift 6 language mode
   |                                                  `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
36 |         }
37 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/TaskChain.swift:35:19: warning: class 'Root' must restate inherited '@unchecked Sendable' conformance
 33 |     /// that first task's `Root`.
 34 |     @objc(BNRTaskRootProgress)
 35 |     private class Root: Progress {
    |                   `- warning: class 'Root' must restate inherited '@unchecked Sendable' conformance
 36 |         /// Key for value of type `[Root]?` in `Thread.threadDictionary`.
 37 |         static let threadKey = "_BNRTaskProgressStack"
[35/43] Emitting module Task
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:15:21: warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
 13 | /// tree.
 14 | @objc(BNRTaskProxyProgress)
 15 | private final class ProxyProgress: Progress {
    |                     `- warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
 16 |
 17 |     @objc dynamic let observee: Progress
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+Future.swift:17:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ProgressCompletionExecutor' may have shared mutable state; this is an error in the Swift 6 language mode
13 | #endif
14 |
15 | private final class ProgressCompletionExecutor: Executor {
   |                     `- note: class 'ProgressCompletionExecutor' does not conform to the 'Sendable' protocol
16 |
17 |     static let shared = ProgressCompletionExecutor()
   |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ProgressCompletionExecutor' 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
18 |
19 |     func submit(_ body: @escaping () -> Void) {
/Users/admin/builder/spi-builder-workspace/Sources/Task/TaskChain.swift:35:19: warning: class 'Root' must restate inherited '@unchecked Sendable' conformance
 33 |     /// that first task's `Root`.
 34 |     @objc(BNRTaskRootProgress)
 35 |     private class Root: Progress {
    |                   `- warning: class 'Root' must restate inherited '@unchecked Sendable' conformance
 36 |         /// Key for value of type `[Root]?` in `Thread.threadDictionary`.
 37 |         static let threadKey = "_BNRTaskProgressStack"
[36/43] Compiling Task Progress+ExplicitComposition.swift
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:15:21: warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
 13 | /// tree.
 14 | @objc(BNRTaskProxyProgress)
 15 | private final class ProxyProgress: Progress {
    |                     `- warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
 16 |
 17 |     @objc dynamic let observee: Progress
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+Future.swift:17:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ProgressCompletionExecutor' may have shared mutable state; this is an error in the Swift 6 language mode
13 | #endif
14 |
15 | private final class ProgressCompletionExecutor: Executor {
   |                     `- note: class 'ProgressCompletionExecutor' does not conform to the 'Sendable' protocol
16 |
17 |     static let shared = ProgressCompletionExecutor()
   |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ProgressCompletionExecutor' 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
18 |
19 |     func submit(_ body: @escaping () -> Void) {
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+Future.swift:48:35: warning: assigning non-sendable parameter 'cancellation' to a @Sendable closure
28 |     /// Returns a progress that is indeterminate until `wrapped` is fulfilled,
29 |     /// then finishes at 100%.
30 |     static func basicProgress<Wrapped: FutureProtocol>(for wrapped: Wrapped, uponCancel cancellation: (() -> Void)?) -> Progress {
   |                                                                                         `- note: parameter 'cancellation' is implicitly non-sendable
31 |         let child = Progress(parent: nil, userInfo: [
32 |             Progress.didTaskGenerateKey: true
   :
46 |         }
47 |
48 |         child.cancellationHandler = cancellation
   |                                   `- warning: assigning non-sendable parameter 'cancellation' to a @Sendable closure
49 |         child.isCancellable = cancellation != nil
50 |         return child
[37/43] Compiling Task Progress+Future.swift
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:15:21: warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
 13 | /// tree.
 14 | @objc(BNRTaskProxyProgress)
 15 | private final class ProxyProgress: Progress {
    |                     `- warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
 16 |
 17 |     @objc dynamic let observee: Progress
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+Future.swift:17:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ProgressCompletionExecutor' may have shared mutable state; this is an error in the Swift 6 language mode
13 | #endif
14 |
15 | private final class ProgressCompletionExecutor: Executor {
   |                     `- note: class 'ProgressCompletionExecutor' does not conform to the 'Sendable' protocol
16 |
17 |     static let shared = ProgressCompletionExecutor()
   |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ProgressCompletionExecutor' 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
18 |
19 |     func submit(_ body: @escaping () -> Void) {
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+Future.swift:48:35: warning: assigning non-sendable parameter 'cancellation' to a @Sendable closure
28 |     /// Returns a progress that is indeterminate until `wrapped` is fulfilled,
29 |     /// then finishes at 100%.
30 |     static func basicProgress<Wrapped: FutureProtocol>(for wrapped: Wrapped, uponCancel cancellation: (() -> Void)?) -> Progress {
   |                                                                                         `- note: parameter 'cancellation' is implicitly non-sendable
31 |         let child = Progress(parent: nil, userInfo: [
32 |             Progress.didTaskGenerateKey: true
   :
46 |         }
47 |
48 |         child.cancellationHandler = cancellation
   |                                   `- warning: assigning non-sendable parameter 'cancellation' to a @Sendable closure
49 |         child.isCancellable = cancellation != nil
50 |         return child
[38/43] Compiling Task Task.swift
[39/43] Compiling Task TaskAndThen.swift
[40/43] Compiling Task Either.swift
[41/43] Compiling Task ExistentialTask.swift
[42/43] Compiling Task TaskCollections.swift
[43/43] Compiling Task TaskComposition.swift
Build complete! (13.87s)
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/Tests/DeferredTests/Tests/AllTestsCommon.swift': File not found.
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/Tests/TaskTests/Tests/AllTestsCommon.swift': File not found.
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Deferred",
  "name" : "Deferred",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.12"
    },
    {
      "name" : "ios",
      "version" : "10.0"
    },
    {
      "name" : "watchos",
      "version" : "3.0"
    },
    {
      "name" : "tvos",
      "version" : "10.0"
    }
  ],
  "products" : [
    {
      "name" : "Deferred",
      "targets" : [
        "Deferred",
        "Task"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "TaskTests",
      "module_type" : "SwiftTarget",
      "name" : "TaskTests",
      "path" : "Tests/TaskTests",
      "sources" : [
        "AllTestsCommon.swift",
        "TaskAsyncTests.swift",
        "TaskCompositionTests.swift",
        "TaskComprehensiveTests.swift",
        "TaskProgressTests.swift",
        "TaskProtocolTests.swift",
        "TaskResultTests.swift",
        "TaskTests.swift"
      ],
      "target_dependencies" : [
        "Deferred",
        "Task"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Task",
      "module_type" : "SwiftTarget",
      "name" : "Task",
      "path" : "Sources/Task",
      "product_memberships" : [
        "Deferred"
      ],
      "sources" : [
        "Either.swift",
        "ExistentialTask.swift",
        "Progress+ExplicitComposition.swift",
        "Progress+Future.swift",
        "Task.swift",
        "TaskAndThen.swift",
        "TaskAsync.swift",
        "TaskChain.swift",
        "TaskCollections.swift",
        "TaskComposition.swift",
        "TaskEveryMap.swift",
        "TaskFallback.swift",
        "TaskIgnore.swift",
        "TaskMap.swift",
        "TaskPromise.swift",
        "TaskRecovery.swift",
        "TaskResult.swift",
        "TaskUpon.swift"
      ],
      "target_dependencies" : [
        "Deferred",
        "CAtomics"
      ],
      "type" : "library"
    },
    {
      "c99name" : "DeferredTests",
      "module_type" : "SwiftTarget",
      "name" : "DeferredTests",
      "path" : "Tests/DeferredTests",
      "sources" : [
        "AllTestsCommon.swift",
        "DeferredTests.swift",
        "ExistentialFutureTests.swift",
        "FilledDeferredTests.swift",
        "FutureAsyncTests.swift",
        "FutureCustomExecutorTests.swift",
        "FutureIgnoreTests.swift",
        "FutureTests.swift",
        "ObjectDeferredTests.swift",
        "PerformanceTests.swift",
        "ProtectedTests.swift",
        "SwiftBugTests.swift"
      ],
      "target_dependencies" : [
        "Deferred"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Deferred",
      "module_type" : "SwiftTarget",
      "name" : "Deferred",
      "path" : "Sources/Deferred",
      "product_memberships" : [
        "Deferred"
      ],
      "sources" : [
        "Atomics.swift",
        "Deferred.swift",
        "DeferredQueue.swift",
        "DeferredVariant.swift",
        "Executor.swift",
        "ExistentialFuture.swift",
        "Future.swift",
        "FutureAndThen.swift",
        "FutureAsync.swift",
        "FutureCollections.swift",
        "FutureComposition.swift",
        "FutureEveryMap.swift",
        "FutureIgnore.swift",
        "FutureMap.swift",
        "FuturePeek.swift",
        "FutureUpon.swift",
        "Locking.swift",
        "Promise.swift",
        "Protected.swift"
      ],
      "target_dependencies" : [
        "CAtomics"
      ],
      "type" : "library"
    },
    {
      "c99name" : "CAtomics",
      "module_type" : "ClangTarget",
      "name" : "CAtomics",
      "path" : "Sources/CAtomics",
      "product_memberships" : [
        "Deferred"
      ],
      "sources" : [
        "Empty.c"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.1"
}
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/Tests/DeferredTests/Tests/AllTestsCommon.swift': File not found.
warning: 'spi-builder-workspace': Invalid Exclude '/Users/admin/builder/spi-builder-workspace/Tests/TaskTests/Tests/AllTestsCommon.swift': File not found.
Done.