Build Information
Successful build of Logboard, reference main (cb015e), with Swift 6.1 for macOS (SPM) on 24 Mar 2026 22:00:44 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 InferSendableFromCapturesBuild Log
========================================
RunAll
========================================
Builder version: 4.69.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/shogo4405/Logboard.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/shogo4405/Logboard
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at cb015ec Merge pull request #32 from shogo4405/dependabot/bundler/json-2.15.2.1
Cloned https://github.com/shogo4405/Logboard.git
Revision (git rev-parse @):
cb015ece0c41ef8cfaa17046682e664129e57bd1
SUCCESS checkout https://github.com/shogo4405/Logboard.git at main
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/shogo4405/Logboard.git
https://github.com/shogo4405/Logboard.git
{
"dependencies" : [
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.4.5",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/swiftlang/swift-docc-plugin"
}
],
"manifest_display_name" : "Logboard",
"name" : "Logboard",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "maccatalyst",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "11.0"
},
{
"name" : "watchos",
"version" : "8.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "Logboard",
"targets" : [
"Logboard"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "Logboard",
"module_type" : "SwiftTarget",
"name" : "Logboard",
"path" : "Sources/Logboard",
"product_memberships" : [
"Logboard"
],
"sources" : [
"ConsoleAppender.swift",
"LBLogger.Data.swift",
"LBLogger.swift",
"LBLoggerAppender.swift",
"MultiAppender.swift",
"NullAppender.swift",
"OSLoggerAppender.swift",
"SocketAppender.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
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
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/4] Write sources
[3/4] Write swift-version-2F0A5646E1D333AE.txt
[5/13] Compiling Logboard OSLoggerAppender.swift
[6/13] Compiling Logboard MultiAppender.swift
[7/13] Compiling Logboard ConsoleAppender.swift
[8/13] Compiling Logboard NullAppender.swift
/Users/admin/builder/spi-builder-workspace/Sources/Logboard/NullAppender.swift:5:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NullAppender' may have shared mutable state; this is an error in the Swift 6 language mode
2 |
3 | /// The NullAppender class does output no message.
4 | public class NullAppender: LBLoggerAppender {
| `- note: class 'NullAppender' does not conform to the 'Sendable' protocol
5 | public static let shared = NullAppender()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NullAppender' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
6 |
7 | public func append(_ logboard: LBLogger, level: LBLogger.Level, message: [Any], file: StaticString, function: StaticString, line: Int) {
[9/13] Compiling Logboard LBLoggerAppender.swift
[10/13] Compiling Logboard SocketAppender.swift
/Users/admin/builder/spi-builder-workspace/Sources/Logboard/SocketAppender.swift:82:13: warning: capture of 'self' with non-sendable type 'NetSocket' in a '@Sendable' closure
50 | }
51 |
52 | class NetSocket: NSObject {
| `- note: class 'NetSocket' does not conform to the 'Sendable' protocol
53 | static let defaultTimeout: Int64 = 15 // sec
54 | static let defaultWindowSizeC: Int = Int(UInt16.max)
:
80 | &writeStream
81 | )
82 | self.inputStream = readStream!.takeRetainedValue()
| `- warning: capture of 'self' with non-sendable type 'NetSocket' in a '@Sendable' closure
83 | self.outputStream = writeStream!.takeRetainedValue()
84 | self.initConnection()
/Users/admin/builder/spi-builder-workspace/Sources/Logboard/SocketAppender.swift:95:17: warning: capture of 'self' with non-sendable type 'NetSocket' in a '@Sendable' closure
50 | }
51 |
52 | class NetSocket: NSObject {
| `- note: class 'NetSocket' does not conform to the 'Sendable' protocol
53 | static let defaultTimeout: Int64 = 15 // sec
54 | static let defaultWindowSizeC: Int = Int(UInt16.max)
:
93 | return
94 | }
95 | self.doOutputProcess(bytes, maxLength: data.count)
| `- warning: capture of 'self' with non-sendable type 'NetSocket' in a '@Sendable' closure
96 | }
97 | }
/Users/admin/builder/spi-builder-workspace/Sources/Logboard/SocketAppender.swift:95:17: warning: capture of 'self' with non-sendable type 'NetSocket' in an isolated closure; this is an error in the Swift 6 language mode
50 | }
51 |
52 | class NetSocket: NSObject {
| `- note: class 'NetSocket' does not conform to the 'Sendable' protocol
53 | static let defaultTimeout: Int64 = 15 // sec
54 | static let defaultWindowSizeC: Int = Int(UInt16.max)
:
93 | return
94 | }
95 | self.doOutputProcess(bytes, maxLength: data.count)
| `- warning: capture of 'self' with non-sendable type 'NetSocket' in an isolated closure; this is an error in the Swift 6 language mode
96 | }
97 | }
/Users/admin/builder/spi-builder-workspace/Sources/Logboard/SocketAppender.swift:117:42: warning: capture of 'self' with non-sendable type 'NetSocket' in a '@Sendable' closure
50 | }
51 |
52 | class NetSocket: NSObject {
| `- note: class 'NetSocket' does not conform to the 'Sendable' protocol
53 | static let defaultTimeout: Int64 = 15 // sec
54 | static let defaultWindowSizeC: Int = Int(UInt16.max)
:
115 | func close(isDisconnected: Bool) {
116 | outputQueue.async {
117 | guard let runloop: RunLoop = self.runloop else {
| `- warning: capture of 'self' with non-sendable type 'NetSocket' in a '@Sendable' closure
118 | return
119 | }
/Users/admin/builder/spi-builder-workspace/Sources/Logboard/SocketAppender.swift:159:58: warning: capture of 'self' with non-sendable type 'NetSocket' in a '@Sendable' closure
50 | }
51 |
52 | class NetSocket: NSObject {
| `- note: class 'NetSocket' does not conform to the 'Sendable' protocol
53 | static let defaultTimeout: Int64 = 15 // sec
54 | static let defaultWindowSizeC: Int = Int(UInt16.max)
:
157 | if 0 < timeout {
158 | outputQueue.asyncAfter(deadline: .now() + Double(timeout * Int64(NSEC_PER_SEC)) / Double(NSEC_PER_SEC)) {
159 | guard let timeoutHandler: (() -> Void) = self.timeoutHandler else {
| `- warning: capture of 'self' with non-sendable type 'NetSocket' in a '@Sendable' closure
160 | return
161 | }
[11/13] Compiling Logboard LBLogger.Data.swift
[12/13] Compiling Logboard LBLogger.swift
/Users/admin/builder/spi-builder-workspace/Sources/Logboard/LBLogger.swift:10:23: warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
8 | public class LBLogger {
9 | /// The default dateFormatter values that is yyyy-dd-MM HH:mm:ss.SSS.
10 | static public var dateFormatter: DateFormatter = {
| |- warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'dateFormatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
11 | let dateFormatter: DateFormatter = DateFormatter()
12 | dateFormatter.dateFormat = "yyyy-dd-MM HH:mm:ss.SSS"
/Users/admin/builder/spi-builder-workspace/Sources/Logboard/LBLogger.swift:64:24: warning: static property 'instances' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | private static var instances: [String: LBLogger] = [:]
| |- warning: static property 'instances' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'instances' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'instances' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
65 |
66 | /// Create or get a Logboard instance.
[13/13] Emitting module Logboard
/Users/admin/builder/spi-builder-workspace/Sources/Logboard/LBLogger.swift:10:23: warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
8 | public class LBLogger {
9 | /// The default dateFormatter values that is yyyy-dd-MM HH:mm:ss.SSS.
10 | static public var dateFormatter: DateFormatter = {
| |- warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'dateFormatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
11 | let dateFormatter: DateFormatter = DateFormatter()
12 | dateFormatter.dateFormat = "yyyy-dd-MM HH:mm:ss.SSS"
/Users/admin/builder/spi-builder-workspace/Sources/Logboard/LBLogger.swift:64:24: warning: static property 'instances' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | private static var instances: [String: LBLogger] = [:]
| |- warning: static property 'instances' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'instances' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'instances' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
65 |
66 | /// Create or get a Logboard instance.
/Users/admin/builder/spi-builder-workspace/Sources/Logboard/NullAppender.swift:5:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NullAppender' may have shared mutable state; this is an error in the Swift 6 language mode
2 |
3 | /// The NullAppender class does output no message.
4 | public class NullAppender: LBLoggerAppender {
| `- note: class 'NullAppender' does not conform to the 'Sendable' protocol
5 | public static let shared = NullAppender()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NullAppender' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
6 |
7 | public func append(_ logboard: LBLogger, level: LBLogger.Level, message: [Any], file: StaticString, function: StaticString, line: Int) {
Build complete! (20.16s)
Fetching https://github.com/swiftlang/swift-docc-plugin from cache
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.75s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.6 (3.83s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.88s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.54s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.4.6
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Build complete.
{
"dependencies" : [
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.4.5",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/swiftlang/swift-docc-plugin"
}
],
"manifest_display_name" : "Logboard",
"name" : "Logboard",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "maccatalyst",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "11.0"
},
{
"name" : "watchos",
"version" : "8.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "Logboard",
"targets" : [
"Logboard"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "Logboard",
"module_type" : "SwiftTarget",
"name" : "Logboard",
"path" : "Sources/Logboard",
"product_memberships" : [
"Logboard"
],
"sources" : [
"ConsoleAppender.swift",
"LBLogger.Data.swift",
"LBLogger.swift",
"LBLoggerAppender.swift",
"MultiAppender.swift",
"NullAppender.swift",
"OSLoggerAppender.swift",
"SocketAppender.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.