Build Information
Successful build of GeminiKit, reference 1.0.0 (63827c
), with Swift 6.1 for Linux on 13 Jul 2025 11:11:40 UTC.
Swift 6 data race errors: 2
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-3":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
Build Log
========================================
RunAll
========================================
Builder version: 4.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/guitaripod/GeminiKit.git
Reference: 1.0.0
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/guitaripod/GeminiKit
* tag 1.0.0 -> FETCH_HEAD
HEAD is now at 63827c0 fix: correct release workflow to build gemini-cli instead of deepseek-cli
Cloned https://github.com/guitaripod/GeminiKit.git
Revision (git rev-parse @):
63827c07138f2c1fbf34b97b877c2a22d348e88f
SUCCESS checkout https://github.com/guitaripod/GeminiKit.git at 1.0.0
========================================
Build
========================================
Selected platform: linux
Swift version: 6.1
Building package at path: $PWD
https://github.com/guitaripod/GeminiKit.git
https://github.com/guitaripod/GeminiKit.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
"dependencies" : [
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.3.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser"
}
],
"manifest_display_name" : "GeminiKit",
"name" : "GeminiKit",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "ios",
"version" : "16.0"
},
{
"name" : "tvos",
"version" : "16.0"
},
{
"name" : "watchos",
"version" : "9.0"
}
],
"products" : [
{
"name" : "GeminiKit",
"targets" : [
"GeminiKit"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "gemini-cli",
"targets" : [
"GeminiCLI"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "GeminiKitTests",
"module_type" : "SwiftTarget",
"name" : "GeminiKitTests",
"path" : "Tests/GeminiKitTests",
"sources" : [
"API/FileOperationsTests.swift",
"ConfigurationTests.swift",
"ContentTests.swift",
"ErrorTests.swift",
"FunctionBuilderTests.swift",
"GeminiKitTests.swift",
"GenerationConfigTests.swift",
"Media/AudioTests.swift",
"ModelTests.swift",
"SafetySettingsTests.swift",
"StreamingTests.swift",
"Types/PartTests.swift",
"Types/ToolTests.swift",
"VideoTests.swift"
],
"target_dependencies" : [
"GeminiKit"
],
"type" : "test"
},
{
"c99name" : "GeminiKit",
"module_type" : "SwiftTarget",
"name" : "GeminiKit",
"path" : "Sources/GeminiKit",
"product_memberships" : [
"GeminiKit",
"gemini-cli"
],
"sources" : [
"Core/Chat.swift",
"Core/Configuration.swift",
"Core/GeminiError.swift",
"Core/GeminiKit.swift",
"Core/GeminiModels.swift",
"Core/OpenAICompatibility.swift",
"Core/SpecializedEndpoints.swift",
"Extensions/ToolExtensions.swift",
"Models/AnyCodable.swift",
"Models/Content.swift",
"Models/GenerationConfig.swift",
"Models/OpenAIModels.swift",
"Models/Request.swift",
"Models/Response.swift",
"Models/SpecializedModels.swift",
"Networking/APIClient.swift",
"Networking/CURLHTTPClient.swift",
"Networking/HTTPClient.swift",
"Networking/URLSessionHTTPClient.swift",
"Tools/ToolBuilder.swift"
],
"type" : "library"
},
{
"c99name" : "GeminiCLI",
"module_type" : "SwiftTarget",
"name" : "GeminiCLI",
"path" : "Sources/GeminiCLI",
"product_dependencies" : [
"ArgumentParser"
],
"product_memberships" : [
"gemini-cli"
],
"sources" : [
"Commands/AudioCommand.swift",
"Commands/ChatCommand.swift",
"Commands/CodeExecutionCommand.swift",
"Commands/ConfigInfoCommand.swift",
"Commands/CountCommand.swift",
"Commands/EmbeddingsCommand.swift",
"Commands/FileCommands.swift",
"Commands/FunctionCallCommand.swift",
"Commands/GenerateCommand.swift",
"Commands/ImageGenerationCommand.swift",
"Commands/OpenAIChatCommand.swift",
"Commands/StreamCommand.swift",
"Commands/VideoCommands.swift",
"Commands/WebGroundingCommand.swift",
"Common/CommonOptions.swift",
"Helpers/FileHelper.swift",
"Helpers/OutputFormatter.swift",
"Protocols/CLICommand.swift",
"Types/OutputFormat.swift",
"main.swift"
],
"target_dependencies" : [
"GeminiKit"
],
"type" : "executable"
}
],
"tools_version" : "5.9"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-3":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:2e2b3aca8600f890617c2faa770b70e33c1dfd303d6f92b308423b89ef6bde64
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Fetching https://github.com/apple/swift-argument-parser
[1/15524] Fetching swift-argument-parser
Fetched https://github.com/apple/swift-argument-parser from cache (0.92s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.6.1 (1.42s)
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.6.1
[1/1] Compiling plugin GenerateManual
[2/2] Compiling plugin GenerateDoccReference
Building for debugging...
[2/13] Write sources
[6/13] Write swift-version-24593BA9C3E375BF.txt
[8/34] Emitting module ArgumentParserToolInfo
[9/34] Compiling ArgumentParserToolInfo ToolInfo.swift
[10/35] Wrapping AST for ArgumentParserToolInfo for debugging
[12/79] Emitting module ArgumentParser
[13/85] Compiling ArgumentParser ArgumentVisibility.swift
[14/85] Compiling ArgumentParser CompletionKind.swift
[15/85] Compiling ArgumentParser Errors.swift
[16/87] Compiling ArgumentParser Flag.swift
[17/87] Compiling ArgumentParser NameSpecification.swift
[18/87] Compiling ArgumentParser Option.swift
[19/87] Compiling ArgumentParser OptionGroup.swift
[20/87] Compiling ArgumentParser AsyncParsableCommand.swift
[21/87] Compiling ArgumentParser CommandConfiguration.swift
[22/87] Compiling ArgumentParser CommandGroup.swift
[23/87] Compiling ArgumentParser EnumerableFlag.swift
[24/87] Compiling ArgumentParser ExpressibleByArgument.swift
[25/87] Compiling ArgumentParser CollectionExtensions.swift
[26/87] Compiling ArgumentParser Mutex.swift
[27/87] Compiling ArgumentParser Platform.swift
[28/87] Compiling ArgumentParser SequenceExtensions.swift
[29/87] Compiling ArgumentParser StringExtensions.swift
[30/87] Compiling ArgumentParser SwiftExtensions.swift
[31/87] Compiling ArgumentParser ArgumentDecoder.swift
[32/87] Compiling ArgumentParser ArgumentDefinition.swift
[33/87] Compiling ArgumentParser ArgumentSet.swift
[34/87] Compiling ArgumentParser CommandParser.swift
[35/87] Compiling GeminiKit URLSessionHTTPClient.swift
[36/87] Compiling GeminiKit ToolBuilder.swift
[37/87] Compiling ArgumentParser Tree.swift
[38/87] Compiling ArgumentParser CodingKeyValidator.swift
[39/87] Compiling ArgumentParser NonsenseFlagsValidator.swift
[40/87] Compiling ArgumentParser ParsableArgumentsValidation.swift
[41/87] Compiling ArgumentParser PositionalArgumentsValidator.swift
[42/87] Compiling ArgumentParser UniqueNamesValidator.swift
[45/87] Emitting module GeminiKit
[50/87] Compiling ArgumentParser ParsableArguments.swift
[51/87] Compiling ArgumentParser ParsableCommand.swift
[52/88] Wrapping AST for GeminiKit for debugging
[56/88] Compiling ArgumentParser Name.swift
[57/88] Compiling ArgumentParser Parsed.swift
[58/88] Compiling ArgumentParser ParsedValues.swift
[59/88] Compiling ArgumentParser ParserError.swift
[66/88] Compiling ArgumentParser SplitArguments.swift
[67/88] Compiling ArgumentParser DumpHelpGenerator.swift
[68/88] Compiling ArgumentParser HelpCommand.swift
[69/88] Compiling ArgumentParser HelpGenerator.swift
[70/88] Compiling ArgumentParser MessageInfo.swift
[71/88] Compiling ArgumentParser UsageGenerator.swift
[78/88] Compiling ArgumentParser BashCompletionsGenerator.swift
[79/88] Compiling ArgumentParser CompletionsGenerator.swift
[80/88] Compiling ArgumentParser FishCompletionsGenerator.swift
[81/88] Compiling ArgumentParser ZshCompletionsGenerator.swift
[82/88] Compiling ArgumentParser Argument.swift
[83/88] Compiling ArgumentParser ArgumentDiscussion.swift
[84/88] Compiling ArgumentParser ArgumentHelp.swift
[85/89] Wrapping AST for ArgumentParser for debugging
[87/108] Emitting module GeminiCLI
/host/spi-builder-workspace/Sources/GeminiCLI/main.swift:59:57: warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
57 | } catch {
58 | // Print error to stderr to ensure it's visible
59 | fputs("Error: \(error.localizedDescription)\n", stderr)
| `- warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
60 | if let geminiError = error as? GeminiError {
61 | fputs("Details: \(geminiError)\n", stderr)
/usr/include/stdio.h:145:14: note: var declared here
143 | extern FILE *stdin; /* Standard input stream. */
144 | extern FILE *stdout; /* Standard output stream. */
145 | extern FILE *stderr; /* Standard error output stream. */
| `- note: var declared here
146 | /* C89/C99 say they're macros. Make them happy. */
147 | #define stdin stdin
/host/spi-builder-workspace/Sources/GeminiCLI/main.swift:61:48: warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
59 | fputs("Error: \(error.localizedDescription)\n", stderr)
60 | if let geminiError = error as? GeminiError {
61 | fputs("Details: \(geminiError)\n", stderr)
| `- warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 | semaphore.signal()
/usr/include/stdio.h:145:14: note: var declared here
143 | extern FILE *stdin; /* Standard input stream. */
144 | extern FILE *stdout; /* Standard output stream. */
145 | extern FILE *stderr; /* Standard error output stream. */
| `- note: var declared here
146 | /* C89/C99 say they're macros. Make them happy. */
147 | #define stdin stdin
/host/spi-builder-workspace/Sources/GeminiCLI/main.swift:57:7: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
55 | await GeminiCLI.main()
56 | semaphore.signal()
57 | } catch {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
58 | // Print error to stderr to ensure it's visible
59 | fputs("Error: \(error.localizedDescription)\n", stderr)
[88/110] Compiling GeminiCLI AudioCommand.swift
/host/spi-builder-workspace/Sources/GeminiCLI/Commands/ChatCommand.swift:43:28: warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
41 | for try await chunk in stream {
42 | print(chunk, terminator: "")
43 | fflush(stdout)
| `- warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
44 | }
45 | print("\n---")
/usr/include/stdio.h:144:14: note: var declared here
142 | /* Standard streams. */
143 | extern FILE *stdin; /* Standard input stream. */
144 | extern FILE *stdout; /* Standard output stream. */
| `- note: var declared here
145 | extern FILE *stderr; /* Standard error output stream. */
146 | /* C89/C99 say they're macros. Make them happy. */
[89/110] Compiling GeminiCLI ChatCommand.swift
/host/spi-builder-workspace/Sources/GeminiCLI/Commands/ChatCommand.swift:43:28: warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
41 | for try await chunk in stream {
42 | print(chunk, terminator: "")
43 | fflush(stdout)
| `- warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
44 | }
45 | print("\n---")
/usr/include/stdio.h:144:14: note: var declared here
142 | /* Standard streams. */
143 | extern FILE *stdin; /* Standard input stream. */
144 | extern FILE *stdout; /* Standard output stream. */
| `- note: var declared here
145 | extern FILE *stderr; /* Standard error output stream. */
146 | /* C89/C99 say they're macros. Make them happy. */
[90/110] Compiling GeminiCLI CodeExecutionCommand.swift
/host/spi-builder-workspace/Sources/GeminiCLI/Commands/ChatCommand.swift:43:28: warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
41 | for try await chunk in stream {
42 | print(chunk, terminator: "")
43 | fflush(stdout)
| `- warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
44 | }
45 | print("\n---")
/usr/include/stdio.h:144:14: note: var declared here
142 | /* Standard streams. */
143 | extern FILE *stdin; /* Standard input stream. */
144 | extern FILE *stdout; /* Standard output stream. */
| `- note: var declared here
145 | extern FILE *stderr; /* Standard error output stream. */
146 | /* C89/C99 say they're macros. Make them happy. */
[91/110] Compiling GeminiCLI ConfigInfoCommand.swift
[92/110] Compiling GeminiCLI CountCommand.swift
[93/110] Compiling GeminiCLI EmbeddingsCommand.swift
[94/110] Compiling GeminiCLI OutputFormat.swift
/host/spi-builder-workspace/Sources/GeminiCLI/main.swift:59:57: warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
57 | } catch {
58 | // Print error to stderr to ensure it's visible
59 | fputs("Error: \(error.localizedDescription)\n", stderr)
| `- warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
60 | if let geminiError = error as? GeminiError {
61 | fputs("Details: \(geminiError)\n", stderr)
/usr/include/stdio.h:145:14: note: var declared here
143 | extern FILE *stdin; /* Standard input stream. */
144 | extern FILE *stdout; /* Standard output stream. */
145 | extern FILE *stderr; /* Standard error output stream. */
| `- note: var declared here
146 | /* C89/C99 say they're macros. Make them happy. */
147 | #define stdin stdin
/host/spi-builder-workspace/Sources/GeminiCLI/main.swift:61:48: warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
59 | fputs("Error: \(error.localizedDescription)\n", stderr)
60 | if let geminiError = error as? GeminiError {
61 | fputs("Details: \(geminiError)\n", stderr)
| `- warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 | semaphore.signal()
/usr/include/stdio.h:145:14: note: var declared here
143 | extern FILE *stdin; /* Standard input stream. */
144 | extern FILE *stdout; /* Standard output stream. */
145 | extern FILE *stderr; /* Standard error output stream. */
| `- note: var declared here
146 | /* C89/C99 say they're macros. Make them happy. */
147 | #define stdin stdin
/host/spi-builder-workspace/Sources/GeminiCLI/main.swift:57:7: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
55 | await GeminiCLI.main()
56 | semaphore.signal()
57 | } catch {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
58 | // Print error to stderr to ensure it's visible
59 | fputs("Error: \(error.localizedDescription)\n", stderr)
[95/110] Compiling GeminiCLI main.swift
/host/spi-builder-workspace/Sources/GeminiCLI/main.swift:59:57: warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
57 | } catch {
58 | // Print error to stderr to ensure it's visible
59 | fputs("Error: \(error.localizedDescription)\n", stderr)
| `- warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
60 | if let geminiError = error as? GeminiError {
61 | fputs("Details: \(geminiError)\n", stderr)
/usr/include/stdio.h:145:14: note: var declared here
143 | extern FILE *stdin; /* Standard input stream. */
144 | extern FILE *stdout; /* Standard output stream. */
145 | extern FILE *stderr; /* Standard error output stream. */
| `- note: var declared here
146 | /* C89/C99 say they're macros. Make them happy. */
147 | #define stdin stdin
/host/spi-builder-workspace/Sources/GeminiCLI/main.swift:61:48: warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
59 | fputs("Error: \(error.localizedDescription)\n", stderr)
60 | if let geminiError = error as? GeminiError {
61 | fputs("Details: \(geminiError)\n", stderr)
| `- warning: reference to var 'stderr' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 | semaphore.signal()
/usr/include/stdio.h:145:14: note: var declared here
143 | extern FILE *stdin; /* Standard input stream. */
144 | extern FILE *stdout; /* Standard output stream. */
145 | extern FILE *stderr; /* Standard error output stream. */
| `- note: var declared here
146 | /* C89/C99 say they're macros. Make them happy. */
147 | #define stdin stdin
/host/spi-builder-workspace/Sources/GeminiCLI/main.swift:57:7: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
55 | await GeminiCLI.main()
56 | semaphore.signal()
57 | } catch {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
58 | // Print error to stderr to ensure it's visible
59 | fputs("Error: \(error.localizedDescription)\n", stderr)
[96/110] Compiling GeminiCLI CommonOptions.swift
[97/110] Compiling GeminiCLI FileHelper.swift
[98/110] Compiling GeminiCLI OutputFormatter.swift
[99/110] Compiling GeminiCLI CLICommand.swift
[100/110] Compiling GeminiCLI ImageGenerationCommand.swift
/host/spi-builder-workspace/Sources/GeminiCLI/Commands/OpenAIChatCommand.swift:44:28: warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
42 | if let delta = chunk.choices.first?.delta.content {
43 | print(delta, terminator: "")
44 | fflush(stdout)
| `- warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
45 | }
46 | }
/usr/include/stdio.h:144:14: note: var declared here
142 | /* Standard streams. */
143 | extern FILE *stdin; /* Standard input stream. */
144 | extern FILE *stdout; /* Standard output stream. */
| `- note: var declared here
145 | extern FILE *stderr; /* Standard error output stream. */
146 | /* C89/C99 say they're macros. Make them happy. */
/host/spi-builder-workspace/Sources/GeminiCLI/Commands/StreamCommand.swift:71:16: warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
69 | func handleStreamChunk(_ chunk: String) {
70 | print(chunk, terminator: "")
71 | fflush(stdout)
| `- warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
72 | }
73 | }
/usr/include/stdio.h:144:14: note: var declared here
142 | /* Standard streams. */
143 | extern FILE *stdin; /* Standard input stream. */
144 | extern FILE *stdout; /* Standard output stream. */
| `- note: var declared here
145 | extern FILE *stderr; /* Standard error output stream. */
146 | /* C89/C99 say they're macros. Make them happy. */
[101/110] Compiling GeminiCLI OpenAIChatCommand.swift
/host/spi-builder-workspace/Sources/GeminiCLI/Commands/OpenAIChatCommand.swift:44:28: warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
42 | if let delta = chunk.choices.first?.delta.content {
43 | print(delta, terminator: "")
44 | fflush(stdout)
| `- warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
45 | }
46 | }
/usr/include/stdio.h:144:14: note: var declared here
142 | /* Standard streams. */
143 | extern FILE *stdin; /* Standard input stream. */
144 | extern FILE *stdout; /* Standard output stream. */
| `- note: var declared here
145 | extern FILE *stderr; /* Standard error output stream. */
146 | /* C89/C99 say they're macros. Make them happy. */
/host/spi-builder-workspace/Sources/GeminiCLI/Commands/StreamCommand.swift:71:16: warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
69 | func handleStreamChunk(_ chunk: String) {
70 | print(chunk, terminator: "")
71 | fflush(stdout)
| `- warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
72 | }
73 | }
/usr/include/stdio.h:144:14: note: var declared here
142 | /* Standard streams. */
143 | extern FILE *stdin; /* Standard input stream. */
144 | extern FILE *stdout; /* Standard output stream. */
| `- note: var declared here
145 | extern FILE *stderr; /* Standard error output stream. */
146 | /* C89/C99 say they're macros. Make them happy. */
[102/110] Compiling GeminiCLI StreamCommand.swift
/host/spi-builder-workspace/Sources/GeminiCLI/Commands/OpenAIChatCommand.swift:44:28: warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
42 | if let delta = chunk.choices.first?.delta.content {
43 | print(delta, terminator: "")
44 | fflush(stdout)
| `- warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
45 | }
46 | }
/usr/include/stdio.h:144:14: note: var declared here
142 | /* Standard streams. */
143 | extern FILE *stdin; /* Standard input stream. */
144 | extern FILE *stdout; /* Standard output stream. */
| `- note: var declared here
145 | extern FILE *stderr; /* Standard error output stream. */
146 | /* C89/C99 say they're macros. Make them happy. */
/host/spi-builder-workspace/Sources/GeminiCLI/Commands/StreamCommand.swift:71:16: warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
69 | func handleStreamChunk(_ chunk: String) {
70 | print(chunk, terminator: "")
71 | fflush(stdout)
| `- warning: reference to var 'stdout' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
72 | }
73 | }
/usr/include/stdio.h:144:14: note: var declared here
142 | /* Standard streams. */
143 | extern FILE *stdin; /* Standard input stream. */
144 | extern FILE *stdout; /* Standard output stream. */
| `- note: var declared here
145 | extern FILE *stderr; /* Standard error output stream. */
146 | /* C89/C99 say they're macros. Make them happy. */
[103/110] Compiling GeminiCLI VideoCommands.swift
[104/110] Compiling GeminiCLI WebGroundingCommand.swift
[105/110] Compiling GeminiCLI FileCommands.swift
[106/110] Compiling GeminiCLI FunctionCallCommand.swift
[107/110] Compiling GeminiCLI GenerateCommand.swift
[108/111] Wrapping AST for GeminiCLI for debugging
[109/111] Write Objects.LinkFileList
[110/111] Linking gemini-cli
Build complete! (23.70s)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.3.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser"
}
],
"manifest_display_name" : "GeminiKit",
"name" : "GeminiKit",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "ios",
"version" : "16.0"
},
{
"name" : "tvos",
"version" : "16.0"
},
{
"name" : "watchos",
"version" : "9.0"
}
],
"products" : [
{
"name" : "GeminiKit",
"targets" : [
"GeminiKit"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "gemini-cli",
"targets" : [
"GeminiCLI"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "GeminiKitTests",
"module_type" : "SwiftTarget",
"name" : "GeminiKitTests",
"path" : "Tests/GeminiKitTests",
"sources" : [
"API/FileOperationsTests.swift",
"ConfigurationTests.swift",
"ContentTests.swift",
"ErrorTests.swift",
"FunctionBuilderTests.swift",
"GeminiKitTests.swift",
"GenerationConfigTests.swift",
"Media/AudioTests.swift",
"ModelTests.swift",
"SafetySettingsTests.swift",
"StreamingTests.swift",
"Types/PartTests.swift",
"Types/ToolTests.swift",
"VideoTests.swift"
],
"target_dependencies" : [
"GeminiKit"
],
"type" : "test"
},
{
"c99name" : "GeminiKit",
"module_type" : "SwiftTarget",
"name" : "GeminiKit",
"path" : "Sources/GeminiKit",
"product_memberships" : [
"GeminiKit",
"gemini-cli"
],
"sources" : [
"Core/Chat.swift",
"Core/Configuration.swift",
"Core/GeminiError.swift",
"Core/GeminiKit.swift",
"Core/GeminiModels.swift",
"Core/OpenAICompatibility.swift",
"Core/SpecializedEndpoints.swift",
"Extensions/ToolExtensions.swift",
"Models/AnyCodable.swift",
"Models/Content.swift",
"Models/GenerationConfig.swift",
"Models/OpenAIModels.swift",
"Models/Request.swift",
"Models/Response.swift",
"Models/SpecializedModels.swift",
"Networking/APIClient.swift",
"Networking/CURLHTTPClient.swift",
"Networking/HTTPClient.swift",
"Networking/URLSessionHTTPClient.swift",
"Tools/ToolBuilder.swift"
],
"type" : "library"
},
{
"c99name" : "GeminiCLI",
"module_type" : "SwiftTarget",
"name" : "GeminiCLI",
"path" : "Sources/GeminiCLI",
"product_dependencies" : [
"ArgumentParser"
],
"product_memberships" : [
"gemini-cli"
],
"sources" : [
"Commands/AudioCommand.swift",
"Commands/ChatCommand.swift",
"Commands/CodeExecutionCommand.swift",
"Commands/ConfigInfoCommand.swift",
"Commands/CountCommand.swift",
"Commands/EmbeddingsCommand.swift",
"Commands/FileCommands.swift",
"Commands/FunctionCallCommand.swift",
"Commands/GenerateCommand.swift",
"Commands/ImageGenerationCommand.swift",
"Commands/OpenAIChatCommand.swift",
"Commands/StreamCommand.swift",
"Commands/VideoCommands.swift",
"Commands/WebGroundingCommand.swift",
"Common/CommonOptions.swift",
"Helpers/FileHelper.swift",
"Helpers/OutputFormatter.swift",
"Protocols/CLICommand.swift",
"Types/OutputFormat.swift",
"main.swift"
],
"target_dependencies" : [
"GeminiKit"
],
"type" : "executable"
}
],
"tools_version" : "5.9"
}
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:2e2b3aca8600f890617c2faa770b70e33c1dfd303d6f92b308423b89ef6bde64
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Done.