The Swift Package Index logo.Swift Package Index

Build Information

Successful build of llbuild2, reference main (bc6abf), with Swift 6.1 for Linux on 15 Apr 2026 02:49:58 UTC.

Swift 6 data race errors: 5

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1

Build Log

 46 |             return FXFuture.whenAllSucceed(futures, on: self.group.next()).map { _ in () }
 47 |         }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/ConcurrentFileTreeWalker.swift:102:13: warning: capture of 'root' with non-sendable type 'LLBConcurrentFileTreeWalker.Item' in a '@Sendable' closure
 60 |     }
 61 |
 62 |     package struct Item {
    |                    `- note: consider making struct 'Item' conform to the 'Sendable' protocol
 63 |         /// The description of the current CAS filesystem entry.
 64 |         let arg: FilterArgument
    :
100 |         let walker = ConcurrentHierarchyWalker(group: db.group, delegate: self)
101 |         return walker.walk(root, ctx).map { () in
102 |             root.scanResult.reapResult()
    |             `- warning: capture of 'root' with non-sendable type 'LLBConcurrentFileTreeWalker.Item' in a '@Sendable' closure
103 |         }
104 |     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/ConcurrentFileTreeWalker.swift:117:33: warning: capture of 'item' with non-sendable type 'LLBConcurrentFileTreeWalker.Item' in a '@Sendable' closure
 60 |     }
 61 |
 62 |     package struct Item {
    |                    `- note: consider making struct 'Item' conform to the 'Sendable' protocol
 63 |         /// The description of the current CAS filesystem entry.
 64 |         let arg: FilterArgument
    :
115 |
116 |         return client.load(item.id, type: typeHint, ctx).map { node in
117 |             if typeHint == nil, item.arg.path == .root, item.arg.size == 0 {
    |                                 `- warning: capture of 'item' with non-sendable type 'LLBConcurrentFileTreeWalker.Item' in a '@Sendable' closure
118 |                 // This is our root. Check if we're allowed to go past it.
119 |                 let dirEntry = node.asDirectoryEntry(filename: "-")
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/ConcurrentFileTreeWalker.swift:125:23: warning: capture of 'self' with non-sendable type 'LLBConcurrentFileTreeWalker' in a '@Sendable' closure
 49 | }
 50 |
 51 | package class LLBConcurrentFileTreeWalker: RetrieveChildrenProtocol {
    |               `- note: class 'LLBConcurrentFileTreeWalker' does not conform to the 'Sendable' protocol
 52 |     let db: any FXCASDatabase
 53 |     let client: FXCASFSClient
    :
123 |                         size: Int(clamping: dirEntry.info.size)), id: dirEntry.id,
124 |                     scanResult: item.scanResult)
125 |                 guard self.filter(rootItem) else {
    |                       `- warning: capture of 'self' with non-sendable type 'LLBConcurrentFileTreeWalker' in a '@Sendable' closure
126 |                     return []
127 |                 }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/Context.swift:42:24: warning: static property 'fileTreeExportStorageBatcherKey' is not concurrency-safe because non-'Sendable' type 'ContextKey' may have shared mutable state; this is an error in the Swift 6 language mode
10 | import TSCUtility
11 |
12 | private final class ContextKey {}
   |                     `- note: class 'ContextKey' does not conform to the 'Sendable' protocol
13 |
14 | /// Support storing and retrieving file tree import options from a context
   :
40 | /// Support storing and retrieving file tree export storage batcher from a context
41 | extension Context {
42 |     private static let fileTreeExportStorageBatcherKey = ContextKey()
   |                        |- warning: static property 'fileTreeExportStorageBatcherKey' is not concurrency-safe because non-'Sendable' type 'ContextKey' may have shared mutable state; this is an error in the Swift 6 language mode
   |                        |- note: add '@MainActor' to make static property 'fileTreeExportStorageBatcherKey' part of global actor 'MainActor'
   |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 |
44 |     package var fileTreeExportStorageBatcher: LLBBatchingFutureOperationQueue? {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/Context.swift:18:85: warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
16 |     package static func with(_ options: FXCASFileTree.ImportOptions) -> Context {
17 |         return Context(
18 |             dictionaryLiteral: (ObjectIdentifier(FXCASFileTree.ImportOptions.self), options as Any)
   |                                                                                     `- warning: type 'Any' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
19 |         )
20 |     }
[842/847] Compiling llbuild2Testing DirectoryEntry.swift
[843/847] Compiling llbuild2Testing Errors.swift
[844/847] Compiling llbuild2Testing FileInfo.swift
[845/847] Compiling llbuild2Testing FileTree.swift
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:150:72: warning: reference to captured var 'refs' in concurrently-executing code
148 |                 // API should be fixed. One option would be to change this class so
149 |                 // it can directly operate on the encoded representation.
150 |                 return try self.init(id: id, object: FXCASObject(refs: refs, data: dirBytes))
    |                                                                        `- warning: reference to captured var 'refs' in concurrently-executing code
151 |             }
152 |         } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:150:84: warning: reference to captured var 'dirBytes' in concurrently-executing code
148 |                 // API should be fixed. One option would be to change this class so
149 |                 // it can directly operate on the encoded representation.
150 |                 return try self.init(id: id, object: FXCASObject(refs: refs, data: dirBytes))
    |                                                                                    `- warning: reference to captured var 'dirBytes' in concurrently-executing code
151 |             }
152 |         } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:287:17: warning: mutation of captured var 'files' in concurrently-executing code
285 |         return FXFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
286 |             for (idx, name, result, posixDetails) in mergedEntries {
287 |                 files[idx] = .init(
    |                 `- warning: mutation of captured var 'files' in concurrently-executing code
288 |                     info: FXDirectoryEntry(
289 |                         name: name, type: .directory, size: result.aggregateSize,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:292:48: warning: reference to captured var 'files' in concurrently-executing code
290 |                         posixDetails: posixDetails), id: result.id)
291 |             }
292 |             return FXCASFileTree.create(files: files, in: db, posixDetails: self.posixDetails, ctx)
    |                                                `- warning: reference to captured var 'files' in concurrently-executing code
293 |         }
294 |     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:408:17: warning: mutation of captured var 'files' in concurrently-executing code
406 |         return FXFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
407 |             for (idx, name, result, posixDetails) in mergedEntries {
408 |                 files[idx] = .init(
    |                 `- warning: mutation of captured var 'files' in concurrently-executing code
409 |                     info: FXDirectoryEntry(
410 |                         name: name, type: .directory, size: result.aggregateSize,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:414:24: warning: reference to captured var 'files' in concurrently-executing code
412 |             }
413 |             return FXCASFileTree.create(
414 |                 files: files, in: db, posixDetails: reversedTrees.first!.posixDetails, ctx)
    |                        `- warning: reference to captured var 'files' in concurrently-executing code
415 |         }
416 |     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:234:13: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
    |                     `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 |     let db: any FXCASDatabase
201 |     let exportPathPrefix: AbsolutePath
    :
232 |         let casObjectFuture: FXFuture<FXCASObject> = db.get(item.id, ctx).flatMapThrowing {
233 |             casObject in
234 |             self.stats.downloadsInProgressObjects_.wrappingDecrement(ordering: .relaxed)
    |             `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
235 |
236 |             guard let casObject = casObject else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:250:25: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
    |                     `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 |     let db: any FXCASDatabase
201 |     let exportPathPrefix: AbsolutePath
    :
248 |                 // Unblock the current NIO thread.
249 |                 batcher.execute {
250 |                     try self.parseAndMaterialize(casObject, item).map {
    |                         `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
251 |                         Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
252 |                     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:250:25: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in an isolated closure; this is an error in the Swift 6 language mode
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
    |                     `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 |     let db: any FXCASDatabase
201 |     let exportPathPrefix: AbsolutePath
    :
248 |                 // Unblock the current NIO thread.
249 |                 batcher.execute {
250 |                     try self.parseAndMaterialize(casObject, item).map {
    |                         `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in an isolated closure; this is an error in the Swift 6 language mode
251 |                         Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
252 |                     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:257:21: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
    |                     `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 |     let db: any FXCASDatabase
201 |     let exportPathPrefix: AbsolutePath
    :
255 |         } else {
256 |             return casObjectFuture.flatMapThrowing { casObject in
257 |                 try self.parseAndMaterialize(casObject, item).map {
    |                     `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
258 |                     Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
259 |                 }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:353:14: warning: use of protocol 'FXCASDatabase' as a type must be written 'any FXCASDatabase'; this will be an error in a future Swift language mode
 351 |
 352 |     let loop: FXFuturesDispatchLoop
 353 |     let _db: FXCASDatabase
     |              `- warning: use of protocol 'FXCASDatabase' as a type must be written 'any FXCASDatabase'; this will be an error in a future Swift language mode
 354 |     let finalResultPromise: LLBCancellablePromise<FXDataID>
 355 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:319:28: warning: type 'T' does not conform to the 'Sendable' protocol
 314 |
 315 |     // Retry with lesser concurrency if we see unexpected network errors.
 316 |     private static func recursivelyDecreasingLimit<T>(
     |                                                    `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 317 |         on loop: FXFuturesDispatchLoop, limit: Int, _ body: @escaping (Int) -> FXFuture<T>
 318 |     ) -> FXFuture<T> {
 319 |         return body(limit).flatMapError { error -> FXFuture<T> in
     |                            `- warning: type 'T' does not conform to the 'Sendable' protocol
 320 |             // Check if something retryable happened.
 321 |             guard case FXCASDatabaseError.retryableNetworkError(_) = error else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:334:22: warning: type 'T' does not conform to the 'Sendable' protocol
 314 |
 315 |     // Retry with lesser concurrency if we see unexpected network errors.
 316 |     private static func recursivelyDecreasingLimit<T>(
     |                                                    `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 317 |         on loop: FXFuturesDispatchLoop, limit: Int, _ body: @escaping (Int) -> FXFuture<T>
 318 |     ) -> FXFuture<T> {
     :
 332 |             _ = loop.scheduleTask(in: .seconds(3)) {
 333 |                 recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
 334 |                     .cascade(to: promise)
     |                      `- warning: type 'T' does not conform to the 'Sendable' protocol
 335 |             }
 336 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:333:71: warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
 331 |             let promise = loop.makePromise(of: T.self)
 332 |             _ = loop.scheduleTask(in: .seconds(3)) {
 333 |                 recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
     |                                                                       |- warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
     |                                                                       `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 334 |                     .cascade(to: promise)
 335 |             }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:333:71: warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
 331 |             let promise = loop.makePromise(of: T.self)
 332 |             _ = loop.scheduleTask(in: .seconds(3)) {
 333 |                 recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
     |                                                                       |- warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
     |                                                                       `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 334 |                     .cascade(to: promise)
 335 |             }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:525:11: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 523 |                 }
 524 |             }
 525 |         }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
     |           `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 526 |             self.whenAllSucceed(nextStepFutures)
 527 |         }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:527:11: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 525 |         }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
 526 |             self.whenAllSucceed(nextStepFutures)
 527 |         }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
     |           `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 528 |             self.set(phase: .CheckIfUploaded)
 529 |             return self.recursivelyPerformSteps(
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:712:25: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 710 |
 711 |         guard finalResultPromise.isCompleted == false else {
 712 |             return loop.makeSucceededFuture([])
     |                         `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 713 |         }
 714 |
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:732:56: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 730 |         // Wait for the steps we need to wait in this phase, and then
 731 |         // advance the phase if there are no more steps to wait.
 732 |         return self.whenAllSucceed(waitInCurrentPhase).flatMap { moreStepsInCurrentPhase in
     |                                                        `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 733 |             if moreStepsInCurrentPhase.isEmpty {
 734 |                 precondition(!currentPhase.isFinalPhase)  // Avoid infinite recursion
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:33: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 735 |                 let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
 736 |                 guard nextPhase < .UploadingDirs else {
 737 |                     return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
     |                                 `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 738 |                 }
 739 |                 self.set(phase: nextPhase)
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:53: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 735 |                 let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
 736 |                 guard nextPhase < .UploadingDirs else {
 737 |                     return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
     |                                                     `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 738 |                 }
 739 |                 self.set(phase: nextPhase)
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:69: warning: capture of 'nextPhaseSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 735 |                 let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
 736 |                 guard nextPhase < .UploadingDirs else {
 737 |                     return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
     |                                                                     `- warning: capture of 'nextPhaseSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 738 |                 }
 739 |                 self.set(phase: nextPhase)
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:53: warning: reference to captured var 'finishedSteps' in concurrently-executing code
 735 |                 let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
 736 |                 guard nextPhase < .UploadingDirs else {
 737 |                     return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
     |                                                     `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
 738 |                 }
 739 |                 self.set(phase: nextPhase)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:69: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 735 |                 let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
 736 |                 guard nextPhase < .UploadingDirs else {
 737 |                     return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
     |                                                                     `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 738 |                 }
 739 |                 self.set(phase: nextPhase)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:741:65: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 739 |                 self.set(phase: nextPhase)
 740 |                 return self.recursivelyPerformSteps(
 741 |                     currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
     |                                                                 `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 742 |                 ).map {
 743 |                     finishedSteps + $0
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:743:21: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 741 |                     currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
 742 |                 ).map {
 743 |                     finishedSteps + $0
     |                     `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 744 |                 }
 745 |             } else {
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:743:21: warning: reference to captured var 'finishedSteps' in concurrently-executing code
 741 |                     currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
 742 |                 ).map {
 743 |                     finishedSteps + $0
     |                     `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
 744 |                 }
 745 |             } else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:748:37: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 746 |                 return self.recursivelyPerformSteps(
 747 |                     currentPhase: currentPhase, currentPhaseSteps: moreStepsInCurrentPhase,
 748 |                     nextPhaseSteps: nextPhaseSteps
     |                                     `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 749 |                 ).map {
 750 |                     finishedSteps + $0
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:750:21: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 748 |                     nextPhaseSteps: nextPhaseSteps
 749 |                 ).map {
 750 |                     finishedSteps + $0
     |                     `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 751 |                 }
 752 |             }
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:750:21: warning: reference to captured var 'finishedSteps' in concurrently-executing code
 748 |                     nextPhaseSteps: nextPhaseSteps
 749 |                 ).map {
 750 |                     finishedSteps + $0
     |                     `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
 751 |                 }
 752 |             }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1044:45: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1042 |                         > {
1043 |                             guard finalResultPromise.isCompleted == false else {
1044 |                                 return loop.makeSucceededFuture(NextStep.skipped)
     |                                             `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1045 |                             }
1046 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1056:45: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1054 |                                         by: size, ordering: .relaxed)
1055 |                                 }
1056 |                                 return loop.makeSucceededFuture(encodeNextStep(for: blobId))
     |                                             `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1057 |                             }
1058 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1095:51: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1093 |                             let containsFuture = self.dbContains(segm, ctx)
1094 |                             let containsLoop = containsFuture.eventLoop
1095 |                             return containsFuture.flatMap { exists -> FXFuture<NextStep> in
     |                                                   `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1096 |
1097 |                                 guard !exists else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1098:88: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1096 |
1097 |                                 guard !exists else {
1098 |                                     let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
     |                                                                                        `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1099 |                                         id in
1100 |                                         return uploadFileInfo(
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1107:53: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1105 |                                 }
1106 |
1107 |                                 return containsLoop.makeSucceededFuture(
     |                                                     `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1108 |                                     NextStep.execute(
1109 |                                         in: .UploadingFiles,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1130:61: warning: 'executeWithBackpressure(on:loop:size:default:_:)' is deprecated: This method blocks indefinitely and returns a future
1128 |                                                 // free to take our load. This ensures that we're not
1129 |                                                 // limited by CPU parallelism for network concurrency.
1130 |                                                 return self.executeWithBackpressure(
     |                                                             `- warning: 'executeWithBackpressure(on:loop:size:default:_:)' is deprecated: This method blocks indefinitely and returns a future
1131 |                                                     on: self.netQueue, loop: containsLoop,
1132 |                                                     size: slice.readableBytes, default: .skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1137:55: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1135 |                                                         refs: [], data: slice,
1136 |                                                         importSize: segm.uncompressedSize, ctx
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
     |                                                       `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1143:55: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1141 |                                                     }.map { result in
1142 |                                                         return result
1143 |                                                     }.hop(to: loop)
     |                                                       `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1144 |                                                 }
1145 |                                             }.flatMap {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1145:47: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1143 |                                                     }.hop(to: loop)
1144 |                                                 }
1145 |                                             }.flatMap {
     |                                               `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1146 |                                                 // This type of return ensures that cpuQueue does not
1147 |                                                 // wait for the netQueue operation to complete.
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1148:60: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1146 |                                                 // This type of return ensures that cpuQueue does not
1147 |                                                 // wait for the netQueue operation to complete.
1148 |                                                 $0 ?? loop.makeSucceededFuture(NextStep.skipped)
     |                                                            `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1149 |                                             }
1150 |                                             nextStepFuture.cascade(to: partialStepPromise)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1203:23: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1201 |                         throw error
1202 |
1203 |                     }.flatMap { nextSteps in
     |                       `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1204 |                         // The next steps can only be empty if we've reacting on
1205 |                         // a filesystem-related error with some of our chunks.
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1207:41: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1205 |                         // a filesystem-related error with some of our chunks.
1206 |                         guard nextSteps.isEmpty == false else {
1207 |                             return loop.makeSucceededFuture(.skipped)
     |                                         `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1208 |                         }
1209 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1254:49: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1252 |             // have been uploaded. Therefore we wait for the huge files in
1253 |             // its own state, .UploadingWait.
1254 |             return cheapNextStepFutures + [loop.makeSucceededFuture(combinePartialResultsStep)]
     |                                                 `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1255 |         }
1256 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1261:22: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1259 |             in: .EstimatingSize,
1260 |             run: {
1261 |                 loop.makeSucceededFuture(
     |                      `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1262 |                     NextStep.wait(
1263 |                         in: .CheckIfUploaded,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1080:37: warning: capture of 'encodeNextStep(for:)' with non-sendable type '(FXDataID) -> CASTreeImport.NextStep' in a '@Sendable' closure
1078 |                                     importSize: importSize, ctx
1079 |                                 ).map { id in
1080 |                                     encodeNextStep(for: id)
     |                                     |- warning: capture of 'encodeNextStep(for:)' with non-sendable type '(FXDataID) -> CASTreeImport.NextStep' in a '@Sendable' closure
     |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1081 |                                 }
1082 |                             } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1026:30: warning: concurrently-executed local function 'encodeNextStep(for:)' must be marked as '@Sendable'
1024 |                             promise: loop.makePromise(of: NextStep.self))
1025 |
1026 |                         func encodeNextStep(for id: FXDataID) -> NextStep {
     |                              `- warning: concurrently-executed local function 'encodeNextStep(for:)' must be marked as '@Sendable'
1027 |                             if isSingleChunk {
1028 |                                 return .singleFile(
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1100:48: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1098 |                                     let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
1099 |                                         id in
1100 |                                         return uploadFileInfo(
     |                                                |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
     |                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1101 |                                             blobId: id, importSize: segm.uncompressedSize)
1102 |                                     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1114 |                                                 let data: LLBFastData
1115 |
1116 |                                                 switch importObject {
     |                                                        `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1117 |                                                 case .link(let target):
1118 |                                                     data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1100:48: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1098 |                                     let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
1099 |                                         id in
1100 |                                         return uploadFileInfo(
     |                                                |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
     |                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1101 |                                             blobId: id, importSize: segm.uncompressedSize)
1102 |                                     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1040:30: warning: concurrently-executed local function 'uploadFileInfo(blobId:importSize:)' must be marked as '@Sendable'
1038 |                         // If the file has non-standard layout, upload it after we upload
1039 |                         // the binary blob.
1040 |                         func uploadFileInfo(blobId: FXDataID, importSize: Int? = nil) -> FXFuture<
     |                              `- warning: concurrently-executed local function 'uploadFileInfo(blobId:importSize:)' must be marked as '@Sendable'
1041 |                             NextStep
1042 |                         > {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1114 |                                                 let data: LLBFastData
1115 |
1116 |                                                 switch importObject {
     |                                                        `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
1117 |                                                 case .link(let target):
1118 |                                                     data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
     |                                                             |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 |                                                         }
1141 |                                                     }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1114 |                                                 let data: LLBFastData
1115 |
1116 |                                                 switch importObject {
     |                                                        `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
1117 |                                                 case .link(let target):
1118 |                                                     data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
     |                                                             |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 |                                                         }
1141 |                                                     }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1138:78: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1136 |                                                         importSize: segm.uncompressedSize, ctx
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
     |                                                                              `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
1139 |                                                             uploadFileInfo(blobId: id)
1140 |                                                         }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
     |                                                             |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 |                                                         }
1141 |                                                     }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1138:78: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1136 |                                                         importSize: segm.uncompressedSize, ctx
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
     |                                                                              `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1139 |                                                             uploadFileInfo(blobId: id)
1140 |                                                         }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
     |                                                             |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 |                                                         }
1141 |                                                     }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
     |                                                             |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 |                                                         }
1141 |                                                     }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1225:44: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1223 |                             chunkIds.count > 1
1224 |                                 ? self.options.fileChunkSize : allSegmentsUncompressedDataSize)
1225 |                         let posixDetails = importObject.posixDetails
     |                                            `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1226 |                         fileInfo.update(posixDetails: posixDetails, options: self.options)
1227 |                         do {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1308:25: warning: type 'Value' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
1301 |     }
1302 |
1303 |     private func whenAllSucceed<Value>(
     |                                 `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
1304 |         _ futures: [FXFuture<Value>], on loop: FXFuturesDispatchLoop? = nil
1305 |     ) -> FXFuture<[Value]> {
1306 |         let loop = loop ?? self.loop
1307 |         guard finalResultPromise.isCompleted == false else {
1308 |             return loop.makeSucceededFuture([])
     |                         `- warning: type 'Value' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
1309 |         }
1310 |         return FXFuture.whenAllSucceed(futures, on: loop).map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1310:25: warning: type 'Value' does not conform to the 'Sendable' protocol
1301 |     }
1302 |
1303 |     private func whenAllSucceed<Value>(
     |                                 `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
1304 |         _ futures: [FXFuture<Value>], on loop: FXFuturesDispatchLoop? = nil
1305 |     ) -> FXFuture<[Value]> {
     :
1308 |             return loop.makeSucceededFuture([])
1309 |         }
1310 |         return FXFuture.whenAllSucceed(futures, on: loop).map { result in
     |                         `- warning: type 'Value' does not conform to the 'Sendable' protocol
1311 |             guard self.finalResultPromise.isCompleted == false else {
1312 |                 return []
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1328:39: warning: type 'T' does not conform to the 'Sendable' protocol
1321 |     /// Enqueue the callback unless the stop flag is in action.
1322 |     /// If stop flag is set, return the value specified in `then`.
1323 |     private func execute<T>(
     |                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1324 |         on queue: LLBBatchingFutureOperationQueue, default stopValue: T,
1325 |         _ body: @escaping () throws -> T
1326 |     ) -> FXFuture<T> {
1327 |         guard finalResultPromise.isCompleted == false else {
1328 |             return queue.group.next().makeSucceededFuture(stopValue)
     |                                       `- warning: type 'T' does not conform to the 'Sendable' protocol
1329 |         }
1330 |         return queue.execute {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1351:25: warning: type 'T' does not conform to the 'Sendable' protocol
1343 |     /// Enqueue the callback unless the stop flag is in action.
1344 |     /// If stop flag is set, return the value specified in `then`.
1345 |     private func execute<T>(
     |                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1346 |         on queue: FXFutureOperationQueue, loop: EventLoop? = nil, size: Int = 1,
1347 |         default stopValue: T, _ body: @escaping () -> FXFuture<T>
     :
1349 |         let loop = loop ?? self.loop
1350 |         guard finalResultPromise.isCompleted == false else {
1351 |             return loop.makeSucceededFuture(stopValue)
     |                         `- warning: type 'T' does not conform to the 'Sendable' protocol
1352 |         }
1353 |         return queue.enqueue(on: loop, share: size) {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1355:29: warning: type 'T' does not conform to the 'Sendable' protocol
1343 |     /// Enqueue the callback unless the stop flag is in action.
1344 |     /// If stop flag is set, return the value specified in `then`.
1345 |     private func execute<T>(
     |                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1346 |         on queue: FXFutureOperationQueue, loop: EventLoop? = nil, size: Int = 1,
1347 |         default stopValue: T, _ body: @escaping () -> FXFuture<T>
     :
1353 |         return queue.enqueue(on: loop, share: size) {
1354 |             guard self.finalResultPromise.isCompleted == false else {
1355 |                 return loop.makeSucceededFuture(stopValue)
     |                             `- warning: type 'T' does not conform to the 'Sendable' protocol
1356 |             }
1357 |             return body().flatMapErrorThrowing { error in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1375:25: warning: type 'T' does not conform to the 'Sendable' protocol
1368 |     )
1369 |     @available(*, deprecated, message: "This method blocks indefinitely and returns a future")
1370 |     private func executeWithBackpressure<T>(
     |                                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1371 |         on queue: FXFutureOperationQueue, loop: FXFuturesDispatchLoop, size: Int = 1,
1372 |         default stopValue: T, _ body: @escaping () -> FXFuture<T>
1373 |     ) -> FXFuture<T> {
1374 |         guard finalResultPromise.isCompleted == false else {
1375 |             return loop.makeSucceededFuture(stopValue)
     |                         `- warning: type 'T' does not conform to the 'Sendable' protocol
1376 |         }
1377 |         return queue.enqueueWithBackpressure(on: loop, share: size) {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1379:29: warning: type 'T' does not conform to the 'Sendable' protocol
1368 |     )
1369 |     @available(*, deprecated, message: "This method blocks indefinitely and returns a future")
1370 |     private func executeWithBackpressure<T>(
     |                                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1371 |         on queue: FXFutureOperationQueue, loop: FXFuturesDispatchLoop, size: Int = 1,
1372 |         default stopValue: T, _ body: @escaping () -> FXFuture<T>
     :
1377 |         return queue.enqueueWithBackpressure(on: loop, share: size) {
1378 |             guard self.finalResultPromise.isCompleted == false else {
1379 |                 return loop.makeSucceededFuture(stopValue)
     |                             `- warning: type 'T' does not conform to the 'Sendable' protocol
1380 |             }
1381 |             return body().flatMapErrorThrowing { error in
[846/847] Compiling llbuild2Testing FileTreeExport.swift
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:150:72: warning: reference to captured var 'refs' in concurrently-executing code
148 |                 // API should be fixed. One option would be to change this class so
149 |                 // it can directly operate on the encoded representation.
150 |                 return try self.init(id: id, object: FXCASObject(refs: refs, data: dirBytes))
    |                                                                        `- warning: reference to captured var 'refs' in concurrently-executing code
151 |             }
152 |         } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:150:84: warning: reference to captured var 'dirBytes' in concurrently-executing code
148 |                 // API should be fixed. One option would be to change this class so
149 |                 // it can directly operate on the encoded representation.
150 |                 return try self.init(id: id, object: FXCASObject(refs: refs, data: dirBytes))
    |                                                                                    `- warning: reference to captured var 'dirBytes' in concurrently-executing code
151 |             }
152 |         } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:287:17: warning: mutation of captured var 'files' in concurrently-executing code
285 |         return FXFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
286 |             for (idx, name, result, posixDetails) in mergedEntries {
287 |                 files[idx] = .init(
    |                 `- warning: mutation of captured var 'files' in concurrently-executing code
288 |                     info: FXDirectoryEntry(
289 |                         name: name, type: .directory, size: result.aggregateSize,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:292:48: warning: reference to captured var 'files' in concurrently-executing code
290 |                         posixDetails: posixDetails), id: result.id)
291 |             }
292 |             return FXCASFileTree.create(files: files, in: db, posixDetails: self.posixDetails, ctx)
    |                                                `- warning: reference to captured var 'files' in concurrently-executing code
293 |         }
294 |     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:408:17: warning: mutation of captured var 'files' in concurrently-executing code
406 |         return FXFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
407 |             for (idx, name, result, posixDetails) in mergedEntries {
408 |                 files[idx] = .init(
    |                 `- warning: mutation of captured var 'files' in concurrently-executing code
409 |                     info: FXDirectoryEntry(
410 |                         name: name, type: .directory, size: result.aggregateSize,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:414:24: warning: reference to captured var 'files' in concurrently-executing code
412 |             }
413 |             return FXCASFileTree.create(
414 |                 files: files, in: db, posixDetails: reversedTrees.first!.posixDetails, ctx)
    |                        `- warning: reference to captured var 'files' in concurrently-executing code
415 |         }
416 |     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:234:13: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
    |                     `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 |     let db: any FXCASDatabase
201 |     let exportPathPrefix: AbsolutePath
    :
232 |         let casObjectFuture: FXFuture<FXCASObject> = db.get(item.id, ctx).flatMapThrowing {
233 |             casObject in
234 |             self.stats.downloadsInProgressObjects_.wrappingDecrement(ordering: .relaxed)
    |             `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
235 |
236 |             guard let casObject = casObject else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:250:25: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
    |                     `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 |     let db: any FXCASDatabase
201 |     let exportPathPrefix: AbsolutePath
    :
248 |                 // Unblock the current NIO thread.
249 |                 batcher.execute {
250 |                     try self.parseAndMaterialize(casObject, item).map {
    |                         `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
251 |                         Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
252 |                     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:250:25: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in an isolated closure; this is an error in the Swift 6 language mode
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
    |                     `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 |     let db: any FXCASDatabase
201 |     let exportPathPrefix: AbsolutePath
    :
248 |                 // Unblock the current NIO thread.
249 |                 batcher.execute {
250 |                     try self.parseAndMaterialize(casObject, item).map {
    |                         `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in an isolated closure; this is an error in the Swift 6 language mode
251 |                         Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
252 |                     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:257:21: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
    |                     `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 |     let db: any FXCASDatabase
201 |     let exportPathPrefix: AbsolutePath
    :
255 |         } else {
256 |             return casObjectFuture.flatMapThrowing { casObject in
257 |                 try self.parseAndMaterialize(casObject, item).map {
    |                     `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
258 |                     Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
259 |                 }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:353:14: warning: use of protocol 'FXCASDatabase' as a type must be written 'any FXCASDatabase'; this will be an error in a future Swift language mode
 351 |
 352 |     let loop: FXFuturesDispatchLoop
 353 |     let _db: FXCASDatabase
     |              `- warning: use of protocol 'FXCASDatabase' as a type must be written 'any FXCASDatabase'; this will be an error in a future Swift language mode
 354 |     let finalResultPromise: LLBCancellablePromise<FXDataID>
 355 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:319:28: warning: type 'T' does not conform to the 'Sendable' protocol
 314 |
 315 |     // Retry with lesser concurrency if we see unexpected network errors.
 316 |     private static func recursivelyDecreasingLimit<T>(
     |                                                    `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 317 |         on loop: FXFuturesDispatchLoop, limit: Int, _ body: @escaping (Int) -> FXFuture<T>
 318 |     ) -> FXFuture<T> {
 319 |         return body(limit).flatMapError { error -> FXFuture<T> in
     |                            `- warning: type 'T' does not conform to the 'Sendable' protocol
 320 |             // Check if something retryable happened.
 321 |             guard case FXCASDatabaseError.retryableNetworkError(_) = error else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:334:22: warning: type 'T' does not conform to the 'Sendable' protocol
 314 |
 315 |     // Retry with lesser concurrency if we see unexpected network errors.
 316 |     private static func recursivelyDecreasingLimit<T>(
     |                                                    `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 317 |         on loop: FXFuturesDispatchLoop, limit: Int, _ body: @escaping (Int) -> FXFuture<T>
 318 |     ) -> FXFuture<T> {
     :
 332 |             _ = loop.scheduleTask(in: .seconds(3)) {
 333 |                 recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
 334 |                     .cascade(to: promise)
     |                      `- warning: type 'T' does not conform to the 'Sendable' protocol
 335 |             }
 336 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:333:71: warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
 331 |             let promise = loop.makePromise(of: T.self)
 332 |             _ = loop.scheduleTask(in: .seconds(3)) {
 333 |                 recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
     |                                                                       |- warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
     |                                                                       `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 334 |                     .cascade(to: promise)
 335 |             }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:333:71: warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
 331 |             let promise = loop.makePromise(of: T.self)
 332 |             _ = loop.scheduleTask(in: .seconds(3)) {
 333 |                 recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
     |                                                                       |- warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
     |                                                                       `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 334 |                     .cascade(to: promise)
 335 |             }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:525:11: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 523 |                 }
 524 |             }
 525 |         }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
     |           `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 526 |             self.whenAllSucceed(nextStepFutures)
 527 |         }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:527:11: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 525 |         }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
 526 |             self.whenAllSucceed(nextStepFutures)
 527 |         }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
     |           `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 528 |             self.set(phase: .CheckIfUploaded)
 529 |             return self.recursivelyPerformSteps(
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:712:25: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 710 |
 711 |         guard finalResultPromise.isCompleted == false else {
 712 |             return loop.makeSucceededFuture([])
     |                         `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 713 |         }
 714 |
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:732:56: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 730 |         // Wait for the steps we need to wait in this phase, and then
 731 |         // advance the phase if there are no more steps to wait.
 732 |         return self.whenAllSucceed(waitInCurrentPhase).flatMap { moreStepsInCurrentPhase in
     |                                                        `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 733 |             if moreStepsInCurrentPhase.isEmpty {
 734 |                 precondition(!currentPhase.isFinalPhase)  // Avoid infinite recursion
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:33: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 735 |                 let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
 736 |                 guard nextPhase < .UploadingDirs else {
 737 |                     return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
     |                                 `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 738 |                 }
 739 |                 self.set(phase: nextPhase)
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:53: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 735 |                 let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
 736 |                 guard nextPhase < .UploadingDirs else {
 737 |                     return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
     |                                                     `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 738 |                 }
 739 |                 self.set(phase: nextPhase)
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:69: warning: capture of 'nextPhaseSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 735 |                 let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
 736 |                 guard nextPhase < .UploadingDirs else {
 737 |                     return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
     |                                                                     `- warning: capture of 'nextPhaseSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 738 |                 }
 739 |                 self.set(phase: nextPhase)
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:53: warning: reference to captured var 'finishedSteps' in concurrently-executing code
 735 |                 let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
 736 |                 guard nextPhase < .UploadingDirs else {
 737 |                     return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
     |                                                     `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
 738 |                 }
 739 |                 self.set(phase: nextPhase)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:69: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 735 |                 let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
 736 |                 guard nextPhase < .UploadingDirs else {
 737 |                     return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
     |                                                                     `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 738 |                 }
 739 |                 self.set(phase: nextPhase)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:741:65: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 739 |                 self.set(phase: nextPhase)
 740 |                 return self.recursivelyPerformSteps(
 741 |                     currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
     |                                                                 `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 742 |                 ).map {
 743 |                     finishedSteps + $0
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:743:21: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 741 |                     currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
 742 |                 ).map {
 743 |                     finishedSteps + $0
     |                     `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 744 |                 }
 745 |             } else {
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:743:21: warning: reference to captured var 'finishedSteps' in concurrently-executing code
 741 |                     currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
 742 |                 ).map {
 743 |                     finishedSteps + $0
     |                     `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
 744 |                 }
 745 |             } else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:748:37: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 746 |                 return self.recursivelyPerformSteps(
 747 |                     currentPhase: currentPhase, currentPhaseSteps: moreStepsInCurrentPhase,
 748 |                     nextPhaseSteps: nextPhaseSteps
     |                                     `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 749 |                 ).map {
 750 |                     finishedSteps + $0
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:750:21: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 748 |                     nextPhaseSteps: nextPhaseSteps
 749 |                 ).map {
 750 |                     finishedSteps + $0
     |                     `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 751 |                 }
 752 |             }
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:750:21: warning: reference to captured var 'finishedSteps' in concurrently-executing code
 748 |                     nextPhaseSteps: nextPhaseSteps
 749 |                 ).map {
 750 |                     finishedSteps + $0
     |                     `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
 751 |                 }
 752 |             }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1044:45: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1042 |                         > {
1043 |                             guard finalResultPromise.isCompleted == false else {
1044 |                                 return loop.makeSucceededFuture(NextStep.skipped)
     |                                             `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1045 |                             }
1046 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1056:45: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1054 |                                         by: size, ordering: .relaxed)
1055 |                                 }
1056 |                                 return loop.makeSucceededFuture(encodeNextStep(for: blobId))
     |                                             `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1057 |                             }
1058 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1095:51: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1093 |                             let containsFuture = self.dbContains(segm, ctx)
1094 |                             let containsLoop = containsFuture.eventLoop
1095 |                             return containsFuture.flatMap { exists -> FXFuture<NextStep> in
     |                                                   `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1096 |
1097 |                                 guard !exists else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1098:88: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1096 |
1097 |                                 guard !exists else {
1098 |                                     let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
     |                                                                                        `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1099 |                                         id in
1100 |                                         return uploadFileInfo(
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1107:53: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1105 |                                 }
1106 |
1107 |                                 return containsLoop.makeSucceededFuture(
     |                                                     `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1108 |                                     NextStep.execute(
1109 |                                         in: .UploadingFiles,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1130:61: warning: 'executeWithBackpressure(on:loop:size:default:_:)' is deprecated: This method blocks indefinitely and returns a future
1128 |                                                 // free to take our load. This ensures that we're not
1129 |                                                 // limited by CPU parallelism for network concurrency.
1130 |                                                 return self.executeWithBackpressure(
     |                                                             `- warning: 'executeWithBackpressure(on:loop:size:default:_:)' is deprecated: This method blocks indefinitely and returns a future
1131 |                                                     on: self.netQueue, loop: containsLoop,
1132 |                                                     size: slice.readableBytes, default: .skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1137:55: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1135 |                                                         refs: [], data: slice,
1136 |                                                         importSize: segm.uncompressedSize, ctx
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
     |                                                       `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1143:55: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1141 |                                                     }.map { result in
1142 |                                                         return result
1143 |                                                     }.hop(to: loop)
     |                                                       `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1144 |                                                 }
1145 |                                             }.flatMap {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1145:47: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1143 |                                                     }.hop(to: loop)
1144 |                                                 }
1145 |                                             }.flatMap {
     |                                               `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1146 |                                                 // This type of return ensures that cpuQueue does not
1147 |                                                 // wait for the netQueue operation to complete.
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1148:60: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1146 |                                                 // This type of return ensures that cpuQueue does not
1147 |                                                 // wait for the netQueue operation to complete.
1148 |                                                 $0 ?? loop.makeSucceededFuture(NextStep.skipped)
     |                                                            `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1149 |                                             }
1150 |                                             nextStepFuture.cascade(to: partialStepPromise)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1203:23: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1201 |                         throw error
1202 |
1203 |                     }.flatMap { nextSteps in
     |                       `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1204 |                         // The next steps can only be empty if we've reacting on
1205 |                         // a filesystem-related error with some of our chunks.
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1207:41: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1205 |                         // a filesystem-related error with some of our chunks.
1206 |                         guard nextSteps.isEmpty == false else {
1207 |                             return loop.makeSucceededFuture(.skipped)
     |                                         `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1208 |                         }
1209 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1254:49: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1252 |             // have been uploaded. Therefore we wait for the huge files in
1253 |             // its own state, .UploadingWait.
1254 |             return cheapNextStepFutures + [loop.makeSucceededFuture(combinePartialResultsStep)]
     |                                                 `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1255 |         }
1256 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1261:22: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1259 |             in: .EstimatingSize,
1260 |             run: {
1261 |                 loop.makeSucceededFuture(
     |                      `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1262 |                     NextStep.wait(
1263 |                         in: .CheckIfUploaded,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1080:37: warning: capture of 'encodeNextStep(for:)' with non-sendable type '(FXDataID) -> CASTreeImport.NextStep' in a '@Sendable' closure
1078 |                                     importSize: importSize, ctx
1079 |                                 ).map { id in
1080 |                                     encodeNextStep(for: id)
     |                                     |- warning: capture of 'encodeNextStep(for:)' with non-sendable type '(FXDataID) -> CASTreeImport.NextStep' in a '@Sendable' closure
     |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1081 |                                 }
1082 |                             } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1026:30: warning: concurrently-executed local function 'encodeNextStep(for:)' must be marked as '@Sendable'
1024 |                             promise: loop.makePromise(of: NextStep.self))
1025 |
1026 |                         func encodeNextStep(for id: FXDataID) -> NextStep {
     |                              `- warning: concurrently-executed local function 'encodeNextStep(for:)' must be marked as '@Sendable'
1027 |                             if isSingleChunk {
1028 |                                 return .singleFile(
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1100:48: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1098 |                                     let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
1099 |                                         id in
1100 |                                         return uploadFileInfo(
     |                                                |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
     |                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1101 |                                             blobId: id, importSize: segm.uncompressedSize)
1102 |                                     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1114 |                                                 let data: LLBFastData
1115 |
1116 |                                                 switch importObject {
     |                                                        `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1117 |                                                 case .link(let target):
1118 |                                                     data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1100:48: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1098 |                                     let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
1099 |                                         id in
1100 |                                         return uploadFileInfo(
     |                                                |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
     |                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1101 |                                             blobId: id, importSize: segm.uncompressedSize)
1102 |                                     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1040:30: warning: concurrently-executed local function 'uploadFileInfo(blobId:importSize:)' must be marked as '@Sendable'
1038 |                         // If the file has non-standard layout, upload it after we upload
1039 |                         // the binary blob.
1040 |                         func uploadFileInfo(blobId: FXDataID, importSize: Int? = nil) -> FXFuture<
     |                              `- warning: concurrently-executed local function 'uploadFileInfo(blobId:importSize:)' must be marked as '@Sendable'
1041 |                             NextStep
1042 |                         > {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1114 |                                                 let data: LLBFastData
1115 |
1116 |                                                 switch importObject {
     |                                                        `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
1117 |                                                 case .link(let target):
1118 |                                                     data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
     |                                                             |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 |                                                         }
1141 |                                                     }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1114 |                                                 let data: LLBFastData
1115 |
1116 |                                                 switch importObject {
     |                                                        `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
1117 |                                                 case .link(let target):
1118 |                                                     data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
     |                                                             |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 |                                                         }
1141 |                                                     }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1138:78: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1136 |                                                         importSize: segm.uncompressedSize, ctx
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
     |                                                                              `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
1139 |                                                             uploadFileInfo(blobId: id)
1140 |                                                         }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
     |                                                             |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 |                                                         }
1141 |                                                     }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1138:78: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1136 |                                                         importSize: segm.uncompressedSize, ctx
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
     |                                                                              `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1139 |                                                             uploadFileInfo(blobId: id)
1140 |                                                         }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
     |                                                             |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 |                                                         }
1141 |                                                     }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
     |                                                             |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 |                                                         }
1141 |                                                     }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1225:44: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1223 |                             chunkIds.count > 1
1224 |                                 ? self.options.fileChunkSize : allSegmentsUncompressedDataSize)
1225 |                         let posixDetails = importObject.posixDetails
     |                                            `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1226 |                         fileInfo.update(posixDetails: posixDetails, options: self.options)
1227 |                         do {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1308:25: warning: type 'Value' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
1301 |     }
1302 |
1303 |     private func whenAllSucceed<Value>(
     |                                 `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
1304 |         _ futures: [FXFuture<Value>], on loop: FXFuturesDispatchLoop? = nil
1305 |     ) -> FXFuture<[Value]> {
1306 |         let loop = loop ?? self.loop
1307 |         guard finalResultPromise.isCompleted == false else {
1308 |             return loop.makeSucceededFuture([])
     |                         `- warning: type 'Value' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
1309 |         }
1310 |         return FXFuture.whenAllSucceed(futures, on: loop).map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1310:25: warning: type 'Value' does not conform to the 'Sendable' protocol
1301 |     }
1302 |
1303 |     private func whenAllSucceed<Value>(
     |                                 `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
1304 |         _ futures: [FXFuture<Value>], on loop: FXFuturesDispatchLoop? = nil
1305 |     ) -> FXFuture<[Value]> {
     :
1308 |             return loop.makeSucceededFuture([])
1309 |         }
1310 |         return FXFuture.whenAllSucceed(futures, on: loop).map { result in
     |                         `- warning: type 'Value' does not conform to the 'Sendable' protocol
1311 |             guard self.finalResultPromise.isCompleted == false else {
1312 |                 return []
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1328:39: warning: type 'T' does not conform to the 'Sendable' protocol
1321 |     /// Enqueue the callback unless the stop flag is in action.
1322 |     /// If stop flag is set, return the value specified in `then`.
1323 |     private func execute<T>(
     |                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1324 |         on queue: LLBBatchingFutureOperationQueue, default stopValue: T,
1325 |         _ body: @escaping () throws -> T
1326 |     ) -> FXFuture<T> {
1327 |         guard finalResultPromise.isCompleted == false else {
1328 |             return queue.group.next().makeSucceededFuture(stopValue)
     |                                       `- warning: type 'T' does not conform to the 'Sendable' protocol
1329 |         }
1330 |         return queue.execute {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1351:25: warning: type 'T' does not conform to the 'Sendable' protocol
1343 |     /// Enqueue the callback unless the stop flag is in action.
1344 |     /// If stop flag is set, return the value specified in `then`.
1345 |     private func execute<T>(
     |                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1346 |         on queue: FXFutureOperationQueue, loop: EventLoop? = nil, size: Int = 1,
1347 |         default stopValue: T, _ body: @escaping () -> FXFuture<T>
     :
1349 |         let loop = loop ?? self.loop
1350 |         guard finalResultPromise.isCompleted == false else {
1351 |             return loop.makeSucceededFuture(stopValue)
     |                         `- warning: type 'T' does not conform to the 'Sendable' protocol
1352 |         }
1353 |         return queue.enqueue(on: loop, share: size) {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1355:29: warning: type 'T' does not conform to the 'Sendable' protocol
1343 |     /// Enqueue the callback unless the stop flag is in action.
1344 |     /// If stop flag is set, return the value specified in `then`.
1345 |     private func execute<T>(
     |                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1346 |         on queue: FXFutureOperationQueue, loop: EventLoop? = nil, size: Int = 1,
1347 |         default stopValue: T, _ body: @escaping () -> FXFuture<T>
     :
1353 |         return queue.enqueue(on: loop, share: size) {
1354 |             guard self.finalResultPromise.isCompleted == false else {
1355 |                 return loop.makeSucceededFuture(stopValue)
     |                             `- warning: type 'T' does not conform to the 'Sendable' protocol
1356 |             }
1357 |             return body().flatMapErrorThrowing { error in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1375:25: warning: type 'T' does not conform to the 'Sendable' protocol
1368 |     )
1369 |     @available(*, deprecated, message: "This method blocks indefinitely and returns a future")
1370 |     private func executeWithBackpressure<T>(
     |                                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1371 |         on queue: FXFutureOperationQueue, loop: FXFuturesDispatchLoop, size: Int = 1,
1372 |         default stopValue: T, _ body: @escaping () -> FXFuture<T>
1373 |     ) -> FXFuture<T> {
1374 |         guard finalResultPromise.isCompleted == false else {
1375 |             return loop.makeSucceededFuture(stopValue)
     |                         `- warning: type 'T' does not conform to the 'Sendable' protocol
1376 |         }
1377 |         return queue.enqueueWithBackpressure(on: loop, share: size) {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1379:29: warning: type 'T' does not conform to the 'Sendable' protocol
1368 |     )
1369 |     @available(*, deprecated, message: "This method blocks indefinitely and returns a future")
1370 |     private func executeWithBackpressure<T>(
     |                                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1371 |         on queue: FXFutureOperationQueue, loop: FXFuturesDispatchLoop, size: Int = 1,
1372 |         default stopValue: T, _ body: @escaping () -> FXFuture<T>
     :
1377 |         return queue.enqueueWithBackpressure(on: loop, share: size) {
1378 |             guard self.finalResultPromise.isCompleted == false else {
1379 |                 return loop.makeSucceededFuture(stopValue)
     |                             `- warning: type 'T' does not conform to the 'Sendable' protocol
1380 |             }
1381 |             return body().flatMapErrorThrowing { error in
[847/847] Compiling llbuild2Testing FileTreeImport.swift
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:150:72: warning: reference to captured var 'refs' in concurrently-executing code
148 |                 // API should be fixed. One option would be to change this class so
149 |                 // it can directly operate on the encoded representation.
150 |                 return try self.init(id: id, object: FXCASObject(refs: refs, data: dirBytes))
    |                                                                        `- warning: reference to captured var 'refs' in concurrently-executing code
151 |             }
152 |         } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:150:84: warning: reference to captured var 'dirBytes' in concurrently-executing code
148 |                 // API should be fixed. One option would be to change this class so
149 |                 // it can directly operate on the encoded representation.
150 |                 return try self.init(id: id, object: FXCASObject(refs: refs, data: dirBytes))
    |                                                                                    `- warning: reference to captured var 'dirBytes' in concurrently-executing code
151 |             }
152 |         } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:287:17: warning: mutation of captured var 'files' in concurrently-executing code
285 |         return FXFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
286 |             for (idx, name, result, posixDetails) in mergedEntries {
287 |                 files[idx] = .init(
    |                 `- warning: mutation of captured var 'files' in concurrently-executing code
288 |                     info: FXDirectoryEntry(
289 |                         name: name, type: .directory, size: result.aggregateSize,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:292:48: warning: reference to captured var 'files' in concurrently-executing code
290 |                         posixDetails: posixDetails), id: result.id)
291 |             }
292 |             return FXCASFileTree.create(files: files, in: db, posixDetails: self.posixDetails, ctx)
    |                                                `- warning: reference to captured var 'files' in concurrently-executing code
293 |         }
294 |     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:408:17: warning: mutation of captured var 'files' in concurrently-executing code
406 |         return FXFuture.whenAllSucceed(futures, on: db.group.next()).flatMap { mergedEntries in
407 |             for (idx, name, result, posixDetails) in mergedEntries {
408 |                 files[idx] = .init(
    |                 `- warning: mutation of captured var 'files' in concurrently-executing code
409 |                     info: FXDirectoryEntry(
410 |                         name: name, type: .directory, size: result.aggregateSize,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTree.swift:414:24: warning: reference to captured var 'files' in concurrently-executing code
412 |             }
413 |             return FXCASFileTree.create(
414 |                 files: files, in: db, posixDetails: reversedTrees.first!.posixDetails, ctx)
    |                        `- warning: reference to captured var 'files' in concurrently-executing code
415 |         }
416 |     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:234:13: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
    |                     `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 |     let db: any FXCASDatabase
201 |     let exportPathPrefix: AbsolutePath
    :
232 |         let casObjectFuture: FXFuture<FXCASObject> = db.get(item.id, ctx).flatMapThrowing {
233 |             casObject in
234 |             self.stats.downloadsInProgressObjects_.wrappingDecrement(ordering: .relaxed)
    |             `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
235 |
236 |             guard let casObject = casObject else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:250:25: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
    |                     `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 |     let db: any FXCASDatabase
201 |     let exportPathPrefix: AbsolutePath
    :
248 |                 // Unblock the current NIO thread.
249 |                 batcher.execute {
250 |                     try self.parseAndMaterialize(casObject, item).map {
    |                         `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
251 |                         Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
252 |                     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:250:25: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in an isolated closure; this is an error in the Swift 6 language mode
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
    |                     `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 |     let db: any FXCASDatabase
201 |     let exportPathPrefix: AbsolutePath
    :
248 |                 // Unblock the current NIO thread.
249 |                 batcher.execute {
250 |                     try self.parseAndMaterialize(casObject, item).map {
    |                         `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in an isolated closure; this is an error in the Swift 6 language mode
251 |                         Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
252 |                     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeExport.swift:257:21: warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
197 | }
198 |
199 | private final class CASFileTreeWalkerDelegate: RetrieveChildrenProtocol {
    |                     `- note: class 'CASFileTreeWalkerDelegate' does not conform to the 'Sendable' protocol
200 |     let db: any FXCASDatabase
201 |     let exportPathPrefix: AbsolutePath
    :
255 |         } else {
256 |             return casObjectFuture.flatMapThrowing { casObject in
257 |                 try self.parseAndMaterialize(casObject, item).map {
    |                     `- warning: capture of 'self' with non-sendable type 'CASFileTreeWalkerDelegate' in a '@Sendable' closure
258 |                     Item(id: $0.id, exportPath: $0.path, kindHint: $0.kind)
259 |                 }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:353:14: warning: use of protocol 'FXCASDatabase' as a type must be written 'any FXCASDatabase'; this will be an error in a future Swift language mode
 351 |
 352 |     let loop: FXFuturesDispatchLoop
 353 |     let _db: FXCASDatabase
     |              `- warning: use of protocol 'FXCASDatabase' as a type must be written 'any FXCASDatabase'; this will be an error in a future Swift language mode
 354 |     let finalResultPromise: LLBCancellablePromise<FXDataID>
 355 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:319:28: warning: type 'T' does not conform to the 'Sendable' protocol
 314 |
 315 |     // Retry with lesser concurrency if we see unexpected network errors.
 316 |     private static func recursivelyDecreasingLimit<T>(
     |                                                    `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 317 |         on loop: FXFuturesDispatchLoop, limit: Int, _ body: @escaping (Int) -> FXFuture<T>
 318 |     ) -> FXFuture<T> {
 319 |         return body(limit).flatMapError { error -> FXFuture<T> in
     |                            `- warning: type 'T' does not conform to the 'Sendable' protocol
 320 |             // Check if something retryable happened.
 321 |             guard case FXCASDatabaseError.retryableNetworkError(_) = error else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:334:22: warning: type 'T' does not conform to the 'Sendable' protocol
 314 |
 315 |     // Retry with lesser concurrency if we see unexpected network errors.
 316 |     private static func recursivelyDecreasingLimit<T>(
     |                                                    `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 317 |         on loop: FXFuturesDispatchLoop, limit: Int, _ body: @escaping (Int) -> FXFuture<T>
 318 |     ) -> FXFuture<T> {
     :
 332 |             _ = loop.scheduleTask(in: .seconds(3)) {
 333 |                 recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
 334 |                     .cascade(to: promise)
     |                      `- warning: type 'T' does not conform to the 'Sendable' protocol
 335 |             }
 336 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:333:71: warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
 331 |             let promise = loop.makePromise(of: T.self)
 332 |             _ = loop.scheduleTask(in: .seconds(3)) {
 333 |                 recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
     |                                                                       |- warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
     |                                                                       `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 334 |                     .cascade(to: promise)
 335 |             }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:333:71: warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
 331 |             let promise = loop.makePromise(of: T.self)
 332 |             _ = loop.scheduleTask(in: .seconds(3)) {
 333 |                 recursivelyDecreasingLimit(on: loop, limit: newLimit, body)
     |                                                                       |- warning: capture of 'body' with non-sendable type '(Int) -> FXFuture<T>' (aka '(Int) -> EventLoopFuture<T>') in a '@Sendable' closure
     |                                                                       `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 334 |                     .cascade(to: promise)
 335 |             }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:525:11: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 523 |                 }
 524 |             }
 525 |         }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
     |           `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 526 |             self.whenAllSucceed(nextStepFutures)
 527 |         }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:527:11: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 525 |         }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
 526 |             self.whenAllSucceed(nextStepFutures)
 527 |         }.flatMap { nextStepFutures -> FXFuture<[NextStep]> in
     |           `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 528 |             self.set(phase: .CheckIfUploaded)
 529 |             return self.recursivelyPerformSteps(
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:712:25: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 710 |
 711 |         guard finalResultPromise.isCompleted == false else {
 712 |             return loop.makeSucceededFuture([])
     |                         `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 713 |         }
 714 |
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:732:56: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 730 |         // Wait for the steps we need to wait in this phase, and then
 731 |         // advance the phase if there are no more steps to wait.
 732 |         return self.whenAllSucceed(waitInCurrentPhase).flatMap { moreStepsInCurrentPhase in
     |                                                        `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 733 |             if moreStepsInCurrentPhase.isEmpty {
 734 |                 precondition(!currentPhase.isFinalPhase)  // Avoid infinite recursion
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:33: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 735 |                 let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
 736 |                 guard nextPhase < .UploadingDirs else {
 737 |                     return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
     |                                 `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
 738 |                 }
 739 |                 self.set(phase: nextPhase)
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:53: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 735 |                 let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
 736 |                 guard nextPhase < .UploadingDirs else {
 737 |                     return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
     |                                                     `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 738 |                 }
 739 |                 self.set(phase: nextPhase)
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:69: warning: capture of 'nextPhaseSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 735 |                 let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
 736 |                 guard nextPhase < .UploadingDirs else {
 737 |                     return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
     |                                                                     `- warning: capture of 'nextPhaseSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 738 |                 }
 739 |                 self.set(phase: nextPhase)
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:53: warning: reference to captured var 'finishedSteps' in concurrently-executing code
 735 |                 let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
 736 |                 guard nextPhase < .UploadingDirs else {
 737 |                     return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
     |                                                     `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
 738 |                 }
 739 |                 self.set(phase: nextPhase)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:737:69: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 735 |                 let nextPhase = FXCASFileTree.ImportPhase(rawValue: currentPhase.rawValue + 1)!
 736 |                 guard nextPhase < .UploadingDirs else {
 737 |                     return loop.makeSucceededFuture(finishedSteps + nextPhaseSteps)
     |                                                                     `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 738 |                 }
 739 |                 self.set(phase: nextPhase)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:741:65: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 739 |                 self.set(phase: nextPhase)
 740 |                 return self.recursivelyPerformSteps(
 741 |                     currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
     |                                                                 `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 742 |                 ).map {
 743 |                     finishedSteps + $0
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:743:21: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 741 |                     currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
 742 |                 ).map {
 743 |                     finishedSteps + $0
     |                     `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 744 |                 }
 745 |             } else {
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:743:21: warning: reference to captured var 'finishedSteps' in concurrently-executing code
 741 |                     currentPhase: nextPhase, currentPhaseSteps: nextPhaseSteps
 742 |                 ).map {
 743 |                     finishedSteps + $0
     |                     `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
 744 |                 }
 745 |             } else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:748:37: warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 746 |                 return self.recursivelyPerformSteps(
 747 |                     currentPhase: currentPhase, currentPhaseSteps: moreStepsInCurrentPhase,
 748 |                     nextPhaseSteps: nextPhaseSteps
     |                                     `- warning: reference to captured var 'nextPhaseSteps' in concurrently-executing code
 749 |                 ).map {
 750 |                     finishedSteps + $0
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:750:21: warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 748 |                     nextPhaseSteps: nextPhaseSteps
 749 |                 ).map {
 750 |                     finishedSteps + $0
     |                     `- warning: capture of 'finishedSteps' with non-sendable type '[CASTreeImport.NextStep]' in a '@Sendable' closure
 751 |                 }
 752 |             }
     :
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:750:21: warning: reference to captured var 'finishedSteps' in concurrently-executing code
 748 |                     nextPhaseSteps: nextPhaseSteps
 749 |                 ).map {
 750 |                     finishedSteps + $0
     |                     `- warning: reference to captured var 'finishedSteps' in concurrently-executing code
 751 |                 }
 752 |             }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1044:45: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1042 |                         > {
1043 |                             guard finalResultPromise.isCompleted == false else {
1044 |                                 return loop.makeSucceededFuture(NextStep.skipped)
     |                                             `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1045 |                             }
1046 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1056:45: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1054 |                                         by: size, ordering: .relaxed)
1055 |                                 }
1056 |                                 return loop.makeSucceededFuture(encodeNextStep(for: blobId))
     |                                             `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1057 |                             }
1058 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1095:51: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1093 |                             let containsFuture = self.dbContains(segm, ctx)
1094 |                             let containsLoop = containsFuture.eventLoop
1095 |                             return containsFuture.flatMap { exists -> FXFuture<NextStep> in
     |                                                   `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1096 |
1097 |                                 guard !exists else {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1098:88: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1096 |
1097 |                                 guard !exists else {
1098 |                                     let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
     |                                                                                        `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1099 |                                         id in
1100 |                                         return uploadFileInfo(
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1107:53: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1105 |                                 }
1106 |
1107 |                                 return containsLoop.makeSucceededFuture(
     |                                                     `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1108 |                                     NextStep.execute(
1109 |                                         in: .UploadingFiles,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1130:61: warning: 'executeWithBackpressure(on:loop:size:default:_:)' is deprecated: This method blocks indefinitely and returns a future
1128 |                                                 // free to take our load. This ensures that we're not
1129 |                                                 // limited by CPU parallelism for network concurrency.
1130 |                                                 return self.executeWithBackpressure(
     |                                                             `- warning: 'executeWithBackpressure(on:loop:size:default:_:)' is deprecated: This method blocks indefinitely and returns a future
1131 |                                                     on: self.netQueue, loop: containsLoop,
1132 |                                                     size: slice.readableBytes, default: .skipped
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1137:55: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1135 |                                                         refs: [], data: slice,
1136 |                                                         importSize: segm.uncompressedSize, ctx
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
     |                                                       `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1143:55: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1141 |                                                     }.map { result in
1142 |                                                         return result
1143 |                                                     }.hop(to: loop)
     |                                                       `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1144 |                                                 }
1145 |                                             }.flatMap {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1145:47: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1143 |                                                     }.hop(to: loop)
1144 |                                                 }
1145 |                                             }.flatMap {
     |                                               `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1146 |                                                 // This type of return ensures that cpuQueue does not
1147 |                                                 // wait for the netQueue operation to complete.
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1148:60: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1146 |                                                 // This type of return ensures that cpuQueue does not
1147 |                                                 // wait for the netQueue operation to complete.
1148 |                                                 $0 ?? loop.makeSucceededFuture(NextStep.skipped)
     |                                                            `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1149 |                                             }
1150 |                                             nextStepFuture.cascade(to: partialStepPromise)
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1203:23: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1201 |                         throw error
1202 |
1203 |                     }.flatMap { nextSteps in
     |                       `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1204 |                         // The next steps can only be empty if we've reacting on
1205 |                         // a filesystem-related error with some of our chunks.
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1207:41: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1205 |                         // a filesystem-related error with some of our chunks.
1206 |                         guard nextSteps.isEmpty == false else {
1207 |                             return loop.makeSucceededFuture(.skipped)
     |                                         `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1208 |                         }
1209 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1254:49: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1252 |             // have been uploaded. Therefore we wait for the huge files in
1253 |             // its own state, .UploadingWait.
1254 |             return cheapNextStepFutures + [loop.makeSucceededFuture(combinePartialResultsStep)]
     |                                                 `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1255 |         }
1256 |
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1261:22: warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
 805 |     }
 806 |
 807 |     indirect enum NextStep {
     |                   `- note: consider making enum 'NextStep' conform to the 'Sendable' protocol
 808 |         // Final step in a sequence: stop stepping through.
 809 |         case skipped
     :
1259 |             in: .EstimatingSize,
1260 |             run: {
1261 |                 loop.makeSucceededFuture(
     |                      `- warning: type 'CASTreeImport.NextStep' does not conform to the 'Sendable' protocol
1262 |                     NextStep.wait(
1263 |                         in: .CheckIfUploaded,
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1080:37: warning: capture of 'encodeNextStep(for:)' with non-sendable type '(FXDataID) -> CASTreeImport.NextStep' in a '@Sendable' closure
1078 |                                     importSize: importSize, ctx
1079 |                                 ).map { id in
1080 |                                     encodeNextStep(for: id)
     |                                     |- warning: capture of 'encodeNextStep(for:)' with non-sendable type '(FXDataID) -> CASTreeImport.NextStep' in a '@Sendable' closure
     |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1081 |                                 }
1082 |                             } catch {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1026:30: warning: concurrently-executed local function 'encodeNextStep(for:)' must be marked as '@Sendable'
1024 |                             promise: loop.makePromise(of: NextStep.self))
1025 |
1026 |                         func encodeNextStep(for id: FXDataID) -> NextStep {
     |                              `- warning: concurrently-executed local function 'encodeNextStep(for:)' must be marked as '@Sendable'
1027 |                             if isSingleChunk {
1028 |                                 return .singleFile(
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1100:48: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1098 |                                     let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
1099 |                                         id in
1100 |                                         return uploadFileInfo(
     |                                                |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
     |                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1101 |                                             blobId: id, importSize: segm.uncompressedSize)
1102 |                                     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1114 |                                                 let data: LLBFastData
1115 |
1116 |                                                 switch importObject {
     |                                                        `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1117 |                                                 case .link(let target):
1118 |                                                     data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1100:48: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1098 |                                     let existingIdFuture: FXFuture<NextStep> = segm.id.flatMap {
1099 |                                         id in
1100 |                                         return uploadFileInfo(
     |                                                |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
     |                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1101 |                                             blobId: id, importSize: segm.uncompressedSize)
1102 |                                     }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1040:30: warning: concurrently-executed local function 'uploadFileInfo(blobId:importSize:)' must be marked as '@Sendable'
1038 |                         // If the file has non-standard layout, upload it after we upload
1039 |                         // the binary blob.
1040 |                         func uploadFileInfo(blobId: FXDataID, importSize: Int? = nil) -> FXFuture<
     |                              `- warning: concurrently-executed local function 'uploadFileInfo(blobId:importSize:)' must be marked as '@Sendable'
1041 |                             NextStep
1042 |                         > {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1114 |                                                 let data: LLBFastData
1115 |
1116 |                                                 switch importObject {
     |                                                        `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
1117 |                                                 case .link(let target):
1118 |                                                     data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
     |                                                             |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 |                                                         }
1141 |                                                     }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1116:56: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1114 |                                                 let data: LLBFastData
1115 |
1116 |                                                 switch importObject {
     |                                                        `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
1117 |                                                 case .link(let target):
1118 |                                                     data = target
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
     |                                                             |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 |                                                         }
1141 |                                                     }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1138:78: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1136 |                                                         importSize: segm.uncompressedSize, ctx
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
     |                                                                              `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in an isolated closure; this is an error in the Swift 6 language mode
1139 |                                                             uploadFileInfo(blobId: id)
1140 |                                                         }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
     |                                                             |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 |                                                         }
1141 |                                                     }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1138:78: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1136 |                                                         importSize: segm.uncompressedSize, ctx
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
     |                                                                              `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1139 |                                                             uploadFileInfo(blobId: id)
1140 |                                                         }
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
     |                                                             |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in a '@Sendable' closure
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 |                                                         }
1141 |                                                     }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1139:61: warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
1137 |                                                     ).flatMap { id -> FXFuture<NextStep> in
1138 |                                                         withExtendedLifetime(importObject) {  // for mmap
1139 |                                                             uploadFileInfo(blobId: id)
     |                                                             |- warning: capture of 'uploadFileInfo(blobId:importSize:)' with non-sendable type '(FXDataID, Int?) -> FXFuture<CASTreeImport.NextStep>' (aka '(FXDataID, Optional<Int>) -> EventLoopFuture<CASTreeImport.NextStep>') in an isolated closure; this is an error in the Swift 6 language mode
     |                                                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1140 |                                                         }
1141 |                                                     }.map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1225:44: warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
 912 |         let type: FXFileType
 913 |         let allSegmentsUncompressedDataSize: Int
 914 |         enum ObjectToImport {
     |              `- note: consider making enum 'ObjectToImport' conform to the 'Sendable' protocol
 915 |             case link(target: LLBFastData)
 916 |             case file(file: FileSegmenter, posixDetails: FXPosixFileDetails)
     :
1223 |                             chunkIds.count > 1
1224 |                                 ? self.options.fileChunkSize : allSegmentsUncompressedDataSize)
1225 |                         let posixDetails = importObject.posixDetails
     |                                            `- warning: capture of 'importObject' with non-sendable type 'ObjectToImport' in a '@Sendable' closure
1226 |                         fileInfo.update(posixDetails: posixDetails, options: self.options)
1227 |                         do {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1308:25: warning: type 'Value' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
1301 |     }
1302 |
1303 |     private func whenAllSucceed<Value>(
     |                                 `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
1304 |         _ futures: [FXFuture<Value>], on loop: FXFuturesDispatchLoop? = nil
1305 |     ) -> FXFuture<[Value]> {
1306 |         let loop = loop ?? self.loop
1307 |         guard finalResultPromise.isCompleted == false else {
1308 |             return loop.makeSucceededFuture([])
     |                         `- warning: type 'Value' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
1309 |         }
1310 |         return FXFuture.whenAllSucceed(futures, on: loop).map { result in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1310:25: warning: type 'Value' does not conform to the 'Sendable' protocol
1301 |     }
1302 |
1303 |     private func whenAllSucceed<Value>(
     |                                 `- note: consider making generic parameter 'Value' conform to the 'Sendable' protocol
1304 |         _ futures: [FXFuture<Value>], on loop: FXFuturesDispatchLoop? = nil
1305 |     ) -> FXFuture<[Value]> {
     :
1308 |             return loop.makeSucceededFuture([])
1309 |         }
1310 |         return FXFuture.whenAllSucceed(futures, on: loop).map { result in
     |                         `- warning: type 'Value' does not conform to the 'Sendable' protocol
1311 |             guard self.finalResultPromise.isCompleted == false else {
1312 |                 return []
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1328:39: warning: type 'T' does not conform to the 'Sendable' protocol
1321 |     /// Enqueue the callback unless the stop flag is in action.
1322 |     /// If stop flag is set, return the value specified in `then`.
1323 |     private func execute<T>(
     |                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1324 |         on queue: LLBBatchingFutureOperationQueue, default stopValue: T,
1325 |         _ body: @escaping () throws -> T
1326 |     ) -> FXFuture<T> {
1327 |         guard finalResultPromise.isCompleted == false else {
1328 |             return queue.group.next().makeSucceededFuture(stopValue)
     |                                       `- warning: type 'T' does not conform to the 'Sendable' protocol
1329 |         }
1330 |         return queue.execute {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1351:25: warning: type 'T' does not conform to the 'Sendable' protocol
1343 |     /// Enqueue the callback unless the stop flag is in action.
1344 |     /// If stop flag is set, return the value specified in `then`.
1345 |     private func execute<T>(
     |                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1346 |         on queue: FXFutureOperationQueue, loop: EventLoop? = nil, size: Int = 1,
1347 |         default stopValue: T, _ body: @escaping () -> FXFuture<T>
     :
1349 |         let loop = loop ?? self.loop
1350 |         guard finalResultPromise.isCompleted == false else {
1351 |             return loop.makeSucceededFuture(stopValue)
     |                         `- warning: type 'T' does not conform to the 'Sendable' protocol
1352 |         }
1353 |         return queue.enqueue(on: loop, share: size) {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1355:29: warning: type 'T' does not conform to the 'Sendable' protocol
1343 |     /// Enqueue the callback unless the stop flag is in action.
1344 |     /// If stop flag is set, return the value specified in `then`.
1345 |     private func execute<T>(
     |                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1346 |         on queue: FXFutureOperationQueue, loop: EventLoop? = nil, size: Int = 1,
1347 |         default stopValue: T, _ body: @escaping () -> FXFuture<T>
     :
1353 |         return queue.enqueue(on: loop, share: size) {
1354 |             guard self.finalResultPromise.isCompleted == false else {
1355 |                 return loop.makeSucceededFuture(stopValue)
     |                             `- warning: type 'T' does not conform to the 'Sendable' protocol
1356 |             }
1357 |             return body().flatMapErrorThrowing { error in
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1375:25: warning: type 'T' does not conform to the 'Sendable' protocol
1368 |     )
1369 |     @available(*, deprecated, message: "This method blocks indefinitely and returns a future")
1370 |     private func executeWithBackpressure<T>(
     |                                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1371 |         on queue: FXFutureOperationQueue, loop: FXFuturesDispatchLoop, size: Int = 1,
1372 |         default stopValue: T, _ body: @escaping () -> FXFuture<T>
1373 |     ) -> FXFuture<T> {
1374 |         guard finalResultPromise.isCompleted == false else {
1375 |             return loop.makeSucceededFuture(stopValue)
     |                         `- warning: type 'T' does not conform to the 'Sendable' protocol
1376 |         }
1377 |         return queue.enqueueWithBackpressure(on: loop, share: size) {
/host/spi-builder-workspace/Sources/llbuild2Testing/CASFileTree/FileTreeImport.swift:1379:29: warning: type 'T' does not conform to the 'Sendable' protocol
1368 |     )
1369 |     @available(*, deprecated, message: "This method blocks indefinitely and returns a future")
1370 |     private func executeWithBackpressure<T>(
     |                                          `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
1371 |         on queue: FXFutureOperationQueue, loop: FXFuturesDispatchLoop, size: Int = 1,
1372 |         default stopValue: T, _ body: @escaping () -> FXFuture<T>
     :
1377 |         return queue.enqueueWithBackpressure(on: loop, share: size) {
1378 |             guard self.finalResultPromise.isCompleted == false else {
1379 |                 return loop.makeSucceededFuture(stopValue)
     |                             `- warning: type 'T' does not conform to the 'Sendable' protocol
1380 |             }
1381 |             return body().flatMapErrorThrowing { error in
Build complete! (170.09s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-atomics",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.2.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-atomics.git"
    },
    {
      "identity" : "swift-async-algorithms",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.4",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-async-algorithms.git"
    },
    {
      "identity" : "swift-collections",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-collections.git"
    },
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.4.2",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log.git"
    },
    {
      "identity" : "swift-nio",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.80.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-nio.git"
    },
    {
      "identity" : "swift-protobuf",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.17.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-protobuf.git"
    },
    {
      "identity" : "swift-system",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.1.1",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-system.git"
    },
    {
      "identity" : "swift-tools-support-async",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.17.0",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-tools-support-async.git"
    },
    {
      "identity" : "swift-tools-support-core",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.2.7",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-tools-support-core.git"
    }
  ],
  "manifest_display_name" : "llbuild2",
  "name" : "llbuild2",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "llbuild2",
      "targets" : [
        "llbuild2"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "llbuild2fx",
      "targets" : [
        "llbuild2fx"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "llbuild2Testing",
      "targets" : [
        "llbuild2Testing"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "llbuild2fxTests",
      "module_type" : "SwiftTarget",
      "name" : "llbuild2fxTests",
      "path" : "Tests/llbuild2fxTests",
      "sources" : [
        "AdditionalCoverageTests.swift",
        "CommandLineArgsCoderTests.swift",
        "DeadlineTests.swift",
        "EngineDelegateTests.swift",
        "EngineTests.swift",
        "FunctionCacheTests.swift",
        "KeyDependencyGraphTests.swift",
        "KeyTests.swift",
        "ResourcesTests.swift",
        "SpawnProcessTests.swift",
        "TreeMaterializationTests.swift",
        "VersioningTests.swift"
      ],
      "target_dependencies" : [
        "llbuild2fx",
        "llbuild2Testing"
      ],
      "type" : "test"
    },
    {
      "c99name" : "llbuild2fx",
      "module_type" : "SwiftTarget",
      "name" : "llbuild2fx",
      "path" : "Sources/llbuild2fx",
      "product_dependencies" : [
        "SwiftProtobuf",
        "Logging",
        "AsyncAlgorithms",
        "_NIOFileSystem"
      ],
      "product_memberships" : [
        "llbuild2",
        "llbuild2fx",
        "llbuild2Testing"
      ],
      "sources" : [
        "Action.swift",
        "ActionCache/FileBackedFunctionCache.swift",
        "ActionCache/InMemoryFunctionCache.swift",
        "ActionInterface.swift",
        "CASTree.swift",
        "Coding.swift",
        "CommandLineArgsCoder.swift",
        "Deadline.swift",
        "Diagnostics.swift",
        "Engine.swift",
        "EngineDelegate.swift",
        "Errors.swift",
        "Executor.swift",
        "FunctionCache.swift",
        "FunctionInterface.swift",
        "Generated/EngineProtocol/any_serializable.pb.swift",
        "Key.swift",
        "KeyConfiguration.swift",
        "KeyDependencyGraph.swift",
        "KeyOverride.swift",
        "LocalExecutor.swift",
        "NullExecutor.swift",
        "Resources.swift",
        "Reëxport.swift",
        "Ruleset.swift",
        "Service.swift",
        "SortedSet.swift",
        "SpawnProcess.swift",
        "Stats.swift",
        "Support/AnySerializable.swift",
        "Support/CommonCodables.swift",
        "Support/Logging.swift",
        "Support/Protobuf+Extensions.swift",
        "TaskCancellationRegistry.swift",
        "TreeMaterialization.swift",
        "Value.swift",
        "Versioning.swift",
        "WrappedDataID.swift"
      ],
      "target_dependencies" : [
        "FXCore",
        "FXAsyncSupport"
      ],
      "type" : "library"
    },
    {
      "c99name" : "llbuild2TestingTests",
      "module_type" : "SwiftTarget",
      "name" : "llbuild2TestingTests",
      "path" : "Tests/llbuild2TestingTests",
      "sources" : [
        "BufferedStreamWriterTests.swift",
        "CASBlobTests.swift",
        "FileTreeImportExportTests.swift",
        "FileTreeTests.swift",
        "LinkedListStreamTests.swift"
      ],
      "target_dependencies" : [
        "llbuild2Testing",
        "FXAsyncSupport"
      ],
      "type" : "test"
    },
    {
      "c99name" : "llbuild2Testing",
      "module_type" : "SwiftTarget",
      "name" : "llbuild2Testing",
      "path" : "Sources/llbuild2Testing",
      "product_memberships" : [
        "llbuild2Testing"
      ],
      "sources" : [
        "CASFileTree/BinarySearch.swift",
        "CASFileTree/CASBlob.swift",
        "CASFileTree/CASFSClient.swift",
        "CASFileTree/CASFSNode.swift",
        "CASFileTree/ConcurrentFileTreeWalker.swift",
        "CASFileTree/Context.swift",
        "CASFileTree/DeclFileTree.swift",
        "CASFileTree/DirectoryEntry.swift",
        "CASFileTree/Errors.swift",
        "CASFileTree/FileInfo.swift",
        "CASFileTree/FileTree.swift",
        "CASFileTree/FileTreeExport.swift",
        "CASFileTree/FileTreeImport.swift",
        "CASFileTree/FilesystemObject.swift",
        "CASFileTree/Generated/CASFileTreeProtocol/file_tree.pb.swift",
        "CASFileTree/Internal/ConcurrentFilesystemScanner.swift",
        "CASFileTree/Internal/FileSegmenter.swift",
        "CASFileTree/Internal/FileTreeParser.swift",
        "CASFileTree/TSCCASFileSystem.swift",
        "CASUtilities/BufferedStreamWriter.swift",
        "CASUtilities/LinkedListStream.swift",
        "CASUtilities/StreamReader.swift",
        "FXKeyTestOverride.swift",
        "FXLocalCASTreeService.swift",
        "FXTestingEngine.swift"
      ],
      "target_dependencies" : [
        "llbuild2fx",
        "FXAsyncSupport"
      ],
      "type" : "library"
    },
    {
      "c99name" : "llbuild2",
      "module_type" : "SwiftTarget",
      "name" : "llbuild2",
      "path" : "Sources/llbuild2",
      "product_memberships" : [
        "llbuild2"
      ],
      "sources" : [
        "Reexport.swift"
      ],
      "target_dependencies" : [
        "llbuild2fx"
      ],
      "type" : "library"
    },
    {
      "c99name" : "FXInteropTests",
      "module_type" : "SwiftTarget",
      "name" : "FXInteropTests",
      "path" : "Tests/FXInteropTests",
      "product_dependencies" : [
        "SwiftToolsSupportCAS"
      ],
      "sources" : [
        "TSFInteropTests.swift"
      ],
      "target_dependencies" : [
        "llbuild2fx",
        "llbuild2Testing"
      ],
      "type" : "test"
    },
    {
      "c99name" : "FXExampleRulesetTests",
      "module_type" : "SwiftTarget",
      "name" : "FXExampleRulesetTests",
      "path" : "Tests/FXExampleRulesetTests",
      "sources" : [
        "FXExampleRulesetIsolationTests.swift",
        "FXExampleRulesetTests.swift"
      ],
      "target_dependencies" : [
        "FXExampleRuleset",
        "llbuild2Testing"
      ],
      "type" : "test"
    },
    {
      "c99name" : "FXExampleRuleset",
      "module_type" : "SwiftTarget",
      "name" : "FXExampleRuleset",
      "path" : "Sources/FXExampleRuleset",
      "sources" : [
        "ExampleAction.swift",
        "ExampleKeys.swift",
        "ExampleResource.swift",
        "ExampleRulesetPackage.swift",
        "ExampleValues.swift"
      ],
      "target_dependencies" : [
        "llbuild2fx"
      ],
      "type" : "library"
    },
    {
      "c99name" : "FXCoreTests",
      "module_type" : "SwiftTarget",
      "name" : "FXCoreTests",
      "path" : "Tests/FXCoreTests",
      "sources" : [
        "CASObjectTests.swift",
        "DataIDTests.swift",
        "InMemoryCASDatabaseTests.swift"
      ],
      "target_dependencies" : [
        "FXCore",
        "FXAsyncSupport"
      ],
      "type" : "test"
    },
    {
      "c99name" : "FXCore",
      "module_type" : "SwiftTarget",
      "name" : "FXCore",
      "path" : "Sources/FXCore",
      "product_dependencies" : [
        "NIOCore",
        "NIOFoundationCompat",
        "SwiftProtobuf",
        "SwiftToolsSupport-auto"
      ],
      "product_memberships" : [
        "llbuild2",
        "llbuild2fx",
        "llbuild2Testing"
      ],
      "sources" : [
        "CAS/CASDatabaseAdapter.swift",
        "CAS/DataID.swift",
        "CAS/DataIDProtocol.swift",
        "CAS/Database.swift",
        "CAS/Generated/CASProtocol/cas_object.pb.swift",
        "CAS/Generated/CASProtocol/data_id.pb.swift",
        "CAS/Object.swift",
        "CAS/ObjectProtocol.swift",
        "CAS/TypedDatabase.swift",
        "Futures/NIOAliases.swift",
        "Utility/ByteBuffer.swift",
        "Utility/Serializable.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "FXCProcessSpawnSync",
      "module_type" : "ClangTarget",
      "name" : "FXCProcessSpawnSync",
      "path" : "Sources/FXCProcessSpawnSync",
      "product_memberships" : [
        "llbuild2",
        "llbuild2fx",
        "llbuild2Testing"
      ],
      "sources" : [
        "spawner.c"
      ],
      "type" : "library"
    },
    {
      "c99name" : "FXCBLAKE3",
      "module_type" : "ClangTarget",
      "name" : "FXCBLAKE3",
      "path" : "Sources/FXCBLAKE3",
      "product_memberships" : [
        "llbuild2",
        "llbuild2fx",
        "llbuild2Testing"
      ],
      "sources" : [
        "blake3_all.c",
        "blake3_simd_avx2.c",
        "blake3_simd_avx512.c",
        "blake3_simd_sse41.c"
      ],
      "type" : "library"
    },
    {
      "c99name" : "FXAsyncSupportTests",
      "module_type" : "SwiftTarget",
      "name" : "FXAsyncSupportTests",
      "path" : "Tests/FXAsyncSupportTests",
      "product_dependencies" : [
        "NIO",
        "NIOConcurrencyHelpers",
        "Atomics",
        "Logging",
        "AsyncAlgorithms"
      ],
      "sources" : [
        "AdditionalCoverageTests.swift",
        "AsyncByteBufferLineSequenceTests.swift",
        "BatchingFutureOperationQueue.swift",
        "CancellableFutureTests.swift",
        "CancellablePromiseTests.swift",
        "CancellerTests.swift",
        "EventualResultsCacheTests.swift",
        "FutureDeduplicatorTests.swift",
        "FutureOperationQueueTests.swift",
        "Helpers+LogRecorderHandler.swift",
        "IntegrationTests.swift",
        "OrderManagerTests.swift"
      ],
      "target_dependencies" : [
        "FXAsyncSupport"
      ],
      "type" : "test"
    },
    {
      "c99name" : "FXAsyncSupport",
      "module_type" : "SwiftTarget",
      "name" : "FXAsyncSupport",
      "path" : "Sources/FXAsyncSupport",
      "product_dependencies" : [
        "Atomics",
        "NIO",
        "NIOCore",
        "NIOConcurrencyHelpers",
        "NIOPosix",
        "NIOFoundationCompat",
        "SwiftProtobuf",
        "SystemPackage",
        "SwiftToolsSupport-auto",
        "Logging",
        "DequeModule",
        "AsyncAlgorithms"
      ],
      "product_memberships" : [
        "llbuild2",
        "llbuild2fx",
        "llbuild2Testing"
      ],
      "sources" : [
        "AsyncProcess/ChunkSequence.swift",
        "AsyncProcess/EOFSequence.swift",
        "AsyncProcess/FileContentStream.swift",
        "AsyncProcess/NIOAsyncPipeWriter.swift",
        "AsyncProcess/ProcessExecutor+Convenience.swift",
        "AsyncProcess/ProcessExecutor.swift",
        "AsyncProcess/ProcessExit.swift",
        "AsyncProcess/ProcessSpawner.swift",
        "AsyncProcess/StructuredConcurrencyHelpers.swift",
        "CAS/Blake3DataID.swift",
        "CAS/DatabaseSpec.swift",
        "CAS/InMemoryCASDatabase.swift",
        "Futures/BatchingFutureOperationQueue.swift",
        "Futures/CancellableFuture.swift",
        "Futures/CancellablePromise.swift",
        "Futures/Canceller.swift",
        "Futures/EventualResultsCache.swift",
        "Futures/FutureDeduplicator.swift",
        "Futures/FutureOperationQueue.swift",
        "Futures/OperationQueue+Extensions.swift",
        "Futures/OrderManager.swift",
        "Utility/FastData.swift",
        "Utility/FutureFileSystem.swift"
      ],
      "target_dependencies" : [
        "FXCore",
        "FXCBLAKE3",
        "FXCProcessSpawnSync"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
basic-6.1-latest: Pulling from swiftpackageindex/spi-images
Digest: sha256:a7bfd71e9384436264431030299dc8a2d42d0664a168cfa1a5dd84c9bc592ccf
Status: Image is up to date for registry.gitlab.com/swiftpackageindex/spi-images:basic-6.1-latest
Done.