Build Information
Successful build of PerfectRedis, reference 3.4.1 (b74ae3), with Swift 6.4 for macOS (SPM) on 16 Sep 2026 03:04:26 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/perfectlysoft/perfect-redis.git
Reference: 3.4.1
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/perfectlysoft/perfect-redis
* tag 3.4.1 -> FETCH_HEAD
HEAD is now at b74ae3a Merge pull request #20 from PerfectlySoft/existsfix
Cloned https://github.com/perfectlysoft/perfect-redis.git
Revision (git rev-parse @):
b74ae3aaf48ed4029a42404bf0a1788195d89d78
SUCCESS checkout https://github.com/perfectlysoft/perfect-redis.git at 3.4.1
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/perfectlysoft/perfect-redis.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Computing dependencies]
[Pre-planning 1 / 217]
[Planning deferred tasks]
[45 / 553]
[55 / 555] COpenSSL
[74 / 579] PerfectLib
[78 / 579] PerfectThread
[82 / 579] PerfectThread
[88 / 579] PerfectThread-product
[98 / 579] COpenSSL
[99 / 579] COpenSSL
[103 / 579] COpenSSL
[109 / 579] COpenSSL
[118 / 579] COpenSSL
[129 / 582] COpenSSL
[139 / 582] COpenSSL
[151 / 582] COpenSSL
[171 / 582] PerfectLib
[189 / 582] COpenSSL
[205 / 582] COpenSSL
[225 / 582] COpenSSL
[243 / 582] COpenSSL
[268 / 582] COpenSSL
[296 / 582] COpenSSL
[318 / 582] COpenSSL
[341 / 582] COpenSSL
[367 / 582] COpenSSL
[397 / 582] COpenSSL
[420 / 582] COpenSSL
[445 / 582] COpenSSL
[471 / 582] COpenSSL
[492 / 582] COpenSSL
[520 / 582] COpenSSL
[545 / 582] COpenSSL
[560 / 592] PerfectThread
[566 / 592] PerfectCrypto
[567 / 592]
[567 / 592] PerfectCrypto
[579 / 601] PerfectNet
[580 / 601] PerfectNet
[582 / 601] PerfectNet
[595 / 608] PerfectRedis
[598 / 608] PerfectCrypto
[603 / 608] PerfectRedis
[605 / 608] PerfectRedis
Build complete! (9.91 sec)
Fetching https://github.com/PerfectlySoft/Perfect-Net.git
[1/570] Fetching perfect-net
Fetched https://github.com/PerfectlySoft/Perfect-Net.git (0.90s)
Computing version for https://github.com/PerfectlySoft/Perfect-Net.git
Computed https://github.com/PerfectlySoft/Perfect-Net.git at 3.3.0 (1.59s)
Fetching https://github.com/PerfectlySoft/Perfect-Thread.git
Fetching https://github.com/PerfectlySoft/Perfect-Crypto.git
[1/612] Fetching perfect-crypto
[57/991] Fetching perfect-crypto, perfect-thread
Fetched https://github.com/PerfectlySoft/Perfect-Crypto.git (1.06s)
Fetched https://github.com/PerfectlySoft/Perfect-Thread.git (1.06s)
Computing version for https://github.com/PerfectlySoft/Perfect-Crypto.git
Computed https://github.com/PerfectlySoft/Perfect-Crypto.git at 3.3.0 (1.74s)
Fetching https://github.com/PerfectlySoft/PerfectLib.git
Fetching https://github.com/PerfectlySoft/Perfect-COpenSSL.git
[1/10784] Fetching perfectlib
[1403/14745] Fetching perfectlib, perfect-copenssl
Fetched https://github.com/PerfectlySoft/Perfect-COpenSSL.git (6.30s)
Fetched https://github.com/PerfectlySoft/PerfectLib.git (6.30s)
Computing version for https://github.com/PerfectlySoft/Perfect-COpenSSL.git
Computed https://github.com/PerfectlySoft/Perfect-COpenSSL.git at 4.0.2 (7.00s)
Computing version for https://github.com/PerfectlySoft/Perfect-Thread.git
Computed https://github.com/PerfectlySoft/Perfect-Thread.git at 3.0.7 (0.65s)
Computing version for https://github.com/PerfectlySoft/PerfectLib.git
Computed https://github.com/PerfectlySoft/PerfectLib.git at 3.1.4 (0.63s)
Creating working copy for https://github.com/PerfectlySoft/Perfect-COpenSSL.git
Working copy of https://github.com/PerfectlySoft/Perfect-COpenSSL.git resolved at 4.0.2
Creating working copy for https://github.com/PerfectlySoft/Perfect-Net.git
Working copy of https://github.com/PerfectlySoft/Perfect-Net.git resolved at 3.3.0
Creating working copy for https://github.com/PerfectlySoft/Perfect-Thread.git
Working copy of https://github.com/PerfectlySoft/Perfect-Thread.git resolved at 3.0.7
Creating working copy for https://github.com/PerfectlySoft/Perfect-Crypto.git
Working copy of https://github.com/PerfectlySoft/Perfect-Crypto.git resolved at 3.3.0
Creating working copy for https://github.com/PerfectlySoft/PerfectLib.git
Working copy of https://github.com/PerfectlySoft/PerfectLib.git resolved at 3.1.4
/Users/admin/builder/spi-builder-workspace/Sources/PerfectRedis/RedisClientSync.swift:52:2: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m50 |[0;0m }
[0;36m51 |[0;0m
[0;36m52 |[0;0m public func sendCommand(name: String, parameters: [RedisResponse]) throws -> RedisResponse {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m53 |[0;0m let a = commandBytes(name: name, parameters: parameters)
[0;36m54 |[0;0m return try sendRawCommand(bytes: a)
/Users/admin/builder/spi-builder-workspace/Sources/PerfectRedis/RedisClientSync.swift:57:2: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m55 |[0;0m }
[0;36m56 |[0;0m
[0;36m57 |[0;0m public func sendCommand(name: String) throws -> RedisResponse {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m58 |[0;0m let a = commandBytes(name: name)
[0;36m59 |[0;0m return try sendRawCommand(bytes: a)
/Users/admin/builder/spi-builder-workspace/Sources/PerfectRedis/RedisClientSync.swift:63:2: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m61 |[0;0m
[0;36m62 |[0;0m // Send command as serialized in RESP format: See https://redis.io/topics/protocol
[0;36m63 |[0;0m public func sendCommandAsRESP(name: String, parameters: [String]) throws -> RedisResponse {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m64 |[0;0m var array = [RedisResponse.bulkString(name.bytes)]
[0;36m65 |[0;0m #if swift(>=4.1)
/Users/admin/builder/spi-builder-workspace/Sources/PerfectRedis/RedisClientSync.swift:52:2: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m50 |[0;0m }
[0;36m51 |[0;0m
[0;36m52 |[0;0m public func sendCommand(name: String, parameters: [RedisResponse]) throws -> RedisResponse {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m53 |[0;0m let a = commandBytes(name: name, parameters: parameters)
[0;36m54 |[0;0m return try sendRawCommand(bytes: a)
/Users/admin/builder/spi-builder-workspace/Sources/PerfectRedis/RedisClientSync.swift:57:2: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m55 |[0;0m }
[0;36m56 |[0;0m
[0;36m57 |[0;0m public func sendCommand(name: String) throws -> RedisResponse {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m58 |[0;0m let a = commandBytes(name: name)
[0;36m59 |[0;0m return try sendRawCommand(bytes: a)
/Users/admin/builder/spi-builder-workspace/Sources/PerfectRedis/RedisClientSync.swift:63:2: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m61 |[0;0m
[0;36m62 |[0;0m // Send command as serialized in RESP format: See https://redis.io/topics/protocol
[0;36m63 |[0;0m public func sendCommandAsRESP(name: String, parameters: [String]) throws -> RedisResponse {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m64 |[0;0m var array = [RedisResponse.bulkString(name.bytes)]
[0;36m65 |[0;0m #if swift(>=4.1)
Build complete.
{
"dependencies" : [
{
"identity" : "perfect-net",
"requirement" : {
"range" : [
{
"lower_bound" : "3.2.1",
"upper_bound" : "4.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/PerfectlySoft/Perfect-Net.git"
}
],
"manifest_display_name" : "PerfectRedis",
"name" : "PerfectRedis",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "PerfectRedis",
"targets" : [
"PerfectRedis"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "PerfectRedisTests",
"module_type" : "SwiftTarget",
"name" : "PerfectRedisTests",
"path" : "Tests/PerfectRedisTests",
"product_dependencies" : [
"PerfectNet"
],
"sources" : [
"HashTests.swift",
"PerfectRedisTests.swift"
],
"target_dependencies" : [
"PerfectRedis"
],
"type" : "test"
},
{
"c99name" : "PerfectRedis",
"module_type" : "SwiftTarget",
"name" : "PerfectRedis",
"path" : "Sources/PerfectRedis",
"product_dependencies" : [
"PerfectNet"
],
"product_memberships" : [
"PerfectRedis"
],
"sources" : [
"PerfectRedis.swift",
"RedisClientSync.swift",
"RedisHash.swift",
"RedisList.swift",
"RedisSet.swift"
],
"type" : "library"
}
],
"tools_version" : "4.0"
}
Done.