Build Information
Successful build of YFlow, reference main (ffb4d0), with Swift 6.1 for macOS (SPM) on 21 Oct 2025 06:22:16 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCapturesBuild Log
========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/SeeyouYsen/YFlow.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/SeeyouYsen/YFlow
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at ffb4d07 Update Stream.swift
Cloned https://github.com/SeeyouYsen/YFlow.git
Revision (git rev-parse @):
ffb4d076f4287ee948cb6fa87bad763bd583e354
SUCCESS checkout https://github.com/SeeyouYsen/YFlow.git at main
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/SeeyouYsen/YFlow.git
https://github.com/SeeyouYsen/YFlow.git
{
"dependencies" : [
],
"manifest_display_name" : "YFlow",
"name" : "YFlow",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "16.0"
},
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "watchos",
"version" : "9.0"
},
{
"name" : "tvos",
"version" : "16.0"
}
],
"products" : [
{
"name" : "YFlow",
"targets" : [
"YFlow"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "YFlowTests",
"module_type" : "SwiftTarget",
"name" : "YFlowTests",
"path" : "Tests/YFlowTests",
"sources" : [
"CompleterTests.swift",
"StreamTests.swift"
],
"target_dependencies" : [
"YFlow"
],
"type" : "test"
},
{
"c99name" : "YFlow",
"module_type" : "SwiftTarget",
"name" : "YFlow",
"path" : "Sources/YFlow",
"product_memberships" : [
"YFlow"
],
"sources" : [
"Completer.swift",
"Stream.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
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/5] Emitting module YFlow
[4/5] Compiling YFlow Stream.swift
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Stream.swift:75:13: warning: capture of 'self' with non-sendable type 'Stream<T>' in a '@Sendable' closure
47 | /// A reactive stream that allows multiple listeners to observe emitted values
48 | /// Thread-safe implementation using concurrent dispatch queues
49 | public class Stream<T> {
| `- note: generic class 'Stream' does not conform to the 'Sendable' protocol
50 | /// Initialize a new empty stream
51 | public init() {}
:
73 | isCancelled = true
74 | queue.async(flags: .barrier) {
75 | self.listeners.removeAll()
| `- warning: capture of 'self' with non-sendable type 'Stream<T>' in a '@Sendable' closure
76 | }
77 |
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Stream.swift:114:13: warning: capture of 'self' with non-sendable type 'Stream<T>' in a '@Sendable' closure
47 | /// A reactive stream that allows multiple listeners to observe emitted values
48 | /// Thread-safe implementation using concurrent dispatch queues
49 | public class Stream<T> {
| `- note: generic class 'Stream' does not conform to the 'Sendable' protocol
50 | /// Initialize a new empty stream
51 | public init() {}
:
112 | private func removeListener(_ wrapper: ListenerWrapper<T>) {
113 | queue.async(flags: .barrier) {
114 | self.listeners.removeAll { $0 === wrapper }
| `- warning: capture of 'self' with non-sendable type 'Stream<T>' in a '@Sendable' closure
115 | }
116 | }
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Stream.swift:114:47: warning: capture of 'wrapper' with non-sendable type 'ListenerWrapper<T>' in a '@Sendable' closure
10 | /// A wrapper class to hold listener closures for stream events
11 | /// Used internally to manage listener references
12 | private class ListenerWrapper<T> {
| `- note: generic class 'ListenerWrapper' does not conform to the 'Sendable' protocol
13 | /// The listener closure that handles stream values
14 | let listener: (T) -> Void
:
112 | private func removeListener(_ wrapper: ListenerWrapper<T>) {
113 | queue.async(flags: .barrier) {
114 | self.listeners.removeAll { $0 === wrapper }
| `- warning: capture of 'wrapper' with non-sendable type 'ListenerWrapper<T>' in a '@Sendable' closure
115 | }
116 | }
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Stream.swift:114:47: warning: capture of 'wrapper' with non-sendable type 'ListenerWrapper<T>' in an isolated closure; this is an error in the Swift 6 language mode
10 | /// A wrapper class to hold listener closures for stream events
11 | /// Used internally to manage listener references
12 | private class ListenerWrapper<T> {
| `- note: generic class 'ListenerWrapper' does not conform to the 'Sendable' protocol
13 | /// The listener closure that handles stream values
14 | let listener: (T) -> Void
:
112 | private func removeListener(_ wrapper: ListenerWrapper<T>) {
113 | queue.async(flags: .barrier) {
114 | self.listeners.removeAll { $0 === wrapper }
| `- warning: capture of 'wrapper' with non-sendable type 'ListenerWrapper<T>' in an isolated closure; this is an error in the Swift 6 language mode
115 | }
116 | }
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Stream.swift:125:30: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
123 | var cancellable: StreamCancellable?
124 | cancellable = listen { value in
125 | continuation.resume(returning: value)
| |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
126 | cancellable?.cancel()
127 | }
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Stream.swift:149:32: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
147 | }
148 |
149 | timeoutTask = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
150 | try? await Task.sleep(for: timeout)
151 | guard !isResolved else { return }
152 | isResolved = true
153 | cancellable?.cancel()
| `- note: closure captures 'cancellable' which is accessible to code in the current task
154 | continuation.resume(
155 | throwing: NSError(
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Stream.swift:145:30: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
143 | isResolved = true
144 | timeoutTask?.cancel()
145 | continuation.resume(returning: value)
| |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
146 | cancellable?.cancel()
147 | }
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Stream.swift:172:34: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
170 | cancellable = listen { value in
171 | if predicate(value) {
172 | continuation.resume(returning: value)
| |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
173 | cancellable?.cancel()
174 | }
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Stream.swift:203:32: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
201 | }
202 |
203 | timeoutTask = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
204 | try? await Task.sleep(for: timeout)
205 | guard !isResolved else { return }
206 | isResolved = true
207 | cancellable?.cancel()
| `- note: closure captures 'cancellable' which is accessible to code in the current task
208 | continuation.resume(
209 | throwing: NSError(
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Stream.swift:198:34: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
196 | isResolved = true
197 | timeoutTask?.cancel()
198 | continuation.resume(returning: value)
| |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
199 | cancellable?.cancel()
200 | }
[5/5] Compiling YFlow Completer.swift
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Completer.swift:35:13: warning: cannot access property 'completions' with a non-sendable type '[Completer<T>.Completion]' (aka 'Array<(Result<T, any Error>) -> ()>') from nonisolated deinit; this is an error in the Swift 6 language mode
33 | /// Notifies all pending completions with an error if the completer was never completed
34 | deinit {
35 | if !completions.isEmpty {
| `- warning: cannot access property 'completions' with a non-sendable type '[Completer<T>.Completion]' (aka 'Array<(Result<T, any Error>) -> ()>') from nonisolated deinit; this is an error in the Swift 6 language mode
36 | let destroyedError = NSError(
37 | domain: "Completer",
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Completer.swift:41:31: warning: cannot access property 'completions' with a non-sendable type '[Completer<T>.Completion]' (aka 'Array<(Result<T, any Error>) -> ()>') from nonisolated deinit; this is an error in the Swift 6 language mode
39 | userInfo: [NSLocalizedDescriptionKey: "Completer was deallocated before completion"]
40 | )
41 | for completion in completions {
| `- warning: cannot access property 'completions' with a non-sendable type '[Completer<T>.Completion]' (aka 'Array<(Result<T, any Error>) -> ()>') from nonisolated deinit; this is an error in the Swift 6 language mode
42 | completion(.failure(destroyedError))
43 | }
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Completer.swift:45:9: warning: cannot access property 'completions' with a non-sendable type '[Completer<T>.Completion]' (aka 'Array<(Result<T, any Error>) -> ()>') from nonisolated deinit; this is an error in the Swift 6 language mode
43 | }
44 | }
45 | completions.removeAll()
| `- warning: cannot access property 'completions' with a non-sendable type '[Completer<T>.Completion]' (aka 'Array<(Result<T, any Error>) -> ()>') from nonisolated deinit; this is an error in the Swift 6 language mode
46 | }
47 |
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Completer.swift:81:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
79 | /// - Parameter result: The value to complete with
80 | nonisolated public func completeSync(_ result: T) {
81 | Task { await complete(result) }
| | `- note: closure captures 'result' which is accessible to code in the current task
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
82 | }
83 |
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Completer.swift:81:22: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
79 | /// - Parameter result: The value to complete with
80 | nonisolated public func completeSync(_ result: T) {
81 | Task { await complete(result) }
| |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'result' to actor-isolated instance method 'complete' risks causing data races between actor-isolated and task-isolated uses
82 | }
83 |
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Completer.swift:118:31: warning: sending value of non-Sendable type '() async -> Void' risks causing data races; this is an error in the Swift 6 language mode
116 |
117 | if let timeout = timeout {
118 | timeoutTask = Task {
| |- warning: sending value of non-Sendable type '() async -> Void' risks causing data races; this is an error in the Swift 6 language mode
| `- note: Passing 'self'-isolated value of non-Sendable type '() async -> Void' as a 'sending' parameter risks causing races inbetween 'self'-isolated uses and uses reachable from the callee
119 | try? await Task.sleep(for: timeout)
120 | guard !isResolved else { return }
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Completer.swift:112:56: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
110 | timeoutTask?.cancel()
111 | switch result {
112 | case .success(let value): continuation.resume(returning: value)
| |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
113 | case .failure(let error): continuation.resume(throwing: error)
114 | }
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Completer.swift:155:36: warning: passing closure as a 'sending' parameter risks causing data races between 'self'-isolated code and concurrent execution of the closure; this is an error in the Swift 6 language mode
153 |
154 | if let timeout = timeout {
155 | timeoutTask = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between 'self'-isolated code and concurrent execution of the closure; this is an error in the Swift 6 language mode
156 | try? await Task.sleep(for: timeout)
157 | guard !isResolved else { return }
158 | isResolved = true
159 | onError(
| `- note: closure captures 'self'-isolated 'onError'
160 | NSError(
161 | domain: "Future", code: 1,
/Users/admin/builder/spi-builder-workspace/Sources/YFlow/Completer.swift:147:56: warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
145 | timeoutTask?.cancel()
146 | switch result {
147 | case .success(let value): continuation.resume(returning: value)
| |- warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
| `- note: Passing task-isolated value of non-Sendable type 'T' as a 'sending' parameter risks causing races inbetween task-isolated uses and uses reachable from the callee
148 | case .failure(let error):
149 | onError(error)
Build complete! (4.77s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "YFlow",
"name" : "YFlow",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "16.0"
},
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "watchos",
"version" : "9.0"
},
{
"name" : "tvos",
"version" : "16.0"
}
],
"products" : [
{
"name" : "YFlow",
"targets" : [
"YFlow"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "YFlowTests",
"module_type" : "SwiftTarget",
"name" : "YFlowTests",
"path" : "Tests/YFlowTests",
"sources" : [
"CompleterTests.swift",
"StreamTests.swift"
],
"target_dependencies" : [
"YFlow"
],
"type" : "test"
},
{
"c99name" : "YFlow",
"module_type" : "SwiftTarget",
"name" : "YFlow",
"path" : "Sources/YFlow",
"product_memberships" : [
"YFlow"
],
"sources" : [
"Completer.swift",
"Stream.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.