The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of CoreEngine, reference main (def772), with Swift 6.0 for Linux on 7 Nov 2024 14:29:48 UTC.

Swift 6 data race errors: 0

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/sobabear/CoreEngine.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/sobabear/CoreEngine
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at def772d Update README.md (#11)
Cloned https://github.com/sobabear/CoreEngine.git
Revision (git rev-parse @):
def772d401f23815bfcb7da4c4ee26a8c4f51481
SUCCESS checkout https://github.com/sobabear/CoreEngine.git at main
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/sobabear/CoreEngine.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/8] Compiling CoreEngine DidPublished.swift
[4/8] Compiling CoreEngine Core.swift
[5/8] Compiling CoreEngine AsyncCore.swift
/host/spi-builder-workspace/Sources/CoreEngine/Classes/AsyncCore.swift:21:51: warning: non-sendable type 'Self.State' returned by implicitly asynchronous call to actor-isolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
19 |             guard let self = self else { return }
20 |             do {
21 |                 let reducedState = try await self.reduce(state: self.currentState, action: _action)
   |                                                   `- warning: non-sendable type 'Self.State' returned by implicitly asynchronous call to actor-isolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
22 |                 await self.update(state: reducedState)
23 |             } catch {
/host/spi-builder-workspace/Sources/CoreEngine/Classes/AsyncCore.swift:42:24: warning: non-sendable type '(Self.Action) async -> ()' in implicitly asynchronous access to actor-isolated property 'action' cannot cross actor boundary; this is an error in the Swift 6 language mode
40 |     nonisolated func send(_ action: Action) {
41 |         Task {
42 |             await self.action(action)
   |                        |- warning: non-sendable type '(Self.Action) async -> ()' in implicitly asynchronous access to actor-isolated property 'action' cannot cross actor boundary; this is an error in the Swift 6 language mode
   |                        `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
43 |         }
44 |     }
/host/spi-builder-workspace/Sources/CoreEngine/Classes/AsyncCore.swift:21:51: warning: sending '_action' risks causing data races; this is an error in the Swift 6 language mode
19 |             guard let self = self else { return }
20 |             do {
21 |                 let reducedState = try await self.reduce(state: self.currentState, action: _action)
   |                                                   |- warning: sending '_action' risks causing data races; this is an error in the Swift 6 language mode
   |                                                   `- note: sending task-isolated '_action' to actor-isolated instance method 'reduce(state:action:)' risks causing data races between actor-isolated and task-isolated uses
22 |                 await self.update(state: reducedState)
23 |             } catch {
/host/spi-builder-workspace/Sources/CoreEngine/Classes/AsyncCore.swift:32:24: warning: sending 'action' risks causing data races; this is an error in the Swift 6 language mode
30 |     func dynamicallyCall(withArguments actions: [Action]) async {
31 |         for action in actions {
32 |             await self.action(action)
   |                        |- warning: sending 'action' risks causing data races; this is an error in the Swift 6 language mode
   |                        |- note: sending 'self'-isolated 'action' to nonisolated callee risks causing data races between nonisolated and local actor-isolated uses
   |                        `- note: access can happen concurrently
33 |         }
34 |     }
/host/spi-builder-workspace/Sources/CoreEngine/Classes/AsyncCore.swift:41: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
39 |
40 |     nonisolated func send(_ action: Action) {
41 |         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
42 |             await self.action(action)
   |                   |           `- note: closure captures non-Sendable 'action'
   |                   `- note: closure captures non-Sendable 'self'
43 |         }
44 |     }
[6/8] Compiling CoreEngine AsyncCoreSequence.swift
/host/spi-builder-workspace/Sources/CoreEngine/Classes/Async/AsyncCoreSequence.swift:54:41: warning: capture of 'keyPath' with non-sendable type 'KeyPath<State, Property>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 52 |             continuation.yield(last)
 53 |         }
 54 |         return stream.map { $0[keyPath: keyPath] }
    |                                         `- warning: capture of 'keyPath' with non-sendable type 'KeyPath<State, Property>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 55 |     }
 56 | }
Swift.KeyPath:1:14: note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
1 | public class KeyPath<Root, Value> : PartialKeyPath<Root> {
  |              `- note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
2 |     deinit
3 | }
/host/spi-builder-workspace/Sources/CoreEngine/Classes/Async/AsyncCoreSequence.swift:70:41: warning: capture of 'keyPath' with non-sendable type 'KeyPath<State, Property>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 68 |         }
 69 |
 70 |         return stream.map { $0[keyPath: keyPath] }
    |                                         `- warning: capture of 'keyPath' with non-sendable type 'KeyPath<State, Property>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 71 |     }
 72 |
Swift.KeyPath:1:14: note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
1 | public class KeyPath<Root, Value> : PartialKeyPath<Root> {
  |              `- note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
2 |     deinit
3 | }
/host/spi-builder-workspace/Sources/CoreEngine/Classes/Async/AsyncCoreSequence.swift:92:27: warning: passing non-sendable parameter 'transform' to function expecting a @Sendable closure
 83 |
 84 |     func map<Transformed>(
 85 |         _ transform: @escaping (State) async throws -> Transformed
    |           `- note: parameter 'transform' is implicitly non-sendable
 86 |     ) -> AsyncThrowingMapSequence<AsyncStream<State>, Transformed> {
 87 |         let (stream, continuation) = AsyncStream<State>.createStream()
    :
 90 |             continuation.yield(last)
 91 |         }
 92 |         return stream.map(transform)
    |                           `- warning: passing non-sendable parameter 'transform' to function expecting a @Sendable closure
 93 |     }
 94 |
/host/spi-builder-workspace/Sources/CoreEngine/Classes/Async/AsyncCoreSequence.swift:103:30: warning: passing non-sendable parameter 'isIncluded' to function expecting a @Sendable closure
 94 |
 95 |     func filter(
 96 |         _ isIncluded: @escaping (State) async -> Bool
    |           `- note: parameter 'isIncluded' is implicitly non-sendable
 97 |     ) -> AsyncFilterSequence<AsyncStream<State>> {
 98 |         let (stream, continuation) = AsyncStream<State>.createStream()
    :
101 |             continuation.yield(last)
102 |         }
103 |         return stream.filter(isIncluded)
    |                              `- warning: passing non-sendable parameter 'isIncluded' to function expecting a @Sendable closure
104 |     }
105 |
/host/spi-builder-workspace/Sources/CoreEngine/Classes/Async/AsyncCoreSequence.swift:134:31: warning: passing non-sendable parameter 'transform' to function expecting a @Sendable closure
125 |
126 |     func flatMap<SegmentOfResult: AsyncSequence>(
127 |         _ transform: @escaping (State) async throws -> SegmentOfResult
    |           `- note: parameter 'transform' is implicitly non-sendable
128 |     ) -> AsyncThrowingFlatMapSequence<AsyncStream<State>, SegmentOfResult> {
129 |         let (stream, continuation) = AsyncStream<State>.createStream()
    :
132 |             continuation.yield(last)
133 |         }
134 |         return stream.flatMap(transform)
    |                               `- warning: passing non-sendable parameter 'transform' to function expecting a @Sendable closure
135 |     }
136 |
/host/spi-builder-workspace/Sources/CoreEngine/Classes/Async/AsyncCoreSequence.swift:145:35: warning: passing non-sendable parameter 'predicate' to function expecting a @Sendable closure
136 |
137 |     func drop(
138 |         while predicate: @escaping (State) async -> Bool
    |               `- note: parameter 'predicate' is implicitly non-sendable
139 |     ) -> AsyncDropWhileSequence<AsyncStream<State>> {
140 |         let (stream, continuation) = AsyncStream<State>.createStream()
    :
143 |             continuation.yield(last)
144 |         }
145 |         return stream.drop(while: predicate)
    |                                   `- warning: passing non-sendable parameter 'predicate' to function expecting a @Sendable closure
146 |     }
147 | }
/host/spi-builder-workspace/Sources/CoreEngine/Classes/Async/AsyncCoreSequence.swift:42:26: warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
 40 |         last = state
 41 |         for continuation in continuations {
 42 |             continuation.yield(state)
    |                          |- warning: sending 'state' risks causing data races; this is an error in the Swift 6 language mode
    |                          `- note: task-isolated 'state' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 43 |         }
 44 |     }
/host/spi-builder-workspace/Sources/CoreEngine/Classes/Async/AsyncCoreSequence.swift:52:26: warning: sending 'last' risks causing data races; this is an error in the Swift 6 language mode
 50 |         continuations.append(continuation)
 51 |         if let last {
 52 |             continuation.yield(last)
    |                          |- warning: sending 'last' risks causing data races; this is an error in the Swift 6 language mode
    |                          `- note: task-isolated 'last' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 53 |         }
 54 |         return stream.map { $0[keyPath: keyPath] }
/host/spi-builder-workspace/Sources/CoreEngine/Classes/Async/AsyncCoreSequence.swift:67:26: warning: sending 'lastState' risks causing data races; this is an error in the Swift 6 language mode
 65 |
 66 |         if let lastState = last {
 67 |             continuation.yield(lastState)
    |                          |- warning: sending 'lastState' risks causing data races; this is an error in the Swift 6 language mode
    |                          `- note: task-isolated 'lastState' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 68 |         }
 69 |
/host/spi-builder-workspace/Sources/CoreEngine/Classes/Async/AsyncCoreSequence.swift:79:26: warning: sending 'last' risks causing data races; this is an error in the Swift 6 language mode
 77 |         continuations.append(continuation)
 78 |         if let last = last {
 79 |             continuation.yield(last)
    |                          |- warning: sending 'last' risks causing data races; this is an error in the Swift 6 language mode
    |                          `- note: task-isolated 'last' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 80 |         }
 81 |         return stream.map(transform)
/host/spi-builder-workspace/Sources/CoreEngine/Classes/Async/AsyncCoreSequence.swift:90:26: warning: sending 'last' risks causing data races; this is an error in the Swift 6 language mode
 88 |         continuations.append(continuation)
 89 |         if let last = last {
 90 |             continuation.yield(last)
    |                          |- warning: sending 'last' risks causing data races; this is an error in the Swift 6 language mode
    |                          `- note: task-isolated 'last' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 91 |         }
 92 |         return stream.map(transform)
/host/spi-builder-workspace/Sources/CoreEngine/Classes/Async/AsyncCoreSequence.swift:101:26: warning: sending 'last' risks causing data races; this is an error in the Swift 6 language mode
 99 |         continuations.append(continuation)
100 |         if let last = last {
101 |             continuation.yield(last)
    |                          |- warning: sending 'last' risks causing data races; this is an error in the Swift 6 language mode
    |                          `- note: task-isolated 'last' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
102 |         }
103 |         return stream.filter(isIncluded)
/host/spi-builder-workspace/Sources/CoreEngine/Classes/Async/AsyncCoreSequence.swift:110:26: warning: sending 'last' risks causing data races; this is an error in the Swift 6 language mode
108 |         continuations.append(continuation)
109 |         if let last = last {
110 |             continuation.yield(last)
    |                          |- warning: sending 'last' risks causing data races; this is an error in the Swift 6 language mode
    |                          `- note: task-isolated 'last' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
111 |         }
112 |         return stream.dropFirst(count)
/host/spi-builder-workspace/Sources/CoreEngine/Classes/Async/AsyncCoreSequence.swift:132:26: warning: sending 'last' risks causing data races; this is an error in the Swift 6 language mode
130 |         continuations.append(continuation)
131 |         if let last = last {
132 |             continuation.yield(last)
    |                          |- warning: sending 'last' risks causing data races; this is an error in the Swift 6 language mode
    |                          `- note: task-isolated 'last' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
133 |         }
134 |         return stream.flatMap(transform)
/host/spi-builder-workspace/Sources/CoreEngine/Classes/Async/AsyncCoreSequence.swift:143:26: warning: sending 'last' risks causing data races; this is an error in the Swift 6 language mode
141 |         continuations.append(continuation)
142 |         if let last = last {
143 |             continuation.yield(last)
    |                          |- warning: sending 'last' risks causing data races; this is an error in the Swift 6 language mode
    |                          `- note: task-isolated 'last' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
144 |         }
145 |         return stream.drop(while: predicate)
[7/8] Emitting module CoreEngine
[8/8] Compiling CoreEngine PublisherCore.swift
Build complete! (8.35s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "CoreEngine",
  "name" : "CoreEngine",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    }
  ],
  "products" : [
    {
      "name" : "CoreEngine",
      "targets" : [
        "CoreEngine"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CoreEngineTests",
      "module_type" : "SwiftTarget",
      "name" : "CoreEngineTests",
      "path" : "Tests/CoreEngineTests",
      "sources" : [
        "AsyncCoreTest.swift",
        "DidPublishedTest.swift"
      ],
      "target_dependencies" : [
        "CoreEngine"
      ],
      "type" : "test"
    },
    {
      "c99name" : "CoreEngine",
      "module_type" : "SwiftTarget",
      "name" : "CoreEngine",
      "path" : "Sources/CoreEngine",
      "product_memberships" : [
        "CoreEngine"
      ],
      "sources" : [
        "Classes/Async/AsyncCoreSequence.swift",
        "Classes/AsyncCore.swift",
        "Classes/Core.swift",
        "Classes/PublisherCore.swift",
        "Misc/DidPublished.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Done.