Build Information
Successful build of BCryptSwift, reference master (9d8940
), with Swift 6.1 for macOS (SPM) on 14 Aug 2025 01:01:17 UTC.
Swift 6 data race errors: 3
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -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
Build Log
========================================
RunAll
========================================
Builder version: 4.66.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/wisetail/BCryptSwift.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/wisetail/BCryptSwift
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 9d89409 Made tests determine if Pods or SPM
Cloned https://github.com/wisetail/BCryptSwift.git
Revision (git rev-parse @):
9d89409837466ed5e51eb0c1e57cbd88e5d7d89d
SUCCESS checkout https://github.com/wisetail/BCryptSwift.git at master
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"dependencies": [
{
"identity": "bcryptswift",
"name": "BCryptSwift",
"url": "https://github.com/wisetail/BCryptSwift.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/BCryptSwift",
"dependencies": [
]
}
]
}
Fetching https://github.com/wisetail/BCryptSwift.git
[1/316] Fetching bcryptswift
Fetched https://github.com/wisetail/BCryptSwift.git from cache (0.80s)
Creating working copy for https://github.com/wisetail/BCryptSwift.git
Working copy of https://github.com/wisetail/BCryptSwift.git resolved at master (9d89409)
warning: '.resolve-product-dependencies': dependency 'bcryptswift' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/wisetail/BCryptSwift.git
https://github.com/wisetail/BCryptSwift.git
{
"dependencies" : [
],
"manifest_display_name" : "BCryptSwift",
"name" : "BCryptSwift",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "12.0"
},
{
"name" : "macos",
"version" : "10.13"
},
{
"name" : "tvos",
"version" : "12.0"
},
{
"name" : "watchos",
"version" : "5.0"
}
],
"products" : [
{
"name" : "BCryptSwift",
"targets" : [
"BCryptSwift"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "BCryptSwiftTests",
"module_type" : "SwiftTarget",
"name" : "BCryptSwiftTests",
"path" : "Example/Tests",
"sources" : [
"BCryptSecurityTests.swift",
"BCryptSwiftTests.swift"
],
"target_dependencies" : [
"BCryptSwift"
],
"type" : "test"
},
{
"c99name" : "BCryptSwift",
"module_type" : "SwiftTarget",
"name" : "BCryptSwift",
"path" : "BCryptSwift/Classes",
"product_memberships" : [
"BCryptSwift"
],
"sources" : [
"BCryptConfiguration.swift",
"BCryptError.swift",
"BCryptSwift.swift",
"BCryptSwiftModern.swift",
"BCryptSwiftRandom.swift"
],
"type" : "library"
}
],
"tools_version" : "5.3"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -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
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/8] Compiling BCryptSwift BCryptSwiftRandom.swift
[4/8] Compiling BCryptSwift BCryptSwiftModern.swift
/Users/admin/builder/spi-builder-workspace/BCryptSwift/Classes/BCryptSwiftModern.swift:73:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
71 | public static func hashPasswordAsync(_ password: String, config: BCryptConfiguration = .default) async throws -> String {
72 | return try await withCheckedThrowingContinuation { continuation in
73 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
74 | do {
75 | let salt = try generateSalt(config: config)
| `- note: closure captures 'config' which is accessible to code in the current task
76 | let hash = try hashPassword(password, withSalt: salt)
77 | continuation.resume(returning: hash)
[5/8] Compiling BCryptSwift BCryptSwift.swift
[6/8] Compiling BCryptSwift BCryptError.swift
[7/8] Compiling BCryptSwift BCryptConfiguration.swift
/Users/admin/builder/spi-builder-workspace/BCryptSwift/Classes/BCryptConfiguration.swift:45:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// Configuration for BCrypt operations
34 | public struct BCryptConfiguration {
| `- note: consider making struct 'BCryptConfiguration' conform to the 'Sendable' protocol
35 | /// The cost factor (number of rounds). Must be between 4 and 31.
36 | public let rounds: UInt
:
43 |
44 | /// Default configuration with 10 rounds
45 | public static let `default` = BCryptConfiguration(rounds: 10)
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |
47 | /// Configuration for high security (12 rounds)
/Users/admin/builder/spi-builder-workspace/BCryptSwift/Classes/BCryptConfiguration.swift:48:23: warning: static property 'highSecurity' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// Configuration for BCrypt operations
34 | public struct BCryptConfiguration {
| `- note: consider making struct 'BCryptConfiguration' conform to the 'Sendable' protocol
35 | /// The cost factor (number of rounds). Must be between 4 and 31.
36 | public let rounds: UInt
:
46 |
47 | /// Configuration for high security (12 rounds)
48 | public static let highSecurity = BCryptConfiguration(rounds: 12)
| |- warning: static property 'highSecurity' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'highSecurity' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |
50 | /// Configuration for testing (4 rounds - minimum allowed)
/Users/admin/builder/spi-builder-workspace/BCryptSwift/Classes/BCryptConfiguration.swift:51:23: warning: static property 'testing' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// Configuration for BCrypt operations
34 | public struct BCryptConfiguration {
| `- note: consider making struct 'BCryptConfiguration' conform to the 'Sendable' protocol
35 | /// The cost factor (number of rounds). Must be between 4 and 31.
36 | public let rounds: UInt
:
49 |
50 | /// Configuration for testing (4 rounds - minimum allowed)
51 | public static let testing = BCryptConfiguration(rounds: 4)
| |- warning: static property 'testing' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'testing' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |
53 | public init(rounds: UInt = 10, version: BCryptVersion = .v2a, maxPasswordLength: Int = 72) {
[8/8] Emitting module BCryptSwift
/Users/admin/builder/spi-builder-workspace/BCryptSwift/Classes/BCryptConfiguration.swift:45:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// Configuration for BCrypt operations
34 | public struct BCryptConfiguration {
| `- note: consider making struct 'BCryptConfiguration' conform to the 'Sendable' protocol
35 | /// The cost factor (number of rounds). Must be between 4 and 31.
36 | public let rounds: UInt
:
43 |
44 | /// Default configuration with 10 rounds
45 | public static let `default` = BCryptConfiguration(rounds: 10)
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 |
47 | /// Configuration for high security (12 rounds)
/Users/admin/builder/spi-builder-workspace/BCryptSwift/Classes/BCryptConfiguration.swift:48:23: warning: static property 'highSecurity' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// Configuration for BCrypt operations
34 | public struct BCryptConfiguration {
| `- note: consider making struct 'BCryptConfiguration' conform to the 'Sendable' protocol
35 | /// The cost factor (number of rounds). Must be between 4 and 31.
36 | public let rounds: UInt
:
46 |
47 | /// Configuration for high security (12 rounds)
48 | public static let highSecurity = BCryptConfiguration(rounds: 12)
| |- warning: static property 'highSecurity' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'highSecurity' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |
50 | /// Configuration for testing (4 rounds - minimum allowed)
/Users/admin/builder/spi-builder-workspace/BCryptSwift/Classes/BCryptConfiguration.swift:51:23: warning: static property 'testing' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
32 |
33 | /// Configuration for BCrypt operations
34 | public struct BCryptConfiguration {
| `- note: consider making struct 'BCryptConfiguration' conform to the 'Sendable' protocol
35 | /// The cost factor (number of rounds). Must be between 4 and 31.
36 | public let rounds: UInt
:
49 |
50 | /// Configuration for testing (4 rounds - minimum allowed)
51 | public static let testing = BCryptConfiguration(rounds: 4)
| |- warning: static property 'testing' is not concurrency-safe because non-'Sendable' type 'BCryptConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'testing' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 |
53 | public init(rounds: UInt = 10, version: BCryptVersion = .v2a, maxPasswordLength: Int = 72) {
Build complete! (4.21s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "BCryptSwift",
"name" : "BCryptSwift",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "12.0"
},
{
"name" : "macos",
"version" : "10.13"
},
{
"name" : "tvos",
"version" : "12.0"
},
{
"name" : "watchos",
"version" : "5.0"
}
],
"products" : [
{
"name" : "BCryptSwift",
"targets" : [
"BCryptSwift"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "BCryptSwiftTests",
"module_type" : "SwiftTarget",
"name" : "BCryptSwiftTests",
"path" : "Example/Tests",
"sources" : [
"BCryptSecurityTests.swift",
"BCryptSwiftTests.swift"
],
"target_dependencies" : [
"BCryptSwift"
],
"type" : "test"
},
{
"c99name" : "BCryptSwift",
"module_type" : "SwiftTarget",
"name" : "BCryptSwift",
"path" : "BCryptSwift/Classes",
"product_memberships" : [
"BCryptSwift"
],
"sources" : [
"BCryptConfiguration.swift",
"BCryptError.swift",
"BCryptSwift.swift",
"BCryptSwiftModern.swift",
"BCryptSwiftRandom.swift"
],
"type" : "library"
}
],
"tools_version" : "5.3"
}
Done.