Build Information
Successful build of RPiLight, reference main (c546e2
), with Swift 6.0 for macOS (SPM) on 2 Nov 2024 04:11:23 UTC.
Swift 6 data race errors: 6
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Build Log
========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/kaiede/rpilight.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/kaiede/rpilight
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at c546e24 Fix Bootstrap Script for Development Only Use
Cloned https://github.com/kaiede/rpilight.git
Revision (git rev-parse @):
c546e24b00bd0c9bfe9c2f3dc4467f2d388f8b38
SUCCESS checkout https://github.com/kaiede/rpilight.git at main
Fetching https://github.com/Kaiede/SingleBoard.git
Fetching https://github.com/jpsim/Yams.git
Fetching https://github.com/Kaiede/MCP4725.git
Fetching https://github.com/apple/swift-log.git
Fetching https://github.com/kareman/Moderator.git
Fetching https://github.com/Kaiede/PCA9685.git
Fetching https://github.com/Kaiede/Ephemeris.git
[3/70] Fetching pca9685
[71/98] Fetching pca9685, mcp4725
[99/756] Fetching pca9685, mcp4725, moderator
[165/966] Fetching pca9685, mcp4725, moderator, ephemeris
[258/1243] Fetching pca9685, mcp4725, moderator, ephemeris, singleboard
[981/4903] Fetching pca9685, mcp4725, moderator, ephemeris, singleboard, swift-log
[1228/14805] Fetching pca9685, mcp4725, moderator, ephemeris, singleboard, swift-log, yams
Fetched https://github.com/Kaiede/SingleBoard.git from cache (0.81s)
[988/14528] Fetching pca9685, mcp4725, moderator, ephemeris, swift-log, yams
Fetched https://github.com/Kaiede/Ephemeris.git from cache (1.87s)
Fetched https://github.com/Kaiede/PCA9685.git from cache (1.87s)
Fetched https://github.com/kareman/Moderator.git from cache (1.87s)
Fetched https://github.com/Kaiede/MCP4725.git from cache (1.91s)
Fetched https://github.com/jpsim/Yams.git from cache (1.91s)
Fetched https://github.com/apple/swift-log.git from cache (1.91s)
Computing version for https://github.com/Kaiede/SingleBoard.git
Computed https://github.com/Kaiede/SingleBoard.git at 1.0.0 (2.81s)
Computing version for https://github.com/Kaiede/MCP4725.git
Computed https://github.com/Kaiede/MCP4725.git at 0.1.0 (0.70s)
Computing version for https://github.com/Kaiede/PCA9685.git
Computed https://github.com/Kaiede/PCA9685.git at 3.0.0 (0.69s)
Computing version for https://github.com/Kaiede/Ephemeris.git
Computed https://github.com/Kaiede/Ephemeris.git at 1.0.2 (0.67s)
Computing version for https://github.com/jpsim/Yams.git
Computed https://github.com/jpsim/Yams.git at 2.0.0 (0.68s)
Computing version for https://github.com/kareman/Moderator.git
Computed https://github.com/kareman/Moderator.git at 0.5.1 (0.69s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.6.1 (0.49s)
Creating working copy for https://github.com/jpsim/Yams.git
Working copy of https://github.com/jpsim/Yams.git resolved at 2.0.0
Creating working copy for https://github.com/kareman/Moderator.git
Working copy of https://github.com/kareman/Moderator.git resolved at 0.5.1
Creating working copy for https://github.com/Kaiede/SingleBoard.git
Working copy of https://github.com/Kaiede/SingleBoard.git resolved at 1.0.0
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.6.1
Creating working copy for https://github.com/Kaiede/PCA9685.git
Working copy of https://github.com/Kaiede/PCA9685.git resolved at 3.0.0
Creating working copy for https://github.com/Kaiede/Ephemeris.git
Working copy of https://github.com/Kaiede/Ephemeris.git resolved at 1.0.2
Creating working copy for https://github.com/Kaiede/MCP4725.git
Working copy of https://github.com/Kaiede/MCP4725.git resolved at 0.1.0
========================================
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": "rpilight",
"name": "RPiLight",
"url": "https://github.com/kaiede/rpilight.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/rpilight",
"dependencies": [
{
"identity": "moderator",
"name": "Moderator",
"url": "https://github.com/kareman/Moderator.git",
"version": "0.5.1",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Moderator",
"dependencies": [
]
},
{
"identity": "yams",
"name": "Yams",
"url": "https://github.com/jpsim/Yams.git",
"version": "2.0.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Yams",
"dependencies": [
]
},
{
"identity": "swift-log",
"name": "swift-log",
"url": "https://github.com/apple/swift-log.git",
"version": "1.6.1",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-log",
"dependencies": [
]
},
{
"identity": "ephemeris",
"name": "Ephemeris",
"url": "https://github.com/Kaiede/Ephemeris.git",
"version": "1.0.2",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Ephemeris",
"dependencies": [
]
},
{
"identity": "pca9685",
"name": "PCA9685",
"url": "https://github.com/Kaiede/PCA9685.git",
"version": "3.0.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/PCA9685",
"dependencies": [
{
"identity": "singleboard",
"name": "SingleBoard",
"url": "https://github.com/Kaiede/SingleBoard.git",
"version": "1.0.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SingleBoard",
"dependencies": [
]
}
]
},
{
"identity": "mcp4725",
"name": "MCP4725",
"url": "https://github.com/Kaiede/MCP4725.git",
"version": "0.1.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/MCP4725",
"dependencies": [
{
"identity": "singleboard",
"name": "SingleBoard",
"url": "https://github.com/Kaiede/SingleBoard.git",
"version": "1.0.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SingleBoard",
"dependencies": [
]
}
]
},
{
"identity": "singleboard",
"name": "SingleBoard",
"url": "https://github.com/Kaiede/SingleBoard.git",
"version": "1.0.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SingleBoard",
"dependencies": [
]
}
]
}
]
}
Fetching https://github.com/kaiede/rpilight.git
[1/3047] Fetching rpilight
Fetched https://github.com/kaiede/rpilight.git from cache (0.99s)
Fetching https://github.com/apple/swift-log.git from cache
Fetching https://github.com/jpsim/Yams.git from cache
Fetching https://github.com/Kaiede/PCA9685.git from cache
Fetching https://github.com/kareman/Moderator.git from cache
Fetching https://github.com/Kaiede/MCP4725.git from cache
Fetching https://github.com/Kaiede/SingleBoard.git from cache
Fetching https://github.com/Kaiede/Ephemeris.git from cache
Fetched https://github.com/Kaiede/Ephemeris.git from cache (0.54s)
Fetched https://github.com/Kaiede/PCA9685.git from cache (0.62s)
Fetched https://github.com/kareman/Moderator.git from cache (0.62s)
Fetched https://github.com/jpsim/Yams.git from cache (0.62s)
Fetched https://github.com/apple/swift-log.git from cache (0.62s)
Fetched https://github.com/Kaiede/SingleBoard.git from cache (0.62s)
Fetched https://github.com/Kaiede/MCP4725.git from cache (0.62s)
Computing version for https://github.com/Kaiede/SingleBoard.git
Computed https://github.com/Kaiede/SingleBoard.git at 1.0.0 (0.04s)
Computing version for https://github.com/Kaiede/MCP4725.git
Computed https://github.com/Kaiede/MCP4725.git at 0.1.0 (0.03s)
Computing version for https://github.com/Kaiede/PCA9685.git
Computed https://github.com/Kaiede/PCA9685.git at 3.0.0 (0.04s)
Computing version for https://github.com/Kaiede/Ephemeris.git
Computed https://github.com/Kaiede/Ephemeris.git at 1.0.2 (0.03s)
Computing version for https://github.com/jpsim/Yams.git
Computed https://github.com/jpsim/Yams.git at 2.0.0 (0.04s)
Computing version for https://github.com/kareman/Moderator.git
Computed https://github.com/kareman/Moderator.git at 0.5.1 (0.04s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.6.1 (0.03s)
Creating working copy for https://github.com/kareman/Moderator.git
Working copy of https://github.com/kareman/Moderator.git resolved at 0.5.1
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.6.1
Creating working copy for https://github.com/Kaiede/SingleBoard.git
Working copy of https://github.com/Kaiede/SingleBoard.git resolved at 1.0.0
Creating working copy for https://github.com/jpsim/Yams.git
Working copy of https://github.com/jpsim/Yams.git resolved at 2.0.0
Creating working copy for https://github.com/Kaiede/PCA9685.git
Working copy of https://github.com/Kaiede/PCA9685.git resolved at 3.0.0
Creating working copy for https://github.com/Kaiede/MCP4725.git
Working copy of https://github.com/Kaiede/MCP4725.git resolved at 0.1.0
Creating working copy for https://github.com/kaiede/rpilight.git
Working copy of https://github.com/kaiede/rpilight.git resolved at main (c546e24)
Creating working copy for https://github.com/Kaiede/Ephemeris.git
Working copy of https://github.com/Kaiede/Ephemeris.git resolved at 1.0.2
Found 7 product dependencies
- Moderator
- Yams
- swift-log
- Ephemeris
- PCA9685
- MCP4725
- SingleBoard
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $PWD
https://github.com/kaiede/rpilight.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/21] Write sources
[6/21] Write RPiLight-entitlement.plist
[6/21] Write sources
[11/21] Write swift-version--7754E27361AE5C74.txt
[12/47] Compiling writer.c
[13/47] Compiling parser.c
[14/47] Compiling api.c
[15/47] Compiling reader.c
[16/47] Compiling emitter.c
[17/47] Compiling scanner.c
[19/63] Compiling Logging LogHandler.swift
[20/63] Compiling Logging MetadataProvider.swift
[21/63] Emitting module Logging
[22/63] Compiling Logging Logging.swift
[23/63] Compiling Logging Locks.swift
[24/63] Compiling Moderator SwiftCompat.swift
[25/63] Compiling SingleBoard Pine_Board.swift
[26/63] Emitting module SingleBoard
[27/63] Compiling SingleBoard Chip_Board.swift
[28/63] Compiling Moderator Parsers.swift
[29/63] Compiling Yams Emitter.swift
[30/63] Compiling Yams Encoder.swift
[31/64] Emitting module Yams
[32/64] Compiling Yams Constructor.swift
[33/64] Compiling Yams Decoder.swift
[34/64] Compiling Yams shim.swift
[35/64] Compiling Moderator Moderator.swift
[36/64] Emitting module Moderator
[37/64] Compiling Ephemeris Solar.swift
[38/64] Compiling SingleBoard SingleBoard.swift
[39/64] Compiling Yams Tag.swift
[40/64] Compiling Yams YamlError.swift
[41/64] Compiling Yams Node.swift
[42/64] Compiling Yams Parser.swift
[43/64] Compiling Yams Mark.swift
[44/64] Compiling Yams Node.Mapping.swift
[45/64] Compiling Yams String+Yams.swift
[46/64] Compiling Yams Node.Scalar.swift
[47/64] Compiling Yams Node.Sequence.swift
[48/64] Compiling Yams Representer.swift
[49/64] Compiling Yams Resolver.swift
[50/64] Compiling SingleBoard Raspberry_Board.swift
[51/64] Compiling SingleBoard Raspberry_PWM.swift
[52/64] Emitting module Ephemeris
[53/64] Compiling Ephemeris Date.swift
[54/64] Compiling Ephemeris Lunar.swift
[55/64] Compiling Ephemeris Coordinates.swift
[56/64] Compiling Ephemeris Body.swift
[57/64] Compiling Ephemeris Matrix.swift
[58/64] Compiling SingleBoard GPIO.swift
[59/64] Compiling SingleBoard Extensions.swift
[60/64] Compiling SingleBoard Raspberry_Registers.swift
[61/64] Compiling SingleBoard I2C.swift
[62/68] Compiling PCA9685 PCA9685.swift
[63/68] Emitting module PCA9685
[64/68] Emitting module MCP4725
[65/68] Compiling MCP4725 MCP4725.swift
[66/77] Emitting module LED
[67/77] Compiling LED RaspberryPi.swift
[68/77] Compiling LED PCA9685.swift
[69/77] Compiling LED LEDModule.swift
[70/77] Compiling LED Simulated.swift
[71/77] Compiling LED Types.swift
[72/77] Compiling LED MCP4725.swift
[73/77] Compiling LED Utilities.swift
[74/77] Compiling LED LEDModule_Internal.swift
[75/89] Compiling Service ServiceDescription.swift
[76/90] Compiling Service SwiftExtensions.swift
[77/90] Compiling Service ScheduleDescription.swift
[78/90] Emitting module Service
[79/90] Compiling Service LogUtilities.swift
[80/90] Compiling Service ChannelPoint.swift
[81/90] Compiling Service DayTime.swift
[82/90] Compiling Service Behavior.swift
[83/90] Compiling Service ChannelController.swift
[84/90] Compiling Service Layer.swift
[85/90] Compiling Service LightController.swift
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:181:13: warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | // The Light Controller
74 | //
75 | public class LightController: BehaviorController {
| `- note: class 'LightController' does not conform to the 'Sendable' protocol
76 | typealias LightControllerTimer = Timer<TimerID>
77 | enum TimerID {
:
179 | public func setEvent(controller: EventController) {
180 | self.queue.async {
181 | self.eventControllers[controller.token] = controller
| `- warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
182 |
183 | if self.isRunning {
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:181:35: warning: capture of 'controller' with non-sendable type 'any EventController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
179 | public func setEvent(controller: EventController) {
180 | self.queue.async {
181 | self.eventControllers[controller.token] = controller
| `- warning: capture of 'controller' with non-sendable type 'any EventController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
182 |
183 | if self.isRunning {
/Users/admin/builder/spi-builder-workspace/Sources/Service/Event.swift:36:17: note: protocol 'EventController' does not conform to the 'Sendable' protocol
34 | }
35 |
36 | public protocol EventController {
| `- note: protocol 'EventController' does not conform to the 'Sendable' protocol
37 | var time: DayTime { get }
38 | var token: EventId { get }
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:196:13: warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | // The Light Controller
74 | //
75 | public class LightController: BehaviorController {
| `- note: class 'LightController' does not conform to the 'Sendable' protocol
76 | typealias LightControllerTimer = Timer<TimerID>
77 | enum TimerID {
:
194 | self.queue.async {
195 | log.info("Starting Light Controller")
196 | self.isRunning = true
| `- warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
197 | self.isRefreshOneShot = true
198 | self.fireRefresh()
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:207:13: warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | // The Light Controller
74 | //
75 | public class LightController: BehaviorController {
| `- note: class 'LightController' does not conform to the 'Sendable' protocol
76 | typealias LightControllerTimer = Timer<TimerID>
77 | enum TimerID {
:
205 | public func setStopHandler(_ closure: StopClosure?) {
206 | self.queue.async {
207 | self.stopClosure = closure
| `- warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
208 | }
209 | }
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:207:32: warning: capture of 'closure' with non-sendable type 'StopClosure?' (aka 'Optional<(LightController) -> ()>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
205 | public func setStopHandler(_ closure: StopClosure?) {
206 | self.queue.async {
207 | self.stopClosure = closure
| |- warning: capture of 'closure' with non-sendable type 'StopClosure?' (aka 'Optional<(LightController) -> ()>') 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'
208 | }
209 | }
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:213:13: warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | // The Light Controller
74 | //
75 | public class LightController: BehaviorController {
| `- note: class 'LightController' does not conform to the 'Sendable' protocol
76 | typealias LightControllerTimer = Timer<TimerID>
77 | enum TimerID {
:
211 | public func stop() {
212 | self.queue.async {
213 | self.stopInternal()
| `- warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
214 | }
215 | }
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:219:16: warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | // The Light Controller
74 | //
75 | public class LightController: BehaviorController {
| `- note: class 'LightController' does not conform to the 'Sendable' protocol
76 | typealias LightControllerTimer = Timer<TimerID>
77 | enum TimerID {
:
217 | public func invalidateRefreshTimer() {
218 | self.queue.async {
219 | if self.isRunning {
| `- warning: capture of 'self' with non-sendable type 'LightController' in a `@Sendable` closure; this is an error in the Swift 6 language mode
220 | let now = Date()
221 | self.scheduleRefresh(forDate: now)
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:279:37: warning: capture of 'self' with non-sendable type 'LightController?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | // The Light Controller
74 | //
75 | public class LightController: BehaviorController {
| `- note: class 'LightController' does not conform to the 'Sendable' protocol
76 | typealias LightControllerTimer = Timer<TimerID>
77 | enum TimerID {
:
277 | self.stopEventInternal()
278 | DispatchQueue.main.async { [weak self] in
279 | if let controller = self {
| `- warning: capture of 'self' with non-sendable type 'LightController?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
280 | controller.stopClosure?(controller)
281 | }
/Users/admin/builder/spi-builder-workspace/Sources/Service/LightController.swift:279:37: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
277 | self.stopEventInternal()
278 | DispatchQueue.main.async { [weak self] in
279 | if let controller = self {
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
280 | controller.stopClosure?(controller)
281 | }
[86/90] Compiling Service Event.swift
[87/90] Compiling Service Timers.swift
[88/95] Compiling RPiLight main.swift
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/main.swift:55:43: warning: converting non-sendable function value to '@Sendable (String) -> any LogHandler' may introduce data races
53 |
54 | // Logger Object
55 | LoggingSystem.bootstrap(ServiceLogHandler.init)
| `- warning: converting non-sendable function value to '@Sendable (String) -> any LogHandler' may introduce data races
56 | let log = Logger(label: "rpilight")
57 |
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:48:16: warning: static property 'logLevelOverride' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 | }
47 |
48 | static var logLevelOverride: Logger.Level?
| |- warning: static property 'logLevelOverride' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logLevelOverride' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'logLevelOverride' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 | private var handlerLogLevel: Logger.Level = .info
50 | var logLevel: Logger.Level {
[89/95] Compiling RPiLight ServiceLogHandler.swift
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:32:24: warning: static property 'stdOut' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
30 |
31 | class ServiceLogHandler: LogHandler {
32 | private static var stdOut: StdoutOutputStream = StdoutOutputStream()
| |- warning: static property 'stdOut' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'stdOut' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'stdOut' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
34 |
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:33:24: warning: static property 'stdErr' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
31 | class ServiceLogHandler: LogHandler {
32 | private static var stdOut: StdoutOutputStream = StdoutOutputStream()
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
| |- warning: static property 'stdErr' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'stdErr' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'stdErr' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
34 |
35 | private static var time = DateFormatter(currentWithFormat: "HH:mm:ss.SSS")
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:35:24: warning: static property 'time' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
34 |
35 | private static var time = DateFormatter(currentWithFormat: "HH:mm:ss.SSS")
| |- warning: static property 'time' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'time' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'time' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 | init(label: String) {
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:48:16: warning: static property 'logLevelOverride' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 | }
47 |
48 | static var logLevelOverride: Logger.Level?
| |- warning: static property 'logLevelOverride' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logLevelOverride' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'logLevelOverride' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 | private var handlerLogLevel: Logger.Level = .info
50 | var logLevel: Logger.Level {
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:31:7: warning: non-final class 'ServiceLogHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
29 | // swiftlint:disable function_parameter_count
30 |
31 | class ServiceLogHandler: LogHandler {
| `- warning: non-final class 'ServiceLogHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
32 | private static var stdOut: StdoutOutputStream = StdoutOutputStream()
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:41:17: warning: stored property 'label' of 'Sendable'-conforming class 'ServiceLogHandler' is mutable; this is an error in the Swift 6 language mode
39 | }
40 |
41 | private var label: String
| `- warning: stored property 'label' of 'Sendable'-conforming class 'ServiceLogHandler' is mutable; this is an error in the Swift 6 language mode
42 | var metadata: Logger.Metadata = [:]
43 | subscript(metadataKey key: String) -> Logger.Metadata.Value? {
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:31:7: warning: deprecated default implementation is used to satisfy instance method 'log(level:message:metadata:source:file:function:line:)' required by protocol 'LogHandler': You should implement this method instead of using the default implementation
29 | // swiftlint:disable function_parameter_count
30 |
31 | class ServiceLogHandler: LogHandler {
| `- warning: deprecated default implementation is used to satisfy instance method 'log(level:message:metadata:source:file:function:line:)' required by protocol 'LogHandler': You should implement this method instead of using the default implementation
32 | private static var stdOut: StdoutOutputStream = StdoutOutputStream()
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-log/Sources/Logging/LogHandler.swift:191:17: note: 'log(level:message:metadata:source:file:function:line:)' declared here
133 | /// - function: The function the log line was emitted from.
134 | /// - line: The line the log message was emitted from.
135 | func log(level: Logger.Level,
| `- note: requirement 'log(level:message:metadata:source:file:function:line:)' declared here
136 | message: Logger.Message,
137 | metadata: Logger.Metadata?,
:
189 | extension LogHandler {
190 | @available(*, deprecated, message: "You should implement this method instead of using the default implementation")
191 | public func log(level: Logger.Level,
| `- note: 'log(level:message:metadata:source:file:function:line:)' declared here
192 | message: Logger.Message,
193 | metadata: Logger.Metadata?,
[90/95] Compiling RPiLight ServiceGlue.swift
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceGlue.swift:54:1: warning: extension declares a conformance of imported type 'LEDChannel' to imported protocol 'Channel'; this will not behave correctly if the owners of 'LED' introduce this conformance in the future
52 | }
53 |
54 | extension LEDChannel: Channel {}
| |- warning: extension declares a conformance of imported type 'LEDChannel' to imported protocol 'Channel'; this will not behave correctly if the owners of 'LED' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
55 |
56 | extension ServiceControllerDescription: LEDModuleConfig {}
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceGlue.swift:56:1: warning: extension declares a conformance of imported type 'ServiceControllerDescription' to imported protocol 'LEDModuleConfig'; this will not behave correctly if the owners of 'Service' introduce this conformance in the future
54 | extension LEDChannel: Channel {}
55 |
56 | extension ServiceControllerDescription: LEDModuleConfig {}
| |- warning: extension declares a conformance of imported type 'ServiceControllerDescription' to imported protocol 'LEDModuleConfig'; this will not behave correctly if the owners of 'Service' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
57 |
58 | // MARK: Casting Support between Logging and Service types
[91/95] Emitting module RPiLight
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/main.swift:55:43: warning: converting non-sendable function value to '@Sendable (String) -> any LogHandler' may introduce data races
53 |
54 | // Logger Object
55 | LoggingSystem.bootstrap(ServiceLogHandler.init)
| `- warning: converting non-sendable function value to '@Sendable (String) -> any LogHandler' may introduce data races
56 | let log = Logger(label: "rpilight")
57 |
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:48:16: warning: static property 'logLevelOverride' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 | }
47 |
48 | static var logLevelOverride: Logger.Level?
| |- warning: static property 'logLevelOverride' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logLevelOverride' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'logLevelOverride' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 | private var handlerLogLevel: Logger.Level = .info
50 | var logLevel: Logger.Level {
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceGlue.swift:54:1: warning: extension declares a conformance of imported type 'LEDChannel' to imported protocol 'Channel'; this will not behave correctly if the owners of 'LED' introduce this conformance in the future
52 | }
53 |
54 | extension LEDChannel: Channel {}
| |- warning: extension declares a conformance of imported type 'LEDChannel' to imported protocol 'Channel'; this will not behave correctly if the owners of 'LED' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
55 |
56 | extension ServiceControllerDescription: LEDModuleConfig {}
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceGlue.swift:56:1: warning: extension declares a conformance of imported type 'ServiceControllerDescription' to imported protocol 'LEDModuleConfig'; this will not behave correctly if the owners of 'Service' introduce this conformance in the future
54 | extension LEDChannel: Channel {}
55 |
56 | extension ServiceControllerDescription: LEDModuleConfig {}
| |- warning: extension declares a conformance of imported type 'ServiceControllerDescription' to imported protocol 'LEDModuleConfig'; this will not behave correctly if the owners of 'Service' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
57 |
58 | // MARK: Casting Support between Logging and Service types
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:32:24: warning: static property 'stdOut' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
30 |
31 | class ServiceLogHandler: LogHandler {
32 | private static var stdOut: StdoutOutputStream = StdoutOutputStream()
| |- warning: static property 'stdOut' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'stdOut' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'stdOut' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
34 |
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:33:24: warning: static property 'stdErr' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
31 | class ServiceLogHandler: LogHandler {
32 | private static var stdOut: StdoutOutputStream = StdoutOutputStream()
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
| |- warning: static property 'stdErr' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'stdErr' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'stdErr' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
34 |
35 | private static var time = DateFormatter(currentWithFormat: "HH:mm:ss.SSS")
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:35:24: warning: static property 'time' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
34 |
35 | private static var time = DateFormatter(currentWithFormat: "HH:mm:ss.SSS")
| |- warning: static property 'time' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'time' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'time' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 |
37 | init(label: String) {
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:31:7: warning: non-final class 'ServiceLogHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
29 | // swiftlint:disable function_parameter_count
30 |
31 | class ServiceLogHandler: LogHandler {
| `- warning: non-final class 'ServiceLogHandler' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
32 | private static var stdOut: StdoutOutputStream = StdoutOutputStream()
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:41:17: warning: stored property 'label' of 'Sendable'-conforming class 'ServiceLogHandler' is mutable; this is an error in the Swift 6 language mode
39 | }
40 |
41 | private var label: String
| `- warning: stored property 'label' of 'Sendable'-conforming class 'ServiceLogHandler' is mutable; this is an error in the Swift 6 language mode
42 | var metadata: Logger.Metadata = [:]
43 | subscript(metadataKey key: String) -> Logger.Metadata.Value? {
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:31:7: warning: deprecated default implementation is used to satisfy instance method 'log(level:message:metadata:source:file:function:line:)' required by protocol 'LogHandler': You should implement this method instead of using the default implementation
29 | // swiftlint:disable function_parameter_count
30 |
31 | class ServiceLogHandler: LogHandler {
| `- warning: deprecated default implementation is used to satisfy instance method 'log(level:message:metadata:source:file:function:line:)' required by protocol 'LogHandler': You should implement this method instead of using the default implementation
32 | private static var stdOut: StdoutOutputStream = StdoutOutputStream()
33 | private static var stdErr: StderrOutputStream = StderrOutputStream()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-log/Sources/Logging/LogHandler.swift:191:17: note: 'log(level:message:metadata:source:file:function:line:)' declared here
133 | /// - function: The function the log line was emitted from.
134 | /// - line: The line the log message was emitted from.
135 | func log(level: Logger.Level,
| `- note: requirement 'log(level:message:metadata:source:file:function:line:)' declared here
136 | message: Logger.Message,
137 | metadata: Logger.Metadata?,
:
189 | extension LogHandler {
190 | @available(*, deprecated, message: "You should implement this method instead of using the default implementation")
191 | public func log(level: Logger.Level,
| `- note: 'log(level:message:metadata:source:file:function:line:)' declared here
192 | message: Logger.Message,
193 | metadata: Logger.Metadata?,
[92/95] Compiling RPiLight LightService.swift
/Users/admin/builder/spi-builder-workspace/Sources/RPiLight/ServiceLogHandler.swift:48:16: warning: static property 'logLevelOverride' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 | }
47 |
48 | static var logLevelOverride: Logger.Level?
| |- warning: static property 'logLevelOverride' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logLevelOverride' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'logLevelOverride' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 | private var handlerLogLevel: Logger.Level = .info
50 | var logLevel: Logger.Level {
[92/95] Write Objects.LinkFileList
[93/95] Linking RPiLight
[94/95] Applying RPiLight
Build complete! (35.52s)
Build complete.
{
"dependencies" : [
{
"identity" : "moderator",
"requirement" : {
"range" : [
{
"lower_bound" : "0.5.1",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/kareman/Moderator.git"
},
{
"identity" : "yams",
"requirement" : {
"range" : [
{
"lower_bound" : "2.0.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/jpsim/Yams.git"
},
{
"identity" : "swift-log",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-log.git"
},
{
"identity" : "ephemeris",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.2",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Kaiede/Ephemeris.git"
},
{
"identity" : "pca9685",
"requirement" : {
"range" : [
{
"lower_bound" : "3.0.0",
"upper_bound" : "4.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Kaiede/PCA9685.git"
},
{
"identity" : "mcp4725",
"requirement" : {
"range" : [
{
"lower_bound" : "0.1.0",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Kaiede/MCP4725.git"
},
{
"identity" : "singleboard",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Kaiede/SingleBoard.git"
}
],
"manifest_display_name" : "RPiLight",
"name" : "RPiLight",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "RPiLight",
"targets" : [
"RPiLight"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "ServiceTests",
"module_type" : "SwiftTarget",
"name" : "ServiceTests",
"path" : "Tests/ServiceTests",
"sources" : [
"BehaviorTests.swift",
"ChannelControllerTests.swift",
"DayTimeTests.swift",
"EventTests.swift",
"LayerTests.swift",
"LightControllerTests.swift",
"ScheduleDescriptionTests.swift",
"ServiceDescriptionTests.swift",
"SwiftExtensionsTests.swift"
],
"target_dependencies" : [
"Service"
],
"type" : "test"
},
{
"c99name" : "Service",
"module_type" : "SwiftTarget",
"name" : "Service",
"path" : "Sources/Service",
"product_dependencies" : [
"Logging",
"Ephemeris",
"Yams"
],
"product_memberships" : [
"RPiLight"
],
"sources" : [
"Behavior.swift",
"ChannelController.swift",
"ChannelPoint.swift",
"DayTime.swift",
"Event.swift",
"Layer.swift",
"LightController.swift",
"LogUtilities.swift",
"ScheduleDescription.swift",
"ServiceDescription.swift",
"SwiftExtensions.swift",
"Timers.swift"
],
"target_dependencies" : [
"LED"
],
"type" : "library"
},
{
"c99name" : "RPiLight",
"module_type" : "SwiftTarget",
"name" : "RPiLight",
"path" : "Sources/RPiLight",
"product_dependencies" : [
"Moderator"
],
"product_memberships" : [
"RPiLight"
],
"sources" : [
"LightService.swift",
"ServiceGlue.swift",
"ServiceLogHandler.swift",
"main.swift"
],
"target_dependencies" : [
"Service"
],
"type" : "executable"
},
{
"c99name" : "LEDTests",
"module_type" : "SwiftTarget",
"name" : "LEDTests",
"path" : "Tests/LEDTests",
"sources" : [
"ChannelTests.swift",
"ModuleTests.swift",
"TypeTests.swift"
],
"target_dependencies" : [
"LED"
],
"type" : "test"
},
{
"c99name" : "LED",
"module_type" : "SwiftTarget",
"name" : "LED",
"path" : "Sources/LED",
"product_dependencies" : [
"Logging",
"MCP4725",
"PCA9685",
"SingleBoard"
],
"product_memberships" : [
"RPiLight"
],
"sources" : [
"LEDModule.swift",
"LEDModule_Internal.swift",
"MCP4725.swift",
"PCA9685.swift",
"RaspberryPi.swift",
"Simulated.swift",
"Types.swift",
"Utilities.swift"
],
"type" : "library"
}
],
"tools_version" : "5.0"
}
Done.