Build Information
Successful build of Deferred, reference 4.1.0 (96ad3f
), with Swift 6.1 for macOS (SPM) on 27 Apr 2025 03:42:18 UTC.
Swift 6 data race errors: 5
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/bignerdranch/Deferred.git
Reference: 4.1.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/bignerdranch/Deferred
* tag 4.1.0 -> FETCH_HEAD
HEAD is now at 96ad3f6 Merge pull request #293 from bignerdranch/zwaldowski/bump-version
Cloned https://github.com/bignerdranch/Deferred.git
Revision (git rev-parse @):
96ad3f6dd1ddaffe1830dbb3b1cb783a87d6e952
SUCCESS checkout https://github.com/bignerdranch/Deferred.git at 4.1.0
========================================
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.00s)
Creating working copy for https://github.com/bignerdranch/Deferred.git
Working copy of https://github.com/bignerdranch/Deferred.git resolved at 4.1.0 (96ad3f6)
warning: '.resolve-product-dependencies': dependency 'deferred' 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/bignerdranch/Deferred.git
https://github.com/bignerdranch/Deferred.git
{
"dependencies" : [
],
"manifest_display_name" : "Deferred",
"name" : "Deferred",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Deferred",
"targets" : [
"Deferred",
"Task"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"4.2",
"5"
],
"targets" : [
{
"c99name" : "TaskTests",
"module_type" : "SwiftTarget",
"name" : "TaskTests",
"path" : "Tests/TaskTests",
"sources" : [
"AllTestsCommon.swift",
"TaskAsyncTests.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",
"TaskFallback.swift",
"TaskIgnore.swift",
"TaskMap.swift",
"TaskPromise.swift",
"TaskRecovery.swift",
"TaskResult.swift",
"TaskUpon.swift"
],
"target_dependencies" : [
"Deferred"
],
"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",
"LockingTests.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" : [
"Atomics"
],
"type" : "library"
},
{
"c99name" : "Atomics",
"module_type" : "ClangTarget",
"name" : "Atomics",
"path" : "Sources/Atomics",
"product_memberships" : [
"Deferred"
],
"sources" : [
"Empty.c"
],
"type" : "library"
}
],
"tools_version" : "4.2"
}
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.
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/4] Write sources
[2/4] Compiling Atomics Empty.c
[3/4] Write swift-version-2F0A5646E1D333AE.txt
[5/23] Emitting module Deferred
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/Executor.swift:46:27: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
44 | /// }
45 | ///
46 | public protocol Executor: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
47 | /// Execute the `body` closure.
48 | func submit(_ body: @escaping() -> Void)
[6/24] Compiling Deferred Protected.swift
[7/24] Compiling Deferred Atomics.swift
[8/24] Compiling Deferred Deferred.swift
[9/24] Compiling Deferred Future.swift
[10/24] Compiling Deferred FutureAndThen.swift
[11/24] Compiling Deferred FutureComposition.swift
[12/24] Compiling Deferred FutureEveryMap.swift
[13/24] Compiling Deferred Executor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/Executor.swift:46:27: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
44 | /// }
45 | ///
46 | public protocol Executor: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
47 | /// Execute the `body` closure.
48 | func submit(_ body: @escaping() -> Void)
/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:127:21: 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 | if #available(macOS 10.12, iOS 10.0, tvOS 10.0, watchOS 3.0, *) {
127 | perform(body)
| `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
128 | } else {
129 | getCFRunLoop().submit(body)
[14/24] Compiling Deferred ExistentialFuture.swift
/Users/admin/builder/spi-builder-workspace/Sources/Deferred/Executor.swift:46:27: warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
44 | /// }
45 | ///
46 | public protocol Executor: class {
| `- warning: using 'class' keyword to define a class-constrained protocol is deprecated; use 'AnyObject' instead
47 | /// Execute the `body` closure.
48 | func submit(_ body: @escaping() -> Void)
/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:127:21: 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 | if #available(macOS 10.12, iOS 10.0, tvOS 10.0, watchOS 3.0, *) {
127 | perform(body)
| `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
128 | } else {
129 | getCFRunLoop().submit(body)
[15/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
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
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
21 |
22 | queue.async(flags: flags) {
23 | deferred.fill(with: work())
| |- warning: capture of 'work' with non-sendable type '() -> Value' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
24 | }
25 |
[16/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
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
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
21 |
22 | queue.async(flags: flags) {
23 | deferred.fill(with: work())
| |- warning: capture of 'work' with non-sendable type '() -> Value' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
24 | }
25 |
[17/24] Compiling Deferred FutureIgnore.swift
[18/24] Compiling Deferred FutureMap.swift
[19/24] Compiling Deferred DeferredQueue.swift
[20/24] Compiling Deferred DeferredVariant.swift
[21/24] Compiling Deferred Locking.swift
[22/24] Compiling Deferred Promise.swift
[23/24] Compiling Deferred FuturePeek.swift
[24/24] Compiling Deferred FutureUpon.swift
[25/40] Compiling Task TaskIgnore.swift
[26/40] Compiling Task TaskMap.swift
[27/41] Compiling Task TaskCollections.swift
[28/41] Compiling Task TaskFallback.swift
[29/41] Compiling Task TaskRecovery.swift
[30/41] Compiling Task TaskResult.swift
[31/41] 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>' in a '@Sendable' closure
33 | defer { semaphore.signal() }
34 |
35 | deferred.fill(with: Result(catching: work))
| `- warning: capture of 'deferred' with non-sendable type 'Deferred<Task<Success>.Result>' in a '@Sendable' closure
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
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
| `- 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"
[32/41] 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>' in a '@Sendable' closure
33 | defer { semaphore.signal() }
34 |
35 | deferred.fill(with: Result(catching: work))
| `- warning: capture of 'deferred' with non-sendable type 'Deferred<Task<Success>.Result>' in a '@Sendable' closure
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
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
| `- 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"
[33/41] Compiling Task TaskPromise.swift
[34/41] Compiling Task TaskUpon.swift
[35/41] Compiling Task Task.swift
[36/41] Compiling Task TaskAndThen.swift
[37/41] Emitting module Task
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:96:20: warning: static property 'fractionContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
94 | /// delivery of notifications after deinit.
95 | final class Observation: NSObject {
96 | static var fractionContext = false
| |- warning: static property 'fractionContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'fractionContext' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'fractionContext' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
97 | static var attributesContext = false
98 | static var cancelledContext = false
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:97:20: warning: static property 'attributesContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
95 | final class Observation: NSObject {
96 | static var fractionContext = false
97 | static var attributesContext = false
| |- warning: static property 'attributesContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'attributesContext' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'attributesContext' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
98 | static var cancelledContext = false
99 | static var pausedContext = false
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:98:20: warning: static property 'cancelledContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
96 | static var fractionContext = false
97 | static var attributesContext = false
98 | static var cancelledContext = false
| |- warning: static property 'cancelledContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'cancelledContext' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'cancelledContext' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
99 | static var pausedContext = false
100 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:99:20: warning: static property 'pausedContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
97 | static var attributesContext = false
98 | static var cancelledContext = false
99 | static var pausedContext = false
| |- warning: static property 'pausedContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'pausedContext' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'pausedContext' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
100 |
101 | static let fractionKeyPaths = [
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:109:31: warning: 'cancellable' has been renamed to 'isCancellable'
107 | #keyPath(Progress.localizedDescription),
108 | #keyPath(Progress.localizedAdditionalDescription),
109 | #keyPath(Progress.cancellable),
| `- warning: 'cancellable' has been renamed to 'isCancellable'
110 | #keyPath(Progress.pausable),
111 | #keyPath(Progress.kind)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:111:39: note: 'cancellable' was obsoleted in Swift 3
109 | /* Whether the work being done can be cancelled or paused, respectively. By default NSProgresses are cancellable but not pausable. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. These properties are for communicating whether controls for cancelling and pausing should appear in a progress reporting user interface. NSProgress itself does not do anything with these properties other than help pass their values from progress reporters to progress observers. It is valid for the values of these properties to change in virtually any way during the lifetime of an NSProgress. Of course, if an NSProgress is cancellable you should actually implement cancellability by setting a cancellation handler or by making your code poll the result of invoking -isCancelled. Likewise for pausability.
110 | */
111 | @property (getter=isCancellable) BOOL cancellable;
| `- note: 'cancellable' was obsoleted in Swift 3
112 | @property (getter=isPausable) BOOL pausable;
113 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:110:31: warning: 'pausable' has been renamed to 'isPausable'
108 | #keyPath(Progress.localizedAdditionalDescription),
109 | #keyPath(Progress.cancellable),
110 | #keyPath(Progress.pausable),
| `- warning: 'pausable' has been renamed to 'isPausable'
111 | #keyPath(Progress.kind)
112 | ]
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:112:36: note: 'pausable' was obsoleted in Swift 3
110 | */
111 | @property (getter=isCancellable) BOOL cancellable;
112 | @property (getter=isPausable) BOOL pausable;
| `- note: 'pausable' was obsoleted in Swift 3
113 |
114 | /* Whether the work being done has been cancelled or paused, respectively. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. Instances of NSProgress that have parents are at least as cancelled or paused as their parents.
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:20:21: warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
18 | /// tree.
19 | @objc(BNRTaskProxyProgress)
20 | private final class ProxyProgress: Progress {
| `- warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
21 |
22 | @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: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- 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"
[38/41] Compiling Task Either.swift
[39/41] Compiling Task ExistentialTask.swift
[40/41] Compiling Task Progress+ExplicitComposition.swift
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:96:20: warning: static property 'fractionContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
94 | /// delivery of notifications after deinit.
95 | final class Observation: NSObject {
96 | static var fractionContext = false
| |- warning: static property 'fractionContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'fractionContext' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'fractionContext' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
97 | static var attributesContext = false
98 | static var cancelledContext = false
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:97:20: warning: static property 'attributesContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
95 | final class Observation: NSObject {
96 | static var fractionContext = false
97 | static var attributesContext = false
| |- warning: static property 'attributesContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'attributesContext' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'attributesContext' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
98 | static var cancelledContext = false
99 | static var pausedContext = false
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:98:20: warning: static property 'cancelledContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
96 | static var fractionContext = false
97 | static var attributesContext = false
98 | static var cancelledContext = false
| |- warning: static property 'cancelledContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'cancelledContext' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'cancelledContext' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
99 | static var pausedContext = false
100 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:99:20: warning: static property 'pausedContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
97 | static var attributesContext = false
98 | static var cancelledContext = false
99 | static var pausedContext = false
| |- warning: static property 'pausedContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'pausedContext' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'pausedContext' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
100 |
101 | static let fractionKeyPaths = [
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:109:31: warning: 'cancellable' has been renamed to 'isCancellable'
107 | #keyPath(Progress.localizedDescription),
108 | #keyPath(Progress.localizedAdditionalDescription),
109 | #keyPath(Progress.cancellable),
| `- warning: 'cancellable' has been renamed to 'isCancellable'
110 | #keyPath(Progress.pausable),
111 | #keyPath(Progress.kind)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:111:39: note: 'cancellable' was obsoleted in Swift 3
109 | /* Whether the work being done can be cancelled or paused, respectively. By default NSProgresses are cancellable but not pausable. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. These properties are for communicating whether controls for cancelling and pausing should appear in a progress reporting user interface. NSProgress itself does not do anything with these properties other than help pass their values from progress reporters to progress observers. It is valid for the values of these properties to change in virtually any way during the lifetime of an NSProgress. Of course, if an NSProgress is cancellable you should actually implement cancellability by setting a cancellation handler or by making your code poll the result of invoking -isCancelled. Likewise for pausability.
110 | */
111 | @property (getter=isCancellable) BOOL cancellable;
| `- note: 'cancellable' was obsoleted in Swift 3
112 | @property (getter=isPausable) BOOL pausable;
113 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:110:31: warning: 'pausable' has been renamed to 'isPausable'
108 | #keyPath(Progress.localizedAdditionalDescription),
109 | #keyPath(Progress.cancellable),
110 | #keyPath(Progress.pausable),
| `- warning: 'pausable' has been renamed to 'isPausable'
111 | #keyPath(Progress.kind)
112 | ]
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:112:36: note: 'pausable' was obsoleted in Swift 3
110 | */
111 | @property (getter=isCancellable) BOOL cancellable;
112 | @property (getter=isPausable) BOOL pausable;
| `- note: 'pausable' was obsoleted in Swift 3
113 |
114 | /* Whether the work being done has been cancelled or paused, respectively. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. Instances of NSProgress that have parents are at least as cancelled or paused as their parents.
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:20:21: warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
18 | /// tree.
19 | @objc(BNRTaskProxyProgress)
20 | private final class ProxyProgress: Progress {
| `- warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
21 |
22 | @objc dynamic let observee: Progress
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:139:70: warning: 'cancelled' has been renamed to 'isCancelled'
137 | observee.addObserver(self, forKeyPath: key, options: [ .initial, .new ], context: &Observation.attributesContext)
138 | }
139 | observee.addObserver(self, forKeyPath: #keyPath(Progress.cancelled), options: .initial, context: &Observation.cancelledContext)
| `- warning: 'cancelled' has been renamed to 'isCancelled'
140 | observee.addObserver(self, forKeyPath: #keyPath(Progress.paused), options: .initial, context: &Observation.pausedContext)
141 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:116:47: note: 'cancelled' was obsoleted in Swift 3
114 | /* Whether the work being done has been cancelled or paused, respectively. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. Instances of NSProgress that have parents are at least as cancelled or paused as their parents.
115 | */
116 | @property (readonly, getter=isCancelled) BOOL cancelled;
| `- note: 'cancelled' was obsoleted in Swift 3
117 | @property (readonly, getter=isPaused) BOOL paused;
118 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:140:70: warning: 'paused' has been renamed to 'isPaused'
138 | }
139 | observee.addObserver(self, forKeyPath: #keyPath(Progress.cancelled), options: .initial, context: &Observation.cancelledContext)
140 | observee.addObserver(self, forKeyPath: #keyPath(Progress.paused), options: .initial, context: &Observation.pausedContext)
| `- warning: 'paused' has been renamed to 'isPaused'
141 |
142 | bnr_atomic_fetch_or(&state, State.observing.rawValue, .release)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:117:44: note: 'paused' was obsoleted in Swift 3
115 | */
116 | @property (readonly, getter=isCancelled) BOOL cancelled;
117 | @property (readonly, getter=isPaused) BOOL paused;
| `- note: 'paused' was obsoleted in Swift 3
118 |
119 | /* A block to be invoked when cancel is invoked. The block will be invoked even when the method is invoked on an ancestor of the receiver, or an instance of NSProgress in another process that resulted from publishing the receiver or an ancestor of the receiver. Your block won't be invoked on any particular queue. If it must do work on a specific queue then it should schedule that work on that queue.
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:157:73: warning: 'cancelled' has been renamed to 'isCancelled'
155 | observee.removeObserver(self, forKeyPath: key, context: &Observation.attributesContext)
156 | }
157 | observee.removeObserver(self, forKeyPath: #keyPath(Progress.cancelled), context: &Observation.cancelledContext)
| `- warning: 'cancelled' has been renamed to 'isCancelled'
158 | observee.removeObserver(self, forKeyPath: #keyPath(Progress.paused), context: &Observation.pausedContext)
159 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:116:47: note: 'cancelled' was obsoleted in Swift 3
114 | /* Whether the work being done has been cancelled or paused, respectively. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. Instances of NSProgress that have parents are at least as cancelled or paused as their parents.
115 | */
116 | @property (readonly, getter=isCancelled) BOOL cancelled;
| `- note: 'cancelled' was obsoleted in Swift 3
117 | @property (readonly, getter=isPaused) BOOL paused;
118 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:158:73: warning: 'paused' has been renamed to 'isPaused'
156 | }
157 | observee.removeObserver(self, forKeyPath: #keyPath(Progress.cancelled), context: &Observation.cancelledContext)
158 | observee.removeObserver(self, forKeyPath: #keyPath(Progress.paused), context: &Observation.pausedContext)
| `- warning: 'paused' has been renamed to 'isPaused'
159 | }
160 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:117:44: note: 'paused' was obsoleted in Swift 3
115 | */
116 | @property (readonly, getter=isCancelled) BOOL cancelled;
117 | @property (readonly, getter=isPaused) BOOL paused;
| `- note: 'paused' was obsoleted in Swift 3
118 |
119 | /* A block to be invoked when cancel is invoked. The block will be invoked even when the method is invoked on an ancestor of the receiver, or an instance of NSProgress in another process that resulted from publishing the receiver or an ancestor of the receiver. Your block won't be invoked on any particular queue. If it must do work on a specific queue then it should schedule that work on that queue.
/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: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- 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>(parent: Progress?, for wrapped: Wrapped, uponCancel cancellation: (() -> Void)? = nil) -> Progress {
| `- note: parameter 'cancellation' is implicitly non-sendable
31 | let child = Progress(parent: parent, 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
[41/41] Compiling Task Progress+Future.swift
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:96:20: warning: static property 'fractionContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
94 | /// delivery of notifications after deinit.
95 | final class Observation: NSObject {
96 | static var fractionContext = false
| |- warning: static property 'fractionContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'fractionContext' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'fractionContext' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
97 | static var attributesContext = false
98 | static var cancelledContext = false
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:97:20: warning: static property 'attributesContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
95 | final class Observation: NSObject {
96 | static var fractionContext = false
97 | static var attributesContext = false
| |- warning: static property 'attributesContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'attributesContext' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'attributesContext' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
98 | static var cancelledContext = false
99 | static var pausedContext = false
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:98:20: warning: static property 'cancelledContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
96 | static var fractionContext = false
97 | static var attributesContext = false
98 | static var cancelledContext = false
| |- warning: static property 'cancelledContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'cancelledContext' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'cancelledContext' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
99 | static var pausedContext = false
100 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:99:20: warning: static property 'pausedContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
97 | static var attributesContext = false
98 | static var cancelledContext = false
99 | static var pausedContext = false
| |- warning: static property 'pausedContext' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'pausedContext' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'pausedContext' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
100 |
101 | static let fractionKeyPaths = [
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:109:31: warning: 'cancellable' has been renamed to 'isCancellable'
107 | #keyPath(Progress.localizedDescription),
108 | #keyPath(Progress.localizedAdditionalDescription),
109 | #keyPath(Progress.cancellable),
| `- warning: 'cancellable' has been renamed to 'isCancellable'
110 | #keyPath(Progress.pausable),
111 | #keyPath(Progress.kind)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:111:39: note: 'cancellable' was obsoleted in Swift 3
109 | /* Whether the work being done can be cancelled or paused, respectively. By default NSProgresses are cancellable but not pausable. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. These properties are for communicating whether controls for cancelling and pausing should appear in a progress reporting user interface. NSProgress itself does not do anything with these properties other than help pass their values from progress reporters to progress observers. It is valid for the values of these properties to change in virtually any way during the lifetime of an NSProgress. Of course, if an NSProgress is cancellable you should actually implement cancellability by setting a cancellation handler or by making your code poll the result of invoking -isCancelled. Likewise for pausability.
110 | */
111 | @property (getter=isCancellable) BOOL cancellable;
| `- note: 'cancellable' was obsoleted in Swift 3
112 | @property (getter=isPausable) BOOL pausable;
113 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:110:31: warning: 'pausable' has been renamed to 'isPausable'
108 | #keyPath(Progress.localizedAdditionalDescription),
109 | #keyPath(Progress.cancellable),
110 | #keyPath(Progress.pausable),
| `- warning: 'pausable' has been renamed to 'isPausable'
111 | #keyPath(Progress.kind)
112 | ]
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:112:36: note: 'pausable' was obsoleted in Swift 3
110 | */
111 | @property (getter=isCancellable) BOOL cancellable;
112 | @property (getter=isPausable) BOOL pausable;
| `- note: 'pausable' was obsoleted in Swift 3
113 |
114 | /* Whether the work being done has been cancelled or paused, respectively. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. Instances of NSProgress that have parents are at least as cancelled or paused as their parents.
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:20:21: warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
18 | /// tree.
19 | @objc(BNRTaskProxyProgress)
20 | private final class ProxyProgress: Progress {
| `- warning: class 'ProxyProgress' must restate inherited '@unchecked Sendable' conformance
21 |
22 | @objc dynamic let observee: Progress
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:139:70: warning: 'cancelled' has been renamed to 'isCancelled'
137 | observee.addObserver(self, forKeyPath: key, options: [ .initial, .new ], context: &Observation.attributesContext)
138 | }
139 | observee.addObserver(self, forKeyPath: #keyPath(Progress.cancelled), options: .initial, context: &Observation.cancelledContext)
| `- warning: 'cancelled' has been renamed to 'isCancelled'
140 | observee.addObserver(self, forKeyPath: #keyPath(Progress.paused), options: .initial, context: &Observation.pausedContext)
141 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:116:47: note: 'cancelled' was obsoleted in Swift 3
114 | /* Whether the work being done has been cancelled or paused, respectively. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. Instances of NSProgress that have parents are at least as cancelled or paused as their parents.
115 | */
116 | @property (readonly, getter=isCancelled) BOOL cancelled;
| `- note: 'cancelled' was obsoleted in Swift 3
117 | @property (readonly, getter=isPaused) BOOL paused;
118 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:140:70: warning: 'paused' has been renamed to 'isPaused'
138 | }
139 | observee.addObserver(self, forKeyPath: #keyPath(Progress.cancelled), options: .initial, context: &Observation.cancelledContext)
140 | observee.addObserver(self, forKeyPath: #keyPath(Progress.paused), options: .initial, context: &Observation.pausedContext)
| `- warning: 'paused' has been renamed to 'isPaused'
141 |
142 | bnr_atomic_fetch_or(&state, State.observing.rawValue, .release)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:117:44: note: 'paused' was obsoleted in Swift 3
115 | */
116 | @property (readonly, getter=isCancelled) BOOL cancelled;
117 | @property (readonly, getter=isPaused) BOOL paused;
| `- note: 'paused' was obsoleted in Swift 3
118 |
119 | /* A block to be invoked when cancel is invoked. The block will be invoked even when the method is invoked on an ancestor of the receiver, or an instance of NSProgress in another process that resulted from publishing the receiver or an ancestor of the receiver. Your block won't be invoked on any particular queue. If it must do work on a specific queue then it should schedule that work on that queue.
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:157:73: warning: 'cancelled' has been renamed to 'isCancelled'
155 | observee.removeObserver(self, forKeyPath: key, context: &Observation.attributesContext)
156 | }
157 | observee.removeObserver(self, forKeyPath: #keyPath(Progress.cancelled), context: &Observation.cancelledContext)
| `- warning: 'cancelled' has been renamed to 'isCancelled'
158 | observee.removeObserver(self, forKeyPath: #keyPath(Progress.paused), context: &Observation.pausedContext)
159 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:116:47: note: 'cancelled' was obsoleted in Swift 3
114 | /* Whether the work being done has been cancelled or paused, respectively. NSProgress is by default KVO-compliant for these properties, with the notifications always being sent on the thread which updates the property. Instances of NSProgress that have parents are at least as cancelled or paused as their parents.
115 | */
116 | @property (readonly, getter=isCancelled) BOOL cancelled;
| `- note: 'cancelled' was obsoleted in Swift 3
117 | @property (readonly, getter=isPaused) BOOL paused;
118 |
/Users/admin/builder/spi-builder-workspace/Sources/Task/Progress+ExplicitComposition.swift:158:73: warning: 'paused' has been renamed to 'isPaused'
156 | }
157 | observee.removeObserver(self, forKeyPath: #keyPath(Progress.cancelled), context: &Observation.cancelledContext)
158 | observee.removeObserver(self, forKeyPath: #keyPath(Progress.paused), context: &Observation.pausedContext)
| `- warning: 'paused' has been renamed to 'isPaused'
159 | }
160 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProgress.h:117:44: note: 'paused' was obsoleted in Swift 3
115 | */
116 | @property (readonly, getter=isCancelled) BOOL cancelled;
117 | @property (readonly, getter=isPaused) BOOL paused;
| `- note: 'paused' was obsoleted in Swift 3
118 |
119 | /* A block to be invoked when cancel is invoked. The block will be invoked even when the method is invoked on an ancestor of the receiver, or an instance of NSProgress in another process that resulted from publishing the receiver or an ancestor of the receiver. Your block won't be invoked on any particular queue. If it must do work on a specific queue then it should schedule that work on that queue.
/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: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- 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>(parent: Progress?, for wrapped: Wrapped, uponCancel cancellation: (() -> Void)? = nil) -> Progress {
| `- note: parameter 'cancellation' is implicitly non-sendable
31 | let child = Progress(parent: parent, 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
Build complete! (5.29s)
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" : [
],
"products" : [
{
"name" : "Deferred",
"targets" : [
"Deferred",
"Task"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"4.2",
"5"
],
"targets" : [
{
"c99name" : "TaskTests",
"module_type" : "SwiftTarget",
"name" : "TaskTests",
"path" : "Tests/TaskTests",
"sources" : [
"AllTestsCommon.swift",
"TaskAsyncTests.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",
"TaskFallback.swift",
"TaskIgnore.swift",
"TaskMap.swift",
"TaskPromise.swift",
"TaskRecovery.swift",
"TaskResult.swift",
"TaskUpon.swift"
],
"target_dependencies" : [
"Deferred"
],
"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",
"LockingTests.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" : [
"Atomics"
],
"type" : "library"
},
{
"c99name" : "Atomics",
"module_type" : "ClangTarget",
"name" : "Atomics",
"path" : "Sources/Atomics",
"product_memberships" : [
"Deferred"
],
"sources" : [
"Empty.c"
],
"type" : "library"
}
],
"tools_version" : "4.2"
}
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.