The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of redi-s, reference develop (24dacc), with Swift 6.1 for Linux on 28 Apr 2025 08:03:51 UTC.

Swift 6 data race errors: 18

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/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

 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Commands/PubSubCommands.swift:202:11: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
200 |         let pubSub = ctx.handler.server.pubSub
201 |         pubSub.Q.async {
202 |           ctx.write(pubSub.patternToEventLoopToSubscribers.count)
    |           `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
203 |         }
204 |
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/PubSubCommands.swift:202:21: warning: capture of 'pubSub' with non-sendable type 'PubSub' in a '@Sendable' closure; this is an error in the Swift 6 language mode
200 |         let pubSub = ctx.handler.server.pubSub
201 |         pubSub.Q.async {
202 |           ctx.write(pubSub.patternToEventLoopToSubscribers.count)
    |                     `- warning: capture of 'pubSub' with non-sendable type 'PubSub' in a '@Sendable' closure; this is an error in the Swift 6 language mode
203 |         }
204 |
/host/spi-builder-workspace/Sources/RedisServer/Server/PubSub.swift:20:7: note: class 'PubSub' does not conform to the 'Sendable' protocol
 18 | import enum   NIORedis.RESPValue
 19 |
 20 | class PubSub {
    |       `- note: class 'PubSub' does not conform to the 'Sendable' protocol
 21 |
 22 |   typealias SubscriberList     = ContiguousArray<RedisCommandHandler>
/host/spi-builder-workspace/Sources/RedisServer/Commands/PubSubCommands.swift:218:30: warning: capture of 'pubSub' with non-sendable type 'PubSub' in a '@Sendable' closure; this is an error in the Swift 6 language mode
216 |
217 |       for channel in channels {
218 |         guard let loop2Sub = pubSub.channelToEventLoopToSubscribers[channel],
    |                              `- warning: capture of 'pubSub' with non-sendable type 'PubSub' in a '@Sendable' closure; this is an error in the Swift 6 language mode
219 |                  !loop2Sub.isEmpty else {
220 |           channelCountPairs.append(RESPValue(bulkString: channel))
/host/spi-builder-workspace/Sources/RedisServer/Server/PubSub.swift:20:7: note: class 'PubSub' does not conform to the 'Sendable' protocol
 18 | import enum   NIORedis.RESPValue
 19 |
 20 | class PubSub {
    |       `- note: class 'PubSub' does not conform to the 'Sendable' protocol
 21 |
 22 |   typealias SubscriberList     = ContiguousArray<RedisCommandHandler>
/host/spi-builder-workspace/Sources/RedisServer/Commands/PubSubCommands.swift:230:7: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
228 |       }
229 |
230 |       ctx.write(.array(channelCountPairs))
    |       `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
231 |     }
232 |   }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/PubSubCommands.swift:241:36: warning: capture of 'pubSub' with non-sendable type 'PubSub' in a '@Sendable' closure; this is an error in the Swift 6 language mode
239 |       var channels = ContiguousArray<RESPValue>()
240 |
241 |       for ( channel, loop2Sub ) in pubSub.channelToEventLoopToSubscribers {
    |                                    `- warning: capture of 'pubSub' with non-sendable type 'PubSub' in a '@Sendable' closure; this is an error in the Swift 6 language mode
242 |         guard !loop2Sub.isEmpty                      else { continue }
243 |         if let pattern = pattern {
/host/spi-builder-workspace/Sources/RedisServer/Server/PubSub.swift:20:7: note: class 'PubSub' does not conform to the 'Sendable' protocol
 18 | import enum   NIORedis.RESPValue
 19 |
 20 | class PubSub {
    |       `- note: class 'PubSub' does not conform to the 'Sendable' protocol
 21 |
 22 |   typealias SubscriberList     = ContiguousArray<RedisCommandHandler>
/host/spi-builder-workspace/Sources/RedisServer/Commands/PubSubCommands.swift:257:7: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
255 |       }
256 |
257 |       ctx.write(.array(channels))
    |       `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
258 |     }
259 |   }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
[261/286] Compiling RedisServer StringCommands.swift
/host/spi-builder-workspace/Sources/RedisServer/Commands/StringCommands.swift:227:47: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
225 |
226 |       ctx.eventLoop.execute {
227 |         guard let value = value else { return ctx.write(.bulkString(nil)) }
    |                                               `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
228 |         ctx.write(value)
229 |       }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:122:7: warning: capture of 'cb' with non-sendable type '(Date, TimeInterval) -> Void' (aka '(Date, Double) -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
120 |   func getLastSave(_ cb: @escaping ( Date, TimeInterval ) -> Void) {
121 |     Q.async {
122 |       cb(self.lastSave, self.lastSaveDuration)
    |       |- warning: capture of 'cb' with non-sendable type '(Date, TimeInterval) -> Void' (aka '(Date, Double) -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
    |       `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
123 |     }
124 |   }
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:122:10: warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 50 | }
 51 |
 52 | class SimpleJSONDumpManager : DumpManager {
    |       `- note: class 'SimpleJSONDumpManager' does not conform to the 'Sendable' protocol
 53 |
 54 |   let Q      = DispatchQueue(label: "de.zeezide.nio.redisd.dump")
    :
120 |   func getLastSave(_ cb: @escaping ( Date, TimeInterval ) -> Void) {
121 |     Q.async {
122 |       cb(self.lastSave, self.lastSaveDuration)
    |          `- warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
123 |     }
124 |   }
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:132:9: warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 50 | }
 51 |
 52 | class SimpleJSONDumpManager : DumpManager {
    |       `- note: class 'SimpleJSONDumpManager' does not conform to the 'Sendable' protocol
 53 |
 54 |   let Q      = DispatchQueue(label: "de.zeezide.nio.redisd.dump")
    :
130 |       let ( lastSave, diff ) = try self._saveDump(of: databases, to: url)
131 |       Q.async {
132 |         self.lastSave         = lastSave
    |         `- warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
133 |         self.lastSaveDuration = diff
134 |       }
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:139:40: warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 50 | }
 51 |
 52 | class SimpleJSONDumpManager : DumpManager {
    |       `- note: class 'SimpleJSONDumpManager' does not conform to the 'Sendable' protocol
 53 |
 54 |   let Q      = DispatchQueue(label: "de.zeezide.nio.redisd.dump")
    :
137 |       Q.async {
138 |         do {
139 |           let ( lastSave, diff ) = try self._saveDump(of: databases, to: url)
    |                                        `- warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
140 |           self.lastSave         = lastSave
141 |           self.lastSaveDuration = diff
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:139:59: warning: capture of 'databases' with non-sendable type 'Databases' in a '@Sendable' closure; this is an error in the Swift 6 language mode
137 |       Q.async {
138 |         do {
139 |           let ( lastSave, diff ) = try self._saveDump(of: databases, to: url)
    |                                                           `- warning: capture of 'databases' with non-sendable type 'Databases' in a '@Sendable' closure; this is an error in the Swift 6 language mode
140 |           self.lastSave         = lastSave
141 |           self.lastSaveDuration = diff
/host/spi-builder-workspace/Sources/RedisServer/Database/Database.swift:50:13: note: class 'Databases' does not conform to the 'Sendable' protocol
 48 |  *   Hashable etc.
 49 |  */
 50 | final class Databases : Codable {
    |             `- note: class 'Databases' does not conform to the 'Sendable' protocol
 51 |
 52 |   typealias SavePoints = ContiguousArray<SavePoint>
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:185:29: warning: capture of 'me' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 50 | }
 51 |
 52 | class SimpleJSONDumpManager : DumpManager {
    |       `- note: class 'SimpleJSONDumpManager' does not conform to the 'Sendable' protocol
 53 |
 54 |   let Q      = DispatchQueue(label: "de.zeezide.nio.redisd.dump")
    :
183 |                           // Careful: running in DB thread
184 |                           me.Q.async {
185 |                             me._scheduleSave(in: savePoint.delay)
    |                             `- warning: capture of 'me' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
186 |                           }
187 |                         })
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:185:50: warning: capture of 'savePoint' with non-sendable type 'Databases.SavePoint' (aka 'RedisServer.Configuration.SavePoint') in a '@Sendable' closure; this is an error in the Swift 6 language mode
183 |                           // Careful: running in DB thread
184 |                           me.Q.async {
185 |                             me._scheduleSave(in: savePoint.delay)
    |                                                  `- warning: capture of 'savePoint' with non-sendable type 'Databases.SavePoint' (aka 'RedisServer.Configuration.SavePoint') in a '@Sendable' closure; this is an error in the Swift 6 language mode
186 |                           }
187 |                         })
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:32:19: note: consider making struct 'SavePoint' conform to the 'Sendable' protocol
 30 |   open class Configuration {
 31 |
 32 |     public struct SavePoint {
    |                   `- note: consider making struct 'SavePoint' conform to the 'Sendable' protocol
 33 |       public let delay       : TimeInterval
 34 |       public let changeCount : Int
[262/286] Compiling RedisServer Database.swift
/host/spi-builder-workspace/Sources/RedisServer/Commands/StringCommands.swift:227:47: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
225 |
226 |       ctx.eventLoop.execute {
227 |         guard let value = value else { return ctx.write(.bulkString(nil)) }
    |                                               `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
228 |         ctx.write(value)
229 |       }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:122:7: warning: capture of 'cb' with non-sendable type '(Date, TimeInterval) -> Void' (aka '(Date, Double) -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
120 |   func getLastSave(_ cb: @escaping ( Date, TimeInterval ) -> Void) {
121 |     Q.async {
122 |       cb(self.lastSave, self.lastSaveDuration)
    |       |- warning: capture of 'cb' with non-sendable type '(Date, TimeInterval) -> Void' (aka '(Date, Double) -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
    |       `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
123 |     }
124 |   }
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:122:10: warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 50 | }
 51 |
 52 | class SimpleJSONDumpManager : DumpManager {
    |       `- note: class 'SimpleJSONDumpManager' does not conform to the 'Sendable' protocol
 53 |
 54 |   let Q      = DispatchQueue(label: "de.zeezide.nio.redisd.dump")
    :
120 |   func getLastSave(_ cb: @escaping ( Date, TimeInterval ) -> Void) {
121 |     Q.async {
122 |       cb(self.lastSave, self.lastSaveDuration)
    |          `- warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
123 |     }
124 |   }
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:132:9: warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 50 | }
 51 |
 52 | class SimpleJSONDumpManager : DumpManager {
    |       `- note: class 'SimpleJSONDumpManager' does not conform to the 'Sendable' protocol
 53 |
 54 |   let Q      = DispatchQueue(label: "de.zeezide.nio.redisd.dump")
    :
130 |       let ( lastSave, diff ) = try self._saveDump(of: databases, to: url)
131 |       Q.async {
132 |         self.lastSave         = lastSave
    |         `- warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
133 |         self.lastSaveDuration = diff
134 |       }
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:139:40: warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 50 | }
 51 |
 52 | class SimpleJSONDumpManager : DumpManager {
    |       `- note: class 'SimpleJSONDumpManager' does not conform to the 'Sendable' protocol
 53 |
 54 |   let Q      = DispatchQueue(label: "de.zeezide.nio.redisd.dump")
    :
137 |       Q.async {
138 |         do {
139 |           let ( lastSave, diff ) = try self._saveDump(of: databases, to: url)
    |                                        `- warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
140 |           self.lastSave         = lastSave
141 |           self.lastSaveDuration = diff
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:139:59: warning: capture of 'databases' with non-sendable type 'Databases' in a '@Sendable' closure; this is an error in the Swift 6 language mode
137 |       Q.async {
138 |         do {
139 |           let ( lastSave, diff ) = try self._saveDump(of: databases, to: url)
    |                                                           `- warning: capture of 'databases' with non-sendable type 'Databases' in a '@Sendable' closure; this is an error in the Swift 6 language mode
140 |           self.lastSave         = lastSave
141 |           self.lastSaveDuration = diff
/host/spi-builder-workspace/Sources/RedisServer/Database/Database.swift:50:13: note: class 'Databases' does not conform to the 'Sendable' protocol
 48 |  *   Hashable etc.
 49 |  */
 50 | final class Databases : Codable {
    |             `- note: class 'Databases' does not conform to the 'Sendable' protocol
 51 |
 52 |   typealias SavePoints = ContiguousArray<SavePoint>
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:185:29: warning: capture of 'me' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 50 | }
 51 |
 52 | class SimpleJSONDumpManager : DumpManager {
    |       `- note: class 'SimpleJSONDumpManager' does not conform to the 'Sendable' protocol
 53 |
 54 |   let Q      = DispatchQueue(label: "de.zeezide.nio.redisd.dump")
    :
183 |                           // Careful: running in DB thread
184 |                           me.Q.async {
185 |                             me._scheduleSave(in: savePoint.delay)
    |                             `- warning: capture of 'me' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
186 |                           }
187 |                         })
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:185:50: warning: capture of 'savePoint' with non-sendable type 'Databases.SavePoint' (aka 'RedisServer.Configuration.SavePoint') in a '@Sendable' closure; this is an error in the Swift 6 language mode
183 |                           // Careful: running in DB thread
184 |                           me.Q.async {
185 |                             me._scheduleSave(in: savePoint.delay)
    |                                                  `- warning: capture of 'savePoint' with non-sendable type 'Databases.SavePoint' (aka 'RedisServer.Configuration.SavePoint') in a '@Sendable' closure; this is an error in the Swift 6 language mode
186 |                           }
187 |                         })
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:32:19: note: consider making struct 'SavePoint' conform to the 'Sendable' protocol
 30 |   open class Configuration {
 31 |
 32 |     public struct SavePoint {
    |                   `- note: consider making struct 'SavePoint' conform to the 'Sendable' protocol
 33 |       public let delay       : TimeInterval
 34 |       public let changeCount : Int
[263/286] Compiling RedisServer DumpManager.swift
/host/spi-builder-workspace/Sources/RedisServer/Commands/StringCommands.swift:227:47: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
225 |
226 |       ctx.eventLoop.execute {
227 |         guard let value = value else { return ctx.write(.bulkString(nil)) }
    |                                               `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
228 |         ctx.write(value)
229 |       }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:122:7: warning: capture of 'cb' with non-sendable type '(Date, TimeInterval) -> Void' (aka '(Date, Double) -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
120 |   func getLastSave(_ cb: @escaping ( Date, TimeInterval ) -> Void) {
121 |     Q.async {
122 |       cb(self.lastSave, self.lastSaveDuration)
    |       |- warning: capture of 'cb' with non-sendable type '(Date, TimeInterval) -> Void' (aka '(Date, Double) -> ()') in a '@Sendable' closure; this is an error in the Swift 6 language mode
    |       `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
123 |     }
124 |   }
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:122:10: warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 50 | }
 51 |
 52 | class SimpleJSONDumpManager : DumpManager {
    |       `- note: class 'SimpleJSONDumpManager' does not conform to the 'Sendable' protocol
 53 |
 54 |   let Q      = DispatchQueue(label: "de.zeezide.nio.redisd.dump")
    :
120 |   func getLastSave(_ cb: @escaping ( Date, TimeInterval ) -> Void) {
121 |     Q.async {
122 |       cb(self.lastSave, self.lastSaveDuration)
    |          `- warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
123 |     }
124 |   }
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:132:9: warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 50 | }
 51 |
 52 | class SimpleJSONDumpManager : DumpManager {
    |       `- note: class 'SimpleJSONDumpManager' does not conform to the 'Sendable' protocol
 53 |
 54 |   let Q      = DispatchQueue(label: "de.zeezide.nio.redisd.dump")
    :
130 |       let ( lastSave, diff ) = try self._saveDump(of: databases, to: url)
131 |       Q.async {
132 |         self.lastSave         = lastSave
    |         `- warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
133 |         self.lastSaveDuration = diff
134 |       }
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:139:40: warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 50 | }
 51 |
 52 | class SimpleJSONDumpManager : DumpManager {
    |       `- note: class 'SimpleJSONDumpManager' does not conform to the 'Sendable' protocol
 53 |
 54 |   let Q      = DispatchQueue(label: "de.zeezide.nio.redisd.dump")
    :
137 |       Q.async {
138 |         do {
139 |           let ( lastSave, diff ) = try self._saveDump(of: databases, to: url)
    |                                        `- warning: capture of 'self' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
140 |           self.lastSave         = lastSave
141 |           self.lastSaveDuration = diff
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:139:59: warning: capture of 'databases' with non-sendable type 'Databases' in a '@Sendable' closure; this is an error in the Swift 6 language mode
137 |       Q.async {
138 |         do {
139 |           let ( lastSave, diff ) = try self._saveDump(of: databases, to: url)
    |                                                           `- warning: capture of 'databases' with non-sendable type 'Databases' in a '@Sendable' closure; this is an error in the Swift 6 language mode
140 |           self.lastSave         = lastSave
141 |           self.lastSaveDuration = diff
/host/spi-builder-workspace/Sources/RedisServer/Database/Database.swift:50:13: note: class 'Databases' does not conform to the 'Sendable' protocol
 48 |  *   Hashable etc.
 49 |  */
 50 | final class Databases : Codable {
    |             `- note: class 'Databases' does not conform to the 'Sendable' protocol
 51 |
 52 |   typealias SavePoints = ContiguousArray<SavePoint>
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:185:29: warning: capture of 'me' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 50 | }
 51 |
 52 | class SimpleJSONDumpManager : DumpManager {
    |       `- note: class 'SimpleJSONDumpManager' does not conform to the 'Sendable' protocol
 53 |
 54 |   let Q      = DispatchQueue(label: "de.zeezide.nio.redisd.dump")
    :
183 |                           // Careful: running in DB thread
184 |                           me.Q.async {
185 |                             me._scheduleSave(in: savePoint.delay)
    |                             `- warning: capture of 'me' with non-sendable type 'SimpleJSONDumpManager' in a '@Sendable' closure; this is an error in the Swift 6 language mode
186 |                           }
187 |                         })
/host/spi-builder-workspace/Sources/RedisServer/Database/DumpManager.swift:185:50: warning: capture of 'savePoint' with non-sendable type 'Databases.SavePoint' (aka 'RedisServer.Configuration.SavePoint') in a '@Sendable' closure; this is an error in the Swift 6 language mode
183 |                           // Careful: running in DB thread
184 |                           me.Q.async {
185 |                             me._scheduleSave(in: savePoint.delay)
    |                                                  `- warning: capture of 'savePoint' with non-sendable type 'Databases.SavePoint' (aka 'RedisServer.Configuration.SavePoint') in a '@Sendable' closure; this is an error in the Swift 6 language mode
186 |                           }
187 |                         })
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:32:19: note: consider making struct 'SavePoint' conform to the 'Sendable' protocol
 30 |   open class Configuration {
 31 |
 32 |     public struct SavePoint {
    |                   `- note: consider making struct 'SavePoint' conform to the 'Sendable' protocol
 33 |       public let delay       : TimeInterval
 34 |       public let changeCount : Int
[264/286] Compiling RedisServer Monitor.swift
/host/spi-builder-workspace/Sources/RedisServer/Server/PubSub.swift:60:29: warning: capture of 'subscribers' with non-sendable type 'PubSub.SubscriberList' (aka 'ContiguousArray<RedisCommandHandler>') in a '@Sendable' closure
 58 |
 59 |         loop.execute {
 60 |           for subscriber in subscribers {
    |                             `- warning: capture of 'subscribers' with non-sendable type 'PubSub.SubscriberList' (aka 'ContiguousArray<RedisCommandHandler>') in a '@Sendable' closure
 61 |             subscriber.handleNotification(messagePayload)
 62 |           }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Server/PubSub.swift:61:43: warning: capture of 'messagePayload' with non-sendable type 'RESPValue' in a '@Sendable' closure
 59 |         loop.execute {
 60 |           for subscriber in subscribers {
 61 |             subscriber.handleNotification(messagePayload)
    |                                           `- warning: capture of 'messagePayload' with non-sendable type 'RESPValue' in a '@Sendable' closure
 62 |           }
 63 |         }
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Server/PubSub.swift:18:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 16 | import struct Foundation.Data
 17 | import struct NIO.ByteBuffer
 18 | import enum   NIORedis.RESPValue
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 19 |
 20 | class PubSub {
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:126:9: warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
124 |     else {
125 |       eventLoop.execute {
126 |         handler.write(context: context, value: value.toRESPValue(),
    |         `- warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
127 |                       promise: nil)
128 |         if flush { context.channel.flush() }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:126:32: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
124 |     else {
125 |       eventLoop.execute {
126 |         handler.write(context: context, value: value.toRESPValue(),
    |                                `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
127 |                       promise: nil)
128 |         if flush { context.channel.flush() }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 |     // visible for ChannelPipeline to modify
1788 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:126:48: warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
114 |   @_specialize(where T == Int)
115 |   @_specialize(where T == String)
116 |   func write<T: RESPEncodable>(_ value: T, flush: Bool = true) {
    |              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
117 |     let context = self.context
118 |     let handler = self.handler
    :
124 |     else {
125 |       eventLoop.execute {
126 |         handler.write(context: context, value: value.toRESPValue(),
    |                                                `- warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
127 |                       promise: nil)
128 |         if flush { context.channel.flush() }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:143:9: warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
141 |     else {
142 |       eventLoop.execute {
143 |         handler.write(context: context, value: value, promise: nil)
    |         `- warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
144 |         if flush { context.channel.flush() }
145 |       }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:143:32: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
141 |     else {
142 |       eventLoop.execute {
143 |         handler.write(context: context, value: value, promise: nil)
    |                                `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
144 |         if flush { context.channel.flush() }
145 |       }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 |     // visible for ChannelPipeline to modify
1788 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:143:48: warning: capture of 'value' with non-sendable type 'RESPValue' in a '@Sendable' closure
141 |     else {
142 |       eventLoop.execute {
143 |         handler.write(context: context, value: value, promise: nil)
    |                                                `- warning: capture of 'value' with non-sendable type 'RESPValue' in a '@Sendable' closure
144 |         if flush { context.channel.flush() }
145 |       }
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:16:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 14 |
 15 | import NIO
 16 | import NIORedis
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 17 | import struct Foundation.Data
 18 |
[265/286] Compiling RedisServer PubSub.swift
/host/spi-builder-workspace/Sources/RedisServer/Server/PubSub.swift:60:29: warning: capture of 'subscribers' with non-sendable type 'PubSub.SubscriberList' (aka 'ContiguousArray<RedisCommandHandler>') in a '@Sendable' closure
 58 |
 59 |         loop.execute {
 60 |           for subscriber in subscribers {
    |                             `- warning: capture of 'subscribers' with non-sendable type 'PubSub.SubscriberList' (aka 'ContiguousArray<RedisCommandHandler>') in a '@Sendable' closure
 61 |             subscriber.handleNotification(messagePayload)
 62 |           }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Server/PubSub.swift:61:43: warning: capture of 'messagePayload' with non-sendable type 'RESPValue' in a '@Sendable' closure
 59 |         loop.execute {
 60 |           for subscriber in subscribers {
 61 |             subscriber.handleNotification(messagePayload)
    |                                           `- warning: capture of 'messagePayload' with non-sendable type 'RESPValue' in a '@Sendable' closure
 62 |           }
 63 |         }
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Server/PubSub.swift:18:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 16 | import struct Foundation.Data
 17 | import struct NIO.ByteBuffer
 18 | import enum   NIORedis.RESPValue
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 19 |
 20 | class PubSub {
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:126:9: warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
124 |     else {
125 |       eventLoop.execute {
126 |         handler.write(context: context, value: value.toRESPValue(),
    |         `- warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
127 |                       promise: nil)
128 |         if flush { context.channel.flush() }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:126:32: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
124 |     else {
125 |       eventLoop.execute {
126 |         handler.write(context: context, value: value.toRESPValue(),
    |                                `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
127 |                       promise: nil)
128 |         if flush { context.channel.flush() }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 |     // visible for ChannelPipeline to modify
1788 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:126:48: warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
114 |   @_specialize(where T == Int)
115 |   @_specialize(where T == String)
116 |   func write<T: RESPEncodable>(_ value: T, flush: Bool = true) {
    |              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
117 |     let context = self.context
118 |     let handler = self.handler
    :
124 |     else {
125 |       eventLoop.execute {
126 |         handler.write(context: context, value: value.toRESPValue(),
    |                                                `- warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
127 |                       promise: nil)
128 |         if flush { context.channel.flush() }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:143:9: warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
141 |     else {
142 |       eventLoop.execute {
143 |         handler.write(context: context, value: value, promise: nil)
    |         `- warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
144 |         if flush { context.channel.flush() }
145 |       }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:143:32: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
141 |     else {
142 |       eventLoop.execute {
143 |         handler.write(context: context, value: value, promise: nil)
    |                                `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
144 |         if flush { context.channel.flush() }
145 |       }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 |     // visible for ChannelPipeline to modify
1788 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:143:48: warning: capture of 'value' with non-sendable type 'RESPValue' in a '@Sendable' closure
141 |     else {
142 |       eventLoop.execute {
143 |         handler.write(context: context, value: value, promise: nil)
    |                                                `- warning: capture of 'value' with non-sendable type 'RESPValue' in a '@Sendable' closure
144 |         if flush { context.channel.flush() }
145 |       }
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:16:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 14 |
 15 | import NIO
 16 | import NIORedis
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 17 | import struct Foundation.Data
 18 |
[266/286] Compiling RedisServer RedisCommandContext.swift
/host/spi-builder-workspace/Sources/RedisServer/Server/PubSub.swift:60:29: warning: capture of 'subscribers' with non-sendable type 'PubSub.SubscriberList' (aka 'ContiguousArray<RedisCommandHandler>') in a '@Sendable' closure
 58 |
 59 |         loop.execute {
 60 |           for subscriber in subscribers {
    |                             `- warning: capture of 'subscribers' with non-sendable type 'PubSub.SubscriberList' (aka 'ContiguousArray<RedisCommandHandler>') in a '@Sendable' closure
 61 |             subscriber.handleNotification(messagePayload)
 62 |           }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Server/PubSub.swift:61:43: warning: capture of 'messagePayload' with non-sendable type 'RESPValue' in a '@Sendable' closure
 59 |         loop.execute {
 60 |           for subscriber in subscribers {
 61 |             subscriber.handleNotification(messagePayload)
    |                                           `- warning: capture of 'messagePayload' with non-sendable type 'RESPValue' in a '@Sendable' closure
 62 |           }
 63 |         }
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Server/PubSub.swift:18:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 16 | import struct Foundation.Data
 17 | import struct NIO.ByteBuffer
 18 | import enum   NIORedis.RESPValue
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 19 |
 20 | class PubSub {
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:126:9: warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
124 |     else {
125 |       eventLoop.execute {
126 |         handler.write(context: context, value: value.toRESPValue(),
    |         `- warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
127 |                       promise: nil)
128 |         if flush { context.channel.flush() }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:126:32: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
124 |     else {
125 |       eventLoop.execute {
126 |         handler.write(context: context, value: value.toRESPValue(),
    |                                `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
127 |                       promise: nil)
128 |         if flush { context.channel.flush() }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 |     // visible for ChannelPipeline to modify
1788 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:126:48: warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
114 |   @_specialize(where T == Int)
115 |   @_specialize(where T == String)
116 |   func write<T: RESPEncodable>(_ value: T, flush: Bool = true) {
    |              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
117 |     let context = self.context
118 |     let handler = self.handler
    :
124 |     else {
125 |       eventLoop.execute {
126 |         handler.write(context: context, value: value.toRESPValue(),
    |                                                `- warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
127 |                       promise: nil)
128 |         if flush { context.channel.flush() }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:143:9: warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
141 |     else {
142 |       eventLoop.execute {
143 |         handler.write(context: context, value: value, promise: nil)
    |         `- warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
144 |         if flush { context.channel.flush() }
145 |       }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:143:32: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
141 |     else {
142 |       eventLoop.execute {
143 |         handler.write(context: context, value: value, promise: nil)
    |                                `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
144 |         if flush { context.channel.flush() }
145 |       }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
     |                    `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 |     // visible for ChannelPipeline to modify
1788 |     fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:143:48: warning: capture of 'value' with non-sendable type 'RESPValue' in a '@Sendable' closure
141 |     else {
142 |       eventLoop.execute {
143 |         handler.write(context: context, value: value, promise: nil)
    |                                                `- warning: capture of 'value' with non-sendable type 'RESPValue' in a '@Sendable' closure
144 |         if flush { context.channel.flush() }
145 |       }
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:16:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 14 |
 15 | import NIO
 16 | import NIORedis
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 17 | import struct Foundation.Data
 18 |
[267/286] Compiling RedisServer RedisCommandHandler.swift
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:82:11: warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
    :
 80 |       server.pubSub.Q.async {
 81 |         for channel in channels {
 82 |           self.server.pubSub.unsubscribe(channel, handler: self)
    |           `- warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 83 |         }
 84 |       }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:91:11: warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
    :
 89 |       server.pubSub.Q.async {
 90 |         for pattern in patterns {
 91 |           self.server.pubSub.unsubscribe(pattern, handler: self)
    |           `- warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 92 |         }
 93 |       }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:99:7: warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
    :
 97 |
 98 |     server.Q.async {
 99 |       self.server._unregisterClient(self)
    |       `- warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
100 |     }
101 |     self.channel   = nil
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:113:13: warning: type 'RESPValue' does not conform to the 'Sendable' protocol
111 |     }
112 |
113 |     channel.writeAndFlush(payload, promise: nil)
    |             `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol
114 |   }
115 |
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:16:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 14 |
 15 | import NIO
 16 | import NIORedis
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 17 | import class Atomics.ManagedAtomic
 18 | import struct Foundation.Data
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:98:20: warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
    :
 96 |     Q.async { // Safe? Unsafe. No idea. Probably not :-)
 97 |       // TODO: I think the proper trick is to use a pipe here.
 98 |       if let dbs = self.databases {
    |                    `- warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 99 |         do {
100 |           self.logger.warn("User requested shutdown...")
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:230:17: warning: type 'RESPValue' does not conform to the 'Sendable' protocol
228 |         guard client.isMonitoring.load(ordering: .relaxed) else { continue }
229 |         guard let channel = client.channel                 else { continue }
230 |         channel.writeAndFlush(logPacket, promise: nil)
    |                 `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol
231 |       }
232 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:21:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 19 | import class  Foundation.JSONDecoder
 20 | import class  Atomics.ManagedAtomic
 21 | import enum   NIORedis.RESPValue
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 22 | import NIO
 23 |
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:227:28: warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
    :
225 |
226 |     Q.async {
227 |       for ( _, client ) in self.clients {
    |                            `- warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
228 |         guard client.isMonitoring.load(ordering: .relaxed) else { continue }
229 |         guard let channel = client.channel                 else { continue }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:230:31: warning: capture of 'logPacket' with non-sendable type 'RESPValue' in a '@Sendable' closure; this is an error in the Swift 6 language mode
228 |         guard client.isMonitoring.load(ordering: .relaxed) else { continue }
229 |         guard let channel = client.channel                 else { continue }
230 |         channel.writeAndFlush(logPacket, promise: nil)
    |                               `- warning: capture of 'logPacket' with non-sendable type 'RESPValue' in a '@Sendable' closure; this is an error in the Swift 6 language mode
231 |       }
232 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:251:23: warning: conformance of 'BackPressureHandler' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
249 |       .childChannelInitializer { channel in
250 |         channel.pipeline
251 |           .addHandler(BackPressureHandler() /* Oh well :-) */,
    |                       `- warning: conformance of 'BackPressureHandler' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
252 |                       name: "com.apple.nio.backpressure")
253 |           .flatMap {
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelHandlers.swift:179:1: note: conformance of 'BackPressureHandler' to 'Sendable' has been explicitly marked unavailable here
177 |
178 | @available(*, unavailable)
179 | extension BackPressureHandler: Sendable {}
    | `- note: conformance of 'BackPressureHandler' to 'Sendable' has been explicitly marked unavailable here
180 |
181 | /// Triggers an IdleStateEvent when a Channel has not performed read, write, or both operation for a while.
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:262:27: warning: type 'RedisCommandHandler' does not conform to the 'Sendable' protocol
260 |
261 |             return channel.pipeline
262 |               .addHandler(handler, name:"de.zeezide.nio.redis.server.client")
    |                           `- warning: type 'RedisCommandHandler' does not conform to the 'Sendable' protocol
263 |           }
264 |       }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:255:64: warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
    :
253 |           .flatMap {
254 |             let cid     = clientID.wrappingIncrementThenLoad(ordering: .relaxed)
255 |             let handler = RedisCommandHandler(id: cid, server: self)
    |                                                                `- warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure
256 |
257 |             self.Q.async {
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:255:64: warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
    :
253 |           .flatMap {
254 |             let cid     = clientID.wrappingIncrementThenLoad(ordering: .relaxed)
255 |             let handler = RedisCommandHandler(id: cid, server: self)
    |                                                                `- warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure
256 |
257 |             self.Q.async {
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:258:15: warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
    :
256 |
257 |             self.Q.async {
258 |               self._registerClient(handler)
    |               `- warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
259 |             }
260 |
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:258:36: warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
256 |
257 |             self.Q.async {
258 |               self._registerClient(handler)
    |                                    `- warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
259 |             }
260 |
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
[268/286] Compiling RedisServer RedisServer.swift
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:82:11: warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
    :
 80 |       server.pubSub.Q.async {
 81 |         for channel in channels {
 82 |           self.server.pubSub.unsubscribe(channel, handler: self)
    |           `- warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 83 |         }
 84 |       }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:91:11: warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
    :
 89 |       server.pubSub.Q.async {
 90 |         for pattern in patterns {
 91 |           self.server.pubSub.unsubscribe(pattern, handler: self)
    |           `- warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 92 |         }
 93 |       }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:99:7: warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
    :
 97 |
 98 |     server.Q.async {
 99 |       self.server._unregisterClient(self)
    |       `- warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
100 |     }
101 |     self.channel   = nil
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:113:13: warning: type 'RESPValue' does not conform to the 'Sendable' protocol
111 |     }
112 |
113 |     channel.writeAndFlush(payload, promise: nil)
    |             `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol
114 |   }
115 |
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:16:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 14 |
 15 | import NIO
 16 | import NIORedis
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 17 | import class Atomics.ManagedAtomic
 18 | import struct Foundation.Data
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:98:20: warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
    :
 96 |     Q.async { // Safe? Unsafe. No idea. Probably not :-)
 97 |       // TODO: I think the proper trick is to use a pipe here.
 98 |       if let dbs = self.databases {
    |                    `- warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 99 |         do {
100 |           self.logger.warn("User requested shutdown...")
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:230:17: warning: type 'RESPValue' does not conform to the 'Sendable' protocol
228 |         guard client.isMonitoring.load(ordering: .relaxed) else { continue }
229 |         guard let channel = client.channel                 else { continue }
230 |         channel.writeAndFlush(logPacket, promise: nil)
    |                 `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol
231 |       }
232 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:21:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 19 | import class  Foundation.JSONDecoder
 20 | import class  Atomics.ManagedAtomic
 21 | import enum   NIORedis.RESPValue
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 22 | import NIO
 23 |
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:227:28: warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
    :
225 |
226 |     Q.async {
227 |       for ( _, client ) in self.clients {
    |                            `- warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
228 |         guard client.isMonitoring.load(ordering: .relaxed) else { continue }
229 |         guard let channel = client.channel                 else { continue }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:230:31: warning: capture of 'logPacket' with non-sendable type 'RESPValue' in a '@Sendable' closure; this is an error in the Swift 6 language mode
228 |         guard client.isMonitoring.load(ordering: .relaxed) else { continue }
229 |         guard let channel = client.channel                 else { continue }
230 |         channel.writeAndFlush(logPacket, promise: nil)
    |                               `- warning: capture of 'logPacket' with non-sendable type 'RESPValue' in a '@Sendable' closure; this is an error in the Swift 6 language mode
231 |       }
232 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:251:23: warning: conformance of 'BackPressureHandler' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
249 |       .childChannelInitializer { channel in
250 |         channel.pipeline
251 |           .addHandler(BackPressureHandler() /* Oh well :-) */,
    |                       `- warning: conformance of 'BackPressureHandler' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
252 |                       name: "com.apple.nio.backpressure")
253 |           .flatMap {
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelHandlers.swift:179:1: note: conformance of 'BackPressureHandler' to 'Sendable' has been explicitly marked unavailable here
177 |
178 | @available(*, unavailable)
179 | extension BackPressureHandler: Sendable {}
    | `- note: conformance of 'BackPressureHandler' to 'Sendable' has been explicitly marked unavailable here
180 |
181 | /// Triggers an IdleStateEvent when a Channel has not performed read, write, or both operation for a while.
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:262:27: warning: type 'RedisCommandHandler' does not conform to the 'Sendable' protocol
260 |
261 |             return channel.pipeline
262 |               .addHandler(handler, name:"de.zeezide.nio.redis.server.client")
    |                           `- warning: type 'RedisCommandHandler' does not conform to the 'Sendable' protocol
263 |           }
264 |       }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:255:64: warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
    :
253 |           .flatMap {
254 |             let cid     = clientID.wrappingIncrementThenLoad(ordering: .relaxed)
255 |             let handler = RedisCommandHandler(id: cid, server: self)
    |                                                                `- warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure
256 |
257 |             self.Q.async {
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:255:64: warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
    :
253 |           .flatMap {
254 |             let cid     = clientID.wrappingIncrementThenLoad(ordering: .relaxed)
255 |             let handler = RedisCommandHandler(id: cid, server: self)
    |                                                                `- warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure
256 |
257 |             self.Q.async {
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:258:15: warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
    :
256 |
257 |             self.Q.async {
258 |               self._registerClient(handler)
    |               `- warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
259 |             }
260 |
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:258:36: warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
256 |
257 |             self.Q.async {
258 |               self._registerClient(handler)
    |                                    `- warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
259 |             }
260 |
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
[269/286] Compiling RedisServer RedisError.swift
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:82:11: warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
    :
 80 |       server.pubSub.Q.async {
 81 |         for channel in channels {
 82 |           self.server.pubSub.unsubscribe(channel, handler: self)
    |           `- warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 83 |         }
 84 |       }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:91:11: warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
    :
 89 |       server.pubSub.Q.async {
 90 |         for pattern in patterns {
 91 |           self.server.pubSub.unsubscribe(pattern, handler: self)
    |           `- warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 92 |         }
 93 |       }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:99:7: warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
    :
 97 |
 98 |     server.Q.async {
 99 |       self.server._unregisterClient(self)
    |       `- warning: capture of 'self' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
100 |     }
101 |     self.channel   = nil
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:113:13: warning: type 'RESPValue' does not conform to the 'Sendable' protocol
111 |     }
112 |
113 |     channel.writeAndFlush(payload, promise: nil)
    |             `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol
114 |   }
115 |
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:16:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 14 |
 15 | import NIO
 16 | import NIORedis
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 17 | import class Atomics.ManagedAtomic
 18 | import struct Foundation.Data
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:98:20: warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
    :
 96 |     Q.async { // Safe? Unsafe. No idea. Probably not :-)
 97 |       // TODO: I think the proper trick is to use a pipe here.
 98 |       if let dbs = self.databases {
    |                    `- warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 99 |         do {
100 |           self.logger.warn("User requested shutdown...")
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:230:17: warning: type 'RESPValue' does not conform to the 'Sendable' protocol
228 |         guard client.isMonitoring.load(ordering: .relaxed) else { continue }
229 |         guard let channel = client.channel                 else { continue }
230 |         channel.writeAndFlush(logPacket, promise: nil)
    |                 `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol
231 |       }
232 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:21:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 19 | import class  Foundation.JSONDecoder
 20 | import class  Atomics.ManagedAtomic
 21 | import enum   NIORedis.RESPValue
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 22 | import NIO
 23 |
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:227:28: warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
    :
225 |
226 |     Q.async {
227 |       for ( _, client ) in self.clients {
    |                            `- warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
228 |         guard client.isMonitoring.load(ordering: .relaxed) else { continue }
229 |         guard let channel = client.channel                 else { continue }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:230:31: warning: capture of 'logPacket' with non-sendable type 'RESPValue' in a '@Sendable' closure; this is an error in the Swift 6 language mode
228 |         guard client.isMonitoring.load(ordering: .relaxed) else { continue }
229 |         guard let channel = client.channel                 else { continue }
230 |         channel.writeAndFlush(logPacket, promise: nil)
    |                               `- warning: capture of 'logPacket' with non-sendable type 'RESPValue' in a '@Sendable' closure; this is an error in the Swift 6 language mode
231 |       }
232 |     }
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:251:23: warning: conformance of 'BackPressureHandler' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
249 |       .childChannelInitializer { channel in
250 |         channel.pipeline
251 |           .addHandler(BackPressureHandler() /* Oh well :-) */,
    |                       `- warning: conformance of 'BackPressureHandler' to 'Sendable' is unavailable; this is an error in the Swift 6 language mode
252 |                       name: "com.apple.nio.backpressure")
253 |           .flatMap {
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelHandlers.swift:179:1: note: conformance of 'BackPressureHandler' to 'Sendable' has been explicitly marked unavailable here
177 |
178 | @available(*, unavailable)
179 | extension BackPressureHandler: Sendable {}
    | `- note: conformance of 'BackPressureHandler' to 'Sendable' has been explicitly marked unavailable here
180 |
181 | /// Triggers an IdleStateEvent when a Channel has not performed read, write, or both operation for a while.
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:262:27: warning: type 'RedisCommandHandler' does not conform to the 'Sendable' protocol
260 |
261 |             return channel.pipeline
262 |               .addHandler(handler, name:"de.zeezide.nio.redis.server.client")
    |                           `- warning: type 'RedisCommandHandler' does not conform to the 'Sendable' protocol
263 |           }
264 |       }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:255:64: warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
    :
253 |           .flatMap {
254 |             let cid     = clientID.wrappingIncrementThenLoad(ordering: .relaxed)
255 |             let handler = RedisCommandHandler(id: cid, server: self)
    |                                                                `- warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure
256 |
257 |             self.Q.async {
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:255:64: warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
    :
253 |           .flatMap {
254 |             let cid     = clientID.wrappingIncrementThenLoad(ordering: .relaxed)
255 |             let handler = RedisCommandHandler(id: cid, server: self)
    |                                                                `- warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure
256 |
257 |             self.Q.async {
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:258:15: warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
    :
256 |
257 |             self.Q.async {
258 |               self._registerClient(handler)
    |               `- warning: capture of 'self' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
259 |             }
260 |
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:258:36: warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
256 |
257 |             self.Q.async {
258 |               self._registerClient(handler)
    |                                    `- warning: capture of 'handler' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
259 |             }
260 |
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
[270/286] Compiling RedisServer RedisList.swift
/host/spi-builder-workspace/Sources/RedisServer/Values/RedisValue.swift:279:14: warning: static property 'ok' is not concurrency-safe because non-'Sendable' type 'RESPValue' may have shared mutable state; this is an error in the Swift 6 language mode
277 |
278 | extension RESPValue {
279 |   static let ok = RESPValue(simpleString: "OK")
    |              `- warning: static property 'ok' is not concurrency-safe because non-'Sendable' type 'RESPValue' may have shared mutable state; this is an error in the Swift 6 language mode
280 | }
281 |
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Values/RedisValue.swift:16:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 14 |
 15 | import NIO
 16 | import NIORedis
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 17 | import Foundation
 18 |
    :
277 |
278 | extension RESPValue {
279 |   static let ok = RESPValue(simpleString: "OK")
    |              |- note: add '@MainActor' to make static property 'ok' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
280 | }
281 |
[271/286] Compiling RedisServer RedisValue.swift
/host/spi-builder-workspace/Sources/RedisServer/Values/RedisValue.swift:279:14: warning: static property 'ok' is not concurrency-safe because non-'Sendable' type 'RESPValue' may have shared mutable state; this is an error in the Swift 6 language mode
277 |
278 | extension RESPValue {
279 |   static let ok = RESPValue(simpleString: "OK")
    |              `- warning: static property 'ok' is not concurrency-safe because non-'Sendable' type 'RESPValue' may have shared mutable state; this is an error in the Swift 6 language mode
280 | }
281 |
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Values/RedisValue.swift:16:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 14 |
 15 | import NIO
 16 | import NIORedis
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 17 | import Foundation
 18 |
    :
277 |
278 | extension RESPValue {
279 |   static let ok = RESPValue(simpleString: "OK")
    |              |- note: add '@MainActor' to make static property 'ok' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
280 | }
281 |
[272/286] Compiling RedisServer RedisValueCoding.swift
/host/spi-builder-workspace/Sources/RedisServer/Values/RedisValue.swift:279:14: warning: static property 'ok' is not concurrency-safe because non-'Sendable' type 'RESPValue' may have shared mutable state; this is an error in the Swift 6 language mode
277 |
278 | extension RESPValue {
279 |   static let ok = RESPValue(simpleString: "OK")
    |              `- warning: static property 'ok' is not concurrency-safe because non-'Sendable' type 'RESPValue' may have shared mutable state; this is an error in the Swift 6 language mode
280 | }
281 |
/host/spi-builder-workspace/.build/checkouts/swift-nio-redis/Sources/NIORedis/RESPValue.swift:18:13: note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 16 | import Foundation
 17 |
 18 | public enum RESPValue {
    |             `- note: enum 'RESPValue' does not conform to the 'Sendable' protocol
 19 |   case simpleString(ByteBuffer)
 20 |   case bulkString  (ByteBuffer?)
/host/spi-builder-workspace/Sources/RedisServer/Values/RedisValue.swift:16:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 14 |
 15 | import NIO
 16 | import NIORedis
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
 17 | import Foundation
 18 |
    :
277 |
278 | extension RESPValue {
279 |   static let ok = RESPValue(simpleString: "OK")
    |              |- note: add '@MainActor' to make static property 'ok' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
280 | }
281 |
[273/286] Compiling RedisServer RedisCommand.swift
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:32:23: warning: static property 'write' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
30 |
31 |     /// command may result in modifications
32 |     public static let write    = Flags(rawValue: 1 << 0)
   |                       |- warning: static property 'write' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'write' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
33 |
34 |     /// command will never modify keys
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:35:23: warning: static property 'readonly' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
33 |
34 |     /// command will never modify keys
35 |     public static let readonly = Flags(rawValue: 1 << 1)
   |                       |- warning: static property 'readonly' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'readonly' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 |     /// reject command if currently OOM
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:38:23: warning: static property 'denyoom' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
36 |
37 |     /// reject command if currently OOM
38 |     public static let denyoom  = Flags(rawValue: 1 << 2)
   |                       |- warning: static property 'denyoom' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'denyoom' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 |
40 |     /// server admin command
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:41:23: warning: static property 'admin' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
39 |
40 |     /// server admin command
41 |     public static let admin    = Flags(rawValue: 1 << 3)
   |                       |- warning: static property 'admin' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'admin' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |
43 |     /// pubsub-related command
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:44:23: warning: static property 'pubsub' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
42 |
43 |     /// pubsub-related command
44 |     public static let pubsub   = Flags(rawValue: 1 << 4)
   |                       |- warning: static property 'pubsub' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'pubsub' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 |
46 |     /// deny this command from scripts
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:47:23: warning: static property 'noscript' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
45 |
46 |     /// deny this command from scripts
47 |     public static let noscript = Flags(rawValue: 1 << 5)
   |                       |- warning: static property 'noscript' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'noscript' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
48 |
49 |     /// command has random results, dangerous for scripts
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:50:23: warning: static property 'random' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
48 |
49 |     /// command has random results, dangerous for scripts
50 |     public static let random   = Flags(rawValue: 1 << 6)
   |                       |- warning: static property 'random' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'random' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     /// allow command while database is loading
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:53:23: warning: static property 'loading' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
51 |
52 |     /// allow command while database is loading
53 |     public static let loading  = Flags(rawValue: 1 << 7)
   |                       |- warning: static property 'loading' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'loading' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 |
55 |     /// allow command while replica has stale data
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:56:23: warning: static property 'stale' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
54 |
55 |     /// allow command while replica has stale data
56 |     public static let stale    = Flags(rawValue: 1 << 8)
   |                       |- warning: static property 'stale' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'stale' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
57 |
58 |     public static let fast     = Flags(rawValue: 1 << 9)
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:58:23: warning: static property 'fast' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
56 |     public static let stale    = Flags(rawValue: 1 << 8)
57 |
58 |     public static let fast     = Flags(rawValue: 1 << 9)
   |                       |- warning: static property 'fast' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'fast' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
59 |
60 |     public static let sortForScript = Flags(rawValue: 1 << 10)
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:60:23: warning: static property 'sortForScript' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
58 |     public static let fast     = Flags(rawValue: 1 << 9)
59 |
60 |     public static let sortForScript = Flags(rawValue: 1 << 10)
   |                       |- warning: static property 'sortForScript' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'sortForScript' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 |
62 |     public var stringArray : [ String ] {
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:122:18: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
120 |     ctx.context.writeAndFlush(NIOAny(RESPValue.ok))
121 |                .whenComplete { _ in
122 |                  ctx.context.channel.close(promise: nil)
    |                  `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
123 |                }
124 |   }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:182:21: warning: capture of 'server' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
180 |     server.Q.async {
181 |
182 |       let clients = server.clients.values
    |                     `- warning: capture of 'server' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
183 |
184 |       // do not block the server
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:26:12: note: class 'RedisServer' does not conform to the 'Sendable' protocol
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:187:39: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
185 |       listQueue.async {
186 |         var count  = clients.count
187 |         guard count > 0 else { return ctx.write("") } // Never
    |                                       `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
188 |
189 |         var result = ByteBufferAllocator().buffer(capacity: 1024)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:186:22: warning: capture of 'clients' with non-sendable type 'Dictionary<ObjectIdentifier, RedisCommandHandler>.Values' in a '@Sendable' closure; this is an error in the Swift 6 language mode
184 |       // do not block the server
185 |       listQueue.async {
186 |         var count  = clients.count
    |                      `- warning: capture of 'clients' with non-sendable type 'Dictionary<ObjectIdentifier, RedisCommandHandler>.Values' in a '@Sendable' closure; this is an error in the Swift 6 language mode
187 |         guard count > 0 else { return ctx.write("") } // Never
188 |
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:187:39: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
185 |       listQueue.async {
186 |         var count  = clients.count
187 |         guard count > 0 else { return ctx.write("") } // Never
    |                                       `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
188 |
189 |         var result = ByteBufferAllocator().buffer(capacity: 1024)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:199:15: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in an isolated local function; this is an error in the Swift 6 language mode
197 |
198 |             if count == 0 {
199 |               ctx.write(.bulkString(result))
    |               `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in an isolated local function; this is an error in the Swift 6 language mode
200 |             }
201 |           }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:199:15: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
197 |
198 |             if count == 0 {
199 |               ctx.write(.bulkString(result))
    |               `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
200 |             }
201 |           }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:192:20: warning: reference to captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
190 |         func yield(_ info: RedisCommandHandler.ClientInfo) {
191 |           listQueue.async {
192 |             assert(count > 0)
    |                    `- warning: reference to captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
193 |             count -= 1
194 |
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:193:13: warning: mutation of captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
191 |           listQueue.async {
192 |             assert(count > 0)
193 |             count -= 1
    |             `- warning: mutation of captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
194 |
195 |             result.writeString(info.redisClientLogLine)
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:195:13: warning: mutation of captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
193 |             count -= 1
194 |
195 |             result.writeString(info.redisClientLogLine)
    |             `- warning: mutation of captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
196 |             result.writeInteger(10 as UInt8)
197 |
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:196:13: warning: mutation of captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
194 |
195 |             result.writeString(info.redisClientLogLine)
196 |             result.writeInteger(10 as UInt8)
    |             `- warning: mutation of captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
197 |
198 |             if count == 0 {
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:198:16: warning: reference to captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
196 |             result.writeInteger(10 as UInt8)
197 |
198 |             if count == 0 {
    |                `- warning: reference to captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
199 |               ctx.write(.bulkString(result))
200 |             }
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:199:37: warning: reference to captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
197 |
198 |             if count == 0 {
199 |               ctx.write(.bulkString(result))
    |                                     `- warning: reference to captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
200 |             }
201 |           }
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:209:15: warning: capture of 'yield' with non-sendable type '(RedisCommandHandler.ClientInfo) -> ()' in a '@Sendable' closure
207 |           if let eventLoop = client.eventLoop {
208 |             eventLoop.execute {
209 |               yield(client.getClientInfo())
    |               |- warning: capture of 'yield' with non-sendable type '(RedisCommandHandler.ClientInfo) -> ()' in a '@Sendable' closure
    |               `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
210 |             }
211 |           }
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:209:21: warning: capture of 'client' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
207 |           if let eventLoop = client.eventLoop {
208 |             eventLoop.execute {
209 |               yield(client.getClientInfo())
    |                     `- warning: capture of 'client' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
210 |             }
211 |           }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:190:14: warning: concurrently-executed local function 'yield' must be marked as '@Sendable'
188 |
189 |         var result = ByteBufferAllocator().buffer(capacity: 1024)
190 |         func yield(_ info: RedisCommandHandler.ClientInfo) {
    |              `- warning: concurrently-executed local function 'yield' must be marked as '@Sendable'
191 |           listQueue.async {
192 |             assert(count > 0)
/host/spi-builder-workspace/Sources/RedisServer/Commands/SetCommands.swift:36:9: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 34 |
 35 |       ctx.eventLoop.execute {
 36 |         ctx.write(set.toRESPValue())
    |         `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 37 |       }
 38 |     }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
[274/286] Compiling RedisServer ServerCommands.swift
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:32:23: warning: static property 'write' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
30 |
31 |     /// command may result in modifications
32 |     public static let write    = Flags(rawValue: 1 << 0)
   |                       |- warning: static property 'write' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'write' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
33 |
34 |     /// command will never modify keys
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:35:23: warning: static property 'readonly' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
33 |
34 |     /// command will never modify keys
35 |     public static let readonly = Flags(rawValue: 1 << 1)
   |                       |- warning: static property 'readonly' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'readonly' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 |     /// reject command if currently OOM
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:38:23: warning: static property 'denyoom' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
36 |
37 |     /// reject command if currently OOM
38 |     public static let denyoom  = Flags(rawValue: 1 << 2)
   |                       |- warning: static property 'denyoom' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'denyoom' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 |
40 |     /// server admin command
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:41:23: warning: static property 'admin' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
39 |
40 |     /// server admin command
41 |     public static let admin    = Flags(rawValue: 1 << 3)
   |                       |- warning: static property 'admin' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'admin' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |
43 |     /// pubsub-related command
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:44:23: warning: static property 'pubsub' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
42 |
43 |     /// pubsub-related command
44 |     public static let pubsub   = Flags(rawValue: 1 << 4)
   |                       |- warning: static property 'pubsub' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'pubsub' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 |
46 |     /// deny this command from scripts
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:47:23: warning: static property 'noscript' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
45 |
46 |     /// deny this command from scripts
47 |     public static let noscript = Flags(rawValue: 1 << 5)
   |                       |- warning: static property 'noscript' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'noscript' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
48 |
49 |     /// command has random results, dangerous for scripts
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:50:23: warning: static property 'random' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
48 |
49 |     /// command has random results, dangerous for scripts
50 |     public static let random   = Flags(rawValue: 1 << 6)
   |                       |- warning: static property 'random' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'random' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     /// allow command while database is loading
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:53:23: warning: static property 'loading' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
51 |
52 |     /// allow command while database is loading
53 |     public static let loading  = Flags(rawValue: 1 << 7)
   |                       |- warning: static property 'loading' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'loading' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 |
55 |     /// allow command while replica has stale data
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:56:23: warning: static property 'stale' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
54 |
55 |     /// allow command while replica has stale data
56 |     public static let stale    = Flags(rawValue: 1 << 8)
   |                       |- warning: static property 'stale' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'stale' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
57 |
58 |     public static let fast     = Flags(rawValue: 1 << 9)
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:58:23: warning: static property 'fast' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
56 |     public static let stale    = Flags(rawValue: 1 << 8)
57 |
58 |     public static let fast     = Flags(rawValue: 1 << 9)
   |                       |- warning: static property 'fast' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'fast' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
59 |
60 |     public static let sortForScript = Flags(rawValue: 1 << 10)
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:60:23: warning: static property 'sortForScript' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
58 |     public static let fast     = Flags(rawValue: 1 << 9)
59 |
60 |     public static let sortForScript = Flags(rawValue: 1 << 10)
   |                       |- warning: static property 'sortForScript' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'sortForScript' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 |
62 |     public var stringArray : [ String ] {
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:122:18: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
120 |     ctx.context.writeAndFlush(NIOAny(RESPValue.ok))
121 |                .whenComplete { _ in
122 |                  ctx.context.channel.close(promise: nil)
    |                  `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
123 |                }
124 |   }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:182:21: warning: capture of 'server' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
180 |     server.Q.async {
181 |
182 |       let clients = server.clients.values
    |                     `- warning: capture of 'server' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
183 |
184 |       // do not block the server
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:26:12: note: class 'RedisServer' does not conform to the 'Sendable' protocol
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:187:39: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
185 |       listQueue.async {
186 |         var count  = clients.count
187 |         guard count > 0 else { return ctx.write("") } // Never
    |                                       `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
188 |
189 |         var result = ByteBufferAllocator().buffer(capacity: 1024)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:186:22: warning: capture of 'clients' with non-sendable type 'Dictionary<ObjectIdentifier, RedisCommandHandler>.Values' in a '@Sendable' closure; this is an error in the Swift 6 language mode
184 |       // do not block the server
185 |       listQueue.async {
186 |         var count  = clients.count
    |                      `- warning: capture of 'clients' with non-sendable type 'Dictionary<ObjectIdentifier, RedisCommandHandler>.Values' in a '@Sendable' closure; this is an error in the Swift 6 language mode
187 |         guard count > 0 else { return ctx.write("") } // Never
188 |
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:187:39: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
185 |       listQueue.async {
186 |         var count  = clients.count
187 |         guard count > 0 else { return ctx.write("") } // Never
    |                                       `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
188 |
189 |         var result = ByteBufferAllocator().buffer(capacity: 1024)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:199:15: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in an isolated local function; this is an error in the Swift 6 language mode
197 |
198 |             if count == 0 {
199 |               ctx.write(.bulkString(result))
    |               `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in an isolated local function; this is an error in the Swift 6 language mode
200 |             }
201 |           }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:199:15: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
197 |
198 |             if count == 0 {
199 |               ctx.write(.bulkString(result))
    |               `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
200 |             }
201 |           }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:192:20: warning: reference to captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
190 |         func yield(_ info: RedisCommandHandler.ClientInfo) {
191 |           listQueue.async {
192 |             assert(count > 0)
    |                    `- warning: reference to captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
193 |             count -= 1
194 |
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:193:13: warning: mutation of captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
191 |           listQueue.async {
192 |             assert(count > 0)
193 |             count -= 1
    |             `- warning: mutation of captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
194 |
195 |             result.writeString(info.redisClientLogLine)
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:195:13: warning: mutation of captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
193 |             count -= 1
194 |
195 |             result.writeString(info.redisClientLogLine)
    |             `- warning: mutation of captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
196 |             result.writeInteger(10 as UInt8)
197 |
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:196:13: warning: mutation of captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
194 |
195 |             result.writeString(info.redisClientLogLine)
196 |             result.writeInteger(10 as UInt8)
    |             `- warning: mutation of captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
197 |
198 |             if count == 0 {
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:198:16: warning: reference to captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
196 |             result.writeInteger(10 as UInt8)
197 |
198 |             if count == 0 {
    |                `- warning: reference to captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
199 |               ctx.write(.bulkString(result))
200 |             }
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:199:37: warning: reference to captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
197 |
198 |             if count == 0 {
199 |               ctx.write(.bulkString(result))
    |                                     `- warning: reference to captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
200 |             }
201 |           }
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:209:15: warning: capture of 'yield' with non-sendable type '(RedisCommandHandler.ClientInfo) -> ()' in a '@Sendable' closure
207 |           if let eventLoop = client.eventLoop {
208 |             eventLoop.execute {
209 |               yield(client.getClientInfo())
    |               |- warning: capture of 'yield' with non-sendable type '(RedisCommandHandler.ClientInfo) -> ()' in a '@Sendable' closure
    |               `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
210 |             }
211 |           }
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:209:21: warning: capture of 'client' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
207 |           if let eventLoop = client.eventLoop {
208 |             eventLoop.execute {
209 |               yield(client.getClientInfo())
    |                     `- warning: capture of 'client' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
210 |             }
211 |           }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:190:14: warning: concurrently-executed local function 'yield' must be marked as '@Sendable'
188 |
189 |         var result = ByteBufferAllocator().buffer(capacity: 1024)
190 |         func yield(_ info: RedisCommandHandler.ClientInfo) {
    |              `- warning: concurrently-executed local function 'yield' must be marked as '@Sendable'
191 |           listQueue.async {
192 |             assert(count > 0)
/host/spi-builder-workspace/Sources/RedisServer/Commands/SetCommands.swift:36:9: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 34 |
 35 |       ctx.eventLoop.execute {
 36 |         ctx.write(set.toRESPValue())
    |         `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 37 |       }
 38 |     }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
[275/286] Compiling RedisServer SetCommands.swift
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:32:23: warning: static property 'write' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
30 |
31 |     /// command may result in modifications
32 |     public static let write    = Flags(rawValue: 1 << 0)
   |                       |- warning: static property 'write' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'write' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
33 |
34 |     /// command will never modify keys
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:35:23: warning: static property 'readonly' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
33 |
34 |     /// command will never modify keys
35 |     public static let readonly = Flags(rawValue: 1 << 1)
   |                       |- warning: static property 'readonly' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'readonly' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 |     /// reject command if currently OOM
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:38:23: warning: static property 'denyoom' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
36 |
37 |     /// reject command if currently OOM
38 |     public static let denyoom  = Flags(rawValue: 1 << 2)
   |                       |- warning: static property 'denyoom' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'denyoom' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 |
40 |     /// server admin command
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:41:23: warning: static property 'admin' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
39 |
40 |     /// server admin command
41 |     public static let admin    = Flags(rawValue: 1 << 3)
   |                       |- warning: static property 'admin' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'admin' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |
43 |     /// pubsub-related command
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:44:23: warning: static property 'pubsub' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
42 |
43 |     /// pubsub-related command
44 |     public static let pubsub   = Flags(rawValue: 1 << 4)
   |                       |- warning: static property 'pubsub' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'pubsub' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 |
46 |     /// deny this command from scripts
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:47:23: warning: static property 'noscript' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
45 |
46 |     /// deny this command from scripts
47 |     public static let noscript = Flags(rawValue: 1 << 5)
   |                       |- warning: static property 'noscript' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'noscript' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
48 |
49 |     /// command has random results, dangerous for scripts
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:50:23: warning: static property 'random' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
48 |
49 |     /// command has random results, dangerous for scripts
50 |     public static let random   = Flags(rawValue: 1 << 6)
   |                       |- warning: static property 'random' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'random' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 |
52 |     /// allow command while database is loading
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:53:23: warning: static property 'loading' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
51 |
52 |     /// allow command while database is loading
53 |     public static let loading  = Flags(rawValue: 1 << 7)
   |                       |- warning: static property 'loading' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'loading' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
54 |
55 |     /// allow command while replica has stale data
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:56:23: warning: static property 'stale' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
54 |
55 |     /// allow command while replica has stale data
56 |     public static let stale    = Flags(rawValue: 1 << 8)
   |                       |- warning: static property 'stale' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'stale' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
57 |
58 |     public static let fast     = Flags(rawValue: 1 << 9)
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:58:23: warning: static property 'fast' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
56 |     public static let stale    = Flags(rawValue: 1 << 8)
57 |
58 |     public static let fast     = Flags(rawValue: 1 << 9)
   |                       |- warning: static property 'fast' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'fast' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
59 |
60 |     public static let sortForScript = Flags(rawValue: 1 << 10)
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:60:23: warning: static property 'sortForScript' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
23 |   public let flags : Flags
24 |
25 |   public struct Flags : OptionSet, RESPEncodable, CustomStringConvertible {
   |                 `- note: consider making struct 'Flags' conform to the 'Sendable' protocol
26 |
27 |     public let rawValue : Int
   :
58 |     public static let fast     = Flags(rawValue: 1 << 9)
59 |
60 |     public static let sortForScript = Flags(rawValue: 1 << 10)
   |                       |- warning: static property 'sortForScript' is not concurrency-safe because non-'Sendable' type 'RedisCommand.Flags' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'sortForScript' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 |
62 |     public var stringArray : [ String ] {
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:122:18: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
120 |     ctx.context.writeAndFlush(NIOAny(RESPValue.ok))
121 |                .whenComplete { _ in
122 |                  ctx.context.channel.close(promise: nil)
    |                  `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
123 |                }
124 |   }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:182:21: warning: capture of 'server' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
180 |     server.Q.async {
181 |
182 |       let clients = server.clients.values
    |                     `- warning: capture of 'server' with non-sendable type 'RedisServer' in a '@Sendable' closure; this is an error in the Swift 6 language mode
183 |
184 |       // do not block the server
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisServer.swift:26:12: note: class 'RedisServer' does not conform to the 'Sendable' protocol
 24 | public let DefaultRedisPort = 6379
 25 |
 26 | open class RedisServer {
    |            `- note: class 'RedisServer' does not conform to the 'Sendable' protocol
 27 |
 28 |   public typealias Command = RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:187:39: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
185 |       listQueue.async {
186 |         var count  = clients.count
187 |         guard count > 0 else { return ctx.write("") } // Never
    |                                       `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
188 |
189 |         var result = ByteBufferAllocator().buffer(capacity: 1024)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:186:22: warning: capture of 'clients' with non-sendable type 'Dictionary<ObjectIdentifier, RedisCommandHandler>.Values' in a '@Sendable' closure; this is an error in the Swift 6 language mode
184 |       // do not block the server
185 |       listQueue.async {
186 |         var count  = clients.count
    |                      `- warning: capture of 'clients' with non-sendable type 'Dictionary<ObjectIdentifier, RedisCommandHandler>.Values' in a '@Sendable' closure; this is an error in the Swift 6 language mode
187 |         guard count > 0 else { return ctx.write("") } // Never
188 |
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:187:39: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
185 |       listQueue.async {
186 |         var count  = clients.count
187 |         guard count > 0 else { return ctx.write("") } // Never
    |                                       `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
188 |
189 |         var result = ByteBufferAllocator().buffer(capacity: 1024)
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:199:15: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in an isolated local function; this is an error in the Swift 6 language mode
197 |
198 |             if count == 0 {
199 |               ctx.write(.bulkString(result))
    |               `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in an isolated local function; this is an error in the Swift 6 language mode
200 |             }
201 |           }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:199:15: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
197 |
198 |             if count == 0 {
199 |               ctx.write(.bulkString(result))
    |               `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure; this is an error in the Swift 6 language mode
200 |             }
201 |           }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:192:20: warning: reference to captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
190 |         func yield(_ info: RedisCommandHandler.ClientInfo) {
191 |           listQueue.async {
192 |             assert(count > 0)
    |                    `- warning: reference to captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
193 |             count -= 1
194 |
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:193:13: warning: mutation of captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
191 |           listQueue.async {
192 |             assert(count > 0)
193 |             count -= 1
    |             `- warning: mutation of captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
194 |
195 |             result.writeString(info.redisClientLogLine)
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:195:13: warning: mutation of captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
193 |             count -= 1
194 |
195 |             result.writeString(info.redisClientLogLine)
    |             `- warning: mutation of captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
196 |             result.writeInteger(10 as UInt8)
197 |
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:196:13: warning: mutation of captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
194 |
195 |             result.writeString(info.redisClientLogLine)
196 |             result.writeInteger(10 as UInt8)
    |             `- warning: mutation of captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
197 |
198 |             if count == 0 {
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:198:16: warning: reference to captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
196 |             result.writeInteger(10 as UInt8)
197 |
198 |             if count == 0 {
    |                `- warning: reference to captured var 'count' in concurrently-executing code; this is an error in the Swift 6 language mode
199 |               ctx.write(.bulkString(result))
200 |             }
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:199:37: warning: reference to captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
197 |
198 |             if count == 0 {
199 |               ctx.write(.bulkString(result))
    |                                     `- warning: reference to captured var 'result' in concurrently-executing code; this is an error in the Swift 6 language mode
200 |             }
201 |           }
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:209:15: warning: capture of 'yield' with non-sendable type '(RedisCommandHandler.ClientInfo) -> ()' in a '@Sendable' closure
207 |           if let eventLoop = client.eventLoop {
208 |             eventLoop.execute {
209 |               yield(client.getClientInfo())
    |               |- warning: capture of 'yield' with non-sendable type '(RedisCommandHandler.ClientInfo) -> ()' in a '@Sendable' closure
    |               `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
210 |             }
211 |           }
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:209:21: warning: capture of 'client' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
207 |           if let eventLoop = client.eventLoop {
208 |             eventLoop.execute {
209 |               yield(client.getClientInfo())
    |                     `- warning: capture of 'client' with non-sendable type 'RedisCommandHandler' in a '@Sendable' closure
210 |             }
211 |           }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandHandler.swift:32:13: note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 30 |  *
 31 |  */
 32 | final class RedisCommandHandler : RESPChannelHandler {
    |             `- note: class 'RedisCommandHandler' does not conform to the 'Sendable' protocol
 33 |   // See [Avoid NIO Pipeline](Performance.md#avoid-nio-pipeline-for-non-bb)
 34 |   // for the reason why this is a subclass (instead of a consumer of the
/host/spi-builder-workspace/Sources/RedisServer/Commands/ServerCommands.swift:190:14: warning: concurrently-executed local function 'yield' must be marked as '@Sendable'
188 |
189 |         var result = ByteBufferAllocator().buffer(capacity: 1024)
190 |         func yield(_ info: RedisCommandHandler.ClientInfo) {
    |              `- warning: concurrently-executed local function 'yield' must be marked as '@Sendable'
191 |           listQueue.async {
192 |             assert(count > 0)
/host/spi-builder-workspace/Sources/RedisServer/Commands/SetCommands.swift:36:9: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 34 |
 35 |       ctx.eventLoop.execute {
 36 |         ctx.write(set.toRESPValue())
    |         `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 37 |       }
 38 |     }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
[276/286] Compiling RedisServer RedisLogger.swift
[277/286] Compiling RedisServer RedisPattern.swift
[278/286] Compiling RedisServer Utilities.swift
[279/286] Compiling RedisServer CommandTable.swift
/host/spi-builder-workspace/Sources/RedisServer/Commands/CommandTable.swift:23:14: warning: static property 'defaultCommandTable' is not concurrency-safe because non-'Sendable' type 'RedisCommandTable' (aka 'Array<RedisCommand>') may have shared mutable state; this is an error in the Swift 6 language mode
 21 | extension RedisServer {
 22 |
 23 |   static let defaultCommandTable : RedisCommandTable = [
    |              |- warning: static property 'defaultCommandTable' is not concurrency-safe because non-'Sendable' type 'RedisCommandTable' (aka 'Array<RedisCommand>') may have shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: add '@MainActor' to make static property 'defaultCommandTable' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 24 |     // command is funny in that arity is 0
 25 |     Command(name  : "COMMAND",
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:19:15: note: consider making struct 'RedisCommand' conform to the 'Sendable' protocol
17 | import struct Foundation.Data
18 |
19 | public struct RedisCommand : RESPEncodable {
   |               `- note: consider making struct 'RedisCommand' conform to the 'Sendable' protocol
20 |
21 |   public let name  : String
/host/spi-builder-workspace/Sources/RedisServer/Commands/HashCommands.swift:79:9: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 77 |       ctx.eventLoop.execute {
 78 |         let keys = hash.keys.lazy.map { RESPValue(bulkString: $0) }
 79 |         ctx.write(.array(ContiguousArray(keys)))
    |         `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 80 |       }
 81 |     }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/HashCommands.swift:91:9: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 89 |       ctx.eventLoop.execute {
 90 |         let vals = hash.values.lazy.map { RESPValue.bulkString($0) }
 91 |         ctx.write(.array(ContiguousArray(vals)))
    |         `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 92 |       }
 93 |     }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/HashCommands.swift:253:9: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
251 |           results.append(RESPValue.bulkString(hash[key]))
252 |         }
253 |         ctx.write(RESPValue.array(results))
    |         `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
254 |       }
255 |     }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
[280/286] Compiling RedisServer CommandType.swift
/host/spi-builder-workspace/Sources/RedisServer/Commands/CommandTable.swift:23:14: warning: static property 'defaultCommandTable' is not concurrency-safe because non-'Sendable' type 'RedisCommandTable' (aka 'Array<RedisCommand>') may have shared mutable state; this is an error in the Swift 6 language mode
 21 | extension RedisServer {
 22 |
 23 |   static let defaultCommandTable : RedisCommandTable = [
    |              |- warning: static property 'defaultCommandTable' is not concurrency-safe because non-'Sendable' type 'RedisCommandTable' (aka 'Array<RedisCommand>') may have shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: add '@MainActor' to make static property 'defaultCommandTable' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 24 |     // command is funny in that arity is 0
 25 |     Command(name  : "COMMAND",
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:19:15: note: consider making struct 'RedisCommand' conform to the 'Sendable' protocol
17 | import struct Foundation.Data
18 |
19 | public struct RedisCommand : RESPEncodable {
   |               `- note: consider making struct 'RedisCommand' conform to the 'Sendable' protocol
20 |
21 |   public let name  : String
/host/spi-builder-workspace/Sources/RedisServer/Commands/HashCommands.swift:79:9: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 77 |       ctx.eventLoop.execute {
 78 |         let keys = hash.keys.lazy.map { RESPValue(bulkString: $0) }
 79 |         ctx.write(.array(ContiguousArray(keys)))
    |         `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 80 |       }
 81 |     }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/HashCommands.swift:91:9: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 89 |       ctx.eventLoop.execute {
 90 |         let vals = hash.values.lazy.map { RESPValue.bulkString($0) }
 91 |         ctx.write(.array(ContiguousArray(vals)))
    |         `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 92 |       }
 93 |     }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/HashCommands.swift:253:9: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
251 |           results.append(RESPValue.bulkString(hash[key]))
252 |         }
253 |         ctx.write(RESPValue.array(results))
    |         `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
254 |       }
255 |     }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
[281/286] Compiling RedisServer ExpirationCommands.swift
/host/spi-builder-workspace/Sources/RedisServer/Commands/CommandTable.swift:23:14: warning: static property 'defaultCommandTable' is not concurrency-safe because non-'Sendable' type 'RedisCommandTable' (aka 'Array<RedisCommand>') may have shared mutable state; this is an error in the Swift 6 language mode
 21 | extension RedisServer {
 22 |
 23 |   static let defaultCommandTable : RedisCommandTable = [
    |              |- warning: static property 'defaultCommandTable' is not concurrency-safe because non-'Sendable' type 'RedisCommandTable' (aka 'Array<RedisCommand>') may have shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: add '@MainActor' to make static property 'defaultCommandTable' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 24 |     // command is funny in that arity is 0
 25 |     Command(name  : "COMMAND",
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:19:15: note: consider making struct 'RedisCommand' conform to the 'Sendable' protocol
17 | import struct Foundation.Data
18 |
19 | public struct RedisCommand : RESPEncodable {
   |               `- note: consider making struct 'RedisCommand' conform to the 'Sendable' protocol
20 |
21 |   public let name  : String
/host/spi-builder-workspace/Sources/RedisServer/Commands/HashCommands.swift:79:9: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 77 |       ctx.eventLoop.execute {
 78 |         let keys = hash.keys.lazy.map { RESPValue(bulkString: $0) }
 79 |         ctx.write(.array(ContiguousArray(keys)))
    |         `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 80 |       }
 81 |     }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/HashCommands.swift:91:9: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 89 |       ctx.eventLoop.execute {
 90 |         let vals = hash.values.lazy.map { RESPValue.bulkString($0) }
 91 |         ctx.write(.array(ContiguousArray(vals)))
    |         `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 92 |       }
 93 |     }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/HashCommands.swift:253:9: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
251 |           results.append(RESPValue.bulkString(hash[key]))
252 |         }
253 |         ctx.write(RESPValue.array(results))
    |         `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
254 |       }
255 |     }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
[282/286] Compiling RedisServer HashCommands.swift
/host/spi-builder-workspace/Sources/RedisServer/Commands/CommandTable.swift:23:14: warning: static property 'defaultCommandTable' is not concurrency-safe because non-'Sendable' type 'RedisCommandTable' (aka 'Array<RedisCommand>') may have shared mutable state; this is an error in the Swift 6 language mode
 21 | extension RedisServer {
 22 |
 23 |   static let defaultCommandTable : RedisCommandTable = [
    |              |- warning: static property 'defaultCommandTable' is not concurrency-safe because non-'Sendable' type 'RedisCommandTable' (aka 'Array<RedisCommand>') may have shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: add '@MainActor' to make static property 'defaultCommandTable' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 24 |     // command is funny in that arity is 0
 25 |     Command(name  : "COMMAND",
/host/spi-builder-workspace/Sources/RedisServer/Commands/RedisCommand.swift:19:15: note: consider making struct 'RedisCommand' conform to the 'Sendable' protocol
17 | import struct Foundation.Data
18 |
19 | public struct RedisCommand : RESPEncodable {
   |               `- note: consider making struct 'RedisCommand' conform to the 'Sendable' protocol
20 |
21 |   public let name  : String
/host/spi-builder-workspace/Sources/RedisServer/Commands/HashCommands.swift:79:9: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 77 |       ctx.eventLoop.execute {
 78 |         let keys = hash.keys.lazy.map { RESPValue(bulkString: $0) }
 79 |         ctx.write(.array(ContiguousArray(keys)))
    |         `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 80 |       }
 81 |     }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/HashCommands.swift:91:9: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 89 |       ctx.eventLoop.execute {
 90 |         let vals = hash.values.lazy.map { RESPValue.bulkString($0) }
 91 |         ctx.write(.array(ContiguousArray(vals)))
    |         `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
 92 |       }
 93 |     }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
/host/spi-builder-workspace/Sources/RedisServer/Commands/HashCommands.swift:253:9: warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
251 |           results.append(RESPValue.bulkString(hash[key]))
252 |         }
253 |         ctx.write(RESPValue.array(results))
    |         `- warning: capture of 'ctx' with non-sendable type 'Commands.CommandContext' (aka 'RedisCommandContext') in a '@Sendable' closure
254 |       }
255 |     }
/host/spi-builder-workspace/Sources/RedisServer/Server/RedisCommandContext.swift:22:15: note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 20 |  * The environment commands need to run.
 21 |  */
 22 | public struct RedisCommandContext {
    |               `- note: consider making struct 'RedisCommandContext' conform to the 'Sendable' protocol
 23 |
 24 |   let command   : RedisCommand
[283/287] Wrapping AST for RedisServer for debugging
[285/290] Compiling redi_s main.swift
[286/290] Emitting module redi_s
[287/290] Compiling redi_s ConfigFile.swift
[288/291] Wrapping AST for redi-s for debugging
[289/291] Write Objects.LinkFileList
[290/291] Linking redi-s
Build complete! (66.09s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-nio-redis",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.11.0",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/SwiftNIOExtras/swift-nio-redis.git"
    },
    {
      "identity" : "swift-atomics",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-atomics"
    }
  ],
  "manifest_display_name" : "redi-s",
  "name" : "redi-s",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "RedisServer",
      "targets" : [
        "RedisServer"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "redi-s",
      "targets" : [
        "redi-s"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "redi_s",
      "module_type" : "SwiftTarget",
      "name" : "redi-s",
      "path" : "Sources/redi-s",
      "product_memberships" : [
        "redi-s"
      ],
      "sources" : [
        "ConfigFile.swift",
        "main.swift"
      ],
      "target_dependencies" : [
        "RedisServer"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "RedisServer",
      "module_type" : "SwiftTarget",
      "name" : "RedisServer",
      "path" : "Sources/RedisServer",
      "product_dependencies" : [
        "NIORedis",
        "Atomics"
      ],
      "product_memberships" : [
        "RedisServer",
        "redi-s"
      ],
      "sources" : [
        "Commands/CommandTable.swift",
        "Commands/CommandType.swift",
        "Commands/ExpirationCommands.swift",
        "Commands/HashCommands.swift",
        "Commands/IntCommands.swift",
        "Commands/KeyCommands.swift",
        "Commands/ListCommands.swift",
        "Commands/PubSubCommands.swift",
        "Commands/RedisCommand.swift",
        "Commands/ServerCommands.swift",
        "Commands/SetCommands.swift",
        "Commands/StringCommands.swift",
        "Database/Database.swift",
        "Database/DumpManager.swift",
        "Helpers/RedisLogger.swift",
        "Helpers/RedisPattern.swift",
        "Helpers/Utilities.swift",
        "Server/Monitor.swift",
        "Server/PubSub.swift",
        "Server/RedisCommandContext.swift",
        "Server/RedisCommandHandler.swift",
        "Server/RedisServer.swift",
        "Values/RedisError.swift",
        "Values/RedisList.swift",
        "Values/RedisValue.swift",
        "Values/RedisValueCoding.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.0"
}
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Done.