Build Information
Successful build of FuturaAsync, reference 0.9.1 (ad4a5c
), with Swift 6.1 for macOS (SPM) on 24 Apr 2025 09:49:05 UTC.
Swift 6 data race errors: 3
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/kaqu/futuraasync.git
Reference: 0.9.1
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/kaqu/futuraasync
* tag 0.9.1 -> FETCH_HEAD
HEAD is now at ad4a5cd fixing methods access
Cloned https://github.com/kaqu/futuraasync.git
Revision (git rev-parse @):
ad4a5cd35e69a24f0e4c1b0668d9f76b92fb1b5d
SUCCESS checkout https://github.com/kaqu/futuraasync.git at 0.9.1
========================================
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": "futuraasync",
"name": "FuturaAsync",
"url": "https://github.com/kaqu/futuraasync.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/futuraasync",
"dependencies": [
]
}
]
}
Fetching https://github.com/kaqu/futuraasync.git
[1/460] Fetching futuraasync
Fetched https://github.com/kaqu/futuraasync.git from cache (0.66s)
Creating working copy for https://github.com/kaqu/futuraasync.git
Working copy of https://github.com/kaqu/futuraasync.git resolved at 0.9.1 (ad4a5cd)
warning: '.resolve-product-dependencies': dependency 'futuraasync' 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/kaqu/futuraasync.git
https://github.com/kaqu/futuraasync.git
{
"dependencies" : [
],
"manifest_display_name" : "FuturaAsync",
"name" : "FuturaAsync",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "FuturaAsync",
"targets" : [
"FuturaAsync"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "FuturaAsyncTests",
"module_type" : "SwiftTarget",
"name" : "FuturaAsyncTests",
"path" : "Tests/FuturaAsyncTests",
"sources" : [
"FuturaAsyncTests.swift",
"FutureTests.swift",
"LockTests.swift",
"PromiseAndFutureTests.swift",
"WorkerAndCatchableTests.swift"
],
"target_dependencies" : [
"FuturaAsync"
],
"type" : "test"
},
{
"c99name" : "FuturaAsync",
"module_type" : "SwiftTarget",
"name" : "FuturaAsync",
"path" : "Sources/FuturaAsync",
"product_memberships" : [
"FuturaAsync"
],
"sources" : [
"Future/Delayed.swift",
"Future/FailableFuture.swift",
"Future/Future+Join.swift",
"Future/Future.swift",
"Future/FutureHandler.swift",
"Future/Promise.swift",
"Future/PromiseError.swift",
"Future/Result.swift",
"Schedule/Catchable.swift",
"Schedule/DispatchQueueWorker.swift",
"Schedule/ExecutionContext.swift",
"Schedule/Schedule.swift",
"Schedule/Worker.swift",
"Synchronization/Lock.swift"
],
"type" : "library"
}
],
"tools_version" : "4.1"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/16] Compiling FuturaAsync Schedule.swift
[4/17] Compiling FuturaAsync Lock.swift
[5/17] Compiling FuturaAsync Worker.swift
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Schedule/Worker.swift:2:12: warning: var 'mainWorker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1 | /// worker using main thread/queue of application
2 | public var mainWorker: Worker = DispatchQueueWorker.main
| |- warning: var 'mainWorker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'mainWorker' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'mainWorker' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
3 | /// default async worker
4 | public var asyncWorker: Worker = DispatchQueueWorker.default
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Schedule/Worker.swift:4:12: warning: var 'asyncWorker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
2 | public var mainWorker: Worker = DispatchQueueWorker.main
3 | /// default async worker
4 | public var asyncWorker: Worker = DispatchQueueWorker.default
| |- warning: var 'asyncWorker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'asyncWorker' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'asyncWorker' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
5 |
6 | public var defaultWorker: Worker = asyncWorker
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Schedule/Worker.swift:6:12: warning: var 'defaultWorker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
4 | public var asyncWorker: Worker = DispatchQueueWorker.default
5 |
6 | public var defaultWorker: Worker = asyncWorker
| |- warning: var 'defaultWorker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultWorker' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'defaultWorker' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
7 |
8 | public protocol Worker {
[6/17] Compiling FuturaAsync ExecutionContext.swift
[7/17] Compiling FuturaAsync PromiseError.swift
[8/17] Compiling FuturaAsync Result.swift
[9/17] Compiling FuturaAsync Catchable.swift
[10/17] Compiling FuturaAsync FutureHandler.swift
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Future/Promise.swift:5:5: warning: 'public' modifier is redundant for initializer declared in a public extension
3 | public extension Promise {
4 |
5 | public convenience init<T>(using worker: Worker = asyncWorker, withRetriesCount retryCount: UInt = 0, performing task: @escaping () throws -> (T)) where Value == Result<T> {
| `- warning: 'public' modifier is redundant for initializer declared in a public extension
6 | self.init()
7 | var lastError: Error?
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Future/Promise.swift:17:5: warning: 'public' modifier is redundant for instance method declared in a public extension
15 | }
16 |
17 | public func fulfill<T>(with value: T) where Value == Result<T> {
| `- warning: 'public' modifier is redundant for instance method declared in a public extension
18 | future.succeed(with: value)
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Future/Promise.swift:21:5: warning: 'public' modifier is redundant for instance method declared in a public extension
19 | }
20 |
21 | public func `break`<T>(with error: Error = PromiseError.cancelled) where Value == Result<T> {
| `- warning: 'public' modifier is redundant for instance method declared in a public extension
22 | future.fail(with: error)
23 | }
[11/17] Compiling FuturaAsync Promise.swift
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Future/Promise.swift:5:5: warning: 'public' modifier is redundant for initializer declared in a public extension
3 | public extension Promise {
4 |
5 | public convenience init<T>(using worker: Worker = asyncWorker, withRetriesCount retryCount: UInt = 0, performing task: @escaping () throws -> (T)) where Value == Result<T> {
| `- warning: 'public' modifier is redundant for initializer declared in a public extension
6 | self.init()
7 | var lastError: Error?
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Future/Promise.swift:17:5: warning: 'public' modifier is redundant for instance method declared in a public extension
15 | }
16 |
17 | public func fulfill<T>(with value: T) where Value == Result<T> {
| `- warning: 'public' modifier is redundant for instance method declared in a public extension
18 | future.succeed(with: value)
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Future/Promise.swift:21:5: warning: 'public' modifier is redundant for instance method declared in a public extension
19 | }
20 |
21 | public func `break`<T>(with error: Error = PromiseError.cancelled) where Value == Result<T> {
| `- warning: 'public' modifier is redundant for instance method declared in a public extension
22 | future.fail(with: error)
23 | }
[12/17] Emitting module FuturaAsync
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Future/Promise.swift:5:5: warning: 'public' modifier is redundant for initializer declared in a public extension
3 | public extension Promise {
4 |
5 | public convenience init<T>(using worker: Worker = asyncWorker, withRetriesCount retryCount: UInt = 0, performing task: @escaping () throws -> (T)) where Value == Result<T> {
| `- warning: 'public' modifier is redundant for initializer declared in a public extension
6 | self.init()
7 | var lastError: Error?
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Future/Promise.swift:17:5: warning: 'public' modifier is redundant for instance method declared in a public extension
15 | }
16 |
17 | public func fulfill<T>(with value: T) where Value == Result<T> {
| `- warning: 'public' modifier is redundant for instance method declared in a public extension
18 | future.succeed(with: value)
19 | }
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Future/Promise.swift:21:5: warning: 'public' modifier is redundant for instance method declared in a public extension
19 | }
20 |
21 | public func `break`<T>(with error: Error = PromiseError.cancelled) where Value == Result<T> {
| `- warning: 'public' modifier is redundant for instance method declared in a public extension
22 | future.fail(with: error)
23 | }
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Schedule/Worker.swift:2:12: warning: var 'mainWorker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
1 | /// worker using main thread/queue of application
2 | public var mainWorker: Worker = DispatchQueueWorker.main
| |- warning: var 'mainWorker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'mainWorker' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'mainWorker' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
3 | /// default async worker
4 | public var asyncWorker: Worker = DispatchQueueWorker.default
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Schedule/Worker.swift:4:12: warning: var 'asyncWorker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
2 | public var mainWorker: Worker = DispatchQueueWorker.main
3 | /// default async worker
4 | public var asyncWorker: Worker = DispatchQueueWorker.default
| |- warning: var 'asyncWorker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'asyncWorker' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'asyncWorker' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
5 |
6 | public var defaultWorker: Worker = asyncWorker
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Schedule/Worker.swift:6:12: warning: var 'defaultWorker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
4 | public var asyncWorker: Worker = DispatchQueueWorker.default
5 |
6 | public var defaultWorker: Worker = asyncWorker
| |- warning: var 'defaultWorker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'defaultWorker' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'defaultWorker' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
7 |
8 | public protocol Worker {
[13/17] Compiling FuturaAsync DispatchQueueWorker.swift
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Schedule/DispatchQueueWorker.swift:14:30: warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
11 | extension DispatchQueueWorker : Worker {
12 |
13 | public func schedule(_ work: @escaping () -> Void) -> Void {
| `- note: parameter 'work' is implicitly non-sendable
14 | queue.async(execute: work)
| `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
15 | }
16 |
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Schedule/DispatchQueueWorker.swift:22:21: warning: capture of 'work' with non-sendable type '() throws -> Void' in a '@Sendable' closure
20 | queue.async {
21 | do {
22 | try work()
| |- warning: capture of 'work' with non-sendable type '() throws -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
23 | catchable.close()
24 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Schedule/DispatchQueueWorker.swift:23:17: warning: capture of 'catchable' with non-sendable type 'Catchable' in a '@Sendable' closure
21 | do {
22 | try work()
23 | catchable.close()
| `- warning: capture of 'catchable' with non-sendable type 'Catchable' in a '@Sendable' closure
24 | } catch {
25 | catchable.handle(error: error)
/Users/admin/builder/spi-builder-workspace/Sources/FuturaAsync/Schedule/Catchable.swift:1:20: note: class 'Catchable' does not conform to the 'Sendable' protocol
1 | public final class Catchable {
| `- note: class 'Catchable' does not conform to the 'Sendable' protocol
2 |
3 | private let future: FailableFuture<Void> = Future()
[14/17] Compiling FuturaAsync Future+Join.swift
[15/17] Compiling FuturaAsync Future.swift
[16/17] Compiling FuturaAsync Delayed.swift
[17/17] Compiling FuturaAsync FailableFuture.swift
Build complete! (2.51s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "FuturaAsync",
"name" : "FuturaAsync",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "FuturaAsync",
"targets" : [
"FuturaAsync"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "FuturaAsyncTests",
"module_type" : "SwiftTarget",
"name" : "FuturaAsyncTests",
"path" : "Tests/FuturaAsyncTests",
"sources" : [
"FuturaAsyncTests.swift",
"FutureTests.swift",
"LockTests.swift",
"PromiseAndFutureTests.swift",
"WorkerAndCatchableTests.swift"
],
"target_dependencies" : [
"FuturaAsync"
],
"type" : "test"
},
{
"c99name" : "FuturaAsync",
"module_type" : "SwiftTarget",
"name" : "FuturaAsync",
"path" : "Sources/FuturaAsync",
"product_memberships" : [
"FuturaAsync"
],
"sources" : [
"Future/Delayed.swift",
"Future/FailableFuture.swift",
"Future/Future+Join.swift",
"Future/Future.swift",
"Future/FutureHandler.swift",
"Future/Promise.swift",
"Future/PromiseError.swift",
"Future/Result.swift",
"Schedule/Catchable.swift",
"Schedule/DispatchQueueWorker.swift",
"Schedule/ExecutionContext.swift",
"Schedule/Schedule.swift",
"Schedule/Worker.swift",
"Synchronization/Lock.swift"
],
"type" : "library"
}
],
"tools_version" : "4.1"
}
Done.