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 InfomaniakConcurrency, reference main (55fe75), with Swift 6.0 for Linux on 5 Nov 2024 06:11:17 UTC.

Swift 6 data race errors: 0

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-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/Infomaniak/swift-concurrency.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/Infomaniak/swift-concurrency
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 55fe754 Merge pull request #5 from Infomaniak/asyncReduce
Cloned https://github.com/Infomaniak/swift-concurrency.git
Revision (git rev-parse @):
55fe7541cbfcfb4b73e7836b390e2c566a9ba910
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/Infomaniak/swift-concurrency.git at main
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/Infomaniak/swift-concurrency.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-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/12] Compiling InfomaniakConcurrency Logs.swift
[4/12] Compiling InfomaniakConcurrency Collection+asyncCompactMap.swift
[5/13] Compiling InfomaniakConcurrency Collection+asyncForEach.swift
[6/13] Compiling InfomaniakConcurrency Collection+asyncMap.swift
[7/13] Compiling InfomaniakConcurrency ConcurrencyHeuristic.swift
[8/13] Compiling InfomaniakConcurrency Collection+concurrentCompactMap.swift
/host/spi-builder-workspace/Sources/InfomaniakConcurrency/Collection+concurrentCompactMap.swift:89:45: warning: non-sendable type '[Output]' in implicitly asynchronous access to actor-isolated property 'compactAccumulation' cannot cross actor boundary; this is an error in the Swift 6 language mode
45 |     ///   - transform: The operation to be applied to the `Collection` of items
46 |     /// - Returns: An ordered processed collection of the desired type, containing non nil values.
47 |     func concurrentCompactMap<Input, Output>(
   |                                      `- note: consider making generic parameter 'Output' conform to the 'Sendable' protocol
48 |         customConcurrency: Int?,
49 |         transform: @escaping @Sendable (_ item: Input) async throws -> Output?
   :
87 |
88 |         // Get the accumulated results.
89 |         let accumulated = await accumulator.compactAccumulation
   |                                             `- warning: non-sendable type '[Output]' in implicitly asynchronous access to actor-isolated property 'compactAccumulation' cannot cross actor boundary; this is an error in the Swift 6 language mode
90 |         return accumulated
91 |     }
/host/spi-builder-workspace/Sources/InfomaniakConcurrency/Collection+concurrentCompactMap.swift:69:27: warning: task-isolated value of type '() async throws -> Void' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
67 |                 }
68 |
69 |                 taskGroup.addTask {
   |                           `- warning: task-isolated value of type '() async throws -> Void' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
70 |                     let result = try await transform(nextEnumeration.1)
71 |                     try await accumulator.set(item: result, atIndex: nextEnumeration.0)
/host/spi-builder-workspace/Sources/InfomaniakConcurrency/Collection+concurrentCompactMap.swift:78:27: warning: task-isolated value of type '() async throws -> Void' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
76 |             while let _ = try await taskGroup.next(),
77 |                   let nextEnumeration = enumeratedIterator.next() {
78 |                 taskGroup.addTask {
   |                           `- warning: task-isolated value of type '() async throws -> Void' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
79 |                     let result = try await transform(nextEnumeration.1)
80 |                     try await accumulator.set(item: result, atIndex: nextEnumeration.0)
/host/spi-builder-workspace/Sources/InfomaniakConcurrency/Collection+concurrentCompactMap.swift:71:43: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
69 |                 taskGroup.addTask {
70 |                     let result = try await transform(nextEnumeration.1)
71 |                     try await accumulator.set(item: result, atIndex: nextEnumeration.0)
   |                                           |- 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 'set(item:atIndex:)' risks causing data races between actor-isolated and task-isolated uses
72 |                 }
73 |             }
/host/spi-builder-workspace/Sources/InfomaniakConcurrency/Collection+concurrentCompactMap.swift:80:43: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
78 |                 taskGroup.addTask {
79 |                     let result = try await transform(nextEnumeration.1)
80 |                     try await accumulator.set(item: result, atIndex: nextEnumeration.0)
   |                                           |- 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 'set(item:atIndex:)' risks causing data races between actor-isolated and task-isolated uses
81 |                 }
82 |             }
/host/spi-builder-workspace/Sources/InfomaniakConcurrency/Collection+concurrentForEach.swift:60:35: 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
58 |                 }
59 |
60 |                 taskGroup.addTask {
   |                                   `- 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
61 |                     try await task(nextElement)
   |                                    `- note: closure captures 'nextElement' which is accessible to code in the current task
62 |                 }
63 |             }
/host/spi-builder-workspace/Sources/InfomaniakConcurrency/Collection+concurrentForEach.swift:68:35: 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
66 |             while let _ = try await taskGroup.next(),
67 |                   let nextElement = iterator.next() {
68 |                 taskGroup.addTask {
   |                                   `- 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
69 |                     try await task(nextElement)
   |                                    `- note: closure captures 'nextElement' which is accessible to code in the current task
70 |                 }
71 |             }
[9/13] Compiling InfomaniakConcurrency Collection+concurrentForEach.swift
/host/spi-builder-workspace/Sources/InfomaniakConcurrency/Collection+concurrentCompactMap.swift:89:45: warning: non-sendable type '[Output]' in implicitly asynchronous access to actor-isolated property 'compactAccumulation' cannot cross actor boundary; this is an error in the Swift 6 language mode
45 |     ///   - transform: The operation to be applied to the `Collection` of items
46 |     /// - Returns: An ordered processed collection of the desired type, containing non nil values.
47 |     func concurrentCompactMap<Input, Output>(
   |                                      `- note: consider making generic parameter 'Output' conform to the 'Sendable' protocol
48 |         customConcurrency: Int?,
49 |         transform: @escaping @Sendable (_ item: Input) async throws -> Output?
   :
87 |
88 |         // Get the accumulated results.
89 |         let accumulated = await accumulator.compactAccumulation
   |                                             `- warning: non-sendable type '[Output]' in implicitly asynchronous access to actor-isolated property 'compactAccumulation' cannot cross actor boundary; this is an error in the Swift 6 language mode
90 |         return accumulated
91 |     }
/host/spi-builder-workspace/Sources/InfomaniakConcurrency/Collection+concurrentCompactMap.swift:69:27: warning: task-isolated value of type '() async throws -> Void' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
67 |                 }
68 |
69 |                 taskGroup.addTask {
   |                           `- warning: task-isolated value of type '() async throws -> Void' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
70 |                     let result = try await transform(nextEnumeration.1)
71 |                     try await accumulator.set(item: result, atIndex: nextEnumeration.0)
/host/spi-builder-workspace/Sources/InfomaniakConcurrency/Collection+concurrentCompactMap.swift:78:27: warning: task-isolated value of type '() async throws -> Void' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
76 |             while let _ = try await taskGroup.next(),
77 |                   let nextEnumeration = enumeratedIterator.next() {
78 |                 taskGroup.addTask {
   |                           `- warning: task-isolated value of type '() async throws -> Void' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
79 |                     let result = try await transform(nextEnumeration.1)
80 |                     try await accumulator.set(item: result, atIndex: nextEnumeration.0)
/host/spi-builder-workspace/Sources/InfomaniakConcurrency/Collection+concurrentCompactMap.swift:71:43: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
69 |                 taskGroup.addTask {
70 |                     let result = try await transform(nextEnumeration.1)
71 |                     try await accumulator.set(item: result, atIndex: nextEnumeration.0)
   |                                           |- 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 'set(item:atIndex:)' risks causing data races between actor-isolated and task-isolated uses
72 |                 }
73 |             }
/host/spi-builder-workspace/Sources/InfomaniakConcurrency/Collection+concurrentCompactMap.swift:80:43: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
78 |                 taskGroup.addTask {
79 |                     let result = try await transform(nextEnumeration.1)
80 |                     try await accumulator.set(item: result, atIndex: nextEnumeration.0)
   |                                           |- 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 'set(item:atIndex:)' risks causing data races between actor-isolated and task-isolated uses
81 |                 }
82 |             }
/host/spi-builder-workspace/Sources/InfomaniakConcurrency/Collection+concurrentForEach.swift:60:35: 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
58 |                 }
59 |
60 |                 taskGroup.addTask {
   |                                   `- 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
61 |                     try await task(nextElement)
   |                                    `- note: closure captures 'nextElement' which is accessible to code in the current task
62 |                 }
63 |             }
/host/spi-builder-workspace/Sources/InfomaniakConcurrency/Collection+concurrentForEach.swift:68:35: 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
66 |             while let _ = try await taskGroup.next(),
67 |                   let nextElement = iterator.next() {
68 |                 taskGroup.addTask {
   |                                   `- 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
69 |                     try await task(nextElement)
   |                                    `- note: closure captures 'nextElement' which is accessible to code in the current task
70 |                 }
71 |             }
[10/13] Compiling InfomaniakConcurrency Collection+concurrentMap.swift
[11/13] Compiling InfomaniakConcurrency ArrayAccumulator.swift
[12/13] Emitting module InfomaniakConcurrency
[13/13] Compiling InfomaniakConcurrency Collection+asyncReduce.swift
Build complete! (14.25s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "InfomaniakConcurrency",
  "name" : "InfomaniakConcurrency",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "InfomaniakConcurrency",
      "targets" : [
        "InfomaniakConcurrency"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "InfomaniakConcurrencyTests",
      "module_type" : "SwiftTarget",
      "name" : "InfomaniakConcurrencyTests",
      "path" : "Tests/InfomaniakConcurrencyTests",
      "sources" : [
        "TestHelper.swift",
        "UTCollection+async.swift",
        "UTCollection+concurrentCompactMap.swift",
        "UTCollection+concurrentForEach.swift",
        "UTCollection+concurrentMap.swift"
      ],
      "target_dependencies" : [
        "InfomaniakConcurrency"
      ],
      "type" : "test"
    },
    {
      "c99name" : "InfomaniakConcurrency",
      "module_type" : "SwiftTarget",
      "name" : "InfomaniakConcurrency",
      "path" : "Sources/InfomaniakConcurrency",
      "product_memberships" : [
        "InfomaniakConcurrency"
      ],
      "sources" : [
        "Collection+concurrentCompactMap.swift",
        "Collection+concurrentForEach.swift",
        "Collection+concurrentMap.swift",
        "Internal/ArrayAccumulator.swift",
        "Internal/ConcurrencyHeuristic.swift",
        "Internal/Logs.swift",
        "Serial/Collection+asyncCompactMap.swift",
        "Serial/Collection+asyncForEach.swift",
        "Serial/Collection+asyncMap.swift",
        "Serial/Collection+asyncReduce.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
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.