Build Information
Successful build of LiveAudioServer, reference v0.1.6 (3f674d), with Swift 6.1 for macOS (SPM) on 20 Jul 2026 00:15:51 UTC.
Swift 6 data race errors: 2
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: undefined version: run 'make version' to update
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/dsward2/LiveAudioServer.git
Reference: v0.1.6
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/dsward2/LiveAudioServer
* tag v0.1.6 -> FETCH_HEAD
HEAD is now at 3f674df Bump version to 0.1.6
Cloned https://github.com/dsward2/LiveAudioServer.git
Revision (git rev-parse @):
3f674df73c10c62bdb9acc558746e77842374a0c
SUCCESS checkout https://github.com/dsward2/LiveAudioServer.git at v0.1.6
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/dsward2/LiveAudioServer.git
https://github.com/dsward2/LiveAudioServer.git
{
"dependencies" : [
{
"identity" : "swift-testing",
"requirement" : {
"range" : [
{
"lower_bound" : "0.10.0",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-testing.git"
}
],
"manifest_display_name" : "LiveAudioServer",
"name" : "LiveAudioServer",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
}
],
"products" : [
{
"name" : "LiveAudioServerCore",
"targets" : [
"LiveAudioServerCore"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "LiveAudioServer",
"targets" : [
"LiveAudioServer"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "LiveAudioServerTests",
"module_type" : "SwiftTarget",
"name" : "LiveAudioServerTests",
"path" : "Tests/LiveAudioServerTests",
"product_dependencies" : [
"Testing"
],
"sources" : [
"ADTSHeaderTests.swift",
"CLIParseTests.swift",
"ConfigFileTests.swift",
"FillerGeneratorTests.swift",
"HLSSegmenterTests.swift",
"IPACLTests.swift",
"LiveAudioServerLibraryAPITests.swift",
"NowPlayingTests.swift",
"PCMInputSourceTests.swift",
"RecorderTests.swift",
"StatsCollectorTests.swift",
"TPDFDitherTests.swift"
],
"target_dependencies" : [
"LiveAudioServerCore"
],
"type" : "test"
},
{
"c99name" : "LiveAudioServerCore",
"module_type" : "SwiftTarget",
"name" : "LiveAudioServerCore",
"path" : "Sources/LiveAudioServerCore",
"product_memberships" : [
"LiveAudioServerCore",
"LiveAudioServer"
],
"sources" : [
"AACEncoder.swift",
"Bonjour.swift",
"CLIParse.swift",
"ChunkBroadcaster.swift",
"Config.swift",
"ConfigFile.swift",
"HLSSegmenter.swift",
"HTTPServer.swift",
"IPACL.swift",
"LiveAudioServer.swift",
"Logger.swift",
"MP3Encoder.swift",
"NowPlaying.swift",
"PCMSource.swift",
"Recorder.swift",
"StatsCollector.swift",
"TLSIdentity.swift",
"Version.swift"
],
"target_dependencies" : [
"CLame"
],
"type" : "library"
},
{
"c99name" : "LiveAudioServer",
"module_type" : "SwiftTarget",
"name" : "LiveAudioServer",
"path" : "Sources/LiveAudioServer",
"product_memberships" : [
"LiveAudioServer"
],
"sources" : [
"LiveAudioServerApp.swift"
],
"target_dependencies" : [
"LiveAudioServerCore"
],
"type" : "executable"
},
{
"c99name" : "CLame",
"module_type" : "BinaryTarget",
"name" : "CLame",
"path" : "Frameworks/Mp3Lame.xcframework",
"product_memberships" : [
"LiveAudioServerCore",
"LiveAudioServer"
],
"sources" : [
],
"type" : "binary"
}
],
"tools_version" : "5.10"
}
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/8] Copying libmp3lame.a
[0/8] Write sources
[0/8] Write LiveAudioServer-entitlement.plist
[4/8] Write swift-version-2F0A5646E1D333AE.txt
[6/26] Compiling LiveAudioServerCore Recorder.swift
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/Recorder.swift:129:30: warning: capture of 'self' with non-sendable type 'FileRecorder?' in a '@Sendable' closure
31 | }
32 |
33 | final class FileRecorder {
| `- note: class 'FileRecorder' does not conform to the 'Sendable' protocol
34 | enum State: String, Codable {
35 | case idle
:
127 | guard !data.isEmpty else { return }
128 | queue.async { [weak self] in
129 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'FileRecorder?' in a '@Sendable' closure
130 | guard self._state == .recording, let h = self.handle else { return }
131 | do {
[7/26] Compiling LiveAudioServerCore StatsCollector.swift
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/Recorder.swift:129:30: warning: capture of 'self' with non-sendable type 'FileRecorder?' in a '@Sendable' closure
31 | }
32 |
33 | final class FileRecorder {
| `- note: class 'FileRecorder' does not conform to the 'Sendable' protocol
34 | enum State: String, Codable {
35 | case idle
:
127 | guard !data.isEmpty else { return }
128 | queue.async { [weak self] in
129 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'FileRecorder?' in a '@Sendable' closure
130 | guard self._state == .recording, let h = self.handle else { return }
131 | do {
[8/27] Compiling LiveAudioServerCore NowPlaying.swift
[9/27] Compiling LiveAudioServerCore PCMSource.swift
[10/27] Compiling LiveAudioServerCore TLSIdentity.swift
[11/27] Compiling LiveAudioServerCore HLSSegmenter.swift
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:510:30: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
508 | func start() {
509 | connection.stateUpdateHandler = { [weak self] state in
510 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
511 | switch state {
512 | case .cancelled, .failed:
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:535:30: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
533 | private func receiveRequest() {
534 | connection.receive(minimumIncompleteLength: 1, maximumLength: 8192) { [weak self] data, _, isComplete, _ in
535 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
536 | if let d = data { self.receiveBuffer.append(d) }
537 |
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:645:21: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
643 | } else {
644 | connection.send(content: notFoundResponse(), completion: .contentProcessed { [weak self] _ in
645 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
646 | })
647 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:661:13: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
659 | response.append(body)
660 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
661 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
662 | })
663 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:679:13: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
677 | response.append(body)
678 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
679 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
680 | })
681 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:691:17: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
689 | if headOnly {
690 | connection.send(content: headers, completion: .contentProcessed { [weak self] _ in
691 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
692 | })
693 | return
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:698:30: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
696 | // Send headers, then register as a streaming client
697 | connection.send(content: headers, completion: .contentProcessed { [weak self] error in
698 | guard let self = self, error == nil else { self?.connection.cancel(); return }
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
699 |
700 | let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:727:13: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
725 | if !headOnly { response.append(body) }
726 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
727 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
728 | })
729 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:759:13: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
757 | if !headOnly { response.append(body) }
758 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
759 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
760 | })
761 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:775:13: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
773 | if !headOnly { response.append(body) }
774 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
775 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
776 | })
777 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:794:17: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
792 | response.append(responseBody)
793 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
794 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
795 | })
796 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:827:13: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
825 | if !headOnly { response.append(body) }
826 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
827 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
828 | })
829 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:896:17: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
894 | guard let segmenter = hlsSegmenter else {
895 | connection.send(content: notFoundResponse(), completion: .contentProcessed { [weak self] _ in
896 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
897 | })
898 | return
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:910:13: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
908 | if !headOnly { response.append(body) }
909 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
910 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
911 | })
912 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:918:17: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
916 | let body = segmenter.segmentData(for: path) else {
917 | connection.send(content: notFoundResponse(), completion: .contentProcessed { [weak self] _ in
918 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
919 | })
920 | return
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:932:13: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
930 | if !headOnly { response.append(body) }
931 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
932 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
933 | })
934 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:1052:30: warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
937 | // MARK: - HTTP Server
938 |
939 | final class HTTPServer {
| `- note: class 'HTTPServer' does not conform to the 'Sendable' protocol
940 | private let config: ServerConfig
941 | private let mp3Broadcaster: ChunkBroadcaster
:
1050 |
1051 | listener.newConnectionHandler = { [weak self] conn in
1052 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1053 |
1054 | // Source-IP allow-list check (default = allow all).
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:1096:30: warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
937 | // MARK: - HTTP Server
938 |
939 | final class HTTPServer {
| `- note: class 'HTTPServer' does not conform to the 'Sendable' protocol
940 | private let config: ServerConfig
941 | private let mp3Broadcaster: ChunkBroadcaster
:
1094 |
1095 | listener.stateUpdateHandler = { [weak self] state in
1096 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1097 | switch state {
1098 | case .ready:
[12/27] Compiling LiveAudioServerCore HTTPServer.swift
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:510:30: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
508 | func start() {
509 | connection.stateUpdateHandler = { [weak self] state in
510 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
511 | switch state {
512 | case .cancelled, .failed:
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:535:30: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
533 | private func receiveRequest() {
534 | connection.receive(minimumIncompleteLength: 1, maximumLength: 8192) { [weak self] data, _, isComplete, _ in
535 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
536 | if let d = data { self.receiveBuffer.append(d) }
537 |
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:645:21: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
643 | } else {
644 | connection.send(content: notFoundResponse(), completion: .contentProcessed { [weak self] _ in
645 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
646 | })
647 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:661:13: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
659 | response.append(body)
660 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
661 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
662 | })
663 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:679:13: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
677 | response.append(body)
678 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
679 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
680 | })
681 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:691:17: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
689 | if headOnly {
690 | connection.send(content: headers, completion: .contentProcessed { [weak self] _ in
691 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
692 | })
693 | return
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:698:30: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
696 | // Send headers, then register as a streaming client
697 | connection.send(content: headers, completion: .contentProcessed { [weak self] error in
698 | guard let self = self, error == nil else { self?.connection.cancel(); return }
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
699 |
700 | let id = UUID()
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:727:13: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
725 | if !headOnly { response.append(body) }
726 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
727 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
728 | })
729 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:759:13: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
757 | if !headOnly { response.append(body) }
758 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
759 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
760 | })
761 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:775:13: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
773 | if !headOnly { response.append(body) }
774 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
775 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
776 | })
777 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:794:17: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
792 | response.append(responseBody)
793 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
794 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
795 | })
796 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:827:13: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
825 | if !headOnly { response.append(body) }
826 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
827 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
828 | })
829 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:896:17: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
894 | guard let segmenter = hlsSegmenter else {
895 | connection.send(content: notFoundResponse(), completion: .contentProcessed { [weak self] _ in
896 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
897 | })
898 | return
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:910:13: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
908 | if !headOnly { response.append(body) }
909 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
910 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
911 | })
912 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:918:17: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
916 | let body = segmenter.segmentData(for: path) else {
917 | connection.send(content: notFoundResponse(), completion: .contentProcessed { [weak self] _ in
918 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
919 | })
920 | return
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:932:13: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
464 | // MARK: - Connection Handler
465 |
466 | final class HTTPConnection {
| `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
467 | private let connection: NWConnection
468 | private let config: ServerConfig
:
930 | if !headOnly { response.append(body) }
931 | connection.send(content: response, completion: .contentProcessed { [weak self] _ in
932 | self?.connection.cancel()
| `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
933 | })
934 | }
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:1052:30: warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
937 | // MARK: - HTTP Server
938 |
939 | final class HTTPServer {
| `- note: class 'HTTPServer' does not conform to the 'Sendable' protocol
940 | private let config: ServerConfig
941 | private let mp3Broadcaster: ChunkBroadcaster
:
1050 |
1051 | listener.newConnectionHandler = { [weak self] conn in
1052 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1053 |
1054 | // Source-IP allow-list check (default = allow all).
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/HTTPServer.swift:1096:30: warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
937 | // MARK: - HTTP Server
938 |
939 | final class HTTPServer {
| `- note: class 'HTTPServer' does not conform to the 'Sendable' protocol
940 | private let config: ServerConfig
941 | private let mp3Broadcaster: ChunkBroadcaster
:
1094 |
1095 | listener.stateUpdateHandler = { [weak self] state in
1096 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
1097 | switch state {
1098 | case .ready:
[13/27] Compiling LiveAudioServerCore Version.swift
[14/27] Compiling LiveAudioServerCore Logger.swift
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/Logger.swift:44:24: warning: static property '_logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
42 | public enum LiveAudioServerLogging {
43 | private static let lock = NSLock()
44 | private static var _logger: LiveAudioServerLogger = SilentLogger()
| |- warning: static property '_logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 |
46 | public static var logger: LiveAudioServerLogger {
[15/27] Compiling LiveAudioServerCore MP3Encoder.swift
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/Logger.swift:44:24: warning: static property '_logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
42 | public enum LiveAudioServerLogging {
43 | private static let lock = NSLock()
44 | private static var _logger: LiveAudioServerLogger = SilentLogger()
| |- warning: static property '_logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 |
46 | public static var logger: LiveAudioServerLogger {
[16/27] Compiling LiveAudioServerCore Config.swift
[17/27] Compiling LiveAudioServerCore ConfigFile.swift
[18/27] Compiling LiveAudioServerCore IPACL.swift
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/IPACL.swift:126:23: warning: static property 'allowAll' is not concurrency-safe because non-'Sendable' type 'IPAllowList' may have shared mutable state; this is an error in the Swift 6 language mode
117 | /// Ordered list of allow-list matchers. A connection is allowed iff at least
118 | /// one matcher matches the source host.
119 | public struct IPAllowList: Equatable {
| `- note: consider making struct 'IPAllowList' conform to the 'Sendable' protocol
120 | let matchers: [IPMatcher]
121 | /// `true` for the unrestricted default — kept as a separate flag so a
:
124 | let allowAll: Bool
125 |
126 | public static let allowAll = IPAllowList(matchers: [], allowAll: true)
| |- warning: static property 'allowAll' is not concurrency-safe because non-'Sendable' type 'IPAllowList' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'allowAll' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
127 |
128 | func allows(_ host: NWEndpoint.Host) -> Bool {
[19/27] Compiling LiveAudioServerCore LiveAudioServer.swift
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/IPACL.swift:126:23: warning: static property 'allowAll' is not concurrency-safe because non-'Sendable' type 'IPAllowList' may have shared mutable state; this is an error in the Swift 6 language mode
117 | /// Ordered list of allow-list matchers. A connection is allowed iff at least
118 | /// one matcher matches the source host.
119 | public struct IPAllowList: Equatable {
| `- note: consider making struct 'IPAllowList' conform to the 'Sendable' protocol
120 | let matchers: [IPMatcher]
121 | /// `true` for the unrestricted default — kept as a separate flag so a
:
124 | let allowAll: Bool
125 |
126 | public static let allowAll = IPAllowList(matchers: [], allowAll: true)
| |- warning: static property 'allowAll' is not concurrency-safe because non-'Sendable' type 'IPAllowList' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'allowAll' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
127 |
128 | func allows(_ host: NWEndpoint.Host) -> Bool {
[20/27] Compiling LiveAudioServerCore CLIParse.swift
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/ChunkBroadcaster.swift:51:30: warning: capture of 'self' with non-sendable type 'StreamClient?' in a '@Sendable' closure
24 | // MARK: - Client Slot
25 |
26 | final class StreamClient {
| `- note: class 'StreamClient' does not conform to the 'Sendable' protocol
27 | let id: UUID
28 | let connection: NWConnection
:
49 | pendingBytes += data.count
50 | connection.send(content: data, completion: .contentProcessed { [weak self] error in
51 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'StreamClient?' in a '@Sendable' closure
52 | self.pendingBytes -= data.count
53 | if let error = error {
[21/27] Compiling LiveAudioServerCore ChunkBroadcaster.swift
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/ChunkBroadcaster.swift:51:30: warning: capture of 'self' with non-sendable type 'StreamClient?' in a '@Sendable' closure
24 | // MARK: - Client Slot
25 |
26 | final class StreamClient {
| `- note: class 'StreamClient' does not conform to the 'Sendable' protocol
27 | let id: UUID
28 | let connection: NWConnection
:
49 | pendingBytes += data.count
50 | connection.send(content: data, completion: .contentProcessed { [weak self] error in
51 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'StreamClient?' in a '@Sendable' closure
52 | self.pendingBytes -= data.count
53 | if let error = error {
[22/27] Compiling LiveAudioServerCore AACEncoder.swift
[23/27] Compiling LiveAudioServerCore Bonjour.swift
[24/27] Emitting module LiveAudioServerCore
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/IPACL.swift:126:23: warning: static property 'allowAll' is not concurrency-safe because non-'Sendable' type 'IPAllowList' may have shared mutable state; this is an error in the Swift 6 language mode
117 | /// Ordered list of allow-list matchers. A connection is allowed iff at least
118 | /// one matcher matches the source host.
119 | public struct IPAllowList: Equatable {
| `- note: consider making struct 'IPAllowList' conform to the 'Sendable' protocol
120 | let matchers: [IPMatcher]
121 | /// `true` for the unrestricted default — kept as a separate flag so a
:
124 | let allowAll: Bool
125 |
126 | public static let allowAll = IPAllowList(matchers: [], allowAll: true)
| |- warning: static property 'allowAll' is not concurrency-safe because non-'Sendable' type 'IPAllowList' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'allowAll' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
127 |
128 | func allows(_ host: NWEndpoint.Host) -> Bool {
/Users/admin/builder/spi-builder-workspace/Sources/LiveAudioServerCore/Logger.swift:44:24: warning: static property '_logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
42 | public enum LiveAudioServerLogging {
43 | private static let lock = NSLock()
44 | private static var _logger: LiveAudioServerLogger = SilentLogger()
| |- warning: static property '_logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 |
46 | public static var logger: LiveAudioServerLogger {
[25/29] Compiling LiveAudioServer LiveAudioServerApp.swift
[26/29] Emitting module LiveAudioServer
[26/29] Write Objects.LinkFileList
[27/29] Linking LiveAudioServer
[28/29] Applying LiveAudioServer
Build complete! (20.46s)
Fetching https://github.com/apple/swift-testing.git
[1/39694] Fetching swift-testing
Fetched https://github.com/apple/swift-testing.git from cache (3.14s)
Computing version for https://github.com/apple/swift-testing.git
Computed https://github.com/apple/swift-testing.git at 0.99.0 (3.73s)
Fetching https://github.com/swiftlang/swift-syntax.git from cache
Fetched https://github.com/swiftlang/swift-syntax.git from cache (2.29s)
Computing version for https://github.com/swiftlang/swift-syntax.git
Computed https://github.com/swiftlang/swift-syntax.git at 600.0.1 (6.28s)
Creating working copy for https://github.com/apple/swift-testing.git
Working copy of https://github.com/apple/swift-testing.git resolved at 0.99.0
Creating working copy for https://github.com/swiftlang/swift-syntax.git
Working copy of https://github.com/swiftlang/swift-syntax.git resolved at 600.0.1
Build complete.
{
"dependencies" : [
{
"identity" : "swift-testing",
"requirement" : {
"range" : [
{
"lower_bound" : "0.10.0",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-testing.git"
}
],
"manifest_display_name" : "LiveAudioServer",
"name" : "LiveAudioServer",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
}
],
"products" : [
{
"name" : "LiveAudioServerCore",
"targets" : [
"LiveAudioServerCore"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "LiveAudioServer",
"targets" : [
"LiveAudioServer"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "LiveAudioServerTests",
"module_type" : "SwiftTarget",
"name" : "LiveAudioServerTests",
"path" : "Tests/LiveAudioServerTests",
"product_dependencies" : [
"Testing"
],
"sources" : [
"ADTSHeaderTests.swift",
"CLIParseTests.swift",
"ConfigFileTests.swift",
"FillerGeneratorTests.swift",
"HLSSegmenterTests.swift",
"IPACLTests.swift",
"LiveAudioServerLibraryAPITests.swift",
"NowPlayingTests.swift",
"PCMInputSourceTests.swift",
"RecorderTests.swift",
"StatsCollectorTests.swift",
"TPDFDitherTests.swift"
],
"target_dependencies" : [
"LiveAudioServerCore"
],
"type" : "test"
},
{
"c99name" : "LiveAudioServerCore",
"module_type" : "SwiftTarget",
"name" : "LiveAudioServerCore",
"path" : "Sources/LiveAudioServerCore",
"product_memberships" : [
"LiveAudioServerCore",
"LiveAudioServer"
],
"sources" : [
"AACEncoder.swift",
"Bonjour.swift",
"CLIParse.swift",
"ChunkBroadcaster.swift",
"Config.swift",
"ConfigFile.swift",
"HLSSegmenter.swift",
"HTTPServer.swift",
"IPACL.swift",
"LiveAudioServer.swift",
"Logger.swift",
"MP3Encoder.swift",
"NowPlaying.swift",
"PCMSource.swift",
"Recorder.swift",
"StatsCollector.swift",
"TLSIdentity.swift",
"Version.swift"
],
"target_dependencies" : [
"CLame"
],
"type" : "library"
},
{
"c99name" : "LiveAudioServer",
"module_type" : "SwiftTarget",
"name" : "LiveAudioServer",
"path" : "Sources/LiveAudioServer",
"product_memberships" : [
"LiveAudioServer"
],
"sources" : [
"LiveAudioServerApp.swift"
],
"target_dependencies" : [
"LiveAudioServerCore"
],
"type" : "executable"
},
{
"c99name" : "CLame",
"module_type" : "BinaryTarget",
"name" : "CLame",
"path" : "Frameworks/Mp3Lame.xcframework",
"product_memberships" : [
"LiveAudioServerCore",
"LiveAudioServer"
],
"sources" : [
],
"type" : "binary"
}
],
"tools_version" : "5.10"
}
Done.