The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Euclid, reference 0.8.14 (0409ea), with Swift 6.1 for Wasm on 3 Jan 2026 14:40:11 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.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/nicklockwood/Euclid.git
Reference: 0.8.14
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.14     -> FETCH_HEAD
HEAD is now at 0409eab Update for 0.8.14 release
Cloned https://github.com/nicklockwood/Euclid.git
Revision (git rev-parse @):
0409eab36ce4e726e5c66f8885500fb97b030994
SUCCESS checkout https://github.com/nicklockwood/Euclid.git at 0.8.14
========================================
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+OFF.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:dbcbf45695e2d1afcaee9a5a93239e71a6cc4a5872f338d6e993e9ceefe7df1b
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/41] Compiling Euclid Mesh+CSG.swift
[4/41] Compiling Euclid Mesh+IO.swift
[5/41] Compiling Euclid Mesh+OBJ.swift
[6/41] Compiling Euclid Mesh+OFF.swift
[7/41] Compiling Euclid Mesh+STL.swift
[8/46] 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.
[9/46] Compiling Euclid Path.swift
[10/46] Compiling Euclid PathPoint.swift
[11/46] Compiling Euclid Plane.swift
[12/46] Compiling Euclid PlaneComparable.swift
[13/46] Compiling Euclid PointComparable.swift
[14/46] 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.
[15/46] 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.
[16/46] 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.
[17/46] 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.
[18/46] 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.
[19/46] Compiling Euclid Mesh+Shapes.swift
[20/46] Compiling Euclid Mesh+Texcoords.swift
[21/46] Compiling Euclid Mesh.swift
[22/46] Compiling Euclid Path+CSG.swift
[23/46] Compiling Euclid Path+Shapes.swift
[24/46] Compiling Euclid Euclid+AppKit.swift
[25/46] Compiling Euclid Euclid+CoreGraphics.swift
[26/46] Compiling Euclid Euclid+CoreText.swift
[27/46] Compiling Euclid Euclid+RealityKit.swift
[28/46] Compiling Euclid Euclid+SIMD.swift
[29/46] Compiling Euclid Euclid+SceneKit.swift
[30/46] Compiling Euclid Angle.swift
[31/46] Compiling Euclid ApproximateEquality.swift
[32/46] Compiling Euclid BSP.swift
[33/46] Compiling Euclid Bounded.swift
[34/46] Compiling Euclid Bounds.swift
[35/46] Compiling Euclid Color.swift
[36/46] Compiling Euclid Euclid+UIKit.swift
[37/46] Compiling Euclid Interpolatable.swift
[38/46] Compiling Euclid Line.swift
[39/46] Compiling Euclid LineComparable.swift
[40/46] Compiling Euclid LineSegment+CSG.swift
[41/46] Compiling Euclid LineSegment.swift
[42/46] Compiling Euclid Transformable.swift
[43/46] Compiling Euclid Utilities.swift
[44/46] Compiling Euclid Vector.swift
[45/46] Compiling Euclid Vertex.swift
[46/46] Compiling Euclid VertexSet.swift
Build complete! (20.12s)
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+OFF.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:dbcbf45695e2d1afcaee9a5a93239e71a6cc4a5872f338d6e993e9ceefe7df1b
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest
Done.