Build Information
Successful build of Units, reference v0.1.6 (021164
), with Swift 6.1 for Linux on 4 Jun 2025 06:05:14 UTC.
Swift 6 data race errors: 4
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/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.63.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/NeedleInAJayStack/Units.git
Reference: v0.1.6
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/NeedleInAJayStack/Units
* tag v0.1.6 -> FETCH_HEAD
HEAD is now at 0211648 Merge pull request #17 from NeedleInAJayStack/feat/add-dimensionally-equivalent-units
Cloned https://github.com/NeedleInAJayStack/Units.git
Revision (git rev-parse @):
02116483b38b3eb938ce9040d90f9fc91a90a079
SUCCESS checkout https://github.com/NeedleInAJayStack/Units.git at v0.1.6
========================================
Build
========================================
Selected platform: linux
Swift version: 6.1
Building package at path: $PWD
https://github.com/NeedleInAJayStack/Units.git
https://github.com/NeedleInAJayStack/Units.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
"dependencies" : [
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.2.1",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser"
}
],
"manifest_display_name" : "Units",
"name" : "Units",
"path" : "/host/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Units",
"targets" : [
"Units"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "unit",
"targets" : [
"CLI"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "UnitsTests",
"module_type" : "SwiftTarget",
"name" : "UnitsTests",
"path" : "Tests/UnitsTests",
"sources" : [
"DefinitionTests.swift",
"ExpressionTests.swift",
"MeasurementTests.swift",
"ParserTests.swift",
"UnitTests.swift",
"XCTest+Measurement.swift"
],
"target_dependencies" : [
"Units"
],
"type" : "test"
},
{
"c99name" : "Units",
"module_type" : "SwiftTarget",
"name" : "Units",
"path" : "Sources/Units",
"product_memberships" : [
"Units",
"unit"
],
"sources" : [
"Expression.swift",
"Measurement/Double+Measurement.swift",
"Measurement/Int+Measurement.swift",
"Measurement/Measurement.swift",
"Parser.swift",
"Quantity.swift",
"Registry.swift",
"Unit/DefaultUnits.swift",
"Unit/DefinedUnit.swift",
"Unit/Equations.swift",
"Unit/Unit+DefaultUnits.swift",
"Unit/Unit.swift",
"UnitError.swift"
],
"type" : "library"
},
{
"c99name" : "PerformanceTests",
"module_type" : "SwiftTarget",
"name" : "PerformanceTests",
"path" : "Tests/PerformanceTests",
"sources" : [
"PerformanceTests.swift"
],
"target_dependencies" : [
"Units"
],
"type" : "test"
},
{
"c99name" : "CLI",
"module_type" : "SwiftTarget",
"name" : "CLI",
"path" : "Sources/CLI",
"product_dependencies" : [
"ArgumentParser"
],
"product_memberships" : [
"unit"
],
"sources" : [
"Convert.swift",
"List.swift",
"Unit.swift",
"main.swift"
],
"target_dependencies" : [
"Units"
],
"type" : "executable"
}
],
"tools_version" : "5.4"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/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:2b296aa7156f49efc57252cdf9ed4bb21d0f92fc98d88800e255491ba2db3116
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/15380] Fetching swift-argument-parser
Fetched https://github.com/apple/swift-argument-parser from cache (1.24s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.5.1 (1.89s)
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.1
[1/1] Compiling plugin GenerateManual
Building for debugging...
[1/12] Write sources
[5/12] Write swift-version-24593BA9C3E375BF.txt
[7/27] Emitting module ArgumentParserToolInfo
[8/27] Compiling ArgumentParserToolInfo ToolInfo.swift
[10/28] Compiling Units Unit+DefaultUnits.swift
[11/28] Compiling Units DefinedUnit.swift
[12/28] Compiling Units Equations.swift
[12/29] Wrapping AST for ArgumentParserToolInfo for debugging
[14/29] Compiling Units UnitError.swift
[15/67] Compiling ArgumentParser OptionGroup.swift
[16/67] Compiling ArgumentParser AsyncParsableCommand.swift
[17/67] Compiling ArgumentParser CommandConfiguration.swift
[18/67] Compiling ArgumentParser CommandGroup.swift
[19/67] Compiling ArgumentParser EnumerableFlag.swift
[20/72] Emitting module ArgumentParser
[21/72] Compiling ArgumentParser ParsableArguments.swift
/host/spi-builder-workspace/Sources/Units/Registry.swift:5:16: warning: static property 'instance' is not concurrency-safe because non-'Sendable' type 'Registry' may have shared mutable state; this is an error in the Swift 6 language mode
1 | /// UnitRegistry defines a structure that contains all defined units. This ensures
2 | /// that we are able to parse to and from unit symbol representations.
3 | class Registry {
| `- note: class 'Registry' does not conform to the 'Sendable' protocol
4 | // TODO: Should we eliminate this singleton and make clients keep track?
5 | static let instance = Registry()
| |- warning: static property 'instance' is not concurrency-safe because non-'Sendable' type 'Registry' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'instance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
6 |
7 | // Quick access based on symbol
[22/72] Compiling ArgumentParser ParsableArgumentsValidation.swift
/host/spi-builder-workspace/Sources/Units/Registry.swift:5:16: warning: static property 'instance' is not concurrency-safe because non-'Sendable' type 'Registry' may have shared mutable state; this is an error in the Swift 6 language mode
1 | /// UnitRegistry defines a structure that contains all defined units. This ensures
2 | /// that we are able to parse to and from unit symbol representations.
3 | class Registry {
| `- note: class 'Registry' does not conform to the 'Sendable' protocol
4 | // TODO: Should we eliminate this singleton and make clients keep track?
5 | static let instance = Registry()
| |- warning: static property 'instance' is not concurrency-safe because non-'Sendable' type 'Registry' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'instance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
6 |
7 | // Quick access based on symbol
[23/72] Compiling Units Unit.swift
[24/72] Compiling ArgumentParser ParsableCommand.swift
[25/72] Compiling ArgumentParser ArgumentDecoder.swift
[27/72] Compiling ArgumentParser ExpressibleByArgument.swift
[30/72] Emitting module Units
/host/spi-builder-workspace/Sources/Units/Registry.swift:5:16: warning: static property 'instance' is not concurrency-safe because non-'Sendable' type 'Registry' may have shared mutable state; this is an error in the Swift 6 language mode
1 | /// UnitRegistry defines a structure that contains all defined units. This ensures
2 | /// that we are able to parse to and from unit symbol representations.
3 | class Registry {
| `- note: class 'Registry' does not conform to the 'Sendable' protocol
4 | // TODO: Should we eliminate this singleton and make clients keep track?
5 | static let instance = Registry()
| |- warning: static property 'instance' is not concurrency-safe because non-'Sendable' type 'Registry' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'instance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
6 |
7 | // Quick access based on symbol
[31/73] Compiling ArgumentParser CollectionExtensions.swift
[32/73] Compiling ArgumentParser Platform.swift
[33/73] Compiling ArgumentParser SequenceExtensions.swift
[34/73] Compiling ArgumentParser StringExtensions.swift
[35/73] Compiling ArgumentParser Tree.swift
[41/73] Wrapping AST for Units for debugging
[43/73] Compiling ArgumentParser DumpHelpGenerator.swift
[44/73] Compiling ArgumentParser HelpCommand.swift
[45/73] Compiling ArgumentParser HelpGenerator.swift
[46/73] Compiling ArgumentParser MessageInfo.swift
[47/73] Compiling ArgumentParser UsageGenerator.swift
[48/73] Compiling ArgumentParser BashCompletionsGenerator.swift
[49/73] Compiling ArgumentParser CompletionsGenerator.swift
[50/73] Compiling ArgumentParser FishCompletionsGenerator.swift
[51/73] Compiling ArgumentParser ZshCompletionsGenerator.swift
[52/73] Compiling ArgumentParser Argument.swift
[53/73] Compiling ArgumentParser ArgumentHelp.swift
[54/73] Compiling ArgumentParser ArgumentVisibility.swift
[55/73] Compiling ArgumentParser CompletionKind.swift
[56/73] Compiling ArgumentParser Errors.swift
[57/73] Compiling ArgumentParser Flag.swift
[58/73] Compiling ArgumentParser NameSpecification.swift
[59/73] Compiling ArgumentParser Option.swift
[60/73] Compiling ArgumentParser ArgumentDefinition.swift
[61/73] Compiling ArgumentParser ArgumentSet.swift
[62/73] Compiling ArgumentParser CommandParser.swift
[63/73] Compiling ArgumentParser InputKey.swift
[64/73] Compiling ArgumentParser InputOrigin.swift
[65/73] Compiling ArgumentParser Name.swift
[66/73] Compiling ArgumentParser Parsed.swift
[67/73] Compiling ArgumentParser ParsedValues.swift
[68/73] Compiling ArgumentParser ParserError.swift
[69/73] Compiling ArgumentParser SplitArguments.swift
[70/74] Wrapping AST for ArgumentParser for debugging
[72/79] Compiling CLI main.swift
[73/79] Compiling CLI Unit.swift
/host/spi-builder-workspace/Sources/CLI/Unit.swift:4: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
2 |
3 | struct Unit: ParsableCommand {
4 | 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
5 | abstract: "A utility for performing unit conversions.",
6 | subcommands: [Convert.self, List.self]
[74/79] Compiling CLI List.swift
/host/spi-builder-workspace/Sources/CLI/List.swift:5: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
3 |
4 | struct List: ParsableCommand {
5 | 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
6 | abstract: "Print a table of the available units, their symbols, and their dimensionality."
7 | )
[75/79] Emitting module CLI
/host/spi-builder-workspace/Sources/CLI/Convert.swift:5: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
3 |
4 | struct Convert: ParsableCommand {
5 | 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
6 | abstract: "Convert a measurement expression to a specified unit.",
7 | discussion: """
/host/spi-builder-workspace/Sources/CLI/Convert.swift:42:1: warning: extension declares a conformance of imported type 'Expression' to imported protocol 'ExpressibleByArgument'; this will not behave correctly if the owners of 'Units' introduce this conformance in the future
40 | }
41 |
42 | extension Expression: ExpressibleByArgument {
| |- warning: extension declares a conformance of imported type 'Expression' to imported protocol 'ExpressibleByArgument'; this will not behave correctly if the owners of 'Units' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
43 | public convenience init?(argument: String) {
44 | let argument = argument.replacingOccurrences(of: "_", with: " ")
/host/spi-builder-workspace/Sources/CLI/Convert.swift:49:1: warning: extension declares a conformance of imported type 'Unit' to imported protocol 'ExpressibleByArgument'; this will not behave correctly if the owners of 'Units' introduce this conformance in the future
47 | }
48 |
49 | extension Units.Unit: ExpressibleByArgument {
| |- warning: extension declares a conformance of imported type 'Unit' to imported protocol 'ExpressibleByArgument'; this will not behave correctly if the owners of 'Units' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
50 | public init?(argument: String) {
51 | if let unit = try? Self(fromName: argument) {
/host/spi-builder-workspace/Sources/CLI/List.swift:5: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
3 |
4 | struct List: ParsableCommand {
5 | 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
6 | abstract: "Print a table of the available units, their symbols, and their dimensionality."
7 | )
/host/spi-builder-workspace/Sources/CLI/Unit.swift:4: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
2 |
3 | struct Unit: ParsableCommand {
4 | 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
5 | abstract: "A utility for performing unit conversions.",
6 | subcommands: [Convert.self, List.self]
[76/79] Compiling CLI Convert.swift
/host/spi-builder-workspace/Sources/CLI/Convert.swift:5: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
3 |
4 | struct Convert: ParsableCommand {
5 | 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
6 | abstract: "Convert a measurement expression to a specified unit.",
7 | discussion: """
/host/spi-builder-workspace/Sources/CLI/Convert.swift:42:1: warning: extension declares a conformance of imported type 'Expression' to imported protocol 'ExpressibleByArgument'; this will not behave correctly if the owners of 'Units' introduce this conformance in the future
40 | }
41 |
42 | extension Expression: ExpressibleByArgument {
| |- warning: extension declares a conformance of imported type 'Expression' to imported protocol 'ExpressibleByArgument'; this will not behave correctly if the owners of 'Units' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
43 | public convenience init?(argument: String) {
44 | let argument = argument.replacingOccurrences(of: "_", with: " ")
/host/spi-builder-workspace/Sources/CLI/Convert.swift:49:1: warning: extension declares a conformance of imported type 'Unit' to imported protocol 'ExpressibleByArgument'; this will not behave correctly if the owners of 'Units' introduce this conformance in the future
47 | }
48 |
49 | extension Units.Unit: ExpressibleByArgument {
| |- warning: extension declares a conformance of imported type 'Unit' to imported protocol 'ExpressibleByArgument'; this will not behave correctly if the owners of 'Units' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
50 | public init?(argument: String) {
51 | if let unit = try? Self(fromName: argument) {
[77/80] Wrapping AST for CLI for debugging
[78/80] Write Objects.LinkFileList
[79/80] Linking unit
Build complete! (15.47s)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.2.1",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser"
}
],
"manifest_display_name" : "Units",
"name" : "Units",
"path" : "/host/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Units",
"targets" : [
"Units"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "unit",
"targets" : [
"CLI"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "UnitsTests",
"module_type" : "SwiftTarget",
"name" : "UnitsTests",
"path" : "Tests/UnitsTests",
"sources" : [
"DefinitionTests.swift",
"ExpressionTests.swift",
"MeasurementTests.swift",
"ParserTests.swift",
"UnitTests.swift",
"XCTest+Measurement.swift"
],
"target_dependencies" : [
"Units"
],
"type" : "test"
},
{
"c99name" : "Units",
"module_type" : "SwiftTarget",
"name" : "Units",
"path" : "Sources/Units",
"product_memberships" : [
"Units",
"unit"
],
"sources" : [
"Expression.swift",
"Measurement/Double+Measurement.swift",
"Measurement/Int+Measurement.swift",
"Measurement/Measurement.swift",
"Parser.swift",
"Quantity.swift",
"Registry.swift",
"Unit/DefaultUnits.swift",
"Unit/DefinedUnit.swift",
"Unit/Equations.swift",
"Unit/Unit+DefaultUnits.swift",
"Unit/Unit.swift",
"UnitError.swift"
],
"type" : "library"
},
{
"c99name" : "PerformanceTests",
"module_type" : "SwiftTarget",
"name" : "PerformanceTests",
"path" : "Tests/PerformanceTests",
"sources" : [
"PerformanceTests.swift"
],
"target_dependencies" : [
"Units"
],
"type" : "test"
},
{
"c99name" : "CLI",
"module_type" : "SwiftTarget",
"name" : "CLI",
"path" : "Sources/CLI",
"product_dependencies" : [
"ArgumentParser"
],
"product_memberships" : [
"unit"
],
"sources" : [
"Convert.swift",
"List.swift",
"Unit.swift",
"main.swift"
],
"target_dependencies" : [
"Units"
],
"type" : "executable"
}
],
"tools_version" : "5.4"
}
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:2b296aa7156f49efc57252cdf9ed4bb21d0f92fc98d88800e255491ba2db3116
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Done.