The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Satin, reference main (a91c46), with Swift 6.4 for macOS (SPM) on 19 Sep 2026 13:24:43 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Hi-Rez/Satin.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Hi-Rez/Satin
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at a91c469 updated README.md credits typo
Cloned https://github.com/Hi-Rez/Satin.git
Revision (git rev-parse @):
a91c469f517cef1946d5ed4dd9771df4843a30ef
SUCCESS checkout https://github.com/Hi-Rez/Satin.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.4
Building package at path:  $PWD
https://github.com/Hi-Rez/Satin.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Pre-planning 1 / 125]
[Planning deferred tasks]
[33 / 59] Satin_Satin
[36 / 59]
[47 / 60] SatinCore
[50 / 60] SatinCore
[50 / 60] Satin
[61 / 142] SatinCore
[64 / 142]
[72 / 142]
[74 / 142]
[75 / 142]
[80 / 142]
[83 / 142]
[85 / 142]
[88 / 142]
[93 / 142]
[96 / 142]
[98 / 142]
[99 / 142]
[110 / 142]
[112 / 142]
[114 / 142]
[118 / 142]
[120 / 142]
[133 / 142] Satin
[134 / 142] Satin
[139 / 142] Satin
[142 / 142] Satin-product
Build complete! (12.56 sec)
/Users/admin/builder/spi-builder-workspace/Sources/SatinCore/Triangulator.mm:918:23: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
  918 |     tsVertex vertices[length];
      |                       ^~~~~~
/Users/admin/builder/spi-builder-workspace/Sources/SatinCore/Triangulator.mm:918:23: note: function parameter 'length' with unknown value cannot be used in a constant expression
/Users/admin/builder/spi-builder-workspace/Sources/SatinCore/Triangulator.mm:917:46: note: declared here
  917 | int triangulatePath(simd_float2 *points, int length, TriangleData *triData) {
      |                                              ^
1 warning generated.
/Users/admin/builder/spi-builder-workspace/Sources/SatinCore/Generators.mm:1121:44: warning: ISO C++ requires field designators to be specified in declaration order; field 'uv' will be initialized after field 'normal' [-Wreorder-init-list]
 1121 |                                  .normal = simd_make_float3(0.0, 1.0, 0.0) };
      |                                  ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/admin/builder/spi-builder-workspace/Sources/SatinCore/Generators.mm:1118:40: note: previous initialization for field 'uv' is here
 1118 |                                  .uv = simd_make_float2(
      |                                        ^~~~~~~~~~~~~~~~~
 1119 |                                      abs(x) < 0.00001 ? 0.0 : x / innerRadius,
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1120 |                                      abs(y) < 0.00001 ? 0.0 : y / innerRadius),
      |                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLVertexStepFunction+Extensions.swift:11:1: warning: extension declares a conformance of imported type 'MTLVertexStepFunction' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
 9 | import Metal
10 |
11 | extension MTLVertexStepFunction: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLVertexStepFunction' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
12 |
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Metal+Extensions.swift:11:1: warning: extension declares a conformance of imported type 'MTLTriangleFillMode' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
 9 | import Metal
10 |
11 | extension MTLTriangleFillMode: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLTriangleFillMode' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
12 | extension MTLCullMode: Codable {}
13 | extension MTLPrimitiveType: Codable {}
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Metal+Extensions.swift:12:1: warning: extension declares a conformance of imported type 'MTLCullMode' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
10 |
11 | extension MTLTriangleFillMode: Codable {}
12 | extension MTLCullMode: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLCullMode' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
13 | extension MTLPrimitiveType: Codable {}
14 | extension MTLWinding: Codable {}
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Metal+Extensions.swift:13:1: warning: extension declares a conformance of imported type 'MTLPrimitiveType' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
11 | extension MTLTriangleFillMode: Codable {}
12 | extension MTLCullMode: Codable {}
13 | extension MTLPrimitiveType: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLPrimitiveType' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
14 | extension MTLWinding: Codable {}
15 | extension MTLIndexType: Codable {}
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Metal+Extensions.swift:14:1: warning: extension declares a conformance of imported type 'MTLWinding' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
12 | extension MTLCullMode: Codable {}
13 | extension MTLPrimitiveType: Codable {}
14 | extension MTLWinding: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLWinding' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
15 | extension MTLIndexType: Codable {}
16 |
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Metal+Extensions.swift:15:1: warning: extension declares a conformance of imported type 'MTLIndexType' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
13 | extension MTLPrimitiveType: Codable {}
14 | extension MTLWinding: Codable {}
15 | extension MTLIndexType: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLIndexType' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
16 |
17 | extension MTLCompareFunction: Codable {}
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Metal+Extensions.swift:17:1: warning: extension declares a conformance of imported type 'MTLCompareFunction' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
15 | extension MTLIndexType: Codable {}
16 |
17 | extension MTLCompareFunction: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLCompareFunction' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
18 | extension MTLBlendOperation: Codable {}
19 | extension MTLBlendFactor: Codable {}
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Metal+Extensions.swift:18:1: warning: extension declares a conformance of imported type 'MTLBlendOperation' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
16 |
17 | extension MTLCompareFunction: Codable {}
18 | extension MTLBlendOperation: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLBlendOperation' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
19 | extension MTLBlendFactor: Codable {}
20 |
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Metal+Extensions.swift:19:1: warning: extension declares a conformance of imported type 'MTLBlendFactor' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
17 | extension MTLCompareFunction: Codable {}
18 | extension MTLBlendOperation: Codable {}
19 | extension MTLBlendFactor: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLBlendFactor' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
20 |
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Simd+Extensions.swift:46:1: warning: extension declares a conformance of imported type '_MTLPackedFloat3' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
 44 | }
 45 |
 46 | extension MTLPackedFloat3: Codable {
    | |- warning: extension declares a conformance of imported type '_MTLPackedFloat3' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 47 |     public init(from decoder: Decoder) throws {
 48 |         let values = try decoder.singleValueContainer()
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Simd+Extensions.swift:62:1: warning: extension declares a conformance of imported type 'simd_quatf' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'simd' introduce this conformance in the future
 60 | }
 61 |
 62 | extension simd_quatf: Codable {
    | |- warning: extension declares a conformance of imported type 'simd_quatf' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'simd' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 63 |     public init(from decoder: Decoder) throws {
 64 |         let values = try decoder.singleValueContainer()
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Simd+Extensions.swift:74:1: warning: extension declares a conformance of imported type 'simd_float4x4' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'simd' introduce this conformance in the future
 72 | }
 73 |
 74 | extension simd_float4x4: Codable {
    | |- warning: extension declares a conformance of imported type 'simd_float4x4' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'simd' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 75 |     public init(from decoder: Decoder) throws {
 76 |         let values = try decoder.singleValueContainer()
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Simd+Extensions.swift:94:1: warning: extension declares a conformance of imported type 'simd_float3x3' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'simd' introduce this conformance in the future
 92 | }
 93 |
 94 | extension simd_float3x3: Codable {
    | |- warning: extension declares a conformance of imported type 'simd_float3x3' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'simd' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 95 |     public init(from decoder: Decoder) throws {
 96 |         let values = try decoder.singleValueContainer()
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Simd+Extensions.swift:106:1: warning: extension declares a conformance of imported type 'simd_float2x2' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'simd' introduce this conformance in the future
104 | }
105 |
106 | extension simd_float2x2: Codable {
    | |- warning: extension declares a conformance of imported type 'simd_float2x2' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'simd' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
107 |     public init(from decoder: Decoder) throws {
108 |         let values = try decoder.singleValueContainer()
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Vertex+Extensions.swift:12:1: warning: extension declares a conformance of imported type 'SatinVertex' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
10 | #endif
11 |
12 | extension SatinVertex: Codable {
   | |- warning: extension declares a conformance of imported type 'SatinVertex' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
13 |     private enum CodingKeys: String, CodingKey {
14 |         case position
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Geometry/TesselatedTextGeometry.swift:17:1: warning: extension declares a conformance of imported type 'CTTextAlignment' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'CoreText' introduce this conformance in the future
 15 | #endif
 16 |
 17 | extension CTTextAlignment: Codable {}
    | |- warning: extension declares a conformance of imported type 'CTTextAlignment' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'CoreText' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 18 |
 19 | public class TesselatedTextGeometry: SatinGeometry {
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Geometry/TesselatedTextGeometry.swift:17:1: warning: extension declares a conformance of imported type 'CTTextAlignment' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'CoreText' introduce this conformance in the future
 15 | #endif
 16 |
 17 | extension CTTextAlignment: Codable {}
    | |- warning: extension declares a conformance of imported type 'CTTextAlignment' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'CoreText' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 18 |
 19 | public class TesselatedTextGeometry: SatinGeometry {
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLTexture+Extensions.swift:12:9: warning: switch must be exhaustive
 10 | extension MTLPixelFormat {
 11 |     var srgb: Bool {
 12 |         switch self {
    |         |- warning: switch must be exhaustive
    |         |- note: add missing case: '.rgb8Unorm'
    |         |- note: add missing case: '.rgb8Snorm'
    |         |- note: add missing case: '.rgb8Uint'
    |         |- note: add missing case: '.rgb8Sint'
    |         |- note: add missing case: '.rgb16Unorm'
    |         |- note: add missing case: '.rgb16Snorm'
    |         |- note: add missing case: '.rgb16Uint'
    |         |- note: add missing case: '.rgb16Sint'
    |         |- note: add missing case: '.rgb16Float'
    |         |- note: add missing case: '.rgb32Uint'
    |         |- note: add missing case: '.rgb32Sint'
    |         |- note: add missing case: '.rgb32Float'
    |         |- note: add missing case: '.unspecialized'
    |         `- note: add missing cases
 13 |             case .invalid:
 14 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/MTLVertexStepFunction+Extensions.swift:11:1: warning: extension declares a conformance of imported type 'MTLVertexStepFunction' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
 9 | import Metal
10 |
11 | extension MTLVertexStepFunction: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLVertexStepFunction' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
12 |
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Metal+Extensions.swift:11:1: warning: extension declares a conformance of imported type 'MTLTriangleFillMode' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
 9 | import Metal
10 |
11 | extension MTLTriangleFillMode: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLTriangleFillMode' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
12 | extension MTLCullMode: Codable {}
13 | extension MTLPrimitiveType: Codable {}
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Metal+Extensions.swift:12:1: warning: extension declares a conformance of imported type 'MTLCullMode' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
10 |
11 | extension MTLTriangleFillMode: Codable {}
12 | extension MTLCullMode: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLCullMode' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
13 | extension MTLPrimitiveType: Codable {}
14 | extension MTLWinding: Codable {}
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Metal+Extensions.swift:13:1: warning: extension declares a conformance of imported type 'MTLPrimitiveType' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
11 | extension MTLTriangleFillMode: Codable {}
12 | extension MTLCullMode: Codable {}
13 | extension MTLPrimitiveType: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLPrimitiveType' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
14 | extension MTLWinding: Codable {}
15 | extension MTLIndexType: Codable {}
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Metal+Extensions.swift:14:1: warning: extension declares a conformance of imported type 'MTLWinding' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
12 | extension MTLCullMode: Codable {}
13 | extension MTLPrimitiveType: Codable {}
14 | extension MTLWinding: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLWinding' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
15 | extension MTLIndexType: Codable {}
16 |
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Metal+Extensions.swift:15:1: warning: extension declares a conformance of imported type 'MTLIndexType' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
13 | extension MTLPrimitiveType: Codable {}
14 | extension MTLWinding: Codable {}
15 | extension MTLIndexType: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLIndexType' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
16 |
17 | extension MTLCompareFunction: Codable {}
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Metal+Extensions.swift:17:1: warning: extension declares a conformance of imported type 'MTLCompareFunction' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
15 | extension MTLIndexType: Codable {}
16 |
17 | extension MTLCompareFunction: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLCompareFunction' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
18 | extension MTLBlendOperation: Codable {}
19 | extension MTLBlendFactor: Codable {}
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Metal+Extensions.swift:18:1: warning: extension declares a conformance of imported type 'MTLBlendOperation' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
16 |
17 | extension MTLCompareFunction: Codable {}
18 | extension MTLBlendOperation: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLBlendOperation' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
19 | extension MTLBlendFactor: Codable {}
20 |
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Metal+Extensions.swift:19:1: warning: extension declares a conformance of imported type 'MTLBlendFactor' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
17 | extension MTLCompareFunction: Codable {}
18 | extension MTLBlendOperation: Codable {}
19 | extension MTLBlendFactor: Codable {}
   | |- warning: extension declares a conformance of imported type 'MTLBlendFactor' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
20 |
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Ray+Extensions.swift:40:1: warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
38 | }
39 |
40 | extension Ray: Equatable {
   | |- warning: extension declares a conformance of imported type 'Ray' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
41 |     public static func == (lhs: Ray, rhs: Ray) -> Bool {
42 |         return lhs.origin == rhs.origin && lhs.direction == rhs.direction
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Simd+Extensions.swift:46:1: warning: extension declares a conformance of imported type '_MTLPackedFloat3' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
 44 | }
 45 |
 46 | extension MTLPackedFloat3: Codable {
    | |- warning: extension declares a conformance of imported type '_MTLPackedFloat3' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 47 |     public init(from decoder: Decoder) throws {
 48 |         let values = try decoder.singleValueContainer()
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Simd+Extensions.swift:62:1: warning: extension declares a conformance of imported type 'simd_quatf' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'simd' introduce this conformance in the future
 60 | }
 61 |
 62 | extension simd_quatf: Codable {
    | |- warning: extension declares a conformance of imported type 'simd_quatf' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'simd' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 63 |     public init(from decoder: Decoder) throws {
 64 |         let values = try decoder.singleValueContainer()
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Simd+Extensions.swift:74:1: warning: extension declares a conformance of imported type 'simd_float4x4' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'simd' introduce this conformance in the future
 72 | }
 73 |
 74 | extension simd_float4x4: Codable {
    | |- warning: extension declares a conformance of imported type 'simd_float4x4' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'simd' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 75 |     public init(from decoder: Decoder) throws {
 76 |         let values = try decoder.singleValueContainer()
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Simd+Extensions.swift:94:1: warning: extension declares a conformance of imported type 'simd_float3x3' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'simd' introduce this conformance in the future
 92 | }
 93 |
 94 | extension simd_float3x3: Codable {
    | |- warning: extension declares a conformance of imported type 'simd_float3x3' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'simd' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 95 |     public init(from decoder: Decoder) throws {
 96 |         let values = try decoder.singleValueContainer()
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Simd+Extensions.swift:106:1: warning: extension declares a conformance of imported type 'simd_float2x2' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'simd' introduce this conformance in the future
104 | }
105 |
106 | extension simd_float2x2: Codable {
    | |- warning: extension declares a conformance of imported type 'simd_float2x2' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'simd' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
107 |     public init(from decoder: Decoder) throws {
108 |         let values = try decoder.singleValueContainer()
/Users/admin/builder/spi-builder-workspace/Sources/Satin/Extensions/Vertex+Extensions.swift:12:1: warning: extension declares a conformance of imported type 'SatinVertex' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
10 | #endif
11 |
12 | extension SatinVertex: Codable {
   | |- warning: extension declares a conformance of imported type 'SatinVertex' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'SatinCore' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
13 |     private enum CodingKeys: String, CodingKey {
14 |         case position
Build complete.
{
  "cxx_language_standard" : "c++17",
  "dependencies" : [
  ],
  "manifest_display_name" : "Satin",
  "name" : "Satin",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "14.0"
    },
    {
      "name" : "ios",
      "version" : "17.0"
    },
    {
      "name" : "visionos",
      "version" : "2.0"
    }
  ],
  "products" : [
    {
      "name" : "Satin",
      "targets" : [
        "Satin",
        "SatinCore"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "SatinTests",
      "module_type" : "SwiftTarget",
      "name" : "SatinTests",
      "path" : "Tests/SatinTests",
      "sources" : [
        "MutexTests.swift",
        "ObjectTests.swift",
        "RenderableTests.swift"
      ],
      "target_dependencies" : [
        "Satin"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SatinCoreTests",
      "module_type" : "SwiftTarget",
      "name" : "SatinCoreTests",
      "path" : "Tests/SatinCoreTests",
      "sources" : [
        "BezierTests.swift",
        "BoundsTests.swift",
        "MD5.swift",
        "TriangulatorTests.swift"
      ],
      "target_dependencies" : [
        "SatinCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SatinCore",
      "module_type" : "ClangTarget",
      "name" : "SatinCore",
      "path" : "Sources/SatinCore",
      "product_memberships" : [
        "Satin"
      ],
      "sources" : [
        "Bezier.mm",
        "Bounds.mm",
        "Bvh.mm",
        "Conversions.mm",
        "Generators.mm",
        "Geometry.mm",
        "Hermite.mm",
        "PoissonDiskSampler.mm",
        "Rectangle.mm",
        "SignedDistanceFunctions.mm",
        "Transforms.mm",
        "Triangulator.mm",
        "Types.mm"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Satin",
      "module_type" : "SwiftTarget",
      "name" : "Satin",
      "path" : "Sources/Satin",
      "product_memberships" : [
        "Satin"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Satin/Pipelines",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "AR/ARBackgroundDepthRenderer.swift",
        "AR/ARBackgroundRenderer.swift",
        "AR/ARCompositor.swift",
        "AR/ARDepthMaskGenerator.swift",
        "AR/ARDepthUpscaler.swift",
        "AR/ARFeatheredDepthMaskGenerator.swift",
        "AR/ARLidarMesh.swift",
        "AR/ARMatteRenderer.swift",
        "AR/ARPerspectiveCamera.swift",
        "AR/ARPlaneMesh.swift",
        "AR/ARPostProcessor.swift",
        "AR/ARSessionPublisher.swift",
        "Animation/Easing.swift",
        "Animation/Easings.swift",
        "Animation/Tween.swift",
        "Animation/Tweener.swift",
        "Buffers/InstanceMatrixUniformBuffer.swift",
        "Buffers/StructBuffer.swift",
        "Buffers/UniformBuffer.swift",
        "Buffers/VertexUniformBuffer.swift",
        "CameraControllers/CameraController.swift",
        "CameraControllers/OrbitPerspectiveCameraController.swift",
        "CameraControllers/OrthographicCameraController.swift",
        "CameraControllers/PerspectiveCameraController.swift",
        "Cameras/OrthographicCamera.swift",
        "Cameras/PerspectiveCamera.swift",
        "Codable/AnyMaterial.swift",
        "Compute/BufferComputeSystem.swift",
        "Compute/ComputeProcessor.swift",
        "Compute/ComputeSystem.swift",
        "Compute/TessellationProcessor.swift",
        "Compute/TextureComputeProcessor.swift",
        "Compute/TextureComputeSystem.swift",
        "Compute/Utilities/ComputeConfiguration.swift",
        "Compute/Utilities/ComputeShader.swift",
        "Compute/Utilities/ComputeShaderConfiguration.swift",
        "Compute/Utilities/ComputeShaderLibraryCache.swift",
        "Compute/Utilities/ComputeShaderLibraryConfiguration.swift",
        "Compute/Utilities/ComputeShaderLibrarySourceCache.swift",
        "Compute/Utilities/ComputeShaderPipelineCache.swift",
        "Constants/Blending.swift",
        "Constants/Constants.swift",
        "Constants/Lighting.swift",
        "Constants/Pipelines/ComputeConstants.swift",
        "Constants/Pipelines/FragmentConstants.swift",
        "Constants/Pipelines/MeshConstants.swift",
        "Constants/Pipelines/ObjectConstants.swift",
        "Constants/Pipelines/PBRConstants.swift",
        "Constants/Pipelines/VertexConstants.swift",
        "Constants/Tonemapping.swift",
        "Converters/YCbCrToRGBConverter.swift",
        "Core/Camera.swift",
        "Core/Context.swift",
        "Core/Geometry.swift",
        "Core/Material.swift",
        "Core/Mesh.swift",
        "Core/Object.swift",
        "Core/Renderer.swift",
        "Core/Shader.swift",
        "Extensions/BVH+Extensions.swift",
        "Extensions/Bounds+Extensions.swift",
        "Extensions/Bundle+Extensions.swift",
        "Extensions/CGPoint+Extensions.swift",
        "Extensions/CGSize+Extensions.swift",
        "Extensions/CodingUserInfoKey+Extensions.swift",
        "Extensions/Float+Extensions.swift",
        "Extensions/MTLClearColor+Extensions.swift",
        "Extensions/MTLSamplerDescriptor+Extensions.swift",
        "Extensions/MTLTexture+Extensions.swift",
        "Extensions/MTLVertexFormat+Extension.swift",
        "Extensions/MTLVertexStepFunction+Extensions.swift",
        "Extensions/MTLViewport+Extensions.swift",
        "Extensions/Metal+Extensions.swift",
        "Extensions/NSAppearanceCustomization+Extensions.swift",
        "Extensions/Ray+Extensions.swift",
        "Extensions/Rectangle+Extensions.swift",
        "Extensions/Simd+Extensions.swift",
        "Extensions/String+Extensions.swift",
        "Extensions/UIWindow+Extensions.swift",
        "Extensions/Vertex+Extensions.swift",
        "Generators/BrdfGenerator.swift",
        "Generators/CubemapGenerator.swift",
        "Generators/DiffuseIBLGenerator.swift",
        "Generators/RandomNoiseGenerator.swift",
        "Generators/SpecularIBLGenerator.swift",
        "Geometry/ArcGeometry.swift",
        "Geometry/BoxGeometry.swift",
        "Geometry/CapsuleGeometry.swift",
        "Geometry/CircleGeometry.swift",
        "Geometry/ConeGeometry.swift",
        "Geometry/CylinderGeometry.swift",
        "Geometry/ExtrudedRoundedRectGeometry.swift",
        "Geometry/ExtrudedTextGeometry.swift",
        "Geometry/IcoSphereGeometry.swift",
        "Geometry/LineGeometry.swift",
        "Geometry/OctaSphereGeometry.swift",
        "Geometry/ParametricGeometry.swift",
        "Geometry/PlaneGeometry.swift",
        "Geometry/PointGeometry.swift",
        "Geometry/QuadGeometry.swift",
        "Geometry/RoundedBoxGeometry.swift",
        "Geometry/RoundedRectGeometry.swift",
        "Geometry/SatinGeometry.swift",
        "Geometry/SkyboxGeometry.swift",
        "Geometry/SphereGeometry.swift",
        "Geometry/SquircleGeometry.swift",
        "Geometry/TesselatedTextGeometry.swift",
        "Geometry/TessellationGeometry.swift",
        "Geometry/TextGeometry.swift",
        "Geometry/TorusGeometry.swift",
        "Geometry/TriangleGeometry.swift",
        "Geometry/TubeGeometry.swift",
        "Geometry/UVDiskGeometry.swift",
        "Geometry/Utilities/AnyBufferAttribute.swift",
        "Geometry/Utilities/Attribute.swift",
        "Geometry/Utilities/BufferAttribute.swift",
        "Geometry/Utilities/ElementBuffer.swift",
        "Geometry/Utilities/InterleavedBuffer.swift",
        "Geometry/Utilities/InterleavedBufferAttribute.swift",
        "Geometry/Utilities/VertexAttribute.swift",
        "Lights/DirectionalLight.swift",
        "Lights/PointLight.swift",
        "Lights/SpotLight.swift",
        "Materials/ARBackgroundDepthMaterial.swift",
        "Materials/ARBackgroundMaterial.swift",
        "Materials/ARCompositorMaterial.swift",
        "Materials/ARMatteMaterial.swift",
        "Materials/ARPostMaterial.swift",
        "Materials/BasicColorMaterial.swift",
        "Materials/BasicDiffuseMaterial.swift",
        "Materials/BasicPointMaterial.swift",
        "Materials/BasicTextureMaterial.swift",
        "Materials/DepthMaterial.swift",
        "Materials/MatCapMaterial.swift",
        "Materials/NormalColorMaterial.swift",
        "Materials/PhysicalMaterial.swift",
        "Materials/ShadowMaterial.swift",
        "Materials/SkyboxMaterial.swift",
        "Materials/SourceMaterial.swift",
        "Materials/StandardMaterial.swift",
        "Materials/TextMaterial.swift",
        "Materials/UVColorMaterial.swift",
        "Objects/IBLScene.swift",
        "Objects/InstancedMesh.swift",
        "Objects/Submesh.swift",
        "Objects/TessellationMesh.swift",
        "Parameters/AnyParameter.swift",
        "Parameters/BoolParameter.swift",
        "Parameters/DoubleParameter.swift",
        "Parameters/Float2Parameter.swift",
        "Parameters/Float2x2Parameter.swift",
        "Parameters/Float3Parameter.swift",
        "Parameters/Float3x3Parameter.swift",
        "Parameters/Float4Parameter.swift",
        "Parameters/Float4x4Parameter.swift",
        "Parameters/FloatParameter.swift",
        "Parameters/GenericParameter.swift",
        "Parameters/Int2Parameter.swift",
        "Parameters/Int3Parameter.swift",
        "Parameters/Int4Parameter.swift",
        "Parameters/IntParameter.swift",
        "Parameters/PackedFloat3Parameter.swift",
        "Parameters/Parameter.swift",
        "Parameters/ParameterGroup.swift",
        "Parameters/StringParameter.swift",
        "Parameters/UInt32Parameter.swift",
        "Protocols/IBLEnvironment.swift",
        "Protocols/Light.swift",
        "Protocols/Renderable.swift",
        "Protocols/Shadow.swift",
        "Raycast/Raycast.swift",
        "Raycast/RaycastOptions.swift",
        "Raycast/RaycastResult.swift",
        "Renderer/RenderEncoderState.swift",
        "Renderer/RenderList.swift",
        "Satin.swift",
        "Shaders/PBRShader.swift",
        "Shaders/PhysicalShader.swift",
        "Shaders/SkyboxShader.swift",
        "Shaders/SourceShader.swift",
        "Shaders/StandardShader.swift",
        "Shaders/Utilities/RenderingConfiguration.swift",
        "Shaders/Utilities/ShaderBlending.swift",
        "Shaders/Utilities/ShaderConfiguration.swift",
        "Shaders/Utilities/ShaderDefine.swift",
        "Shaders/Utilities/ShaderLibraryCache.swift",
        "Shaders/Utilities/ShaderLibraryConfiguration.swift",
        "Shaders/Utilities/ShaderLibrarySourceCache.swift",
        "Shaders/Utilities/ShaderPipelineCache.swift",
        "Shaders/Utilities/ShaderSourceCache.swift",
        "Shaders/Utilities/ShaderSourceInjections.swift",
        "Shaders/Utilities/ShaderSourceParsers.swift",
        "Shadows/DirectionalLightShadow.swift",
        "Text/FontAtlas.swift",
        "Text/TextMesh.swift",
        "Types/InstanceMatrixUniforms.swift",
        "Types/LightData.swift",
        "Types/ShadowData.swift",
        "Utilities/FileWatcher.swift",
        "Utilities/Helpers.swift",
        "Utilities/Loader.swift",
        "Utilities/Locks.swift",
        "Utilities/MetalFileCompiler.swift",
        "Utilities/MetalSourceCompiler.swift",
        "Utilities/Paths.swift",
        "Utilities/PostProcessor.swift",
        "Utilities/Textures.swift",
        "Utilities/ValueCache.swift",
        "Utilities/VertexDescriptors.swift",
        "Views/MetalLayerRenderer.swift",
        "Views/MetalView.swift",
        "Views/MetalViewController.swift",
        "Views/MetalViewRenderer.swift",
        "Views/MetalViewRendererDelegate.swift",
        "Views/SatinImmersiveSpace.swift",
        "Views/SatinMetalView.swift"
      ],
      "target_dependencies" : [
        "SatinCore"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.0"
}
Done.