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

Failed to build Creamy3D, reference main (a6be09), with Swift 6.1 for macOS (SPM) on 28 Apr 2025 15:05:49 UTC.

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/alex566/Creamy3D.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/alex566/Creamy3D
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at a6be096 Update swift.yml
Cloned https://github.com/alex566/Creamy3D.git
Revision (git rev-parse @):
a6be096cb332fd6cae8a38e028e6541b2689604c
SUCCESS checkout https://github.com/alex566/Creamy3D.git at main
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "creamy3d",
      "name": "Creamy3D",
      "url": "https://github.com/alex566/Creamy3D.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Creamy3D",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/alex566/Creamy3D.git
[5/476] Fetching creamy3d
Fetched https://github.com/alex566/Creamy3D.git from cache (0.78s)
Creating working copy for https://github.com/alex566/Creamy3D.git
Working copy of https://github.com/alex566/Creamy3D.git resolved at main (a6be096)
warning: '.resolve-product-dependencies': dependency 'creamy3d' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/alex566/Creamy3D.git
https://github.com/alex566/Creamy3D.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Creamy3D",
  "name" : "Creamy3D",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "16.0"
    },
    {
      "name" : "macos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "Creamy3D",
      "targets" : [
        "Creamy3D"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "Creamy3DTests",
      "module_type" : "SwiftTarget",
      "name" : "Creamy3DTests",
      "path" : "Tests/Creamy3DTests",
      "sources" : [
        "Creamy3DTests.swift"
      ],
      "target_dependencies" : [
        "Creamy3D"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Creamy3D",
      "module_type" : "SwiftTarget",
      "name" : "Creamy3D",
      "path" : "Sources/Creamy3D",
      "product_memberships" : [
        "Creamy3D"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Shaders/color_material.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Shaders/common.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Shaders/fresnel_material.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Shaders/matcap_material.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Shaders/material_common.h",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Shaders/texture_material.metal",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "ColorRGB.swift",
        "CreamyView.swift",
        "Logger.swift",
        "Materials/ColorMaterial.swift",
        "Materials/FresnelMaterial.swift",
        "Materials/MatcapMaterial.swift",
        "Materials/Material+Blend.swift",
        "Materials/Material.swift",
        "Materials/TextureMaterial.swift",
        "MetalView.swift",
        "Objects/EmptyObject.swift",
        "Objects/Mesh.swift",
        "Objects/Object.swift",
        "Renderer.swift",
        "Scene/Camera.swift",
        "Scene/MaterialFunctions/ColorMaterialFunction.swift",
        "Scene/MaterialFunctions/FresnelMaterialFunction.swift",
        "Scene/MaterialFunctions/MatcapMaterialFunction.swift",
        "Scene/MaterialFunctions/MaterialFunction.swift",
        "Scene/MaterialFunctions/TextureMaterialFunction.swift",
        "Scene/MaterialState.swift",
        "Scene/MeshLoader/CubeMeshLoader.swift",
        "Scene/MeshLoader/MeshLoader.swift",
        "Scene/MeshLoader/ModelMeshLoader.swift",
        "Scene/MeshLoader/SphereMeshLoader.swift",
        "Scene/MeshNode.swift",
        "Scene/Projection.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.0"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats
Building for debugging...
[0/8] Write sources
[1/8] Copying texture_material.metal
[1/8] Copying fresnel_material.metal
[1/8] Copying color_material.metal
[1/8] Copying matcap_material.metal
[1/8] Copying common.metal
[6/8] Copying material_common.h
[7/8] Write swift-version-2F0A5646E1D333AE.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[9/35] Emitting module Creamy3D
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:8: error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |        `- error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
12 |     let projection: Projection
13 |     let camera: Camera
   :
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: initializer for property '_renderer' is main actor-isolated
18 |
19 |     func makeUIView(context: Context) -> MTKView {
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:19:30: error: cannot find type 'Context' in scope
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |                              `- error: cannot find type 'Context' in scope
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:27:51: error: cannot find type 'Context' in scope
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |                                                   `- error: cannot find type 'Context' in scope
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:19: error: cannot find type 'UIViewRepresentable' in scope
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |                   `- error: cannot find type 'UIViewRepresentable' in scope
12 |     let projection: Projection
13 |     let camera: Camera
[10/37] Compiling Creamy3D ColorMaterial.swift
[11/37] Compiling Creamy3D FresnelMaterial.swift
[12/37] Compiling Creamy3D MatcapMaterial.swift
[13/37] Compiling Creamy3D Projection.swift
[14/37] Compiling Creamy3D resource_bundle_accessor.swift
[15/37] Compiling Creamy3D Material+Blend.swift
[16/37] Compiling Creamy3D Material.swift
[17/37] Compiling Creamy3D TextureMaterial.swift
[18/37] Compiling Creamy3D ColorMaterialFunction.swift
[19/37] Compiling Creamy3D FresnelMaterialFunction.swift
[20/37] Compiling Creamy3D MatcapMaterialFunction.swift
[21/37] Compiling Creamy3D CubeMeshLoader.swift
[22/37] Compiling Creamy3D MeshLoader.swift
[23/37] Compiling Creamy3D ModelMeshLoader.swift
[24/37] Compiling Creamy3D ColorRGB.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:8: error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |        `- error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
12 |     let projection: Projection
13 |     let camera: Camera
   :
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: initializer for property '_renderer' is main actor-isolated
18 |
19 |     func makeUIView(context: Context) -> MTKView {
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/CreamyView.swift:38:13: error: 'buildExpression' is unavailable: this expression does not conform to 'View'
36 |     public var body: some View {
37 |         GeometryReader { proxy in
38 |             MetalView(
   |             `- error: 'buildExpression' is unavailable: this expression does not conform to 'View'
39 |                 projection: .init(width: proxy.size.width,
40 |                                   height: proxy.size.height,
SwiftUICore.ViewBuilder.buildExpression:3:22: note: 'buildExpression' has been explicitly marked unavailable here
1 | struct ViewBuilder {
2 | @available(*, unavailable, message: "this expression does not conform to 'View'")
3 |   public static func buildExpression(_ invalid: Any) -> some View
  |                      `- note: 'buildExpression' has been explicitly marked unavailable here
4 |   }
5 |
[25/37] Compiling Creamy3D CreamyView.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:8: error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |        `- error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
12 |     let projection: Projection
13 |     let camera: Camera
   :
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: initializer for property '_renderer' is main actor-isolated
18 |
19 |     func makeUIView(context: Context) -> MTKView {
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/CreamyView.swift:38:13: error: 'buildExpression' is unavailable: this expression does not conform to 'View'
36 |     public var body: some View {
37 |         GeometryReader { proxy in
38 |             MetalView(
   |             `- error: 'buildExpression' is unavailable: this expression does not conform to 'View'
39 |                 projection: .init(width: proxy.size.width,
40 |                                   height: proxy.size.height,
SwiftUICore.ViewBuilder.buildExpression:3:22: note: 'buildExpression' has been explicitly marked unavailable here
1 | struct ViewBuilder {
2 | @available(*, unavailable, message: "this expression does not conform to 'View'")
3 |   public static func buildExpression(_ invalid: Any) -> some View
  |                      `- note: 'buildExpression' has been explicitly marked unavailable here
4 |   }
5 |
[26/37] Compiling Creamy3D Logger.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:8: error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |        `- error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
12 |     let projection: Projection
13 |     let camera: Camera
   :
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: initializer for property '_renderer' is main actor-isolated
18 |
19 |     func makeUIView(context: Context) -> MTKView {
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/CreamyView.swift:38:13: error: 'buildExpression' is unavailable: this expression does not conform to 'View'
36 |     public var body: some View {
37 |         GeometryReader { proxy in
38 |             MetalView(
   |             `- error: 'buildExpression' is unavailable: this expression does not conform to 'View'
39 |                 projection: .init(width: proxy.size.width,
40 |                                   height: proxy.size.height,
SwiftUICore.ViewBuilder.buildExpression:3:22: note: 'buildExpression' has been explicitly marked unavailable here
1 | struct ViewBuilder {
2 | @available(*, unavailable, message: "this expression does not conform to 'View'")
3 |   public static func buildExpression(_ invalid: Any) -> some View
  |                      `- note: 'buildExpression' has been explicitly marked unavailable here
4 |   }
5 |
[27/37] Compiling Creamy3D MaterialFunction.swift
[28/37] Compiling Creamy3D TextureMaterialFunction.swift
[29/37] Compiling Creamy3D MaterialState.swift
[30/37] Compiling Creamy3D SphereMeshLoader.swift
[31/37] Compiling Creamy3D MeshNode.swift
[32/37] Compiling Creamy3D MetalView.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:8: error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |        `- error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
12 |     let projection: Projection
13 |     let camera: Camera
   :
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: initializer for property '_renderer' is main actor-isolated
18 |
19 |     func makeUIView(context: Context) -> MTKView {
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:19:30: error: cannot find type 'Context' in scope
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |                              `- error: cannot find type 'Context' in scope
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:27:51: error: cannot find type 'Context' in scope
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |                                                   `- error: cannot find type 'Context' in scope
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:19: error: cannot find type 'UIViewRepresentable' in scope
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |                   `- error: cannot find type 'UIViewRepresentable' in scope
12 |     let projection: Projection
13 |     let camera: Camera
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:20:20: error: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
   |                    `- error: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSResponder.h:23:1: note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
 21 | @interface NSResponder : NSObject <NSCoding>
 22 |
 23 | - (instancetype)init NS_DESIGNATED_INITIALIZER;
    | `- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
 24 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
 25 |
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:21:18: error: call to main actor-isolated instance method 'setup(view:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
   |                  `- error: call to main actor-isolated instance method 'setup(view:)' in a synchronous nonisolated context
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:72:10: note: calls to instance method 'setup(view:)' from outside of its actor context are implicitly asynchronous
 70 |     }
 71 |
 72 |     func setup(view: MTKView) {
    |          `- note: calls to instance method 'setup(view:)' from outside of its actor context are implicitly asynchronous
 73 |         view.delegate = self
 74 |         view.device = device
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:21:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:22:18: error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
   |                  `- error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
23 |         renderer.update(objects: objects, projection: projection, view: view)
24 |         return view
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:84:10: note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 82 |     }
 83 |
 84 |     func update(camera: Camera, projection: Projection) {
    |          `- note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 85 |         self.viewMatrix = camera.makeMatrix()
 86 |         self.projectionMatrix = projection.makeMatrix()
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:22:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
23 |         renderer.update(objects: objects, projection: projection, view: view)
24 |         return view
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:23:18: error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
   |                  `- error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
24 |         return view
25 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:89:10: note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 87 |     }
 88 |
 89 |     func update(objects: [any Object], projection: Projection, view: MTKView) {
    |          `- note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 90 |         let meshes = objects.compactMap { $0 as? Mesh }
 91 |         // Remove meshes that are not in the list anymore
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:23:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
24 |         return view
25 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:28:18: error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
   |                  `- error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
30 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:84:10: note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 82 |     }
 83 |
 84 |     func update(camera: Camera, projection: Projection) {
    |          `- note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 85 |         self.viewMatrix = camera.makeMatrix()
 86 |         self.projectionMatrix = projection.makeMatrix()
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:28:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   :
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
30 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:29:18: error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
   |                  `- error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
30 |     }
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:89:10: note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 87 |     }
 88 |
 89 |     func update(objects: [any Object], projection: Projection, view: MTKView) {
    |          `- note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 90 |         let meshes = objects.compactMap { $0 as? Mesh }
 91 |         // Remove meshes that are not in the list anymore
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:29:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   :
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
30 |     }
31 | }
[33/37] Compiling Creamy3D EmptyObject.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:8: error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |        `- error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
12 |     let projection: Projection
13 |     let camera: Camera
   :
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: initializer for property '_renderer' is main actor-isolated
18 |
19 |     func makeUIView(context: Context) -> MTKView {
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:19:30: error: cannot find type 'Context' in scope
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |                              `- error: cannot find type 'Context' in scope
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:27:51: error: cannot find type 'Context' in scope
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |                                                   `- error: cannot find type 'Context' in scope
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:19: error: cannot find type 'UIViewRepresentable' in scope
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |                   `- error: cannot find type 'UIViewRepresentable' in scope
12 |     let projection: Projection
13 |     let camera: Camera
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:20:20: error: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
   |                    `- error: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSResponder.h:23:1: note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
 21 | @interface NSResponder : NSObject <NSCoding>
 22 |
 23 | - (instancetype)init NS_DESIGNATED_INITIALIZER;
    | `- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
 24 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
 25 |
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:21:18: error: call to main actor-isolated instance method 'setup(view:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
   |                  `- error: call to main actor-isolated instance method 'setup(view:)' in a synchronous nonisolated context
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:72:10: note: calls to instance method 'setup(view:)' from outside of its actor context are implicitly asynchronous
 70 |     }
 71 |
 72 |     func setup(view: MTKView) {
    |          `- note: calls to instance method 'setup(view:)' from outside of its actor context are implicitly asynchronous
 73 |         view.delegate = self
 74 |         view.device = device
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:21:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:22:18: error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
   |                  `- error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
23 |         renderer.update(objects: objects, projection: projection, view: view)
24 |         return view
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:84:10: note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 82 |     }
 83 |
 84 |     func update(camera: Camera, projection: Projection) {
    |          `- note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 85 |         self.viewMatrix = camera.makeMatrix()
 86 |         self.projectionMatrix = projection.makeMatrix()
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:22:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
23 |         renderer.update(objects: objects, projection: projection, view: view)
24 |         return view
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:23:18: error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
   |                  `- error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
24 |         return view
25 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:89:10: note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 87 |     }
 88 |
 89 |     func update(objects: [any Object], projection: Projection, view: MTKView) {
    |          `- note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 90 |         let meshes = objects.compactMap { $0 as? Mesh }
 91 |         // Remove meshes that are not in the list anymore
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:23:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
24 |         return view
25 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:28:18: error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
   |                  `- error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
30 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:84:10: note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 82 |     }
 83 |
 84 |     func update(camera: Camera, projection: Projection) {
    |          `- note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 85 |         self.viewMatrix = camera.makeMatrix()
 86 |         self.projectionMatrix = projection.makeMatrix()
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:28:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   :
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
30 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:29:18: error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
   |                  `- error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
30 |     }
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:89:10: note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 87 |     }
 88 |
 89 |     func update(objects: [any Object], projection: Projection, view: MTKView) {
    |          `- note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 90 |         let meshes = objects.compactMap { $0 as? Mesh }
 91 |         // Remove meshes that are not in the list anymore
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:29:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   :
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
30 |     }
31 | }
[34/37] Compiling Creamy3D Mesh.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:8: error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |        `- error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
12 |     let projection: Projection
13 |     let camera: Camera
   :
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: initializer for property '_renderer' is main actor-isolated
18 |
19 |     func makeUIView(context: Context) -> MTKView {
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:19:30: error: cannot find type 'Context' in scope
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |                              `- error: cannot find type 'Context' in scope
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:27:51: error: cannot find type 'Context' in scope
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |                                                   `- error: cannot find type 'Context' in scope
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:19: error: cannot find type 'UIViewRepresentable' in scope
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |                   `- error: cannot find type 'UIViewRepresentable' in scope
12 |     let projection: Projection
13 |     let camera: Camera
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:20:20: error: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
   |                    `- error: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSResponder.h:23:1: note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
 21 | @interface NSResponder : NSObject <NSCoding>
 22 |
 23 | - (instancetype)init NS_DESIGNATED_INITIALIZER;
    | `- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
 24 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
 25 |
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:21:18: error: call to main actor-isolated instance method 'setup(view:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
   |                  `- error: call to main actor-isolated instance method 'setup(view:)' in a synchronous nonisolated context
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:72:10: note: calls to instance method 'setup(view:)' from outside of its actor context are implicitly asynchronous
 70 |     }
 71 |
 72 |     func setup(view: MTKView) {
    |          `- note: calls to instance method 'setup(view:)' from outside of its actor context are implicitly asynchronous
 73 |         view.delegate = self
 74 |         view.device = device
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:21:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:22:18: error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
   |                  `- error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
23 |         renderer.update(objects: objects, projection: projection, view: view)
24 |         return view
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:84:10: note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 82 |     }
 83 |
 84 |     func update(camera: Camera, projection: Projection) {
    |          `- note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 85 |         self.viewMatrix = camera.makeMatrix()
 86 |         self.projectionMatrix = projection.makeMatrix()
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:22:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
23 |         renderer.update(objects: objects, projection: projection, view: view)
24 |         return view
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:23:18: error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
   |                  `- error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
24 |         return view
25 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:89:10: note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 87 |     }
 88 |
 89 |     func update(objects: [any Object], projection: Projection, view: MTKView) {
    |          `- note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 90 |         let meshes = objects.compactMap { $0 as? Mesh }
 91 |         // Remove meshes that are not in the list anymore
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:23:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
24 |         return view
25 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:28:18: error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
   |                  `- error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
30 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:84:10: note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 82 |     }
 83 |
 84 |     func update(camera: Camera, projection: Projection) {
    |          `- note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 85 |         self.viewMatrix = camera.makeMatrix()
 86 |         self.projectionMatrix = projection.makeMatrix()
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:28:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   :
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
30 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:29:18: error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
   |                  `- error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
30 |     }
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:89:10: note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 87 |     }
 88 |
 89 |     func update(objects: [any Object], projection: Projection, view: MTKView) {
    |          `- note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 90 |         let meshes = objects.compactMap { $0 as? Mesh }
 91 |         // Remove meshes that are not in the list anymore
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:29:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   :
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
30 |     }
31 | }
[35/37] Compiling Creamy3D Object.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:80:14: error: value of type 'MTKView' has no member 'backgroundColor'
 78 |         view.clearColor = .init(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
 79 |         view.depthStencilPixelFormat = config.depthPixelFormat
 80 |         view.backgroundColor = .clear
    |              `- error: value of type 'MTKView' has no member 'backgroundColor'
 81 |         view.sampleCount = config.sampleCount
 82 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:80:33: error: cannot infer contextual base in reference to member 'clear'
 78 |         view.clearColor = .init(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
 79 |         view.depthStencilPixelFormat = config.depthPixelFormat
 80 |         view.backgroundColor = .clear
    |                                 `- error: cannot infer contextual base in reference to member 'clear'
 81 |         view.sampleCount = config.sampleCount
 82 |     }
[36/37] Compiling Creamy3D Renderer.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:80:14: error: value of type 'MTKView' has no member 'backgroundColor'
 78 |         view.clearColor = .init(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
 79 |         view.depthStencilPixelFormat = config.depthPixelFormat
 80 |         view.backgroundColor = .clear
    |              `- error: value of type 'MTKView' has no member 'backgroundColor'
 81 |         view.sampleCount = config.sampleCount
 82 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:80:33: error: cannot infer contextual base in reference to member 'clear'
 78 |         view.clearColor = .init(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
 79 |         view.depthStencilPixelFormat = config.depthPixelFormat
 80 |         view.backgroundColor = .clear
    |                                 `- error: cannot infer contextual base in reference to member 'clear'
 81 |         view.sampleCount = config.sampleCount
 82 |     }
[37/37] Compiling Creamy3D Camera.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:80:14: error: value of type 'MTKView' has no member 'backgroundColor'
 78 |         view.clearColor = .init(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
 79 |         view.depthStencilPixelFormat = config.depthPixelFormat
 80 |         view.backgroundColor = .clear
    |              `- error: value of type 'MTKView' has no member 'backgroundColor'
 81 |         view.sampleCount = config.sampleCount
 82 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:80:33: error: cannot infer contextual base in reference to member 'clear'
 78 |         view.clearColor = .init(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
 79 |         view.depthStencilPixelFormat = config.depthPixelFormat
 80 |         view.backgroundColor = .clear
    |                                 `- error: cannot infer contextual base in reference to member 'clear'
 81 |         view.sampleCount = config.sampleCount
 82 |     }
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[2/28] Emitting module Creamy3D
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:8: error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |        `- error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
12 |     let projection: Projection
13 |     let camera: Camera
   :
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: initializer for property '_renderer' is main actor-isolated
18 |
19 |     func makeUIView(context: Context) -> MTKView {
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:19:30: error: cannot find type 'Context' in scope
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |                              `- error: cannot find type 'Context' in scope
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:27:51: error: cannot find type 'Context' in scope
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |                                                   `- error: cannot find type 'Context' in scope
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:19: error: cannot find type 'UIViewRepresentable' in scope
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |                   `- error: cannot find type 'UIViewRepresentable' in scope
12 |     let projection: Projection
13 |     let camera: Camera
[3/30] Compiling Creamy3D Object.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:80:14: error: value of type 'MTKView' has no member 'backgroundColor'
 78 |         view.clearColor = .init(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
 79 |         view.depthStencilPixelFormat = config.depthPixelFormat
 80 |         view.backgroundColor = .clear
    |              `- error: value of type 'MTKView' has no member 'backgroundColor'
 81 |         view.sampleCount = config.sampleCount
 82 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:80:33: error: cannot infer contextual base in reference to member 'clear'
 78 |         view.clearColor = .init(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
 79 |         view.depthStencilPixelFormat = config.depthPixelFormat
 80 |         view.backgroundColor = .clear
    |                                 `- error: cannot infer contextual base in reference to member 'clear'
 81 |         view.sampleCount = config.sampleCount
 82 |     }
[4/30] Compiling Creamy3D Renderer.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:80:14: error: value of type 'MTKView' has no member 'backgroundColor'
 78 |         view.clearColor = .init(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
 79 |         view.depthStencilPixelFormat = config.depthPixelFormat
 80 |         view.backgroundColor = .clear
    |              `- error: value of type 'MTKView' has no member 'backgroundColor'
 81 |         view.sampleCount = config.sampleCount
 82 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:80:33: error: cannot infer contextual base in reference to member 'clear'
 78 |         view.clearColor = .init(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
 79 |         view.depthStencilPixelFormat = config.depthPixelFormat
 80 |         view.backgroundColor = .clear
    |                                 `- error: cannot infer contextual base in reference to member 'clear'
 81 |         view.sampleCount = config.sampleCount
 82 |     }
[5/30] Compiling Creamy3D Camera.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:80:14: error: value of type 'MTKView' has no member 'backgroundColor'
 78 |         view.clearColor = .init(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
 79 |         view.depthStencilPixelFormat = config.depthPixelFormat
 80 |         view.backgroundColor = .clear
    |              `- error: value of type 'MTKView' has no member 'backgroundColor'
 81 |         view.sampleCount = config.sampleCount
 82 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:80:33: error: cannot infer contextual base in reference to member 'clear'
 78 |         view.clearColor = .init(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
 79 |         view.depthStencilPixelFormat = config.depthPixelFormat
 80 |         view.backgroundColor = .clear
    |                                 `- error: cannot infer contextual base in reference to member 'clear'
 81 |         view.sampleCount = config.sampleCount
 82 |     }
[6/30] Compiling Creamy3D Material+Blend.swift
[7/30] Compiling Creamy3D Material.swift
[8/30] Compiling Creamy3D TextureMaterial.swift
[9/30] Compiling Creamy3D CubeMeshLoader.swift
[10/30] Compiling Creamy3D MeshLoader.swift
[11/30] Compiling Creamy3D ModelMeshLoader.swift
[12/30] Compiling Creamy3D SphereMeshLoader.swift
[13/30] Compiling Creamy3D MeshNode.swift
[14/30] Compiling Creamy3D Projection.swift
[15/30] Compiling Creamy3D resource_bundle_accessor.swift
[16/30] Compiling Creamy3D ColorMaterial.swift
[17/30] Compiling Creamy3D FresnelMaterial.swift
[18/30] Compiling Creamy3D MatcapMaterial.swift
[19/30] Compiling Creamy3D MaterialFunction.swift
[20/30] Compiling Creamy3D TextureMaterialFunction.swift
[21/30] Compiling Creamy3D MaterialState.swift
[22/30] Compiling Creamy3D ColorMaterialFunction.swift
[23/30] Compiling Creamy3D FresnelMaterialFunction.swift
[24/30] Compiling Creamy3D MatcapMaterialFunction.swift
[25/30] Compiling Creamy3D MetalView.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:8: error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |        `- error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
12 |     let projection: Projection
13 |     let camera: Camera
   :
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: initializer for property '_renderer' is main actor-isolated
18 |
19 |     func makeUIView(context: Context) -> MTKView {
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:19:30: error: cannot find type 'Context' in scope
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |                              `- error: cannot find type 'Context' in scope
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:27:51: error: cannot find type 'Context' in scope
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |                                                   `- error: cannot find type 'Context' in scope
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:19: error: cannot find type 'UIViewRepresentable' in scope
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |                   `- error: cannot find type 'UIViewRepresentable' in scope
12 |     let projection: Projection
13 |     let camera: Camera
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:20:20: error: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
   |                    `- error: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSResponder.h:23:1: note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
 21 | @interface NSResponder : NSObject <NSCoding>
 22 |
 23 | - (instancetype)init NS_DESIGNATED_INITIALIZER;
    | `- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
 24 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
 25 |
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:21:18: error: call to main actor-isolated instance method 'setup(view:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
   |                  `- error: call to main actor-isolated instance method 'setup(view:)' in a synchronous nonisolated context
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:72:10: note: calls to instance method 'setup(view:)' from outside of its actor context are implicitly asynchronous
 70 |     }
 71 |
 72 |     func setup(view: MTKView) {
    |          `- note: calls to instance method 'setup(view:)' from outside of its actor context are implicitly asynchronous
 73 |         view.delegate = self
 74 |         view.device = device
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:21:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:22:18: error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
   |                  `- error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
23 |         renderer.update(objects: objects, projection: projection, view: view)
24 |         return view
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:84:10: note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 82 |     }
 83 |
 84 |     func update(camera: Camera, projection: Projection) {
    |          `- note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 85 |         self.viewMatrix = camera.makeMatrix()
 86 |         self.projectionMatrix = projection.makeMatrix()
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:22:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
23 |         renderer.update(objects: objects, projection: projection, view: view)
24 |         return view
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:23:18: error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
   |                  `- error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
24 |         return view
25 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:89:10: note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 87 |     }
 88 |
 89 |     func update(objects: [any Object], projection: Projection, view: MTKView) {
    |          `- note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 90 |         let meshes = objects.compactMap { $0 as? Mesh }
 91 |         // Remove meshes that are not in the list anymore
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:23:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
24 |         return view
25 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:28:18: error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
   |                  `- error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
30 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:84:10: note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 82 |     }
 83 |
 84 |     func update(camera: Camera, projection: Projection) {
    |          `- note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 85 |         self.viewMatrix = camera.makeMatrix()
 86 |         self.projectionMatrix = projection.makeMatrix()
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:28:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   :
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
30 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:29:18: error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
   |                  `- error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
30 |     }
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:89:10: note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 87 |     }
 88 |
 89 |     func update(objects: [any Object], projection: Projection, view: MTKView) {
    |          `- note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 90 |         let meshes = objects.compactMap { $0 as? Mesh }
 91 |         // Remove meshes that are not in the list anymore
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:29:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   :
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
30 |     }
31 | }
[26/30] Compiling Creamy3D EmptyObject.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:8: error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |        `- error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
12 |     let projection: Projection
13 |     let camera: Camera
   :
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: initializer for property '_renderer' is main actor-isolated
18 |
19 |     func makeUIView(context: Context) -> MTKView {
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:19:30: error: cannot find type 'Context' in scope
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |                              `- error: cannot find type 'Context' in scope
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:27:51: error: cannot find type 'Context' in scope
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |                                                   `- error: cannot find type 'Context' in scope
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:19: error: cannot find type 'UIViewRepresentable' in scope
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |                   `- error: cannot find type 'UIViewRepresentable' in scope
12 |     let projection: Projection
13 |     let camera: Camera
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:20:20: error: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
   |                    `- error: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSResponder.h:23:1: note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
 21 | @interface NSResponder : NSObject <NSCoding>
 22 |
 23 | - (instancetype)init NS_DESIGNATED_INITIALIZER;
    | `- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
 24 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
 25 |
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:21:18: error: call to main actor-isolated instance method 'setup(view:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
   |                  `- error: call to main actor-isolated instance method 'setup(view:)' in a synchronous nonisolated context
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:72:10: note: calls to instance method 'setup(view:)' from outside of its actor context are implicitly asynchronous
 70 |     }
 71 |
 72 |     func setup(view: MTKView) {
    |          `- note: calls to instance method 'setup(view:)' from outside of its actor context are implicitly asynchronous
 73 |         view.delegate = self
 74 |         view.device = device
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:21:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:22:18: error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
   |                  `- error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
23 |         renderer.update(objects: objects, projection: projection, view: view)
24 |         return view
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:84:10: note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 82 |     }
 83 |
 84 |     func update(camera: Camera, projection: Projection) {
    |          `- note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 85 |         self.viewMatrix = camera.makeMatrix()
 86 |         self.projectionMatrix = projection.makeMatrix()
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:22:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
23 |         renderer.update(objects: objects, projection: projection, view: view)
24 |         return view
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:23:18: error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
   |                  `- error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
24 |         return view
25 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:89:10: note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 87 |     }
 88 |
 89 |     func update(objects: [any Object], projection: Projection, view: MTKView) {
    |          `- note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 90 |         let meshes = objects.compactMap { $0 as? Mesh }
 91 |         // Remove meshes that are not in the list anymore
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:23:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
24 |         return view
25 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:28:18: error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
   |                  `- error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
30 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:84:10: note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 82 |     }
 83 |
 84 |     func update(camera: Camera, projection: Projection) {
    |          `- note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 85 |         self.viewMatrix = camera.makeMatrix()
 86 |         self.projectionMatrix = projection.makeMatrix()
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:28:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   :
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
30 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:29:18: error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
   |                  `- error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
30 |     }
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:89:10: note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 87 |     }
 88 |
 89 |     func update(objects: [any Object], projection: Projection, view: MTKView) {
    |          `- note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 90 |         let meshes = objects.compactMap { $0 as? Mesh }
 91 |         // Remove meshes that are not in the list anymore
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:29:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   :
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
30 |     }
31 | }
[27/30] Compiling Creamy3D Mesh.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:8: error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |        `- error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
12 |     let projection: Projection
13 |     let camera: Camera
   :
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: initializer for property '_renderer' is main actor-isolated
18 |
19 |     func makeUIView(context: Context) -> MTKView {
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:19:30: error: cannot find type 'Context' in scope
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |                              `- error: cannot find type 'Context' in scope
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:27:51: error: cannot find type 'Context' in scope
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |                                                   `- error: cannot find type 'Context' in scope
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:19: error: cannot find type 'UIViewRepresentable' in scope
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |                   `- error: cannot find type 'UIViewRepresentable' in scope
12 |     let projection: Projection
13 |     let camera: Camera
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:20:20: error: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
   |                    `- error: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSResponder.h:23:1: note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
 21 | @interface NSResponder : NSObject <NSCoding>
 22 |
 23 | - (instancetype)init NS_DESIGNATED_INITIALIZER;
    | `- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
 24 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
 25 |
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:21:18: error: call to main actor-isolated instance method 'setup(view:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
   |                  `- error: call to main actor-isolated instance method 'setup(view:)' in a synchronous nonisolated context
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:72:10: note: calls to instance method 'setup(view:)' from outside of its actor context are implicitly asynchronous
 70 |     }
 71 |
 72 |     func setup(view: MTKView) {
    |          `- note: calls to instance method 'setup(view:)' from outside of its actor context are implicitly asynchronous
 73 |         view.delegate = self
 74 |         view.device = device
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:21:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:22:18: error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
   |                  `- error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
23 |         renderer.update(objects: objects, projection: projection, view: view)
24 |         return view
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:84:10: note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 82 |     }
 83 |
 84 |     func update(camera: Camera, projection: Projection) {
    |          `- note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 85 |         self.viewMatrix = camera.makeMatrix()
 86 |         self.projectionMatrix = projection.makeMatrix()
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:22:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
23 |         renderer.update(objects: objects, projection: projection, view: view)
24 |         return view
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:23:18: error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
17 |     var renderer = Renderer()
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
   |                  `- error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
24 |         return view
25 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:89:10: note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 87 |     }
 88 |
 89 |     func update(objects: [any Object], projection: Projection, view: MTKView) {
    |          `- note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 90 |         let meshes = objects.compactMap { $0 as? Mesh }
 91 |         // Remove meshes that are not in the list anymore
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:23:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   |          `- note: add '@MainActor' to make instance method 'makeUIView(context:)' part of global actor 'MainActor'
20 |         let view = MTKView()
21 |         renderer.setup(view: view)
22 |         renderer.update(camera: camera, projection: projection)
23 |         renderer.update(objects: objects, projection: projection, view: view)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
24 |         return view
25 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:28:18: error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
   |                  `- error: call to main actor-isolated instance method 'update(camera:projection:)' in a synchronous nonisolated context
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
30 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:84:10: note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 82 |     }
 83 |
 84 |     func update(camera: Camera, projection: Projection) {
    |          `- note: calls to instance method 'update(camera:projection:)' from outside of its actor context are implicitly asynchronous
 85 |         self.viewMatrix = camera.makeMatrix()
 86 |         self.projectionMatrix = projection.makeMatrix()
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:28:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   :
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
30 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:29:18: error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
   |                  `- error: call to main actor-isolated instance method 'update(objects:projection:view:)' in a synchronous nonisolated context
30 |     }
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/Renderer.swift:89:10: note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 87 |     }
 88 |
 89 |     func update(objects: [any Object], projection: Projection, view: MTKView) {
    |          `- note: calls to instance method 'update(objects:projection:view:)' from outside of its actor context are implicitly asynchronous
 90 |         let meshes = objects.compactMap { $0 as? Mesh }
 91 |         // Remove meshes that are not in the list anymore
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:29:9: error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: property declared here
18 |
19 |     func makeUIView(context: Context) -> MTKView {
   :
25 |     }
26 |
27 |     func updateUIView(_ uiView: MTKView, context: Context) {
   |          `- note: add '@MainActor' to make instance method 'updateUIView(_:context:)' part of global actor 'MainActor'
28 |         renderer.update(camera: camera, projection: projection)
29 |         renderer.update(objects: objects, projection: projection, view: uiView)
   |         `- error: main actor-isolated property 'renderer' can not be referenced from a nonisolated context
30 |     }
31 | }
[28/30] Compiling Creamy3D ColorRGB.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:8: error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |        `- error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
12 |     let projection: Projection
13 |     let camera: Camera
   :
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: initializer for property '_renderer' is main actor-isolated
18 |
19 |     func makeUIView(context: Context) -> MTKView {
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/CreamyView.swift:38:13: error: 'buildExpression' is unavailable: this expression does not conform to 'View'
36 |     public var body: some View {
37 |         GeometryReader { proxy in
38 |             MetalView(
   |             `- error: 'buildExpression' is unavailable: this expression does not conform to 'View'
39 |                 projection: .init(width: proxy.size.width,
40 |                                   height: proxy.size.height,
SwiftUICore.ViewBuilder.buildExpression:3:22: note: 'buildExpression' has been explicitly marked unavailable here
1 | struct ViewBuilder {
2 | @available(*, unavailable, message: "this expression does not conform to 'View'")
3 |   public static func buildExpression(_ invalid: Any) -> some View
  |                      `- note: 'buildExpression' has been explicitly marked unavailable here
4 |   }
5 |
[29/30] Compiling Creamy3D CreamyView.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:8: error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |        `- error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
12 |     let projection: Projection
13 |     let camera: Camera
   :
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: initializer for property '_renderer' is main actor-isolated
18 |
19 |     func makeUIView(context: Context) -> MTKView {
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/CreamyView.swift:38:13: error: 'buildExpression' is unavailable: this expression does not conform to 'View'
36 |     public var body: some View {
37 |         GeometryReader { proxy in
38 |             MetalView(
   |             `- error: 'buildExpression' is unavailable: this expression does not conform to 'View'
39 |                 projection: .init(width: proxy.size.width,
40 |                                   height: proxy.size.height,
SwiftUICore.ViewBuilder.buildExpression:3:22: note: 'buildExpression' has been explicitly marked unavailable here
1 | struct ViewBuilder {
2 | @available(*, unavailable, message: "this expression does not conform to 'View'")
3 |   public static func buildExpression(_ invalid: Any) -> some View
  |                      `- note: 'buildExpression' has been explicitly marked unavailable here
4 |   }
5 |
[30/30] Compiling Creamy3D Logger.swift
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/MetalView.swift:11:8: error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
 9 | import SwiftUI
10 |
11 | struct MetalView: UIViewRepresentable {
   |        `- error: memberwise initializer for 'MetalView' cannot be both nonisolated and main actor-isolated
12 |     let projection: Projection
13 |     let camera: Camera
   :
15 |
16 |     @StateObject
17 |     var renderer = Renderer()
   |         `- note: initializer for property '_renderer' is main actor-isolated
18 |
19 |     func makeUIView(context: Context) -> MTKView {
/Users/admin/builder/spi-builder-workspace/Sources/Creamy3D/CreamyView.swift:38:13: error: 'buildExpression' is unavailable: this expression does not conform to 'View'
36 |     public var body: some View {
37 |         GeometryReader { proxy in
38 |             MetalView(
   |             `- error: 'buildExpression' is unavailable: this expression does not conform to 'View'
39 |                 projection: .init(width: proxy.size.width,
40 |                                   height: proxy.size.height,
SwiftUICore.ViewBuilder.buildExpression:3:22: note: 'buildExpression' has been explicitly marked unavailable here
1 | struct ViewBuilder {
2 | @available(*, unavailable, message: "this expression does not conform to 'View'")
3 |   public static func buildExpression(_ invalid: Any) -> some View
  |                      `- note: 'buildExpression' has been explicitly marked unavailable here
4 |   }
5 |
BUILD FAILURE 6.1 macosSpm