Build Information
Successful build of Euclid, reference 0.8.7 (82fb50
), with Swift 6.1 for Wasm on 9 Sep 2025 22:35:34 UTC.
Swift 6 data race errors: 2
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi -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.67.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/nicklockwood/Euclid.git
Reference: 0.8.7
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/nicklockwood/Euclid
* tag 0.8.7 -> FETCH_HEAD
HEAD is now at 82fb502 Update for 0.8.7 release
Cloned https://github.com/nicklockwood/Euclid.git
Revision (git rev-parse @):
82fb502ddb03d1e16b6343d0a1dab1a8028539e8
SUCCESS checkout https://github.com/nicklockwood/Euclid.git at 0.8.7
========================================
Build
========================================
Selected platform: wasm
Swift version: 6.1
Building package at path: $PWD
https://github.com/nicklockwood/Euclid.git
https://github.com/nicklockwood/Euclid.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
"dependencies" : [
],
"manifest_display_name" : "Euclid",
"name" : "Euclid",
"path" : "/host/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Euclid",
"targets" : [
"Euclid"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "EuclidTests",
"module_type" : "SwiftTarget",
"name" : "EuclidTests",
"path" : "Tests",
"sources" : [
"AngleTests.swift",
"BoundsTests.swift",
"CGPathTests.swift",
"CodingTests.swift",
"DebugDescriptionTests.swift",
"Euclid+Testing.swift",
"LineSegmentCSGTests.swift",
"LineSegmentTests.swift",
"LineTests.swift",
"MeshCSGTests.swift",
"MeshExportTests.swift",
"MeshImportTests.swift",
"MeshLatheTests.swift",
"MeshLoftTests.swift",
"MeshShapeTests.swift",
"MeshTests.swift",
"MetadataTests.swift",
"PathCSGTests.swift",
"PathShapeTests.swift",
"PathTests.swift",
"PlaneTests.swift",
"PolygonCSGTests.swift",
"PolygonTests.swift",
"RealityKitTests.swift",
"RotationTests.swift",
"SceneKitTests.swift",
"StretchableTests.swift",
"TextTests.swift",
"TransformTests.swift",
"UtilityTests.swift",
"VectorTests.swift",
"VertexSetTests.swift"
],
"target_dependencies" : [
"Euclid"
],
"type" : "test"
},
{
"c99name" : "Euclid",
"module_type" : "SwiftTarget",
"name" : "Euclid",
"path" : "Sources",
"product_memberships" : [
"Euclid"
],
"sources" : [
"Angle.swift",
"ApproximateEquality.swift",
"BSP.swift",
"Bounded.swift",
"Bounds.swift",
"Color.swift",
"Euclid+AppKit.swift",
"Euclid+CoreGraphics.swift",
"Euclid+CoreText.swift",
"Euclid+RealityKit.swift",
"Euclid+SIMD.swift",
"Euclid+SceneKit.swift",
"Euclid+UIKit.swift",
"Interpolatable.swift",
"Line.swift",
"LineComparable.swift",
"LineSegment+CSG.swift",
"LineSegment.swift",
"Mesh+CSG.swift",
"Mesh+IO.swift",
"Mesh+OBJ.swift",
"Mesh+STL.swift",
"Mesh+Shapes.swift",
"Mesh+Texcoords.swift",
"Mesh.swift",
"Path+CSG.swift",
"Path+Shapes.swift",
"Path.swift",
"PathPoint.swift",
"Plane.swift",
"PlaneComparable.swift",
"PointComparable.swift",
"Polygon+CSG.swift",
"Polygon.swift",
"Rotation.swift",
"Stretchable.swift",
"Transform.swift",
"Transformable.swift",
"Utilities.swift",
"Vector.swift",
"Vertex.swift",
"VertexSet.swift"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi -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
wasm-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:eb0758f51dbd6991fb9e51dedbfbcbec142ffc0d3b9b8ad91fa19d35e5136f0a
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/40] Emitting module Euclid
/host/spi-builder-workspace/Sources/Polygon.swift:147:16: warning: static property 'codableClasses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
145 |
146 | /// Supported `NSSecureCodable` Material base classes.
147 | static var codableClasses: [AnyClass] = {
| |- warning: static property 'codableClasses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'codableClasses' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'codableClasses' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
148 | #if canImport(AppKit) || canImport(UIKit)
149 | return [OSImage.self, OSColor.self] + scnMaterialTypes
/host/spi-builder-workspace/Sources/Transform.swift:111:16: warning: static property 'identity' is not concurrency-safe because non-'Sendable' type 'Transform' may have shared mutable state; this is an error in the Swift 6 language mode
34 | /// Working with intermediate transform objects instead of directly updating the vertex positions of a mesh
35 | /// is more efficient and avoids a buildup of rounding errors.
36 | public struct Transform: Hashable {
| `- note: consider making struct 'Transform' conform to the 'Sendable' protocol
37 | /// The size or scale component of the transform.
38 | public var scale: Vector {
:
109 | public extension Transform {
110 | /// The identity transform (i.e. no transform).
111 | static let identity = Transform()
| |- warning: static property 'identity' is not concurrency-safe because non-'Sendable' type 'Transform' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'identity' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
112 |
113 | /// Creates a translation or position transform.
[4/45] Compiling Euclid Angle.swift
[5/45] Compiling Euclid ApproximateEquality.swift
[6/45] Compiling Euclid BSP.swift
[7/45] Compiling Euclid Bounded.swift
[8/45] Compiling Euclid Bounds.swift
[9/45] Compiling Euclid Color.swift
[10/45] Compiling Euclid Transformable.swift
[11/45] Compiling Euclid Utilities.swift
[12/45] Compiling Euclid Vector.swift
[13/45] Compiling Euclid Vertex.swift
[14/45] Compiling Euclid VertexSet.swift
[15/45] Compiling Euclid LineSegment.swift
[16/45] Compiling Euclid Mesh+CSG.swift
[17/45] Compiling Euclid Mesh+IO.swift
[18/45] Compiling Euclid Mesh+OBJ.swift
[19/45] Compiling Euclid Mesh+STL.swift
[20/45] Compiling Euclid Euclid+AppKit.swift
[21/45] Compiling Euclid Euclid+CoreGraphics.swift
[22/45] Compiling Euclid Euclid+CoreText.swift
[23/45] Compiling Euclid Euclid+RealityKit.swift
[24/45] Compiling Euclid Euclid+SIMD.swift
[25/45] Compiling Euclid Euclid+SceneKit.swift
[26/45] Compiling Euclid Path.swift
[27/45] Compiling Euclid PathPoint.swift
[28/45] Compiling Euclid Plane.swift
[29/45] Compiling Euclid PlaneComparable.swift
[30/45] Compiling Euclid PointComparable.swift
[31/45] Compiling Euclid Polygon+CSG.swift
/host/spi-builder-workspace/Sources/Polygon.swift:147:16: warning: static property 'codableClasses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
145 |
146 | /// Supported `NSSecureCodable` Material base classes.
147 | static var codableClasses: [AnyClass] = {
| |- warning: static property 'codableClasses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'codableClasses' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'codableClasses' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
148 | #if canImport(AppKit) || canImport(UIKit)
149 | return [OSImage.self, OSColor.self] + scnMaterialTypes
/host/spi-builder-workspace/Sources/Transform.swift:111:16: warning: static property 'identity' is not concurrency-safe because non-'Sendable' type 'Transform' may have shared mutable state; this is an error in the Swift 6 language mode
34 | /// Working with intermediate transform objects instead of directly updating the vertex positions of a mesh
35 | /// is more efficient and avoids a buildup of rounding errors.
36 | public struct Transform: Hashable {
| `- note: consider making struct 'Transform' conform to the 'Sendable' protocol
37 | /// The size or scale component of the transform.
38 | public var scale: Vector {
:
109 | public extension Transform {
110 | /// The identity transform (i.e. no transform).
111 | static let identity = Transform()
| |- warning: static property 'identity' is not concurrency-safe because non-'Sendable' type 'Transform' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'identity' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
112 |
113 | /// Creates a translation or position transform.
[32/45] Compiling Euclid Polygon.swift
/host/spi-builder-workspace/Sources/Polygon.swift:147:16: warning: static property 'codableClasses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
145 |
146 | /// Supported `NSSecureCodable` Material base classes.
147 | static var codableClasses: [AnyClass] = {
| |- warning: static property 'codableClasses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'codableClasses' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'codableClasses' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
148 | #if canImport(AppKit) || canImport(UIKit)
149 | return [OSImage.self, OSColor.self] + scnMaterialTypes
/host/spi-builder-workspace/Sources/Transform.swift:111:16: warning: static property 'identity' is not concurrency-safe because non-'Sendable' type 'Transform' may have shared mutable state; this is an error in the Swift 6 language mode
34 | /// Working with intermediate transform objects instead of directly updating the vertex positions of a mesh
35 | /// is more efficient and avoids a buildup of rounding errors.
36 | public struct Transform: Hashable {
| `- note: consider making struct 'Transform' conform to the 'Sendable' protocol
37 | /// The size or scale component of the transform.
38 | public var scale: Vector {
:
109 | public extension Transform {
110 | /// The identity transform (i.e. no transform).
111 | static let identity = Transform()
| |- warning: static property 'identity' is not concurrency-safe because non-'Sendable' type 'Transform' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'identity' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
112 |
113 | /// Creates a translation or position transform.
[33/45] Compiling Euclid Rotation.swift
/host/spi-builder-workspace/Sources/Polygon.swift:147:16: warning: static property 'codableClasses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
145 |
146 | /// Supported `NSSecureCodable` Material base classes.
147 | static var codableClasses: [AnyClass] = {
| |- warning: static property 'codableClasses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'codableClasses' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'codableClasses' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
148 | #if canImport(AppKit) || canImport(UIKit)
149 | return [OSImage.self, OSColor.self] + scnMaterialTypes
/host/spi-builder-workspace/Sources/Transform.swift:111:16: warning: static property 'identity' is not concurrency-safe because non-'Sendable' type 'Transform' may have shared mutable state; this is an error in the Swift 6 language mode
34 | /// Working with intermediate transform objects instead of directly updating the vertex positions of a mesh
35 | /// is more efficient and avoids a buildup of rounding errors.
36 | public struct Transform: Hashable {
| `- note: consider making struct 'Transform' conform to the 'Sendable' protocol
37 | /// The size or scale component of the transform.
38 | public var scale: Vector {
:
109 | public extension Transform {
110 | /// The identity transform (i.e. no transform).
111 | static let identity = Transform()
| |- warning: static property 'identity' is not concurrency-safe because non-'Sendable' type 'Transform' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'identity' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
112 |
113 | /// Creates a translation or position transform.
[34/45] Compiling Euclid Stretchable.swift
/host/spi-builder-workspace/Sources/Polygon.swift:147:16: warning: static property 'codableClasses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
145 |
146 | /// Supported `NSSecureCodable` Material base classes.
147 | static var codableClasses: [AnyClass] = {
| |- warning: static property 'codableClasses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'codableClasses' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'codableClasses' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
148 | #if canImport(AppKit) || canImport(UIKit)
149 | return [OSImage.self, OSColor.self] + scnMaterialTypes
/host/spi-builder-workspace/Sources/Transform.swift:111:16: warning: static property 'identity' is not concurrency-safe because non-'Sendable' type 'Transform' may have shared mutable state; this is an error in the Swift 6 language mode
34 | /// Working with intermediate transform objects instead of directly updating the vertex positions of a mesh
35 | /// is more efficient and avoids a buildup of rounding errors.
36 | public struct Transform: Hashable {
| `- note: consider making struct 'Transform' conform to the 'Sendable' protocol
37 | /// The size or scale component of the transform.
38 | public var scale: Vector {
:
109 | public extension Transform {
110 | /// The identity transform (i.e. no transform).
111 | static let identity = Transform()
| |- warning: static property 'identity' is not concurrency-safe because non-'Sendable' type 'Transform' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'identity' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
112 |
113 | /// Creates a translation or position transform.
[35/45] Compiling Euclid Transform.swift
/host/spi-builder-workspace/Sources/Polygon.swift:147:16: warning: static property 'codableClasses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
145 |
146 | /// Supported `NSSecureCodable` Material base classes.
147 | static var codableClasses: [AnyClass] = {
| |- warning: static property 'codableClasses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'codableClasses' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'codableClasses' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
148 | #if canImport(AppKit) || canImport(UIKit)
149 | return [OSImage.self, OSColor.self] + scnMaterialTypes
/host/spi-builder-workspace/Sources/Transform.swift:111:16: warning: static property 'identity' is not concurrency-safe because non-'Sendable' type 'Transform' may have shared mutable state; this is an error in the Swift 6 language mode
34 | /// Working with intermediate transform objects instead of directly updating the vertex positions of a mesh
35 | /// is more efficient and avoids a buildup of rounding errors.
36 | public struct Transform: Hashable {
| `- note: consider making struct 'Transform' conform to the 'Sendable' protocol
37 | /// The size or scale component of the transform.
38 | public var scale: Vector {
:
109 | public extension Transform {
110 | /// The identity transform (i.e. no transform).
111 | static let identity = Transform()
| |- warning: static property 'identity' is not concurrency-safe because non-'Sendable' type 'Transform' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'identity' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
112 |
113 | /// Creates a translation or position transform.
[36/45] Compiling Euclid Euclid+UIKit.swift
[37/45] Compiling Euclid Interpolatable.swift
[38/45] Compiling Euclid Line.swift
[39/45] Compiling Euclid LineComparable.swift
[40/45] Compiling Euclid LineSegment+CSG.swift
[41/45] Compiling Euclid Mesh+Shapes.swift
[42/45] Compiling Euclid Mesh+Texcoords.swift
[43/45] Compiling Euclid Mesh.swift
[44/45] Compiling Euclid Path+CSG.swift
[45/45] Compiling Euclid Path+Shapes.swift
Build complete! (8.98s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "Euclid",
"name" : "Euclid",
"path" : "/host/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Euclid",
"targets" : [
"Euclid"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "EuclidTests",
"module_type" : "SwiftTarget",
"name" : "EuclidTests",
"path" : "Tests",
"sources" : [
"AngleTests.swift",
"BoundsTests.swift",
"CGPathTests.swift",
"CodingTests.swift",
"DebugDescriptionTests.swift",
"Euclid+Testing.swift",
"LineSegmentCSGTests.swift",
"LineSegmentTests.swift",
"LineTests.swift",
"MeshCSGTests.swift",
"MeshExportTests.swift",
"MeshImportTests.swift",
"MeshLatheTests.swift",
"MeshLoftTests.swift",
"MeshShapeTests.swift",
"MeshTests.swift",
"MetadataTests.swift",
"PathCSGTests.swift",
"PathShapeTests.swift",
"PathTests.swift",
"PlaneTests.swift",
"PolygonCSGTests.swift",
"PolygonTests.swift",
"RealityKitTests.swift",
"RotationTests.swift",
"SceneKitTests.swift",
"StretchableTests.swift",
"TextTests.swift",
"TransformTests.swift",
"UtilityTests.swift",
"VectorTests.swift",
"VertexSetTests.swift"
],
"target_dependencies" : [
"Euclid"
],
"type" : "test"
},
{
"c99name" : "Euclid",
"module_type" : "SwiftTarget",
"name" : "Euclid",
"path" : "Sources",
"product_memberships" : [
"Euclid"
],
"sources" : [
"Angle.swift",
"ApproximateEquality.swift",
"BSP.swift",
"Bounded.swift",
"Bounds.swift",
"Color.swift",
"Euclid+AppKit.swift",
"Euclid+CoreGraphics.swift",
"Euclid+CoreText.swift",
"Euclid+RealityKit.swift",
"Euclid+SIMD.swift",
"Euclid+SceneKit.swift",
"Euclid+UIKit.swift",
"Interpolatable.swift",
"Line.swift",
"LineComparable.swift",
"LineSegment+CSG.swift",
"LineSegment.swift",
"Mesh+CSG.swift",
"Mesh+IO.swift",
"Mesh+OBJ.swift",
"Mesh+STL.swift",
"Mesh+Shapes.swift",
"Mesh+Texcoords.swift",
"Mesh.swift",
"Path+CSG.swift",
"Path+Shapes.swift",
"Path.swift",
"PathPoint.swift",
"Plane.swift",
"PlaneComparable.swift",
"PointComparable.swift",
"Polygon+CSG.swift",
"Polygon.swift",
"Rotation.swift",
"Stretchable.swift",
"Transform.swift",
"Transformable.swift",
"Utilities.swift",
"Vector.swift",
"Vertex.swift",
"VertexSet.swift"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
wasm-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:eb0758f51dbd6991fb9e51dedbfbcbec142ffc0d3b9b8ad91fa19d35e5136f0a
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest
Done.