Build Information
Successful build of swift-nio-redis-client, reference develop (7e24d6
), with Swift 6.1 for Linux on 26 Apr 2025 09:36:12 UTC.
Swift 6 data race errors: 2
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-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
========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/NozeIO/swift-nio-redis-client.git
Reference: develop
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/NozeIO/swift-nio-redis-client
* branch develop -> FETCH_HEAD
* [new branch] develop -> origin/develop
HEAD is now at 7e24d61 Accidentially grabbed .github from somewhere else?
Cloned https://github.com/NozeIO/swift-nio-redis-client.git
Revision (git rev-parse @):
7e24d6163cfd07b6e296a0421a48bdbb817c7a06
SUCCESS checkout https://github.com/NozeIO/swift-nio-redis-client.git at develop
========================================
Build
========================================
Selected platform: linux
Swift version: 6.1
Building package at path: $PWD
https://github.com/NozeIO/swift-nio-redis-client.git
https://github.com/NozeIO/swift-nio-redis-client.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
"dependencies" : [
{
"identity" : "swift-nio",
"requirement" : {
"range" : [
{
"lower_bound" : "2.20.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-nio.git"
},
{
"identity" : "swift-nio-redis",
"requirement" : {
"range" : [
{
"lower_bound" : "0.10.3",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/SwiftNIOExtras/swift-nio-redis.git"
}
],
"manifest_display_name" : "swift-nio-redis-client",
"name" : "swift-nio-redis-client",
"path" : "/host/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Redis",
"targets" : [
"Redis"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "RedisTests",
"module_type" : "SwiftTarget",
"name" : "RedisTests",
"path" : "Tests/RedisTests",
"sources" : [
"RedisClientTests.swift",
"XCTestManifests.swift"
],
"target_dependencies" : [
"Redis"
],
"type" : "test"
},
{
"c99name" : "Redis",
"module_type" : "SwiftTarget",
"name" : "Redis",
"path" : "Sources/Redis",
"product_dependencies" : [
"NIORedis"
],
"product_memberships" : [
"Redis"
],
"sources" : [
"RedisClient.swift",
"RedisClientOptions.swift",
"RedisCommand.swift",
"RedisCommandTarget.swift",
"RedisPrint.swift",
"RedisRetry.swift",
"RedisTypeTransformable.swift"
],
"type" : "library"
}
],
"tools_version" : "5.0"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-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
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
Fetching https://github.com/apple/swift-nio.git
Fetching https://github.com/SwiftNIOExtras/swift-nio-redis.git
[1/359] Fetching swift-nio-redis
[360/75790] Fetching swift-nio-redis, swift-nio
Fetched https://github.com/SwiftNIOExtras/swift-nio-redis.git from cache (4.17s)
Fetched https://github.com/apple/swift-nio.git from cache (4.26s)
Computing version for https://github.com/SwiftNIOExtras/swift-nio-redis.git
Computed https://github.com/SwiftNIOExtras/swift-nio-redis.git at 0.11.0 (5.65s)
Computing version for https://github.com/apple/swift-nio.git
Computed https://github.com/apple/swift-nio.git at 2.82.0 (1.01s)
Fetching https://github.com/apple/swift-atomics.git
Fetching https://github.com/apple/swift-collections.git
Fetching https://github.com/apple/swift-system.git
[1/4353] Fetching swift-system
[2/6058] Fetching swift-system, swift-atomics
[1271/22300] Fetching swift-system, swift-atomics, swift-collections
Fetched https://github.com/apple/swift-atomics.git from cache (0.88s)
Fetched https://github.com/apple/swift-system.git from cache (1.32s)
Fetched https://github.com/apple/swift-collections.git from cache (1.35s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.2.0 (1.80s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.4.2 (0.56s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.1.4 (0.68s)
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.1.4
Creating working copy for https://github.com/apple/swift-system.git
Working copy of https://github.com/apple/swift-system.git resolved at 1.4.2
Creating working copy for https://github.com/apple/swift-atomics.git
Working copy of https://github.com/apple/swift-atomics.git resolved at 1.2.0
Creating working copy for https://github.com/SwiftNIOExtras/swift-nio-redis.git
Working copy of https://github.com/SwiftNIOExtras/swift-nio-redis.git resolved at 0.11.0
Creating working copy for https://github.com/apple/swift-nio.git
Working copy of https://github.com/apple/swift-nio.git resolved at 2.82.0
warning: 'spi-builder-workspace': dependency 'swift-nio' is not used by any target
Building for debugging...
[0/23] Write sources
[12/23] Compiling CNIOWindows WSAStartup.c
[13/23] Compiling CNIOWASI CNIOWASI.c
[13/23] Compiling CNIOLinux liburing_shims.c
[14/23] Compiling _AtomicsShims.c
[14/23] Compiling CNIODarwin shim.c
[16/23] Write sources
[18/23] Compiling CNIOWindows shim.c
[19/23] Compiling CNIOLinux shim.c
[20/23] Write swift-version-24593BA9C3E375BF.txt
[21/65] Compiling c-nioatomics.c
[23/65] Compiling InternalCollectionsUtilities RandomAccessCollection+Offsets.swift
[24/65] Compiling InternalCollectionsUtilities Specialize.swift
[25/67] Emitting module _NIOBase64
[26/67] Compiling _NIOBase64 Base64.swift
[27/68] Compiling InternalCollectionsUtilities _UnsafeBitSet+_Word.swift
[28/68] Compiling InternalCollectionsUtilities _UnsafeBitSet.swift
[29/68] Compiling InternalCollectionsUtilities _SortedCollection.swift
[30/68] Compiling InternalCollectionsUtilities _UniqueCollection.swift
[31/68] Compiling _NIODataStructures PriorityQueue.swift
[32/68] Compiling _NIODataStructures _TinyArray.swift
[33/68] Emitting module Atomics
[33/70] Compiling c-atomics.c
[35/70] Compiling InternalCollectionsUtilities FixedWidthInteger+roundUpToPowerOfTwo.swift
[36/70] Compiling InternalCollectionsUtilities Integer rank.swift
[37/70] Compiling InternalCollectionsUtilities UInt+first and last set bit.swift
[38/70] Compiling InternalCollectionsUtilities UInt+reversed.swift
[39/70] Compiling InternalCollectionsUtilities _UnsafeBitSet+Index.swift
[41/70] Compiling InternalCollectionsUtilities UnsafeBufferPointer+Extras.swift
[42/70] Compiling InternalCollectionsUtilities UnsafeMutableBufferPointer+Extras.swift
[43/70] Compiling InternalCollectionsUtilities Debugging.swift
[44/70] Compiling InternalCollectionsUtilities Descriptions.swift
[60/70] Compiling InternalCollectionsUtilities UnsafeMutableBufferPointer+SE-0370.swift
[61/70] Compiling InternalCollectionsUtilities UnsafeMutablePointer+SE-0370.swift
[62/70] Compiling InternalCollectionsUtilities UnsafeRawPointer extensions.swift
[63/72] Emitting module InternalCollectionsUtilities
[68/77] Compiling Atomics IntegerOperations.swift
[69/77] Compiling Atomics Unmanaged extensions.swift
[71/93] Compiling DequeModule Deque+CustomReflectable.swift
[72/93] Compiling DequeModule Deque+Descriptions.swift
[73/95] Compiling NIOConcurrencyHelpers lock.swift
[74/95] Emitting module _NIODataStructures
[75/95] Compiling _NIODataStructures Heap.swift
[76/96] Compiling DequeModule _DequeBuffer.swift
[77/96] Compiling DequeModule _DequeBufferHeader.swift
[78/96] Emitting module NIOConcurrencyHelpers
[79/96] Compiling NIOConcurrencyHelpers NIOLock.swift
[80/96] Compiling NIOConcurrencyHelpers NIOAtomic.swift
[82/96] Compiling NIOConcurrencyHelpers NIOLockedValueBox.swift
[83/96] Compiling NIOConcurrencyHelpers atomics.swift
[84/97] Compiling DequeModule Deque._UnsafeHandle.swift
[85/97] Compiling DequeModule Deque.swift
[86/97] Compiling DequeModule Deque+Equatable.swift
[87/97] Compiling DequeModule Deque+ExpressibleByArrayLiteral.swift
[88/97] Compiling DequeModule Deque+Extras.swift
[89/97] Compiling DequeModule Deque+Hashable.swift
[90/97] Compiling DequeModule Deque+Testing.swift
[91/97] Compiling DequeModule Deque._Storage.swift
[93/97] Compiling DequeModule _DequeSlot.swift
[94/97] Compiling DequeModule _UnsafeWrappedBuffer.swift
[95/97] Compiling DequeModule Deque+Codable.swift
[96/97] Compiling DequeModule Deque+Collection.swift
[97/97] Emitting module DequeModule
[99/157] Compiling NIOCore GlobalSingletons.swift
[100/157] Compiling NIOCore IO.swift
[101/157] Compiling NIOCore IOData.swift
[102/157] Compiling NIOCore IPProtocol.swift
[103/157] Compiling NIOCore IntegerBitPacking.swift
[104/157] Compiling NIOCore IntegerTypes.swift
[105/157] Compiling NIOCore Interfaces.swift
[106/157] Compiling NIOCore Linux.swift
[107/165] Compiling NIOCore AddressedEnvelope.swift
[108/165] Compiling NIOCore AsyncAwaitSupport.swift
[109/165] Compiling NIOCore AsyncChannel.swift
[110/165] Compiling NIOCore AsyncChannelHandler.swift
[111/165] Compiling NIOCore AsyncChannelInboundStream.swift
[112/165] Compiling NIOCore AsyncChannelOutboundWriter.swift
[113/165] Compiling NIOCore NIOAsyncSequenceProducer.swift
[114/165] Compiling NIOCore NIOAsyncSequenceProducerStrategies.swift
[115/165] Compiling NIOCore NIOAsyncWriter.swift
[116/165] Compiling NIOCore SingleStepByteToMessageDecoder.swift
[117/165] Compiling NIOCore SocketAddresses.swift
[118/165] Compiling NIOCore SocketOptionProvider.swift
[119/165] Compiling NIOCore SystemCallHelpers.swift
[120/165] Compiling NIOCore TimeAmount+Duration.swift
[121/165] Compiling NIOCore TypeAssistedChannelHandler.swift
[122/165] Compiling NIOCore UniversalBootstrapSupport.swift
[123/165] Compiling NIOCore Utilities.swift
[124/165] Compiling NIOCore NIOThrowingAsyncSequenceProducer.swift
[125/165] Compiling NIOCore BSDSocketAPI.swift
[126/165] Compiling NIOCore ByteBuffer-aux.swift
[127/165] Compiling NIOCore ByteBuffer-binaryEncodedLengthPrefix.swift
[128/165] Compiling NIOCore ByteBuffer-conversions.swift
[129/165] Compiling NIOCore ByteBuffer-core.swift
[130/165] Compiling NIOCore ByteBuffer-hex.swift
[131/165] Compiling NIOCore ByteBuffer-int.swift
[132/165] Compiling NIOCore ByteBuffer-lengthPrefix.swift
[133/165] Compiling NIOCore MarkedCircularBuffer.swift
[134/165] Compiling NIOCore MulticastChannel.swift
[135/165] Compiling NIOCore NIOAny.swift
[136/165] Compiling NIOCore NIOCloseOnErrorHandler.swift
[137/165] Compiling NIOCore NIOLoopBound.swift
[138/165] Compiling NIOCore NIOScheduledCallback.swift
[139/165] Compiling NIOCore NIOSendable.swift
[140/165] Compiling NIOCore RecvByteBufferAllocator.swift
[141/165] Compiling NIOCore ByteBuffer-multi-int.swift
[142/165] Compiling NIOCore ByteBuffer-quicBinaryEncodingStrategy.swift
[143/165] Compiling NIOCore ByteBuffer-views.swift
[144/165] Compiling NIOCore Channel.swift
[145/165] Compiling NIOCore ChannelHandler.swift
[146/165] Compiling NIOCore ChannelHandlers.swift
[147/165] Compiling NIOCore ChannelInvoker.swift
[148/165] Compiling NIOCore ChannelOption.swift
[149/165] Compiling NIOCore ChannelPipeline.swift
[150/165] Compiling NIOCore CircularBuffer.swift
[151/165] Compiling NIOCore Codec.swift
[152/165] Compiling NIOCore ConvenienceOptionSupport.swift
[153/165] Compiling NIOCore DeadChannel.swift
[154/165] Compiling NIOCore DispatchQueue+WithFuture.swift
[155/165] Compiling NIOCore EventLoop+Deprecated.swift
[156/165] Compiling NIOCore EventLoop+SerialExecutor.swift
[157/165] Emitting module NIOCore
[158/165] Compiling NIOCore EventLoop.swift
[159/165] Compiling NIOCore EventLoopFuture+AssumeIsolated.swift
[160/165] Compiling NIOCore EventLoopFuture+Deprecated.swift
[161/165] Compiling NIOCore EventLoopFuture+WithEventLoop.swift
[162/165] Compiling NIOCore EventLoopFuture.swift
[163/165] Compiling NIOCore FileDescriptor.swift
[164/165] Compiling NIOCore FileHandle.swift
[165/165] Compiling NIOCore FileRegion.swift
[167/217] Emitting module NIOEmbedded
[168/217] Compiling NIOEmbedded AsyncTestingChannel.swift
[169/217] Compiling NIOEmbedded AsyncTestingEventLoop.swift
[170/217] Compiling NIOEmbedded Embedded.swift
[172/218] Compiling NIOPosix PooledRecvBufferAllocator.swift
[173/218] Compiling NIOPosix PosixSingletons+ConcurrencyTakeOver.swift
[174/218] Compiling NIOPosix PosixSingletons.swift
[175/218] Compiling NIOPosix RawSocketBootstrap.swift
[176/218] Compiling NIOPosix Resolver.swift
[177/218] Compiling NIOPosix Selectable.swift
[178/224] Emitting module NIOPosix
[179/224] Compiling NIOPosix BSDSocketAPICommon.swift
[180/224] Compiling NIOPosix BSDSocketAPIPosix.swift
[181/224] Compiling NIOPosix BSDSocketAPIWindows.swift
[182/224] Compiling NIOPosix BaseSocket.swift
[183/224] Compiling NIOPosix BaseSocketChannel+SocketOptionProvider.swift
[184/224] Compiling NIOPosix BaseSocketChannel.swift
[185/224] Compiling NIOPosix BaseStreamSocketChannel.swift
[186/224] Compiling NIOPosix SelectableChannel.swift
[187/224] Compiling NIOPosix SelectableEventLoop.swift
[188/224] Compiling NIOPosix SelectorEpoll.swift
[189/224] Compiling NIOPosix SelectorGeneric.swift
[190/224] Compiling NIOPosix SelectorKqueue.swift
[191/224] Compiling NIOPosix SelectorUring.swift
[192/224] Compiling NIOPosix ServerSocket.swift
[193/224] Compiling NIOPosix Socket.swift
[194/224] Compiling NIOPosix SocketChannel.swift
[195/224] Compiling NIOPosix SocketProtocols.swift
[196/224] Compiling NIOPosix System.swift
[197/224] Compiling NIOPosix Thread.swift
[198/224] Compiling NIOPosix ThreadPosix.swift
[199/224] Compiling NIOPosix ThreadWindows.swift
[200/224] Compiling NIOPosix UnsafeTransfer.swift
[201/224] Compiling NIOPosix Utilities.swift
[202/224] Compiling NIOPosix VsockAddress.swift
[203/224] Compiling NIOPosix VsockChannelEvents.swift
[204/224] Compiling NIOPosix IO.swift
[205/224] Compiling NIOPosix IntegerBitPacking.swift
[206/224] Compiling NIOPosix IntegerTypes.swift
[207/224] Compiling NIOPosix Linux.swift
[208/224] Compiling NIOPosix LinuxCPUSet.swift
[209/224] Compiling NIOPosix LinuxUring.swift
[210/224] Compiling NIOPosix MultiThreadedEventLoopGroup.swift
[211/224] Compiling NIOPosix Bootstrap.swift
[212/224] Compiling NIOPosix ControlMessage.swift
[213/224] Compiling NIOPosix DatagramVectorReadManager.swift
[214/224] Compiling NIOPosix Errors+Any.swift
[215/224] Compiling NIOPosix FileDescriptor.swift
[216/224] Compiling NIOPosix GetaddrinfoResolver.swift
[217/224] Compiling NIOPosix HappyEyeballs.swift
[218/224] Compiling NIOPosix NIOThreadPool.swift
[219/224] Compiling NIOPosix NonBlockingFileIO.swift
[220/224] Compiling NIOPosix PendingDatagramWritesManager.swift
[221/224] Compiling NIOPosix PendingWritesManager.swift
[222/224] Compiling NIOPosix PipeChannel.swift
[223/224] Compiling NIOPosix PipePair.swift
[224/224] Compiling NIOPosix Pool.swift
[226/227] Emitting module NIO
[227/227] Compiling NIO Exports.swift
[229/233] Compiling NIOFoundationCompat Codable+ByteBuffer.swift
[230/233] Emitting module NIOFoundationCompat
[231/233] Compiling NIOFoundationCompat ByteBuffer-foundation.swift
[232/233] Compiling NIOFoundationCompat JSONSerialization+ByteBuffer.swift
[233/233] Compiling NIOFoundationCompat WaitSpinningRunLoop.swift
[235/241] Compiling NIORedis RESPPipelineSetup.swift
[236/241] Compiling NIORedis RESPValue.swift
[237/241] Compiling NIORedis ByteBufferExtras.swift
[238/241] Emitting module NIORedis
[239/241] Compiling NIORedis RESPEncodable.swift
[240/241] Compiling NIORedis RESPChannelHandler.swift
[241/241] Compiling NIORedis RESPParser.swift
[243/250] Compiling Redis RedisClientOptions.swift
[244/250] Compiling Redis RedisRetry.swift
[245/250] Compiling Redis RedisPrint.swift
[246/250] Compiling Redis RedisTypeTransformable.swift
/host/spi-builder-workspace/Sources/Redis/RedisTypeTransformable.swift:26:8: warning: associated value 'unexpectedValueType' of 'Sendable'-conforming enum 'RedisTypeTransformationError' has non-sendable type 'RESPValue'; this is an error in the Swift 6 language mode
24 |
25 | enum RedisTypeTransformationError : Swift.Error {
26 | case unexpectedValueType (RESPValue)
| `- warning: associated value 'unexpectedValueType' of 'Sendable'-conforming enum 'RedisTypeTransformationError' has non-sendable type 'RESPValue'; this is an error in the Swift 6 language mode
27 | case unsupportedValueType(Any.Type)
28 | case unexpectedHashValue (RESPValue)
/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/Redis/RedisTypeTransformable.swift:17:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
15 | import struct Foundation.Data
16 | import struct Foundation.TimeInterval
17 | import enum NIORedis.RESPValue
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
18 |
19 | protocol RedisTypeTransformable {
/host/spi-builder-workspace/Sources/Redis/RedisTypeTransformable.swift:28:8: warning: associated value 'unexpectedHashValue' of 'Sendable'-conforming enum 'RedisTypeTransformationError' has non-sendable type 'RESPValue'; this is an error in the Swift 6 language mode
26 | case unexpectedValueType (RESPValue)
27 | case unsupportedValueType(Any.Type)
28 | case unexpectedHashValue (RESPValue)
| `- warning: associated value 'unexpectedHashValue' of 'Sendable'-conforming enum 'RedisTypeTransformationError' has non-sendable type 'RESPValue'; this is an error in the Swift 6 language mode
29 | }
30 |
/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?)
[247/250] Compiling Redis RedisCommand.swift
[248/250] Compiling Redis RedisCommandTarget.swift
/host/spi-builder-workspace/Sources/Redis/RedisCommandTarget.swift:136:11: warning: capture of 'cb' with non-sendable type '([String]) -> ()' in a '@Sendable' closure
134 | future.whenSuccess() { (newCursor, keys) in
135 | if !keys.isEmpty {
136 | cb(keys)
| |- warning: capture of 'cb' with non-sendable type '([String]) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
137 | }
138 |
/host/spi-builder-workspace/Sources/Redis/RedisCommandTarget.swift:144:9: warning: capture of 'scanNext(cursor:)' with non-sendable type '<Self where Self : RedisCommandTarget> (cursor: String) -> ()' in a '@Sendable' closure
142 | }
143 |
144 | scanNext(cursor: newCursor)
| `- warning: capture of 'scanNext(cursor:)' with non-sendable type '<Self where Self : RedisCommandTarget> (cursor: String) -> ()' in a '@Sendable' closure
145 | }
146 |
/host/spi-builder-workspace/Sources/Redis/RedisCommandTarget.swift:132:10: warning: concurrently-executed local function 'scanNext(cursor:)' must be marked as '@Sendable'
130 | let promise = self.eventLoop.makePromise(of: Void.self)
131 |
132 | func scanNext(cursor: String) {
| `- warning: concurrently-executed local function 'scanNext(cursor:)' must be marked as '@Sendable'
133 | let future = self.scan(cursor: cursor, pattern: pattern, count: count)
134 | future.whenSuccess() { (newCursor, keys) in
/host/spi-builder-workspace/Sources/Redis/RedisCommandTarget.swift:411:10: warning: 'map(file:line:_:)' is deprecated: Please don't pass file:line:, there's no point.
409 | _ cb: @escaping ( Swift.Error?, Value? ) -> Void) -> Void
410 | {
411 | self.map(file: file, line: line) { cb(nil, $0) }
| `- warning: 'map(file:line:_:)' is deprecated: Please don't pass file:line:, there's no point.
412 | .whenFailure { cb($0, nil) }
413 | }
/host/spi-builder-workspace/Sources/Redis/RedisCommandTarget.swift:411:40: warning: capture of 'cb' with non-sendable type '((any Error)?, Value?) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
409 | _ cb: @escaping ( Swift.Error?, Value? ) -> Void) -> Void
410 | {
411 | self.map(file: file, line: line) { cb(nil, $0) }
| |- warning: capture of 'cb' with non-sendable type '((any Error)?, Value?) -> Void' 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'
412 | .whenFailure { cb($0, nil) }
413 | }
/host/spi-builder-workspace/Sources/Redis/RedisCommandTarget.swift:412:24: warning: capture of 'cb' with non-sendable type '((any Error)?, Value?) -> Void' in a '@Sendable' closure
410 | {
411 | self.map(file: file, line: line) { cb(nil, $0) }
412 | .whenFailure { cb($0, nil) }
| |- warning: capture of 'cb' with non-sendable type '((any Error)?, Value?) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
413 | }
414 | }
/host/spi-builder-workspace/Sources/Redis/RedisCommandTarget.swift:422:10: warning: 'map(file:line:_:)' is deprecated: Please don't pass file:line:, there's no point.
420 | _ cb: @escaping ( Swift.Error?, U? ) -> Void) -> Void
421 | {
422 | self.map(file: file, line: line) {
| `- warning: 'map(file:line:_:)' is deprecated: Please don't pass file:line:, there's no point.
423 | do { cb(nil, try U.extractFromRESPValue($0)) }
424 | catch { cb(error, nil) }
/host/spi-builder-workspace/Sources/Redis/RedisCommandTarget.swift:423:16: warning: capture of 'cb' with non-sendable type '((any Error)?, U?) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
421 | {
422 | self.map(file: file, line: line) {
423 | do { cb(nil, try U.extractFromRESPValue($0)) }
| |- warning: capture of 'cb' with non-sendable type '((any Error)?, U?) -> Void' 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'
424 | catch { cb(error, nil) }
425 | }
/host/spi-builder-workspace/Sources/Redis/RedisCommandTarget.swift:426:24: warning: capture of 'cb' with non-sendable type '((any Error)?, U?) -> Void' in a '@Sendable' closure
424 | catch { cb(error, nil) }
425 | }
426 | .whenFailure { cb($0, nil) }
| |- warning: capture of 'cb' with non-sendable type '((any Error)?, U?) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
427 | }
428 | }
[249/250] Emitting module Redis
/host/spi-builder-workspace/Sources/Redis/RedisTypeTransformable.swift:26:8: warning: associated value 'unexpectedValueType' of 'Sendable'-conforming enum 'RedisTypeTransformationError' has non-sendable type 'RESPValue'; this is an error in the Swift 6 language mode
24 |
25 | enum RedisTypeTransformationError : Swift.Error {
26 | case unexpectedValueType (RESPValue)
| `- warning: associated value 'unexpectedValueType' of 'Sendable'-conforming enum 'RedisTypeTransformationError' has non-sendable type 'RESPValue'; this is an error in the Swift 6 language mode
27 | case unsupportedValueType(Any.Type)
28 | case unexpectedHashValue (RESPValue)
/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/Redis/RedisTypeTransformable.swift:17:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
15 | import struct Foundation.Data
16 | import struct Foundation.TimeInterval
17 | import enum NIORedis.RESPValue
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'NIORedis'
18 |
19 | protocol RedisTypeTransformable {
/host/spi-builder-workspace/Sources/Redis/RedisTypeTransformable.swift:28:8: warning: associated value 'unexpectedHashValue' of 'Sendable'-conforming enum 'RedisTypeTransformationError' has non-sendable type 'RESPValue'; this is an error in the Swift 6 language mode
26 | case unexpectedValueType (RESPValue)
27 | case unsupportedValueType(Any.Type)
28 | case unexpectedHashValue (RESPValue)
| `- warning: associated value 'unexpectedHashValue' of 'Sendable'-conforming enum 'RedisTypeTransformationError' has non-sendable type 'RESPValue'; this is an error in the Swift 6 language mode
29 | }
30 |
/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?)
[250/250] Compiling Redis RedisClient.swift
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:179:23: warning: type 'RedisClient.Handler' does not conform to the 'Sendable' protocol
177 |
178 | return channel.pipeline
179 | .addHandler(Handler(client: me),
| `- warning: type 'RedisClient.Handler' does not conform to the 'Sendable' protocol
180 | name: "de.zeezide.nio.redis.client")
181 | }
:
605 | // MARK: - Handler
606 |
607 | final class Handler : ChannelInboundHandler {
| `- note: class 'Handler' does not conform to the 'Sendable' protocol
608 |
609 | typealias InboundIn = RESPValue
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:170:24: warning: capture of 'self' with non-sendable type 'RedisClient?' in a '@Sendable' closure
90 | *
91 | */
92 | open class RedisClient : RedisCommandTarget {
| `- note: class 'RedisClient' does not conform to the 'Sendable' protocol
93 |
94 | public let options : RedisClientOptions
:
168 | return channel.pipeline
169 | .configureRedisPipeline()
170 | .flatMap { [weak self] in
| `- warning: capture of 'self' with non-sendable type 'RedisClient?' in a '@Sendable' closure
171 | guard let me = self else {
172 | //assert(self != nil, "bootstrap running, but client gone?!")
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:171:24: warning: capture of 'self' with non-sendable type 'RedisClient?' in a '@Sendable' closure
90 | *
91 | */
92 | open class RedisClient : RedisCommandTarget {
| `- note: class 'RedisClient' does not conform to the 'Sendable' protocol
93 |
94 | public let options : RedisClientOptions
:
169 | .configureRedisPipeline()
170 | .flatMap { [weak self] in
171 | guard let me = self else {
| `- warning: capture of 'self' with non-sendable type 'RedisClient?' in a '@Sendable' closure
172 | //assert(self != nil, "bootstrap running, but client gone?!")
173 | let error = channel.eventLoop.makePromise(of: Void.self)
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:219:9: warning: capture of 'self' with non-sendable type 'RedisClient' in a '@Sendable' closure
90 | *
91 | */
92 | open class RedisClient : RedisCommandTarget {
| `- note: class 'RedisClient' does not conform to the 'Sendable' protocol
93 |
94 | public let options : RedisClientOptions
:
217 | guard eventLoop.inEventLoop else {
218 | return eventLoop.execute {
219 | self._unsubscribe(channels: channels, patterns: patterns)
| `- warning: capture of 'self' with non-sendable type 'RedisClient' in a '@Sendable' closure
220 | }
221 | }
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:256:9: warning: capture of 'self' with non-sendable type 'RedisClient' in a '@Sendable' closure
90 | *
91 | */
92 | open class RedisClient : RedisCommandTarget {
| `- note: class 'RedisClient' does not conform to the 'Sendable' protocol
93 |
94 | public let options : RedisClientOptions
:
254 | guard eventLoop.inEventLoop else {
255 | return eventLoop.execute {
256 | self._subscribe(channels: channels, patterns: patterns)
| `- warning: capture of 'self' with non-sendable type 'RedisClient' in a '@Sendable' closure
257 | }
258 | }
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:292:9: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
90 | *
91 | */
92 | open class RedisClient : RedisCommandTarget {
| `- note: class 'RedisClient' does not conform to the 'Sendable' protocol
93 |
94 | public let options : RedisClientOptions
:
290 | else {
291 | eventLoop.execute {
292 | self.subscribeListeners.append(cb)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
293 | }
294 | }
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:292:40: warning: capture of 'cb' with non-sendable type '(String, Int) -> Void' in a '@Sendable' closure
290 | else {
291 | eventLoop.execute {
292 | self.subscribeListeners.append(cb)
| |- warning: capture of 'cb' with non-sendable type '(String, Int) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
293 | }
294 | }
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:305:9: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
90 | *
91 | */
92 | open class RedisClient : RedisCommandTarget {
| `- note: class 'RedisClient' does not conform to the 'Sendable' protocol
93 |
94 | public let options : RedisClientOptions
:
303 | else {
304 | eventLoop.execute {
305 | self.psubscribeListeners.append(cb)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
306 | }
307 | }
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:305:41: warning: capture of 'cb' with non-sendable type '(String, Int) -> Void' in a '@Sendable' closure
303 | else {
304 | eventLoop.execute {
305 | self.psubscribeListeners.append(cb)
| |- warning: capture of 'cb' with non-sendable type '(String, Int) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
306 | }
307 | }
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:333:9: warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
90 | *
91 | */
92 | open class RedisClient : RedisCommandTarget {
| `- note: class 'RedisClient' does not conform to the 'Sendable' protocol
93 |
94 | public let options : RedisClientOptions
:
331 | else {
332 | eventLoop.execute {
333 | self.messageListeners.append(cb)
| `- warning: capture of 'self' with non-sendable type 'Self' in a '@Sendable' closure
334 | }
335 | }
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:333:38: warning: capture of 'cb' with non-sendable type '(String, String, String?) -> Void' in a '@Sendable' closure
331 | else {
332 | eventLoop.execute {
333 | self.messageListeners.append(cb)
| |- warning: capture of 'cb' with non-sendable type '(String, String, String?) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
334 | }
335 | }
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:347:34: warning: capture of 'self' with non-sendable type 'RedisClient' in a '@Sendable' closure
90 | *
91 | */
92 | open class RedisClient : RedisCommandTarget {
| `- note: class 'RedisClient' does not conform to the 'Sendable' protocol
93 |
94 | public let options : RedisClientOptions
:
345 | public func enqueueCommandCall(_ call: RedisCommandCall) { // Q: any
346 | guard eventLoop.inEventLoop else {
347 | return eventLoop.execute { self.enqueueCommandCall(call) }
| `- warning: capture of 'self' with non-sendable type 'RedisClient' in a '@Sendable' closure
348 | }
349 | _enqueueCommandCall(call)
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:347:58: warning: capture of 'call' with non-sendable type 'RedisCommandCall' in a '@Sendable' closure
345 | public func enqueueCommandCall(_ call: RedisCommandCall) { // Q: any
346 | guard eventLoop.inEventLoop else {
347 | return eventLoop.execute { self.enqueueCommandCall(call) }
| `- warning: capture of 'call' with non-sendable type 'RedisCommandCall' in a '@Sendable' closure
348 | }
349 | _enqueueCommandCall(call)
/host/spi-builder-workspace/Sources/Redis/RedisCommand.swift:42:14: note: class 'RedisCommandCall' does not conform to the 'Sendable' protocol
40 | }
41 |
42 | public class RedisCommandCall {
| `- note: class 'RedisCommandCall' does not conform to the 'Sendable' protocol
43 |
44 | let command : RedisCommand
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:385:15: warning: type 'RedisCommand' does not conform to the 'Sendable' protocol
383 | let call = callQueue.removeFirst()
384 |
385 | channel.write(call.command)
| `- warning: type 'RedisCommand' does not conform to the 'Sendable' protocol
386 | .map { self.pendingCalls.append(call) }
387 | .whenFailure {
/host/spi-builder-workspace/Sources/Redis/RedisCommand.swift:18:20: note: class 'RedisCommand' does not conform to the 'Sendable' protocol
16 | import NIORedis
17 |
18 | public final class RedisCommand : RESPEncodable {
| `- note: class 'RedisCommand' does not conform to the 'Sendable' protocol
19 |
20 | let values : ContiguousArray<RESPValue>
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:386:24: warning: capture of 'self' with non-sendable type 'RedisClient' in a '@Sendable' closure
90 | *
91 | */
92 | open class RedisClient : RedisCommandTarget {
| `- note: class 'RedisClient' does not conform to the 'Sendable' protocol
93 |
94 | public let options : RedisClientOptions
:
384 |
385 | channel.write(call.command)
386 | .map { self.pendingCalls.append(call) }
| `- warning: capture of 'self' with non-sendable type 'RedisClient' in a '@Sendable' closure
387 | .whenFailure {
388 | call.promise.fail(Error.writeError($0))
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:386:49: warning: capture of 'call' with non-sendable type 'RedisCommandCall' in a '@Sendable' closure
384 |
385 | channel.write(call.command)
386 | .map { self.pendingCalls.append(call) }
| `- warning: capture of 'call' with non-sendable type 'RedisCommandCall' in a '@Sendable' closure
387 | .whenFailure {
388 | call.promise.fail(Error.writeError($0))
/host/spi-builder-workspace/Sources/Redis/RedisCommand.swift:42:14: note: class 'RedisCommandCall' does not conform to the 'Sendable' protocol
40 | }
41 |
42 | public class RedisCommandCall {
| `- note: class 'RedisCommandCall' does not conform to the 'Sendable' protocol
43 |
44 | let command : RedisCommand
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:388:11: warning: capture of 'call' with non-sendable type 'RedisCommandCall' in a '@Sendable' closure
386 | .map { self.pendingCalls.append(call) }
387 | .whenFailure {
388 | call.promise.fail(Error.writeError($0))
| `- warning: capture of 'call' with non-sendable type 'RedisCommandCall' in a '@Sendable' closure
389 | }
390 | }
/host/spi-builder-workspace/Sources/Redis/RedisCommand.swift:42:14: note: class 'RedisCommandCall' does not conform to the 'Sendable' protocol
40 | }
41 |
42 | public class RedisCommandCall {
| `- note: class 'RedisCommandCall' does not conform to the 'Sendable' protocol
43 |
44 | let command : RedisCommand
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:401:22: warning: type 'RESPValue' does not conform to the 'Sendable' protocol
399 |
400 | if !call.command.isSubscribe {
401 | call.promise.succeed(value)
| `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol
402 | return
403 | }
/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/Redis/RedisClient.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 |
18 | public let DefaultRedisPort = 6379
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:404:20: warning: type 'RESPValue' does not conform to the 'Sendable' protocol
402 | return
403 | }
404 | call.promise.succeed(.bulkString(nil)) // TBD
| `- warning: type 'RESPValue' does not conform to the 'Sendable' protocol
405 | }
406 |
/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/Redis/RedisClient.swift:456:9: warning: capture of 'self' with non-sendable type 'RedisClient' in a '@Sendable' closure
90 | *
91 | */
92 | open class RedisClient : RedisCommandTarget {
| `- note: class 'RedisClient' does not conform to the 'Sendable' protocol
93 |
94 | public let options : RedisClientOptions
:
454 | _enqueueCommandCall(RedisCommandCall(["QUIT"], eventLoop: eventLoop))
455 | .whenComplete { _ in
456 | self.state = .quit
| `- warning: capture of 'self' with non-sendable type 'RedisClient' in a '@Sendable' closure
457 | self.subscribeListeners.removeAll()
458 | self.messageListeners.removeAll()
/host/spi-builder-workspace/Sources/Redis/RedisClient.swift:470:9: warning: capture of 'self' with non-sendable type 'RedisClient' in a '@Sendable' closure
90 | *
91 | */
92 | open class RedisClient : RedisCommandTarget {
| `- note: class 'RedisClient' does not conform to the 'Sendable' protocol
93 |
94 | public let options : RedisClientOptions
:
468 | return bootstrap.connect(host: host, port: port)
469 | .map { channel in
470 | self.retryInfo.registerSuccessfulConnect()
| `- warning: capture of 'self' with non-sendable type 'RedisClient' in a '@Sendable' closure
471 |
472 | guard case .connecting = self.state else {
Build complete! (46.61s)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-nio",
"requirement" : {
"range" : [
{
"lower_bound" : "2.20.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-nio.git"
},
{
"identity" : "swift-nio-redis",
"requirement" : {
"range" : [
{
"lower_bound" : "0.10.3",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/SwiftNIOExtras/swift-nio-redis.git"
}
],
"manifest_display_name" : "swift-nio-redis-client",
"name" : "swift-nio-redis-client",
"path" : "/host/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Redis",
"targets" : [
"Redis"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "RedisTests",
"module_type" : "SwiftTarget",
"name" : "RedisTests",
"path" : "Tests/RedisTests",
"sources" : [
"RedisClientTests.swift",
"XCTestManifests.swift"
],
"target_dependencies" : [
"Redis"
],
"type" : "test"
},
{
"c99name" : "Redis",
"module_type" : "SwiftTarget",
"name" : "Redis",
"path" : "Sources/Redis",
"product_dependencies" : [
"NIORedis"
],
"product_memberships" : [
"Redis"
],
"sources" : [
"RedisClient.swift",
"RedisClientOptions.swift",
"RedisCommand.swift",
"RedisCommandTarget.swift",
"RedisPrint.swift",
"RedisRetry.swift",
"RedisTypeTransformable.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.