Build Information
Successful build of edge-tts, reference master (8c18b6
), with Swift 6.1 for macOS (SPM) on 30 Apr 2025 02:25:42 UTC.
Swift 6 data race errors: 5
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Build Log
========================================
RunAll
========================================
Builder version: 4.61.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/brewusinc/Edge-TTS.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/brewusinc/Edge-TTS
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 8c18b62 Initial commit
Cloned https://github.com/brewusinc/Edge-TTS.git
Revision (git rev-parse @):
8c18b6228d44e532bcab38ccb59b87bb50268ad2
SUCCESS checkout https://github.com/brewusinc/Edge-TTS.git at master
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/brewusinc/Edge-TTS.git
https://github.com/brewusinc/Edge-TTS.git
{
"dependencies" : [
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.5.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser"
},
{
"identity" : "swift-crypto",
"requirement" : {
"range" : [
{
"lower_bound" : "3.10.0",
"upper_bound" : "4.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-crypto.git"
}
],
"manifest_display_name" : "edge-tts",
"name" : "edge-tts",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "watchos",
"version" : "8.0"
}
],
"products" : [
{
"name" : "EdgeTTS",
"targets" : [
"EdgeTTS"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "edge-tts-cli",
"targets" : [
"EdgeTTSCLI"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "EdgeTTSCLI",
"module_type" : "SwiftTarget",
"name" : "EdgeTTSCLI",
"path" : "Sources/EdgeTTSCLI",
"product_dependencies" : [
"ArgumentParser"
],
"product_memberships" : [
"edge-tts-cli"
],
"sources" : [
"main.swift"
],
"target_dependencies" : [
"EdgeTTS"
],
"type" : "executable"
},
{
"c99name" : "EdgeTTS",
"module_type" : "SwiftTarget",
"name" : "EdgeTTS",
"path" : "Sources/EdgeTTS",
"product_dependencies" : [
"Crypto"
],
"product_memberships" : [
"EdgeTTS",
"edge-tts-cli"
],
"sources" : [
"EdgeTTS.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 GenerateManual
Building for debugging...
[1/12] Write sources
[2/12] Copying PrivacyInfo.xcprivacy
[4/12] Write edge-tts-cli-entitlement.plist
[4/12] Write sources
[8/12] Write swift-version-2F0A5646E1D333AE.txt
[10/87] Compiling ArgumentParserToolInfo ToolInfo.swift
[11/87] Emitting module ArgumentParserToolInfo
[12/126] Emitting module Crypto
[13/134] Compiling ArgumentParser InputOrigin.swift
[14/134] Compiling ArgumentParser Name.swift
[15/134] Compiling ArgumentParser Parsed.swift
[16/134] Compiling ArgumentParser ParsedValues.swift
[17/138] Emitting module ArgumentParser
[18/138] Compiling ArgumentParser ParsableArguments.swift
[19/138] Compiling ArgumentParser ParsableArgumentsValidation.swift
[20/138] Compiling ArgumentParser ParsableCommand.swift
[21/138] Compiling ArgumentParser ArgumentDecoder.swift
[22/138] Compiling ArgumentParser CommandConfiguration.swift
[23/138] Compiling ArgumentParser CommandGroup.swift
[24/138] Compiling ArgumentParser EnumerableFlag.swift
[25/138] Compiling ArgumentParser ExpressibleByArgument.swift
[26/138] Compiling ArgumentParser ArgumentDefinition.swift
[27/138] Compiling ArgumentParser ArgumentSet.swift
[28/138] Compiling ArgumentParser CommandParser.swift
[29/138] Compiling ArgumentParser InputKey.swift
[30/138] Compiling ArgumentParser Platform.swift
[31/138] Compiling ArgumentParser SequenceExtensions.swift
[32/138] Compiling ArgumentParser StringExtensions.swift
[33/138] Compiling ArgumentParser Tree.swift
[34/138] Compiling ArgumentParser NameSpecification.swift
[35/138] Compiling ArgumentParser Option.swift
[36/138] Compiling ArgumentParser OptionGroup.swift
[37/138] Compiling ArgumentParser AsyncParsableCommand.swift
[38/138] Compiling ArgumentParser ArgumentHelp.swift
[39/138] Compiling ArgumentParser ArgumentVisibility.swift
[40/138] Compiling ArgumentParser CompletionKind.swift
[41/138] Compiling ArgumentParser Errors.swift
[42/138] Compiling ArgumentParser Flag.swift
[43/138] Compiling ArgumentParser ParserError.swift
[44/138] Compiling ArgumentParser SplitArguments.swift
[45/138] Compiling ArgumentParser DumpHelpGenerator.swift
[46/138] Compiling ArgumentParser HelpCommand.swift
[47/138] Compiling ArgumentParser BashCompletionsGenerator.swift
[48/138] Compiling ArgumentParser CompletionsGenerator.swift
[49/138] Compiling ArgumentParser FishCompletionsGenerator.swift
[50/138] Compiling ArgumentParser ZshCompletionsGenerator.swift
[51/138] Compiling ArgumentParser Argument.swift
[52/138] Compiling ArgumentParser HelpGenerator.swift
[53/138] Compiling ArgumentParser MessageInfo.swift
[54/138] Compiling ArgumentParser UsageGenerator.swift
[55/138] Compiling ArgumentParser CollectionExtensions.swift
[64/138] Compiling Crypto RNG_boring.swift
[65/138] Compiling Crypto SafeCompare_boring.swift
[66/138] Compiling Crypto Zeroization_boring.swift
[67/138] Compiling Crypto PrettyBytes.swift
[68/138] Compiling Crypto SafeCompare.swift
[69/138] Compiling Crypto SecureBytes.swift
[70/138] Compiling Crypto Zeroization.swift
[71/138] Compiling Crypto resource_bundle_accessor.swift
[88/138] Compiling Crypto HPKE-KexKeyDerivation.swift
[89/138] Compiling Crypto HPKE-LabeledExtract.swift
[90/138] Compiling Crypto HPKE-Utils.swift
[91/138] Compiling Crypto DHKEM.swift
[92/138] Compiling Crypto HPKE-KEM-Curve25519.swift
[93/138] Compiling Crypto HPKE-NIST-EC-KEMs.swift
[94/138] Compiling Crypto HPKE-KEM.swift
[95/138] Compiling Crypto HPKE-Errors.swift
[98/138] Compiling Crypto ECDSASignature.swift
[99/138] Compiling Crypto PEMDocument.swift
[100/138] Compiling Crypto PKCS8PrivateKey.swift
[101/138] Compiling Crypto SEC1PrivateKey.swift
[102/138] Compiling Crypto SubjectPublicKeyInfo.swift
[103/138] Compiling Crypto CryptoKitErrors.swift
[104/138] Compiling Crypto HPKE.swift
[105/138] Compiling Crypto HPKE-Context.swift
[106/138] Compiling Crypto HPKE-KeySchedule.swift
[107/138] Compiling Crypto HPKE-Modes.swift
[108/138] Compiling Crypto Insecure.swift
[109/138] Compiling Crypto Insecure_HashFunctions.swift
[110/138] Compiling Crypto KEM.swift
[111/138] Compiling Crypto ECDH_boring.swift
[112/138] Compiling Crypto AES.swift
[113/138] Compiling Crypto ECDSASignature_boring.swift
[114/138] Compiling Crypto ECDSA_boring.swift
[115/138] Compiling Crypto EdDSA_boring.swift
[116/138] Compiling Crypto ECDSA.swift
[117/138] Compiling Crypto Ed25519.swift
[118/138] Compiling Crypto Signature.swift
[119/138] Compiling Crypto CryptoKitErrors_boring.swift
[136/140] Emitting module EdgeTTS
/Users/admin/builder/spi-builder-workspace/Sources/EdgeTTS/EdgeTTS.swift:97:7: warning: non-final class 'WebSocketClient' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
95 |
96 | // MARK: - WebSocket Client
97 | class WebSocketClient: NSObject, URLSessionWebSocketDelegate {
| `- warning: non-final class 'WebSocketClient' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
98 | private var webSocket: URLSessionWebSocketTask?
99 | private var isConnected = false
/Users/admin/builder/spi-builder-workspace/Sources/EdgeTTS/EdgeTTS.swift:98:17: warning: stored property 'webSocket' of 'Sendable'-conforming class 'WebSocketClient' is mutable; this is an error in the Swift 6 language mode
96 | // MARK: - WebSocket Client
97 | class WebSocketClient: NSObject, URLSessionWebSocketDelegate {
98 | private var webSocket: URLSessionWebSocketTask?
| `- warning: stored property 'webSocket' of 'Sendable'-conforming class 'WebSocketClient' is mutable; this is an error in the Swift 6 language mode
99 | private var isConnected = false
100 | private var messageHandler: ((Result<URLSessionWebSocketTask.Message, Error>) -> Void)?
[137/140] Compiling EdgeTTS EdgeTTS.swift
/Users/admin/builder/spi-builder-workspace/Sources/EdgeTTS/EdgeTTS.swift:97:7: warning: non-final class 'WebSocketClient' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
95 |
96 | // MARK: - WebSocket Client
97 | class WebSocketClient: NSObject, URLSessionWebSocketDelegate {
| `- warning: non-final class 'WebSocketClient' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
98 | private var webSocket: URLSessionWebSocketTask?
99 | private var isConnected = false
/Users/admin/builder/spi-builder-workspace/Sources/EdgeTTS/EdgeTTS.swift:98:17: warning: stored property 'webSocket' of 'Sendable'-conforming class 'WebSocketClient' is mutable; this is an error in the Swift 6 language mode
96 | // MARK: - WebSocket Client
97 | class WebSocketClient: NSObject, URLSessionWebSocketDelegate {
98 | private var webSocket: URLSessionWebSocketTask?
| `- warning: stored property 'webSocket' of 'Sendable'-conforming class 'WebSocketClient' is mutable; this is an error in the Swift 6 language mode
99 | private var isConnected = false
100 | private var messageHandler: ((Result<URLSessionWebSocketTask.Message, Error>) -> Void)?
/Users/admin/builder/spi-builder-workspace/Sources/EdgeTTS/EdgeTTS.swift:281:25: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
279 | var subFile: [SubLine] = []
280 |
281 | let task = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
282 | let requestId = UUID().uuidString
283 | let ssmlMessage = """
284 | X-RequestId:\(requestId)\r\nContent-Type:application/ssml+xml\r\nPath:ssml\r\n\r\n
285 | <speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="\(config.lang)">
| `- note: closure captures 'self' which is accessible to code in the current task
286 | <voice name="\(config.voice)">
287 | <prosody rate="\(config.rate)" pitch="\(config.pitch)" volume="\(config.volume)">
/Users/admin/builder/spi-builder-workspace/Sources/EdgeTTS/EdgeTTS.swift:363:32: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
361 | }
362 |
363 | let timeoutTask = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
364 | try await Task.sleep(nanoseconds: UInt64(config.timeout * 1_000_000_000))
| `- note: closure captures 'self' which is accessible to code in the current task
365 | task.cancel()
366 | throw NSError(
[138/142] Compiling EdgeTTSCLI main.swift
/Users/admin/builder/spi-builder-workspace/Sources/EdgeTTSCLI/main.swift:9:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
7 | @main
8 | struct EdgeTTSCLI: EdgeTTSCommand {
9 | static var configuration = CommandConfiguration(
| |- warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 | commandName: "edge-tts-cli",
11 | abstract: "A Swift implementation of Microsoft Edge TTS",
/Users/admin/builder/spi-builder-workspace/Sources/EdgeTTSCLI/main.swift:19:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 | // MARK: - List Command
18 | struct List: EdgeTTSCommand {
19 | static var configuration = CommandConfiguration(
| |- warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 | commandName: "list",
21 | abstract: "List all available voices"
/Users/admin/builder/spi-builder-workspace/Sources/EdgeTTSCLI/main.swift:51:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 | // MARK: - Speak Command
50 | struct Speak: EdgeTTSCommand {
51 | static var configuration = CommandConfiguration(
| |- warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 | commandName: "speak",
53 | abstract: "Convert text to speech"
[139/142] Emitting module EdgeTTSCLI
/Users/admin/builder/spi-builder-workspace/Sources/EdgeTTSCLI/main.swift:9:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
7 | @main
8 | struct EdgeTTSCLI: EdgeTTSCommand {
9 | static var configuration = CommandConfiguration(
| |- warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 | commandName: "edge-tts-cli",
11 | abstract: "A Swift implementation of Microsoft Edge TTS",
/Users/admin/builder/spi-builder-workspace/Sources/EdgeTTSCLI/main.swift:19:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
17 | // MARK: - List Command
18 | struct List: EdgeTTSCommand {
19 | static var configuration = CommandConfiguration(
| |- warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 | commandName: "list",
21 | abstract: "List all available voices"
/Users/admin/builder/spi-builder-workspace/Sources/EdgeTTSCLI/main.swift:51:16: warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 | // MARK: - Speak Command
50 | struct Speak: EdgeTTSCommand {
51 | static var configuration = CommandConfiguration(
| |- warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 | commandName: "speak",
53 | abstract: "Convert text to speech"
[139/142] Write Objects.LinkFileList
[140/142] Linking edge-tts-cli
[141/142] Applying edge-tts-cli
Build complete! (18.59s)
Fetching https://github.com/apple/swift-crypto.git from cache
Fetching https://github.com/apple/swift-argument-parser from cache
Fetched https://github.com/apple/swift-crypto.git from cache (0.69s)
Fetched https://github.com/apple/swift-argument-parser from cache (0.70s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.5.0 (1.23s)
Computing version for https://github.com/apple/swift-crypto.git
Computed https://github.com/apple/swift-crypto.git at 3.12.3 (1.40s)
Fetching https://github.com/apple/swift-asn1.git from cache
Fetched https://github.com/apple/swift-asn1.git from cache (0.56s)
Computing version for https://github.com/apple/swift-asn1.git
Computed https://github.com/apple/swift-asn1.git at 1.3.2 (1.13s)
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.5.0
Creating working copy for https://github.com/apple/swift-asn1.git
Working copy of https://github.com/apple/swift-asn1.git resolved at 1.3.2
Creating working copy for https://github.com/apple/swift-crypto.git
Working copy of https://github.com/apple/swift-crypto.git resolved at 3.12.3
Build complete.
{
"dependencies" : [
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.5.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser"
},
{
"identity" : "swift-crypto",
"requirement" : {
"range" : [
{
"lower_bound" : "3.10.0",
"upper_bound" : "4.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-crypto.git"
}
],
"manifest_display_name" : "edge-tts",
"name" : "edge-tts",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "watchos",
"version" : "8.0"
}
],
"products" : [
{
"name" : "EdgeTTS",
"targets" : [
"EdgeTTS"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "edge-tts-cli",
"targets" : [
"EdgeTTSCLI"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "EdgeTTSCLI",
"module_type" : "SwiftTarget",
"name" : "EdgeTTSCLI",
"path" : "Sources/EdgeTTSCLI",
"product_dependencies" : [
"ArgumentParser"
],
"product_memberships" : [
"edge-tts-cli"
],
"sources" : [
"main.swift"
],
"target_dependencies" : [
"EdgeTTS"
],
"type" : "executable"
},
{
"c99name" : "EdgeTTS",
"module_type" : "SwiftTarget",
"name" : "EdgeTTS",
"path" : "Sources/EdgeTTS",
"product_dependencies" : [
"Crypto"
],
"product_memberships" : [
"EdgeTTS",
"edge-tts-cli"
],
"sources" : [
"EdgeTTS.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.