The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of GfxMath, reference 1.0.0 (af8aff), with Swift 6.0 for Linux on 14 Sep 2024 15:57:11 UTC.

Swift 6 data race errors: 10

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.53.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/UnGast/swift-gfx-math.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/UnGast/swift-gfx-math
 * tag               1.0.0      -> FETCH_HEAD
HEAD is now at af8affa fix line initializer
Cloned https://github.com/UnGast/swift-gfx-math.git
Revision (git rev-parse @):
af8affa142ac61ff2b95857a145aabcc7dd9a7bc
SUCCESS checkout https://github.com/UnGast/swift-gfx-math.git at 1.0.0
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/UnGast/swift-gfx-math.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:9d7dab235f2b0b46edadd73b1fb0c3b5323df02053420324a4a2f8ca89cb54a5
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/24] Emitting module GfxMath
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:3:23: warning: static property 'red' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | extension Color {
 2 |
 3 |     public static let red = Color(255, 0, 0, 255)
   |                       |- warning: static property 'red' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'red' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 4 |
 5 |     public static let green = Color(0, 255, 0, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:5:23: warning: static property 'green' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 3 |     public static let red = Color(255, 0, 0, 255)
 4 |
 5 |     public static let green = Color(0, 255, 0, 255)
   |                       |- warning: static property 'green' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'green' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static let yellow = Color(255, 255, 0, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:7:23: warning: static property 'yellow' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |     public static let green = Color(0, 255, 0, 255)
 6 |
 7 |     public static let yellow = Color(255, 255, 0, 255)
   |                       |- warning: static property 'yellow' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'yellow' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |
 9 |     public static let orange = Color(255, 150, 0, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:9:23: warning: static property 'orange' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 7 |     public static let yellow = Color(255, 255, 0, 255)
 8 |
 9 |     public static let orange = Color(255, 150, 0, 255)
   |                       |- warning: static property 'orange' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'orange' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 |
11 |     public static let blue = Color(0, 0, 255, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:11:23: warning: static property 'blue' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 9 |     public static let orange = Color(255, 150, 0, 255)
10 |
11 |     public static let blue = Color(0, 0, 255, 255)
   |                       |- warning: static property 'blue' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'blue' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 |
13 |     public static let lightBlue = Color(180, 180, 255, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:13:23: warning: static property 'lightBlue' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
11 |     public static let blue = Color(0, 0, 255, 255)
12 |
13 |     public static let lightBlue = Color(180, 180, 255, 255)
   |                       |- warning: static property 'lightBlue' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'lightBlue' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 |     public static let black = Color(0, 0, 0, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:15:23: warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
13 |     public static let lightBlue = Color(180, 180, 255, 255)
14 |
15 |     public static let black = Color(0, 0, 0, 255)
   |                       |- warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'black' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 |
17 |     public static let grey = Color(128, 128, 128, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:17:23: warning: static property 'grey' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
15 |     public static let black = Color(0, 0, 0, 255)
16 |
17 |     public static let grey = Color(128, 128, 128, 255)
   |                       |- warning: static property 'grey' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'grey' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 |
19 |     public static let white = Color(255, 255, 255, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:19:23: warning: static property 'white' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
17 |     public static let grey = Color(128, 128, 128, 255)
18 |
19 |     public static let white = Color(255, 255, 255, 255)
   |                       |- warning: static property 'white' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'white' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 |     public static let transparent = Color(0, 0, 0, 0)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:21:23: warning: static property 'transparent' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
19 |     public static let white = Color(255, 255, 255, 255)
20 |
21 |     public static let transparent = Color(0, 0, 0, 0)
   |                       |- warning: static property 'transparent' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'transparent' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | }
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:45:16: warning: 'public' modifier is redundant for property declared in a public extension
 43 |
 44 |     // TODO: there might be a more efficient way to transpose
 45 |     @inlinable public var transposed: Self {
    |                `- warning: 'public' modifier is redundant for property declared in a public extension
 46 |         var matrix = clone() // TODO: maybe have some clone function that does not clone elements
 47 |
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:266:5: warning: 'public' modifier is redundant for initializer declared in a public extension
264 | public extension Matrix4Protocol {
265 |
266 |     public init<M3: Matrix3Protocol>(topLeft: M3, rest: Self = .identity) where M3.Element == Element {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
267 |         self.init([
268 |             topLeft[0, 0], topLeft[0, 1], topLeft[0, 2], rest[0, 3],
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:174:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
172 |
173 | extension Vector4Protocol {
174 |   public typealias Dimension = Dim_4x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
175 |
176 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:345:16: warning: no calls to throwing functions occur within 'try' expression
343 |     // TODO: the following functions might be specific to openGL, maybe put those in the GLGraphicsMath package
344 |     @inlinable static func viewTransformation<V: Vector3Protocol>(up: V, right: V, front: V, translation: V) -> Self where V.Element == Self.Element {
345 |         return try! Self([
    |                `- warning: no calls to throwing functions occur within 'try' expression
346 |             right.x, right.y, right.z, 0,
347 |             up.x, up.y, up.z, 0,
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:404:12: warning: no calls to throwing functions occur within 'try' expression
402 | // TODO: might replace this or remove this / current function of this is to simply remove throws
403 | @inlinable public func * <E: Numeric>(lhs: Matrix4<E>, rhs: Matrix4<E>) -> Matrix4<E> {
404 |     return try! lhs.matmul(rhs)
    |            `- warning: no calls to throwing functions occur within 'try' expression
405 | }
406 |
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:28:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 26 |
 27 | extension Vector2Protocol {
 28 |   public typealias Dimension = Dim_2x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 29 |
 30 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:123:15: warning: deprecated default implementation is used to satisfy initializer 'init(point:direction:)' required by protocol 'Line': use init(origin:, direction:)
  8 |
  9 |     init()
 10 |     init(point: VectorProtocol, direction: VectorProtocol)
    |     `- note: requirement 'init(point:direction:)' declared here
 11 |     init(origin: VectorProtocol, direction: VectorProtocol)
 12 | }
    :
 14 | public extension Line {
 15 |     @available(*, deprecated, message: "use init(origin:, direction:)")
 16 |     init(point: VectorProtocol, direction: VectorProtocol) {
    |     `- note: 'init(point:direction:)' declared here
 17 |         self.init(origin: point, direction: direction)
 18 |     }
    :
121 | }
122 |
123 | public struct AnyLine<V: VectorProtocol>: Line where V.Element: BinaryFloatingPoint {
    |               `- warning: deprecated default implementation is used to satisfy initializer 'init(point:direction:)' required by protocol 'Line': use init(origin:, direction:)
124 |     public typealias VectorProtocol = V
125 |     public var origin: V
/host/spi-builder-workspace/Sources/GfxMath/geometry/Plane.swift:16:5: warning: 'public' modifier is redundant for initializer declared in a public extension
14 |     }
15 |
16 |     public init(point: VectorProtocol, normal: VectorProtocol) {
   |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
17 |         self.init()
18 |         self.point = point
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:244:27: warning: no calls to throwing functions occur within 'try' expression
242 |     -> VectorProtocol where Self.Element == VectorProtocol.Element
243 |   {
244 |     return VectorProtocol(try! self.matmul(other).elements)
    |                           `- warning: no calls to throwing functions occur within 'try' expression
245 |   }
246 | }
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:244:37: warning: function call causes an infinite recursion
242 |     -> VectorProtocol where Self.Element == VectorProtocol.Element
243 |   {
244 |     return VectorProtocol(try! self.matmul(other).elements)
    |                                     `- warning: function call causes an infinite recursion
245 |   }
246 | }
[4/26] Compiling GfxMath Accuracy.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:3:23: warning: static property 'red' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | extension Color {
 2 |
 3 |     public static let red = Color(255, 0, 0, 255)
   |                       |- warning: static property 'red' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'red' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 4 |
 5 |     public static let green = Color(0, 255, 0, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:5:23: warning: static property 'green' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 3 |     public static let red = Color(255, 0, 0, 255)
 4 |
 5 |     public static let green = Color(0, 255, 0, 255)
   |                       |- warning: static property 'green' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'green' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static let yellow = Color(255, 255, 0, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:7:23: warning: static property 'yellow' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |     public static let green = Color(0, 255, 0, 255)
 6 |
 7 |     public static let yellow = Color(255, 255, 0, 255)
   |                       |- warning: static property 'yellow' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'yellow' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |
 9 |     public static let orange = Color(255, 150, 0, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:9:23: warning: static property 'orange' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 7 |     public static let yellow = Color(255, 255, 0, 255)
 8 |
 9 |     public static let orange = Color(255, 150, 0, 255)
   |                       |- warning: static property 'orange' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'orange' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 |
11 |     public static let blue = Color(0, 0, 255, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:11:23: warning: static property 'blue' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 9 |     public static let orange = Color(255, 150, 0, 255)
10 |
11 |     public static let blue = Color(0, 0, 255, 255)
   |                       |- warning: static property 'blue' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'blue' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 |
13 |     public static let lightBlue = Color(180, 180, 255, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:13:23: warning: static property 'lightBlue' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
11 |     public static let blue = Color(0, 0, 255, 255)
12 |
13 |     public static let lightBlue = Color(180, 180, 255, 255)
   |                       |- warning: static property 'lightBlue' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'lightBlue' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 |     public static let black = Color(0, 0, 0, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:15:23: warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
13 |     public static let lightBlue = Color(180, 180, 255, 255)
14 |
15 |     public static let black = Color(0, 0, 0, 255)
   |                       |- warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'black' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 |
17 |     public static let grey = Color(128, 128, 128, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:17:23: warning: static property 'grey' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
15 |     public static let black = Color(0, 0, 0, 255)
16 |
17 |     public static let grey = Color(128, 128, 128, 255)
   |                       |- warning: static property 'grey' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'grey' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 |
19 |     public static let white = Color(255, 255, 255, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:19:23: warning: static property 'white' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
17 |     public static let grey = Color(128, 128, 128, 255)
18 |
19 |     public static let white = Color(255, 255, 255, 255)
   |                       |- warning: static property 'white' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'white' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 |     public static let transparent = Color(0, 0, 0, 0)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:21:23: warning: static property 'transparent' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
19 |     public static let white = Color(255, 255, 255, 255)
20 |
21 |     public static let transparent = Color(0, 0, 0, 0)
   |                       |- warning: static property 'transparent' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'transparent' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | }
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
[5/26] Compiling GfxMath Color+Conversions.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:3:23: warning: static property 'red' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | extension Color {
 2 |
 3 |     public static let red = Color(255, 0, 0, 255)
   |                       |- warning: static property 'red' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'red' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 4 |
 5 |     public static let green = Color(0, 255, 0, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:5:23: warning: static property 'green' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 3 |     public static let red = Color(255, 0, 0, 255)
 4 |
 5 |     public static let green = Color(0, 255, 0, 255)
   |                       |- warning: static property 'green' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'green' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static let yellow = Color(255, 255, 0, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:7:23: warning: static property 'yellow' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |     public static let green = Color(0, 255, 0, 255)
 6 |
 7 |     public static let yellow = Color(255, 255, 0, 255)
   |                       |- warning: static property 'yellow' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'yellow' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |
 9 |     public static let orange = Color(255, 150, 0, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:9:23: warning: static property 'orange' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 7 |     public static let yellow = Color(255, 255, 0, 255)
 8 |
 9 |     public static let orange = Color(255, 150, 0, 255)
   |                       |- warning: static property 'orange' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'orange' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 |
11 |     public static let blue = Color(0, 0, 255, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:11:23: warning: static property 'blue' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 9 |     public static let orange = Color(255, 150, 0, 255)
10 |
11 |     public static let blue = Color(0, 0, 255, 255)
   |                       |- warning: static property 'blue' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'blue' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 |
13 |     public static let lightBlue = Color(180, 180, 255, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:13:23: warning: static property 'lightBlue' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
11 |     public static let blue = Color(0, 0, 255, 255)
12 |
13 |     public static let lightBlue = Color(180, 180, 255, 255)
   |                       |- warning: static property 'lightBlue' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'lightBlue' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 |     public static let black = Color(0, 0, 0, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:15:23: warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
13 |     public static let lightBlue = Color(180, 180, 255, 255)
14 |
15 |     public static let black = Color(0, 0, 0, 255)
   |                       |- warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'black' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 |
17 |     public static let grey = Color(128, 128, 128, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:17:23: warning: static property 'grey' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
15 |     public static let black = Color(0, 0, 0, 255)
16 |
17 |     public static let grey = Color(128, 128, 128, 255)
   |                       |- warning: static property 'grey' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'grey' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 |
19 |     public static let white = Color(255, 255, 255, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:19:23: warning: static property 'white' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
17 |     public static let grey = Color(128, 128, 128, 255)
18 |
19 |     public static let white = Color(255, 255, 255, 255)
   |                       |- warning: static property 'white' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'white' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 |     public static let transparent = Color(0, 0, 0, 0)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:21:23: warning: static property 'transparent' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
19 |     public static let white = Color(255, 255, 255, 255)
20 |
21 |     public static let transparent = Color(0, 0, 0, 0)
   |                       |- warning: static property 'transparent' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'transparent' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | }
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
[6/26] Compiling GfxMath Color+DefaultColors.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:3:23: warning: static property 'red' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | extension Color {
 2 |
 3 |     public static let red = Color(255, 0, 0, 255)
   |                       |- warning: static property 'red' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'red' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 4 |
 5 |     public static let green = Color(0, 255, 0, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:5:23: warning: static property 'green' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 3 |     public static let red = Color(255, 0, 0, 255)
 4 |
 5 |     public static let green = Color(0, 255, 0, 255)
   |                       |- warning: static property 'green' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'green' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 6 |
 7 |     public static let yellow = Color(255, 255, 0, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:7:23: warning: static property 'yellow' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |     public static let green = Color(0, 255, 0, 255)
 6 |
 7 |     public static let yellow = Color(255, 255, 0, 255)
   |                       |- warning: static property 'yellow' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'yellow' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 8 |
 9 |     public static let orange = Color(255, 150, 0, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:9:23: warning: static property 'orange' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 7 |     public static let yellow = Color(255, 255, 0, 255)
 8 |
 9 |     public static let orange = Color(255, 150, 0, 255)
   |                       |- warning: static property 'orange' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'orange' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 |
11 |     public static let blue = Color(0, 0, 255, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:11:23: warning: static property 'blue' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
 9 |     public static let orange = Color(255, 150, 0, 255)
10 |
11 |     public static let blue = Color(0, 0, 255, 255)
   |                       |- warning: static property 'blue' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'blue' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 |
13 |     public static let lightBlue = Color(180, 180, 255, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:13:23: warning: static property 'lightBlue' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
11 |     public static let blue = Color(0, 0, 255, 255)
12 |
13 |     public static let lightBlue = Color(180, 180, 255, 255)
   |                       |- warning: static property 'lightBlue' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'lightBlue' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 |     public static let black = Color(0, 0, 0, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:15:23: warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
13 |     public static let lightBlue = Color(180, 180, 255, 255)
14 |
15 |     public static let black = Color(0, 0, 0, 255)
   |                       |- warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'black' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 |
17 |     public static let grey = Color(128, 128, 128, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:17:23: warning: static property 'grey' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
15 |     public static let black = Color(0, 0, 0, 255)
16 |
17 |     public static let grey = Color(128, 128, 128, 255)
   |                       |- warning: static property 'grey' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'grey' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 |
19 |     public static let white = Color(255, 255, 255, 255)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:19:23: warning: static property 'white' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
17 |     public static let grey = Color(128, 128, 128, 255)
18 |
19 |     public static let white = Color(255, 255, 255, 255)
   |                       |- warning: static property 'white' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'white' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |
21 |     public static let transparent = Color(0, 0, 0, 0)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
/host/spi-builder-workspace/Sources/GfxMath/Color/Color+DefaultColors.swift:21:23: warning: static property 'transparent' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
19 |     public static let white = Color(255, 255, 255, 255)
20 |
21 |     public static let transparent = Color(0, 0, 0, 0)
   |                       |- warning: static property 'transparent' is not concurrency-safe because non-'Sendable' type 'Color' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'transparent' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | }
/host/spi-builder-workspace/Sources/GfxMath/Color/Color.swift:3:15: note: consider making struct 'Color' conform to the 'Sendable' protocol
  1 | import Foundation
  2 |
  3 | public struct Color: Hashable, Equatable {
    |               `- note: consider making struct 'Color' conform to the 'Sendable' protocol
  4 |     public typealias RGB<T> = (r: T, g: T, b: T)
  5 |     public typealias RGBA<T> = (r: T, g: T, b: T, a: T)
[7/26] Compiling GfxMath FloatingPointGenericMath.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:45:16: warning: 'public' modifier is redundant for property declared in a public extension
 43 |
 44 |     // TODO: there might be a more efficient way to transpose
 45 |     @inlinable public var transposed: Self {
    |                `- warning: 'public' modifier is redundant for property declared in a public extension
 46 |         var matrix = clone() // TODO: maybe have some clone function that does not clone elements
 47 |
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:266:5: warning: 'public' modifier is redundant for initializer declared in a public extension
264 | public extension Matrix4Protocol {
265 |
266 |     public init<M3: Matrix3Protocol>(topLeft: M3, rest: Self = .identity) where M3.Element == Element {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
267 |         self.init([
268 |             topLeft[0, 0], topLeft[0, 1], topLeft[0, 2], rest[0, 3],
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:174:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
172 |
173 | extension Vector4Protocol {
174 |   public typealias Dimension = Dim_4x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
175 |
176 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:345:16: warning: no calls to throwing functions occur within 'try' expression
343 |     // TODO: the following functions might be specific to openGL, maybe put those in the GLGraphicsMath package
344 |     @inlinable static func viewTransformation<V: Vector3Protocol>(up: V, right: V, front: V, translation: V) -> Self where V.Element == Self.Element {
345 |         return try! Self([
    |                `- warning: no calls to throwing functions occur within 'try' expression
346 |             right.x, right.y, right.z, 0,
347 |             up.x, up.y, up.z, 0,
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:404:12: warning: no calls to throwing functions occur within 'try' expression
402 | // TODO: might replace this or remove this / current function of this is to simply remove throws
403 | @inlinable public func * <E: Numeric>(lhs: Matrix4<E>, rhs: Matrix4<E>) -> Matrix4<E> {
404 |     return try! lhs.matmul(rhs)
    |            `- warning: no calls to throwing functions occur within 'try' expression
405 | }
406 |
[8/26] Compiling GfxMath Matrix.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:45:16: warning: 'public' modifier is redundant for property declared in a public extension
 43 |
 44 |     // TODO: there might be a more efficient way to transpose
 45 |     @inlinable public var transposed: Self {
    |                `- warning: 'public' modifier is redundant for property declared in a public extension
 46 |         var matrix = clone() // TODO: maybe have some clone function that does not clone elements
 47 |
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:266:5: warning: 'public' modifier is redundant for initializer declared in a public extension
264 | public extension Matrix4Protocol {
265 |
266 |     public init<M3: Matrix3Protocol>(topLeft: M3, rest: Self = .identity) where M3.Element == Element {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
267 |         self.init([
268 |             topLeft[0, 0], topLeft[0, 1], topLeft[0, 2], rest[0, 3],
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:174:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
172 |
173 | extension Vector4Protocol {
174 |   public typealias Dimension = Dim_4x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
175 |
176 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:345:16: warning: no calls to throwing functions occur within 'try' expression
343 |     // TODO: the following functions might be specific to openGL, maybe put those in the GLGraphicsMath package
344 |     @inlinable static func viewTransformation<V: Vector3Protocol>(up: V, right: V, front: V, translation: V) -> Self where V.Element == Self.Element {
345 |         return try! Self([
    |                `- warning: no calls to throwing functions occur within 'try' expression
346 |             right.x, right.y, right.z, 0,
347 |             up.x, up.y, up.z, 0,
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:404:12: warning: no calls to throwing functions occur within 'try' expression
402 | // TODO: might replace this or remove this / current function of this is to simply remove throws
403 | @inlinable public func * <E: Numeric>(lhs: Matrix4<E>, rhs: Matrix4<E>) -> Matrix4<E> {
404 |     return try! lhs.matmul(rhs)
    |            `- warning: no calls to throwing functions occur within 'try' expression
405 | }
406 |
[9/26] Compiling GfxMath MatrixDimension.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:45:16: warning: 'public' modifier is redundant for property declared in a public extension
 43 |
 44 |     // TODO: there might be a more efficient way to transpose
 45 |     @inlinable public var transposed: Self {
    |                `- warning: 'public' modifier is redundant for property declared in a public extension
 46 |         var matrix = clone() // TODO: maybe have some clone function that does not clone elements
 47 |
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:266:5: warning: 'public' modifier is redundant for initializer declared in a public extension
264 | public extension Matrix4Protocol {
265 |
266 |     public init<M3: Matrix3Protocol>(topLeft: M3, rest: Self = .identity) where M3.Element == Element {
    |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
267 |         self.init([
268 |             topLeft[0, 0], topLeft[0, 1], topLeft[0, 2], rest[0, 3],
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:174:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
172 |
173 | extension Vector4Protocol {
174 |   public typealias Dimension = Dim_4x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
175 |
176 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:345:16: warning: no calls to throwing functions occur within 'try' expression
343 |     // TODO: the following functions might be specific to openGL, maybe put those in the GLGraphicsMath package
344 |     @inlinable static func viewTransformation<V: Vector3Protocol>(up: V, right: V, front: V, translation: V) -> Self where V.Element == Self.Element {
345 |         return try! Self([
    |                `- warning: no calls to throwing functions occur within 'try' expression
346 |             right.x, right.y, right.z, 0,
347 |             up.x, up.y, up.z, 0,
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:404:12: warning: no calls to throwing functions occur within 'try' expression
402 | // TODO: might replace this or remove this / current function of this is to simply remove throws
403 | @inlinable public func * <E: Numeric>(lhs: Matrix4<E>, rhs: Matrix4<E>) -> Matrix4<E> {
404 |     return try! lhs.matmul(rhs)
    |            `- warning: no calls to throwing functions occur within 'try' expression
405 | }
406 |
[10/26] Compiling GfxMath LineSegment.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/geometry/LineSegment.swift:7:10: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
 5 |   public var scaleMax: Vector.Element
 6 |   public var start: Vector {
 7 |     line.pointAtScale(scaleMin)
   |          `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
 8 |   }
 9 |   public var end: Vector {
/host/spi-builder-workspace/Sources/GfxMath/geometry/LineSegment.swift:10:10: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
 8 |   }
 9 |   public var end: Vector {
10 |     line.pointAtScale(scaleMax)
   |          `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
11 |   }
12 |   public var length: Vector.Element {
/host/spi-builder-workspace/Sources/GfxMath/geometry/LineSegment.swift:35:9: warning: variable 'scaleMin' was never mutated; consider changing to 'let' constant
33 |   public init(start: Vector, end: Vector) {
34 |     let line = AnyLine(from: start, to: end)
35 |     var scaleMin = line.scaleAt(start)!
   |         `- warning: variable 'scaleMin' was never mutated; consider changing to 'let' constant
36 |     var scaleMax = line.scaleAt(end)!
37 |     self.init(line: line, scaleMin: scaleMin, scaleMax: scaleMax)
/host/spi-builder-workspace/Sources/GfxMath/geometry/LineSegment.swift:36:9: warning: variable 'scaleMax' was never mutated; consider changing to 'let' constant
34 |     let line = AnyLine(from: start, to: end)
35 |     var scaleMin = line.scaleAt(start)!
36 |     var scaleMax = line.scaleAt(end)!
   |         `- warning: variable 'scaleMax' was never mutated; consider changing to 'let' constant
37 |     self.init(line: line, scaleMin: scaleMin, scaleMax: scaleMax)
38 |   }
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/geometry/Plane.swift:16:5: warning: 'public' modifier is redundant for initializer declared in a public extension
14 |     }
15 |
16 |     public init(point: VectorProtocol, normal: VectorProtocol) {
   |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
17 |         self.init()
18 |         self.point = point
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:28:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 26 |
 27 | extension Vector2Protocol {
 28 |   public typealias Dimension = Dim_2x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 29 |
 30 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
/host/spi-builder-workspace/Sources/GfxMath/geometry/Rect.swift:135:54: warning: 'point' is deprecated: use origin
133 |         var maxScale = E.infinity
134 |         for dimension in 0..<2 {
135 |             var newMinScale = (min[dimension] - line.point[dimension]) / line.direction[dimension]
    |                                                      `- warning: 'point' is deprecated: use origin
136 |             var newMaxScale = (max[dimension] - line.point[dimension]) / line.direction[dimension]
137 |             if newMinScale > newMaxScale {
/host/spi-builder-workspace/Sources/GfxMath/geometry/Rect.swift:136:54: warning: 'point' is deprecated: use origin
134 |         for dimension in 0..<2 {
135 |             var newMinScale = (min[dimension] - line.point[dimension]) / line.direction[dimension]
136 |             var newMaxScale = (max[dimension] - line.point[dimension]) / line.direction[dimension]
    |                                                      `- warning: 'point' is deprecated: use origin
137 |             if newMinScale > newMaxScale {
138 |                 let tmp = newMinScale
/host/spi-builder-workspace/Sources/GfxMath/geometry/Rect.swift:150:38: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
148 |         }
149 |
150 |         return (min: Vector2<E>(line.pointAtScale(minScale)), max: Vector2<E>(line.pointAtScale(maxScale)))
    |                                      `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
151 |     }
152 | }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Rect.swift:150:84: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
148 |         }
149 |
150 |         return (min: Vector2<E>(line.pointAtScale(minScale)), max: Vector2<E>(line.pointAtScale(maxScale)))
    |                                                                                    `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
151 |     }
152 | }
[11/26] Compiling GfxMath Plane.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/geometry/LineSegment.swift:7:10: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
 5 |   public var scaleMax: Vector.Element
 6 |   public var start: Vector {
 7 |     line.pointAtScale(scaleMin)
   |          `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
 8 |   }
 9 |   public var end: Vector {
/host/spi-builder-workspace/Sources/GfxMath/geometry/LineSegment.swift:10:10: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
 8 |   }
 9 |   public var end: Vector {
10 |     line.pointAtScale(scaleMax)
   |          `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
11 |   }
12 |   public var length: Vector.Element {
/host/spi-builder-workspace/Sources/GfxMath/geometry/LineSegment.swift:35:9: warning: variable 'scaleMin' was never mutated; consider changing to 'let' constant
33 |   public init(start: Vector, end: Vector) {
34 |     let line = AnyLine(from: start, to: end)
35 |     var scaleMin = line.scaleAt(start)!
   |         `- warning: variable 'scaleMin' was never mutated; consider changing to 'let' constant
36 |     var scaleMax = line.scaleAt(end)!
37 |     self.init(line: line, scaleMin: scaleMin, scaleMax: scaleMax)
/host/spi-builder-workspace/Sources/GfxMath/geometry/LineSegment.swift:36:9: warning: variable 'scaleMax' was never mutated; consider changing to 'let' constant
34 |     let line = AnyLine(from: start, to: end)
35 |     var scaleMin = line.scaleAt(start)!
36 |     var scaleMax = line.scaleAt(end)!
   |         `- warning: variable 'scaleMax' was never mutated; consider changing to 'let' constant
37 |     self.init(line: line, scaleMin: scaleMin, scaleMax: scaleMax)
38 |   }
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/geometry/Plane.swift:16:5: warning: 'public' modifier is redundant for initializer declared in a public extension
14 |     }
15 |
16 |     public init(point: VectorProtocol, normal: VectorProtocol) {
   |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
17 |         self.init()
18 |         self.point = point
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:28:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 26 |
 27 | extension Vector2Protocol {
 28 |   public typealias Dimension = Dim_2x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 29 |
 30 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
/host/spi-builder-workspace/Sources/GfxMath/geometry/Rect.swift:135:54: warning: 'point' is deprecated: use origin
133 |         var maxScale = E.infinity
134 |         for dimension in 0..<2 {
135 |             var newMinScale = (min[dimension] - line.point[dimension]) / line.direction[dimension]
    |                                                      `- warning: 'point' is deprecated: use origin
136 |             var newMaxScale = (max[dimension] - line.point[dimension]) / line.direction[dimension]
137 |             if newMinScale > newMaxScale {
/host/spi-builder-workspace/Sources/GfxMath/geometry/Rect.swift:136:54: warning: 'point' is deprecated: use origin
134 |         for dimension in 0..<2 {
135 |             var newMinScale = (min[dimension] - line.point[dimension]) / line.direction[dimension]
136 |             var newMaxScale = (max[dimension] - line.point[dimension]) / line.direction[dimension]
    |                                                      `- warning: 'point' is deprecated: use origin
137 |             if newMinScale > newMaxScale {
138 |                 let tmp = newMinScale
/host/spi-builder-workspace/Sources/GfxMath/geometry/Rect.swift:150:38: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
148 |         }
149 |
150 |         return (min: Vector2<E>(line.pointAtScale(minScale)), max: Vector2<E>(line.pointAtScale(maxScale)))
    |                                      `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
151 |     }
152 | }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Rect.swift:150:84: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
148 |         }
149 |
150 |         return (min: Vector2<E>(line.pointAtScale(minScale)), max: Vector2<E>(line.pointAtScale(maxScale)))
    |                                                                                    `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
151 |     }
152 | }
[12/26] Compiling GfxMath Rect.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/geometry/LineSegment.swift:7:10: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
 5 |   public var scaleMax: Vector.Element
 6 |   public var start: Vector {
 7 |     line.pointAtScale(scaleMin)
   |          `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
 8 |   }
 9 |   public var end: Vector {
/host/spi-builder-workspace/Sources/GfxMath/geometry/LineSegment.swift:10:10: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
 8 |   }
 9 |   public var end: Vector {
10 |     line.pointAtScale(scaleMax)
   |          `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
11 |   }
12 |   public var length: Vector.Element {
/host/spi-builder-workspace/Sources/GfxMath/geometry/LineSegment.swift:35:9: warning: variable 'scaleMin' was never mutated; consider changing to 'let' constant
33 |   public init(start: Vector, end: Vector) {
34 |     let line = AnyLine(from: start, to: end)
35 |     var scaleMin = line.scaleAt(start)!
   |         `- warning: variable 'scaleMin' was never mutated; consider changing to 'let' constant
36 |     var scaleMax = line.scaleAt(end)!
37 |     self.init(line: line, scaleMin: scaleMin, scaleMax: scaleMax)
/host/spi-builder-workspace/Sources/GfxMath/geometry/LineSegment.swift:36:9: warning: variable 'scaleMax' was never mutated; consider changing to 'let' constant
34 |     let line = AnyLine(from: start, to: end)
35 |     var scaleMin = line.scaleAt(start)!
36 |     var scaleMax = line.scaleAt(end)!
   |         `- warning: variable 'scaleMax' was never mutated; consider changing to 'let' constant
37 |     self.init(line: line, scaleMin: scaleMin, scaleMax: scaleMax)
38 |   }
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/geometry/Plane.swift:16:5: warning: 'public' modifier is redundant for initializer declared in a public extension
14 |     }
15 |
16 |     public init(point: VectorProtocol, normal: VectorProtocol) {
   |     `- warning: 'public' modifier is redundant for initializer declared in a public extension
17 |         self.init()
18 |         self.point = point
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:28:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 26 |
 27 | extension Vector2Protocol {
 28 |   public typealias Dimension = Dim_2x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 29 |
 30 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
/host/spi-builder-workspace/Sources/GfxMath/geometry/Rect.swift:135:54: warning: 'point' is deprecated: use origin
133 |         var maxScale = E.infinity
134 |         for dimension in 0..<2 {
135 |             var newMinScale = (min[dimension] - line.point[dimension]) / line.direction[dimension]
    |                                                      `- warning: 'point' is deprecated: use origin
136 |             var newMaxScale = (max[dimension] - line.point[dimension]) / line.direction[dimension]
137 |             if newMinScale > newMaxScale {
/host/spi-builder-workspace/Sources/GfxMath/geometry/Rect.swift:136:54: warning: 'point' is deprecated: use origin
134 |         for dimension in 0..<2 {
135 |             var newMinScale = (min[dimension] - line.point[dimension]) / line.direction[dimension]
136 |             var newMaxScale = (max[dimension] - line.point[dimension]) / line.direction[dimension]
    |                                                      `- warning: 'point' is deprecated: use origin
137 |             if newMinScale > newMaxScale {
138 |                 let tmp = newMinScale
/host/spi-builder-workspace/Sources/GfxMath/geometry/Rect.swift:150:38: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
148 |         }
149 |
150 |         return (min: Vector2<E>(line.pointAtScale(minScale)), max: Vector2<E>(line.pointAtScale(maxScale)))
    |                                      `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
151 |     }
152 | }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Rect.swift:150:84: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
148 |         }
149 |
150 |         return (min: Vector2<E>(line.pointAtScale(minScale)), max: Vector2<E>(line.pointAtScale(maxScale)))
    |                                                                                    `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
151 |     }
152 | }
[13/26] Compiling GfxMath Transform.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/Transform.swift:24:25: warning: immutable value 'translation' was never used; consider replacing with '_' or removing it
22 |   public func transform(size: DSize2) -> DSize2 {
23 |     switch self {
24 |     case let .translate(translation):
   |                         `- warning: immutable value 'translation' was never used; consider replacing with '_' or removing it
25 |       return size
26 |     case let .scale(scale, origin):
/host/spi-builder-workspace/Sources/GfxMath/Transform.swift:26:28: warning: immutable value 'origin' was never used; consider replacing with '_' or removing it
24 |     case let .translate(translation):
25 |       return size
26 |     case let .scale(scale, origin):
   |                            `- warning: immutable value 'origin' was never used; consider replacing with '_' or removing it
27 |       return size * scale.abs()
28 |     }
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:28:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 26 |
 27 | extension Vector2Protocol {
 28 |   public typealias Dimension = Dim_2x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 29 |
 30 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:123:15: warning: deprecated default implementation is used to satisfy initializer 'init(point:direction:)' required by protocol 'Line': use init(origin:, direction:)
  8 |
  9 |     init()
 10 |     init(point: VectorProtocol, direction: VectorProtocol)
    |     `- note: requirement 'init(point:direction:)' declared here
 11 |     init(origin: VectorProtocol, direction: VectorProtocol)
 12 | }
    :
 14 | public extension Line {
 15 |     @available(*, deprecated, message: "use init(origin:, direction:)")
 16 |     init(point: VectorProtocol, direction: VectorProtocol) {
    |     `- note: 'init(point:direction:)' declared here
 17 |         self.init(origin: point, direction: direction)
 18 |     }
    :
121 | }
122 |
123 | public struct AnyLine<V: VectorProtocol>: Line where V.Element: BinaryFloatingPoint {
    |               `- warning: deprecated default implementation is used to satisfy initializer 'init(point:direction:)' required by protocol 'Line': use init(origin:, direction:)
124 |     public typealias VectorProtocol = V
125 |     public var origin: V
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:22:14: warning: 'point' is deprecated: use origin
 20 |     init(origin: VectorProtocol, direction: VectorProtocol) {
 21 |         self.init()
 22 |         self.point = origin
    |              `- warning: 'point' is deprecated: use origin
 23 |         self.direction = direction.normalized()
 24 |     }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:28:14: warning: 'point' is deprecated: use origin
 26 |     init(from point1: VectorProtocol, to point2: VectorProtocol) {
 27 |         self.init()
 28 |         self.point = point1
    |              `- warning: 'point' is deprecated: use origin
 29 |         self.direction = (point1 - point2).normalized()
 30 |     }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:33:22: warning: 'point' is deprecated: use origin
 31 |
 32 |     var debugDescription: String {
 33 |         "Line x = (\(point)) + scale * (\(direction))"
    |                      `- warning: 'point' is deprecated: use origin
 34 |     }
 35 |
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:48:16: warning: 'point' is deprecated: use origin
 46 |
 47 |     func pointAt(scale: VectorProtocol.Element) -> VectorProtocol {
 48 |         return point + direction * scale
    |                `- warning: 'point' is deprecated: use origin
 49 |     }
 50 |
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:56:29: warning: 'point' is deprecated: use origin
 54 |             if direction[axis] == 0 {
 55 |                 // TODO: maybe need accuracy here too
 56 |                 if abs(self.point[axis] - point[axis]) > accuracy {
    |                             `- warning: 'point' is deprecated: use origin
 57 |                     return nil
 58 |                 }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:60:49: warning: 'point' is deprecated: use origin
 58 |                 }
 59 |             } else {
 60 |                 let scale = (point[axis] - self.point[axis]) / direction[axis]
    |                                                 `- warning: 'point' is deprecated: use origin
 61 |                 if lastScale == nil {
 62 |                     lastScale = scale
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:99:35: warning: 'point' is deprecated: use origin
 97 |         // TODO: which value to use as accuracy?
 98 |         if slope1 == slope2 || abs(slope1 - slope2) < VectorProtocol.Element(0.1) {
 99 |             if contains(otherLine.point) {
    |                                   `- warning: 'point' is deprecated: use origin
100 |                 return point
101 |             } else {
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:100:24: warning: 'point' is deprecated: use origin
 98 |         if slope1 == slope2 || abs(slope1 - slope2) < VectorProtocol.Element(0.1) {
 99 |             if contains(otherLine.point) {
100 |                 return point
    |                        `- warning: 'point' is deprecated: use origin
101 |             } else {
102 |                 return nil
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:106:33: warning: 'point' is deprecated: use origin
104 |         }
105 |
106 |         let scale1 = (otherLine.point - self.point).cross(otherLine.direction) / self.direction.cross(otherLine.direction)
    |                                 `- warning: 'point' is deprecated: use origin
107 |
108 |         return pointAtScale(scale1)
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:106:46: warning: 'point' is deprecated: use origin
104 |         }
105 |
106 |         let scale1 = (otherLine.point - self.point).cross(otherLine.direction) / self.direction.cross(otherLine.direction)
    |                                              `- warning: 'point' is deprecated: use origin
107 |
108 |         return pointAtScale(scale1)
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:108:16: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
106 |         let scale1 = (otherLine.point - self.point).cross(otherLine.direction) / self.direction.cross(otherLine.direction)
107 |
108 |         return pointAtScale(scale1)
    |                `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
109 |     }
110 | }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:118:53: warning: 'point' is deprecated: use origin
116 |         }
117 |
118 |         let s = (plane.elevation - plane.normal.dot(point)) / (plane.normal.dot(direction))
    |                                                     `- warning: 'point' is deprecated: use origin
119 |         return pointAtScale(s)
120 |     }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:119:16: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
117 |
118 |         let s = (plane.elevation - plane.normal.dot(point)) / (plane.normal.dot(direction))
119 |         return pointAtScale(s)
    |                `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
120 |     }
121 | }
[14/26] Compiling GfxMath Transformation.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/Transform.swift:24:25: warning: immutable value 'translation' was never used; consider replacing with '_' or removing it
22 |   public func transform(size: DSize2) -> DSize2 {
23 |     switch self {
24 |     case let .translate(translation):
   |                         `- warning: immutable value 'translation' was never used; consider replacing with '_' or removing it
25 |       return size
26 |     case let .scale(scale, origin):
/host/spi-builder-workspace/Sources/GfxMath/Transform.swift:26:28: warning: immutable value 'origin' was never used; consider replacing with '_' or removing it
24 |     case let .translate(translation):
25 |       return size
26 |     case let .scale(scale, origin):
   |                            `- warning: immutable value 'origin' was never used; consider replacing with '_' or removing it
27 |       return size * scale.abs()
28 |     }
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:28:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 26 |
 27 | extension Vector2Protocol {
 28 |   public typealias Dimension = Dim_2x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 29 |
 30 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:123:15: warning: deprecated default implementation is used to satisfy initializer 'init(point:direction:)' required by protocol 'Line': use init(origin:, direction:)
  8 |
  9 |     init()
 10 |     init(point: VectorProtocol, direction: VectorProtocol)
    |     `- note: requirement 'init(point:direction:)' declared here
 11 |     init(origin: VectorProtocol, direction: VectorProtocol)
 12 | }
    :
 14 | public extension Line {
 15 |     @available(*, deprecated, message: "use init(origin:, direction:)")
 16 |     init(point: VectorProtocol, direction: VectorProtocol) {
    |     `- note: 'init(point:direction:)' declared here
 17 |         self.init(origin: point, direction: direction)
 18 |     }
    :
121 | }
122 |
123 | public struct AnyLine<V: VectorProtocol>: Line where V.Element: BinaryFloatingPoint {
    |               `- warning: deprecated default implementation is used to satisfy initializer 'init(point:direction:)' required by protocol 'Line': use init(origin:, direction:)
124 |     public typealias VectorProtocol = V
125 |     public var origin: V
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:22:14: warning: 'point' is deprecated: use origin
 20 |     init(origin: VectorProtocol, direction: VectorProtocol) {
 21 |         self.init()
 22 |         self.point = origin
    |              `- warning: 'point' is deprecated: use origin
 23 |         self.direction = direction.normalized()
 24 |     }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:28:14: warning: 'point' is deprecated: use origin
 26 |     init(from point1: VectorProtocol, to point2: VectorProtocol) {
 27 |         self.init()
 28 |         self.point = point1
    |              `- warning: 'point' is deprecated: use origin
 29 |         self.direction = (point1 - point2).normalized()
 30 |     }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:33:22: warning: 'point' is deprecated: use origin
 31 |
 32 |     var debugDescription: String {
 33 |         "Line x = (\(point)) + scale * (\(direction))"
    |                      `- warning: 'point' is deprecated: use origin
 34 |     }
 35 |
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:48:16: warning: 'point' is deprecated: use origin
 46 |
 47 |     func pointAt(scale: VectorProtocol.Element) -> VectorProtocol {
 48 |         return point + direction * scale
    |                `- warning: 'point' is deprecated: use origin
 49 |     }
 50 |
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:56:29: warning: 'point' is deprecated: use origin
 54 |             if direction[axis] == 0 {
 55 |                 // TODO: maybe need accuracy here too
 56 |                 if abs(self.point[axis] - point[axis]) > accuracy {
    |                             `- warning: 'point' is deprecated: use origin
 57 |                     return nil
 58 |                 }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:60:49: warning: 'point' is deprecated: use origin
 58 |                 }
 59 |             } else {
 60 |                 let scale = (point[axis] - self.point[axis]) / direction[axis]
    |                                                 `- warning: 'point' is deprecated: use origin
 61 |                 if lastScale == nil {
 62 |                     lastScale = scale
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:99:35: warning: 'point' is deprecated: use origin
 97 |         // TODO: which value to use as accuracy?
 98 |         if slope1 == slope2 || abs(slope1 - slope2) < VectorProtocol.Element(0.1) {
 99 |             if contains(otherLine.point) {
    |                                   `- warning: 'point' is deprecated: use origin
100 |                 return point
101 |             } else {
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:100:24: warning: 'point' is deprecated: use origin
 98 |         if slope1 == slope2 || abs(slope1 - slope2) < VectorProtocol.Element(0.1) {
 99 |             if contains(otherLine.point) {
100 |                 return point
    |                        `- warning: 'point' is deprecated: use origin
101 |             } else {
102 |                 return nil
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:106:33: warning: 'point' is deprecated: use origin
104 |         }
105 |
106 |         let scale1 = (otherLine.point - self.point).cross(otherLine.direction) / self.direction.cross(otherLine.direction)
    |                                 `- warning: 'point' is deprecated: use origin
107 |
108 |         return pointAtScale(scale1)
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:106:46: warning: 'point' is deprecated: use origin
104 |         }
105 |
106 |         let scale1 = (otherLine.point - self.point).cross(otherLine.direction) / self.direction.cross(otherLine.direction)
    |                                              `- warning: 'point' is deprecated: use origin
107 |
108 |         return pointAtScale(scale1)
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:108:16: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
106 |         let scale1 = (otherLine.point - self.point).cross(otherLine.direction) / self.direction.cross(otherLine.direction)
107 |
108 |         return pointAtScale(scale1)
    |                `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
109 |     }
110 | }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:118:53: warning: 'point' is deprecated: use origin
116 |         }
117 |
118 |         let s = (plane.elevation - plane.normal.dot(point)) / (plane.normal.dot(direction))
    |                                                     `- warning: 'point' is deprecated: use origin
119 |         return pointAtScale(s)
120 |     }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:119:16: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
117 |
118 |         let s = (plane.elevation - plane.normal.dot(point)) / (plane.normal.dot(direction))
119 |         return pointAtScale(s)
    |                `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
120 |     }
121 | }
[15/26] Compiling GfxMath Line.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/Transform.swift:24:25: warning: immutable value 'translation' was never used; consider replacing with '_' or removing it
22 |   public func transform(size: DSize2) -> DSize2 {
23 |     switch self {
24 |     case let .translate(translation):
   |                         `- warning: immutable value 'translation' was never used; consider replacing with '_' or removing it
25 |       return size
26 |     case let .scale(scale, origin):
/host/spi-builder-workspace/Sources/GfxMath/Transform.swift:26:28: warning: immutable value 'origin' was never used; consider replacing with '_' or removing it
24 |     case let .translate(translation):
25 |       return size
26 |     case let .scale(scale, origin):
   |                            `- warning: immutable value 'origin' was never used; consider replacing with '_' or removing it
27 |       return size * scale.abs()
28 |     }
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:28:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 26 |
 27 | extension Vector2Protocol {
 28 |   public typealias Dimension = Dim_2x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 29 |
 30 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:123:15: warning: deprecated default implementation is used to satisfy initializer 'init(point:direction:)' required by protocol 'Line': use init(origin:, direction:)
  8 |
  9 |     init()
 10 |     init(point: VectorProtocol, direction: VectorProtocol)
    |     `- note: requirement 'init(point:direction:)' declared here
 11 |     init(origin: VectorProtocol, direction: VectorProtocol)
 12 | }
    :
 14 | public extension Line {
 15 |     @available(*, deprecated, message: "use init(origin:, direction:)")
 16 |     init(point: VectorProtocol, direction: VectorProtocol) {
    |     `- note: 'init(point:direction:)' declared here
 17 |         self.init(origin: point, direction: direction)
 18 |     }
    :
121 | }
122 |
123 | public struct AnyLine<V: VectorProtocol>: Line where V.Element: BinaryFloatingPoint {
    |               `- warning: deprecated default implementation is used to satisfy initializer 'init(point:direction:)' required by protocol 'Line': use init(origin:, direction:)
124 |     public typealias VectorProtocol = V
125 |     public var origin: V
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:22:14: warning: 'point' is deprecated: use origin
 20 |     init(origin: VectorProtocol, direction: VectorProtocol) {
 21 |         self.init()
 22 |         self.point = origin
    |              `- warning: 'point' is deprecated: use origin
 23 |         self.direction = direction.normalized()
 24 |     }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:28:14: warning: 'point' is deprecated: use origin
 26 |     init(from point1: VectorProtocol, to point2: VectorProtocol) {
 27 |         self.init()
 28 |         self.point = point1
    |              `- warning: 'point' is deprecated: use origin
 29 |         self.direction = (point1 - point2).normalized()
 30 |     }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:33:22: warning: 'point' is deprecated: use origin
 31 |
 32 |     var debugDescription: String {
 33 |         "Line x = (\(point)) + scale * (\(direction))"
    |                      `- warning: 'point' is deprecated: use origin
 34 |     }
 35 |
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:48:16: warning: 'point' is deprecated: use origin
 46 |
 47 |     func pointAt(scale: VectorProtocol.Element) -> VectorProtocol {
 48 |         return point + direction * scale
    |                `- warning: 'point' is deprecated: use origin
 49 |     }
 50 |
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:56:29: warning: 'point' is deprecated: use origin
 54 |             if direction[axis] == 0 {
 55 |                 // TODO: maybe need accuracy here too
 56 |                 if abs(self.point[axis] - point[axis]) > accuracy {
    |                             `- warning: 'point' is deprecated: use origin
 57 |                     return nil
 58 |                 }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:60:49: warning: 'point' is deprecated: use origin
 58 |                 }
 59 |             } else {
 60 |                 let scale = (point[axis] - self.point[axis]) / direction[axis]
    |                                                 `- warning: 'point' is deprecated: use origin
 61 |                 if lastScale == nil {
 62 |                     lastScale = scale
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:99:35: warning: 'point' is deprecated: use origin
 97 |         // TODO: which value to use as accuracy?
 98 |         if slope1 == slope2 || abs(slope1 - slope2) < VectorProtocol.Element(0.1) {
 99 |             if contains(otherLine.point) {
    |                                   `- warning: 'point' is deprecated: use origin
100 |                 return point
101 |             } else {
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:100:24: warning: 'point' is deprecated: use origin
 98 |         if slope1 == slope2 || abs(slope1 - slope2) < VectorProtocol.Element(0.1) {
 99 |             if contains(otherLine.point) {
100 |                 return point
    |                        `- warning: 'point' is deprecated: use origin
101 |             } else {
102 |                 return nil
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:106:33: warning: 'point' is deprecated: use origin
104 |         }
105 |
106 |         let scale1 = (otherLine.point - self.point).cross(otherLine.direction) / self.direction.cross(otherLine.direction)
    |                                 `- warning: 'point' is deprecated: use origin
107 |
108 |         return pointAtScale(scale1)
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:106:46: warning: 'point' is deprecated: use origin
104 |         }
105 |
106 |         let scale1 = (otherLine.point - self.point).cross(otherLine.direction) / self.direction.cross(otherLine.direction)
    |                                              `- warning: 'point' is deprecated: use origin
107 |
108 |         return pointAtScale(scale1)
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:108:16: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
106 |         let scale1 = (otherLine.point - self.point).cross(otherLine.direction) / self.direction.cross(otherLine.direction)
107 |
108 |         return pointAtScale(scale1)
    |                `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
109 |     }
110 | }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:118:53: warning: 'point' is deprecated: use origin
116 |         }
117 |
118 |         let s = (plane.elevation - plane.normal.dot(point)) / (plane.normal.dot(direction))
    |                                                     `- warning: 'point' is deprecated: use origin
119 |         return pointAtScale(s)
120 |     }
/host/spi-builder-workspace/Sources/GfxMath/geometry/Line.swift:119:16: warning: 'pointAtScale' is deprecated: use pointAt(scale:)
117 |
118 |         let s = (plane.elevation - plane.normal.dot(point)) / (plane.normal.dot(direction))
119 |         return pointAtScale(s)
    |                `- warning: 'pointAtScale' is deprecated: use pointAt(scale:)
120 |     }
121 | }
[16/26] Compiling GfxMath Point.swift
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:28:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 26 |
 27 | extension Vector2Protocol {
 28 |   public typealias Dimension = Dim_2x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 29 |
 30 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
[17/26] Compiling GfxMath Quaternion.swift
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:28:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 26 |
 27 | extension Vector2Protocol {
 28 |   public typealias Dimension = Dim_2x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 29 |
 30 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
[18/26] Compiling GfxMath Size.swift
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:28:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 26 |
 27 | extension Vector2Protocol {
 28 |   public typealias Dimension = Dim_2x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 29 |
 30 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
[19/26] Compiling GfxMath Color.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
[20/26] Compiling GfxMath EColor.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
[21/26] Compiling GfxMath RGBColor.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
[22/26] Compiling GfxMath Vector.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:28:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 26 |
 27 | extension Vector2Protocol {
 28 |   public typealias Dimension = Dim_2x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 29 |
 30 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:174:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
172 |
173 | extension Vector4Protocol {
174 |   public typealias Dimension = Dim_4x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
175 |
176 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:244:27: warning: no calls to throwing functions occur within 'try' expression
242 |     -> VectorProtocol where Self.Element == VectorProtocol.Element
243 |   {
244 |     return VectorProtocol(try! self.matmul(other).elements)
    |                           `- warning: no calls to throwing functions occur within 'try' expression
245 |   }
246 | }
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:244:37: warning: function call causes an infinite recursion
242 |     -> VectorProtocol where Self.Element == VectorProtocol.Element
243 |   {
244 |     return VectorProtocol(try! self.matmul(other).elements)
    |                                     `- warning: function call causes an infinite recursion
245 |   }
246 | }
[23/26] Compiling GfxMath VectorLayout.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:28:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 26 |
 27 | extension Vector2Protocol {
 28 |   public typealias Dimension = Dim_2x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 29 |
 30 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:174:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
172 |
173 | extension Vector4Protocol {
174 |   public typealias Dimension = Dim_4x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
175 |
176 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:244:27: warning: no calls to throwing functions occur within 'try' expression
242 |     -> VectorProtocol where Self.Element == VectorProtocol.Element
243 |   {
244 |     return VectorProtocol(try! self.matmul(other).elements)
    |                           `- warning: no calls to throwing functions occur within 'try' expression
245 |   }
246 | }
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:244:37: warning: function call causes an infinite recursion
242 |     -> VectorProtocol where Self.Element == VectorProtocol.Element
243 |   {
244 |     return VectorProtocol(try! self.matmul(other).elements)
    |                                     `- warning: function call causes an infinite recursion
245 |   }
246 | }
[24/26] Compiling GfxMath VectorProtocol+Initializers.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:28:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 26 |
 27 | extension Vector2Protocol {
 28 |   public typealias Dimension = Dim_2x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 29 |
 30 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:174:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
172 |
173 | extension Vector4Protocol {
174 |   public typealias Dimension = Dim_4x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
175 |
176 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:244:27: warning: no calls to throwing functions occur within 'try' expression
242 |     -> VectorProtocol where Self.Element == VectorProtocol.Element
243 |   {
244 |     return VectorProtocol(try! self.matmul(other).elements)
    |                           `- warning: no calls to throwing functions occur within 'try' expression
245 |   }
246 | }
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:244:37: warning: function call causes an infinite recursion
242 |     -> VectorProtocol where Self.Element == VectorProtocol.Element
243 |   {
244 |     return VectorProtocol(try! self.matmul(other).elements)
    |                                     `- warning: function call causes an infinite recursion
245 |   }
246 | }
[25/26] Compiling GfxMath VectorProtocol+Operators.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
[26/26] Compiling GfxMath VectorProtocol.swift
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:4:20: warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  2 |
  3 | public protocol MatrixProtocol: Sequence, Equatable, CustomStringConvertible, Hashable {
  4 |     associatedtype Element: Numeric
    |                    `- warning: redeclaration of associated type 'Element' from protocol 'Sequence' is better expressed as a 'where' clause on the protocol
  5 |     var rows: Int { get }
  6 |     var cols: Int { get }
Swift.Sequence:2:20: note: 'Element' declared here
 1 | public protocol Sequence<Element> {
 2 |     associatedtype Element where Self.Element == Self.Iterator.Element
   |                    `- note: 'Element' declared here
 3 |     associatedtype Iterator : IteratorProtocol
 4 |     @available(*, unavailable, renamed: "Iterator")
/host/spi-builder-workspace/Sources/GfxMath/vector/Vector.swift:101:20: warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
 99 |
100 | extension Vector3Protocol {
101 |   public typealias Dimension = Dim_3x1
    |                    `- warning: typealias overriding associated type 'Dimension' from protocol 'VectorProtocol' is better expressed as same-type constraint on the protocol
102 |
103 |   @inlinable public static var zero: Self {
/host/spi-builder-workspace/Sources/GfxMath/vector/VectorProtocol.swift:4:18: note: 'Dimension' declared here
 2 |
 3 | public protocol VectorProtocol: MatrixProtocol {
 4 |   associatedtype Dimension: MatrixDimension
   |                  `- note: 'Dimension' declared here
 5 |
 6 |   init(_ elements: [Element])
/host/spi-builder-workspace/Sources/GfxMath/Matrix.swift:223:6: warning: unknown platform 'unavailable' for attribute 'available'
221 |     }
222 |
223 |     @available(unavailable, message: "need to know size of matrix, use init")
    |      `- warning: unknown platform 'unavailable' for attribute 'available'
224 |     @inlinable public static var zero: Self {
225 |         fatalError("unavailable, need to specify size")
Build complete! (14.66s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "GfxMath",
  "name" : "GfxMath",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "GfxMath",
      "targets" : [
        "GfxMath"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "GfxMathTests",
      "module_type" : "SwiftTarget",
      "name" : "GfxMathTests",
      "path" : "Tests/GfxMathTests",
      "sources" : [
        "MatrixTests.swift",
        "QuaternionTests.swift",
        "RectTests.swift",
        "VectorProtocolTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "GfxMath"
      ],
      "type" : "test"
    },
    {
      "c99name" : "GfxMath",
      "module_type" : "SwiftTarget",
      "name" : "GfxMath",
      "path" : "Sources/GfxMath",
      "product_memberships" : [
        "GfxMath"
      ],
      "sources" : [
        "Accuracy.swift",
        "Color/Color+Conversions.swift",
        "Color/Color+DefaultColors.swift",
        "Color/Color.swift",
        "Color/Experimental/EColor.swift",
        "Color/Experimental/RGBColor.swift",
        "FloatingPointGenericMath.swift",
        "Matrix.swift",
        "MatrixDimension.swift",
        "Point.swift",
        "Quaternion.swift",
        "Size.swift",
        "Transform.swift",
        "Transformation.swift",
        "geometry/Line.swift",
        "geometry/LineSegment.swift",
        "geometry/Plane.swift",
        "geometry/Rect.swift",
        "vector/Vector.swift",
        "vector/VectorLayout.swift",
        "vector/VectorProtocol+Initializers.swift",
        "vector/VectorProtocol+Operators.swift",
        "vector/VectorProtocol.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:9d7dab235f2b0b46edadd73b1fb0c3b5323df02053420324a4a2f8ca89cb54a5
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Done.