The Swift Package Index logo.Swift Package Index

Build Information

Successful build of SwiftGLTF, reference main (418349), with Swift 6.1 for macOS (SPM) on 4 Apr 2026 11:48:44 UTC.

Swift 6 data race errors: 1

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.69.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/schwa/SwiftGLTF.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/schwa/SwiftGLTF
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 418349a Import GitHub issues to local issues and close resolved ones
Cloned https://github.com/schwa/SwiftGLTF.git
Revision (git rev-parse @):
418349a014299d672caf69845b61a9097adf80d0
SUCCESS checkout https://github.com/schwa/SwiftGLTF.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/schwa/SwiftGLTF.git
https://github.com/schwa/SwiftGLTF.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "SwiftGLTF",
  "name" : "SwiftGLTF",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "17.0"
    },
    {
      "name" : "macos",
      "version" : "14.0"
    },
    {
      "name" : "maccatalyst",
      "version" : "17.0"
    }
  ],
  "products" : [
    {
      "name" : "SwiftGLTF",
      "targets" : [
        "SwiftGLTF"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SwiftGLTFTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftGLTFTests",
      "path" : "Tests/SwiftGLTFTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftGLTFTests/Box-byteStride.glb",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftGLTFTests/Box.gltf",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "GLTFTests.swift"
      ],
      "target_dependencies" : [
        "SwiftGLTF"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftGLTF",
      "module_type" : "SwiftTarget",
      "name" : "SwiftGLTF",
      "path" : "Sources/SwiftGLTF",
      "product_memberships" : [
        "SwiftGLTF"
      ],
      "sources" : [
        "CollectionScanner.swift",
        "Scratch.swift",
        "glb.swift",
        "gltf+RealityKit.swift",
        "gltf+SceneKit.swift",
        "gltf.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
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 -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/9] Compiling SwiftGLTF gltf+SceneKit.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+SceneKit.swift:23:9: error: type 'Scene' does not conform to protocol 'Resolver'
 21 |     public func generateSCNScene() throws -> SCNScene {
 22 |         let scnScene = SCNScene()
 23 |         let scene = try document.scene.map { try $0.resolve(in: document) } ?? document.scenes.first!
    |         `- error: type 'Scene' does not conform to protocol 'Resolver'
 24 |         try scene.nodes
 25 |             .map { try $0.resolve(in: document) }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+SceneKit.swift:34:9: error: type 'Mesh' does not conform to protocol 'Resolver'
 32 |
 33 |     func generateSCNNode(from node: Node) throws -> SCNNode {
 34 |         let geometry = try node.mesh.map { try generateSCNGeometry(from: $0.resolve(in: document)) }
    |         `- error: type 'Mesh' does not conform to protocol 'Resolver'
 35 |         let scnNode = SCNNode(geometry: geometry)
 36 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+SceneKit.swift:33:10: error: type 'Node' does not conform to protocol 'Resolver'
 31 |     }
 32 |
 33 |     func generateSCNNode(from node: Node) throws -> SCNNode {
    |          `- error: type 'Node' does not conform to protocol 'Resolver'
 34 |         let geometry = try node.mesh.map { try generateSCNGeometry(from: $0.resolve(in: document)) }
 35 |         let scnNode = SCNNode(geometry: geometry)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+SceneKit.swift:78:13: error: type 'Buffer' does not conform to protocol 'Resolver'
 76 |         }
 77 |         else {
 78 |             let buffer = try bufferIndex.resolve(in: document)
    |             `- error: type 'Buffer' does not conform to protocol 'Resolver'
 79 |             guard let uri = buffer.uri else {
 80 |                 fatalError()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+SceneKit.swift:92:9: error: type 'BufferView' does not conform to protocol 'Resolver'
 90 |
 91 |     func generateSCNGeometrySource(semantic: SCNGeometrySource.Semantic, from accessor: Accessor) throws -> SCNGeometrySource {
 92 |         let bufferView = try accessor.bufferView!.resolve(in: document)
    |         `- error: type 'BufferView' does not conform to protocol 'Resolver'
 93 |         let bufferData = try data(for: bufferView.buffer)
 94 |             .subdata(in: bufferView.byteOffset ..< (bufferView.byteOffset + bufferView.byteLength))
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+SceneKit.swift:125:10: error: type 'Accessor' does not conform to protocol 'Resolver'
123 |     }
124 |
125 |     func generateSCNGeometry(from mesh: Mesh) throws -> SCNGeometry {
    |          `- error: type 'Accessor' does not conform to protocol 'Resolver'
126 |         let sourcesAndElements: [([SCNGeometrySource], SCNGeometryElement?, [SCNMaterial])] = try mesh.primitives.map { primitive in
127 |             let semantics: [(Mesh.Primitive.Semantic, SCNGeometrySource.Semantic?)] = [
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+SceneKit.swift:125:10: error: type 'Material' does not conform to protocol 'Resolver'
123 |     }
124 |
125 |     func generateSCNGeometry(from mesh: Mesh) throws -> SCNGeometry {
    |          `- error: type 'Material' does not conform to protocol 'Resolver'
126 |         let sourcesAndElements: [([SCNGeometrySource], SCNGeometryElement?, [SCNMaterial])] = try mesh.primitives.map { primitive in
127 |             let semantics: [(Mesh.Primitive.Semantic, SCNGeometrySource.Semantic?)] = [
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+SceneKit.swift:168:24: error: failed to produce diagnostic for expression; please submit a bug report (https://swift.org/contributing/#reporting-bugs)
166 |                 let bytesPerIndex: Int
167 |                 switch (indicesAccessor.type, indicesAccessor.componentType) {
168 |                 case (.SCALAR, .UNSIGNED_BYTE):
    |                        `- error: failed to produce diagnostic for expression; please submit a bug report (https://swift.org/contributing/#reporting-bugs)
169 |                     bytesPerIndex = MemoryLayout<UInt8>.size
170 |                 case (.SCALAR, .UNSIGNED_SHORT):
[4/9] Compiling SwiftGLTF gltf.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:218:15: error: type 'Accessor' does not conform to protocol 'Resolver'
216 | }
217 |
218 | public struct Accessor: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Accessor' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
219 |     public static let documentKeyPath = \Document.accessors
220 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:311:15: error: type 'Buffer' does not conform to protocol 'Resolver'
309 | }
310 |
311 | public struct Buffer: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Buffer' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
312 |     public static let documentKeyPath = \Document.buffers
313 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:333:16: warning: stored property 'target' of 'Sendable'-conforming struct 'BufferView' has non-sendable type 'BufferView.Target?'; this is an error in the Swift 6 language mode
326 |     public let byteLength: Int
327 |     public let byteStride: Int?
328 |     public enum Target: Int, Decodable {
    |                 `- note: consider making enum 'Target' conform to the 'Sendable' protocol
329 |         case ARRAY_BUFFER = 34962
330 |         case ELEMENT_ARRAY_BUFFER = 34963
331 |     }
332 |
333 |     public let target: Target?
    |                `- warning: stored property 'target' of 'Sendable'-conforming struct 'BufferView' has non-sendable type 'BufferView.Target?'; this is an error in the Swift 6 language mode
334 |     public let name: String?
335 |     // let extensions: [String: Any]?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:321:15: error: type 'BufferView' does not conform to protocol 'Resolver'
319 | }
320 |
321 | public struct BufferView: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'BufferView' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
322 |     public static let documentKeyPath = \Document.bufferViews
323 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:360:15: error: type 'Camera' does not conform to protocol 'Resolver'
358 | }
359 |
360 | public struct Camera: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Camera' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
361 |     public static let documentKeyPath = \Document.cameras
362 | }
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:372:15: error: type 'Image' does not conform to protocol 'Resolver'
370 | // }
371 |
372 | public struct Image: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Image' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
373 |     public static let documentKeyPath = \Document.images
374 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:383:15: error: type 'Material' does not conform to protocol 'Resolver'
381 | }
382 |
383 | public struct Material: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Material' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
384 |     public static let documentKeyPath = \Document.materials
385 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:430:15: error: type 'Mesh' does not conform to protocol 'Resolver'
428 | }
429 |
430 | public struct Mesh: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Mesh' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
431 |     public static let documentKeyPath = \Document.meshes
432 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:506:15: error: type 'Node' does not conform to protocol 'Resolver'
504 | }
505 |
506 | public struct Node: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Node' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
507 |     public static let documentKeyPath = \Document.nodes
508 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:569:15: error: type 'Sampler' does not conform to protocol 'Resolver'
567 | }
568 |
569 | public struct Sampler: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Sampler' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
570 |     public static let documentKeyPath = \Document.samplers
571 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:628:15: error: type 'Scene' does not conform to protocol 'Resolver'
626 | }
627 |
628 | public struct Scene: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Scene' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
629 |     public static let documentKeyPath = \Document.scenes
630 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:654:15: error: type 'Texture' does not conform to protocol 'Resolver'
652 | }
653 |
654 | public struct Texture: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Texture' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
655 |     public static let documentKeyPath = \Document.textures
656 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
[5/9] Compiling SwiftGLTF Scratch.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/Scratch.swift:25:9: warning: 'channel' is deprecated: Inefficient
 23 |
 24 |     var redChannel: CGImage {
 25 |         channel(CIVector(x: 1, y: 0, z: 0, w: 0))
    |         `- warning: 'channel' is deprecated: Inefficient
 26 |     }
 27 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/Scratch.swift:29:9: warning: 'channel' is deprecated: Inefficient
 27 |
 28 |     var greenChannel: CGImage {
 29 |         channel(CIVector(x: 0, y: 1, z: 0, w: 0))
    |         `- warning: 'channel' is deprecated: Inefficient
 30 |     }
 31 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/Scratch.swift:33:9: warning: 'channel' is deprecated: Inefficient
 31 |
 32 |     var blueChannel: CGImage {
 33 |         channel(CIVector(x: 0, y: 0, z: 1, w: 0))
    |         `- warning: 'channel' is deprecated: Inefficient
 34 |     }
 35 | }
error: emit-module command failed with exit code 1 (use -v to see invocation)
[6/9] Compiling SwiftGLTF CollectionScanner.swift
[7/9] Compiling SwiftGLTF glb.swift
[8/9] Emitting module SwiftGLTF
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+RealityKit.swift:157:16: error: cannot reference invalid declaration 'accessor'
143 |
144 |     func value(semantic: Mesh.Primitive.Semantic, type: SIMD3<Float>.Type, in container: Container) throws -> [SIMD3<Float>]? {
145 |         guard let accessor = try attributes[semantic]?.resolve(in: container.document) else {
    |                   `- note: 'accessor' declared here
146 |             return nil
147 |         }
    :
155 |
156 |         let values: [SIMD3<Float>]
157 |         switch accessor.componentType {
    |                `- error: cannot reference invalid declaration 'accessor'
158 |         case .FLOAT:
159 |             values = Array <FauxVector3>(withUnsafeData: try container.data(for: accessor)).map {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:218:15: error: type 'Accessor' does not conform to protocol 'Resolver'
216 | }
217 |
218 | public struct Accessor: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Accessor' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
219 |     public static let documentKeyPath = \Document.accessors
220 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:311:15: error: type 'Buffer' does not conform to protocol 'Resolver'
309 | }
310 |
311 | public struct Buffer: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Buffer' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
312 |     public static let documentKeyPath = \Document.buffers
313 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:333:16: warning: stored property 'target' of 'Sendable'-conforming struct 'BufferView' has non-sendable type 'BufferView.Target?'; this is an error in the Swift 6 language mode
326 |     public let byteLength: Int
327 |     public let byteStride: Int?
328 |     public enum Target: Int, Decodable {
    |                 `- note: consider making enum 'Target' conform to the 'Sendable' protocol
329 |         case ARRAY_BUFFER = 34962
330 |         case ELEMENT_ARRAY_BUFFER = 34963
331 |     }
332 |
333 |     public let target: Target?
    |                `- warning: stored property 'target' of 'Sendable'-conforming struct 'BufferView' has non-sendable type 'BufferView.Target?'; this is an error in the Swift 6 language mode
334 |     public let name: String?
335 |     // let extensions: [String: Any]?
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:321:15: error: type 'BufferView' does not conform to protocol 'Resolver'
319 | }
320 |
321 | public struct BufferView: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'BufferView' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
322 |     public static let documentKeyPath = \Document.bufferViews
323 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:360:15: error: type 'Camera' does not conform to protocol 'Resolver'
358 | }
359 |
360 | public struct Camera: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Camera' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
361 |     public static let documentKeyPath = \Document.cameras
362 | }
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:372:15: error: type 'Image' does not conform to protocol 'Resolver'
370 | // }
371 |
372 | public struct Image: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Image' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
373 |     public static let documentKeyPath = \Document.images
374 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:383:15: error: type 'Material' does not conform to protocol 'Resolver'
381 | }
382 |
383 | public struct Material: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Material' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
384 |     public static let documentKeyPath = \Document.materials
385 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:430:15: error: type 'Mesh' does not conform to protocol 'Resolver'
428 | }
429 |
430 | public struct Mesh: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Mesh' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
431 |     public static let documentKeyPath = \Document.meshes
432 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:506:15: error: type 'Node' does not conform to protocol 'Resolver'
504 | }
505 |
506 | public struct Node: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Node' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
507 |     public static let documentKeyPath = \Document.nodes
508 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:569:15: error: type 'Sampler' does not conform to protocol 'Resolver'
567 | }
568 |
569 | public struct Sampler: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Sampler' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
570 |     public static let documentKeyPath = \Document.samplers
571 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:628:15: error: type 'Scene' does not conform to protocol 'Resolver'
626 | }
627 |
628 | public struct Scene: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Scene' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
629 |     public static let documentKeyPath = \Document.scenes
630 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:654:15: error: type 'Texture' does not conform to protocol 'Resolver'
652 | }
653 |
654 | public struct Texture: Decodable, Hashable, Sendable, Resolver {
    |               |- error: type 'Texture' does not conform to protocol 'Resolver'
    |               `- note: add stubs for conformance
655 |     public static let documentKeyPath = \Document.textures
656 |
    :
719 |
720 | public protocol Resolver: Sendable {
721 |     associatedtype C: RandomAccessCollection where C.Index == Int
    |                    `- note: protocol requires nested type 'C'
722 |     static var documentKeyPath: KeyPath<Document, C> { get }
723 | }
[9/9] Compiling SwiftGLTF gltf+RealityKit.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+RealityKit.swift:23:9: error: type 'Scene' does not conform to protocol 'Resolver'
 21 |     public func generateRootEntity() throws -> Entity {
 22 |         let rootEntity = Entity()
 23 |         let scene = try document.scene.map { try $0.resolve(in: document) } ?? document.scenes.first!
    |         `- error: type 'Scene' does not conform to protocol 'Resolver'
 24 |         try scene.nodes
 25 |             .map { try $0.resolve(in: document) }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+RealityKit.swift:22:26: warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 19 |     }
 20 |
 21 |     public func generateRootEntity() throws -> Entity {
    |                 `- note: add '@MainActor' to make instance method 'generateRootEntity()' part of global actor 'MainActor'
 22 |         let rootEntity = Entity()
    |                          `- warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 23 |         let scene = try document.scene.map { try $0.resolve(in: document) } ?? document.scenes.first!
 24 |         try scene.nodes
RealityFoundation.Entity.init:2:44: note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
1 | class Entity {
2 | @MainActor @preconcurrency required public init()}
  |                                            `- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+RealityKit.swift:33:10: error: type 'Mesh' does not conform to protocol 'Resolver'
 31 |     }
 32 |
 33 |     func generateEntity(from node: Node) throws -> Entity {
    |          `- error: type 'Mesh' does not conform to protocol 'Resolver'
 34 |         let entity = Entity()
 35 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+RealityKit.swift:33:10: error: type 'Node' does not conform to protocol 'Resolver'
 31 |     }
 32 |
 33 |     func generateEntity(from node: Node) throws -> Entity {
    |          `- error: type 'Node' does not conform to protocol 'Resolver'
 34 |         let entity = Entity()
 35 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+RealityKit.swift:34:22: warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 31 |     }
 32 |
 33 |     func generateEntity(from node: Node) throws -> Entity {
    |          `- note: add '@MainActor' to make instance method 'generateEntity(from:)' part of global actor 'MainActor'
 34 |         let entity = Entity()
    |                      `- warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 35 |
 36 |         if let mesh = try node.mesh?.resolve(in: document) {
RealityFoundation.Entity.init:2:44: note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
1 | class Entity {
2 | @MainActor @preconcurrency required public init()}
  |                                            `- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+RealityKit.swift:40:20: warning: main actor-isolated property 'transform' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 31 |     }
 32 |
 33 |     func generateEntity(from node: Node) throws -> Entity {
    |          `- note: add '@MainActor' to make instance method 'generateEntity(from:)' part of global actor 'MainActor'
 34 |         let entity = Entity()
 35 |
    :
 38 |         }
 39 |         if let matrix = node.matrix {
 40 |             entity.transform.matrix = matrix
    |                    `- warning: main actor-isolated property 'transform' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 41 |         }
 42 |         if let translation = node.translation {
RealityFoundation.HasTransform.transform:2:39: note: mutation of this property is only permitted within the actor
1 | protocol HasTransform {
2 | @MainActor @preconcurrency public var transform: Transform { get set }}
  |                                       `- note: mutation of this property is only permitted within the actor
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+RealityKit.swift:43:20: warning: main actor-isolated property 'transform' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 31 |     }
 32 |
 33 |     func generateEntity(from node: Node) throws -> Entity {
    |          `- note: add '@MainActor' to make instance method 'generateEntity(from:)' part of global actor 'MainActor'
 34 |         let entity = Entity()
 35 |
    :
 41 |         }
 42 |         if let translation = node.translation {
 43 |             entity.transform.translation = translation
    |                    `- warning: main actor-isolated property 'transform' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 44 |         }
 45 |         if let rotation = node.rotation {
RealityFoundation.HasTransform.transform:2:39: note: mutation of this property is only permitted within the actor
1 | protocol HasTransform {
2 | @MainActor @preconcurrency public var transform: Transform { get set }}
  |                                       `- note: mutation of this property is only permitted within the actor
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+RealityKit.swift:46:20: warning: main actor-isolated property 'transform' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 31 |     }
 32 |
 33 |     func generateEntity(from node: Node) throws -> Entity {
    |          `- note: add '@MainActor' to make instance method 'generateEntity(from:)' part of global actor 'MainActor'
 34 |         let entity = Entity()
 35 |
    :
 44 |         }
 45 |         if let rotation = node.rotation {
 46 |             entity.transform.rotation = simd_quatf(vector: rotation)
    |                    `- warning: main actor-isolated property 'transform' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 47 |         }
 48 |         if let scale = node.scale {
RealityFoundation.HasTransform.transform:2:39: note: mutation of this property is only permitted within the actor
1 | protocol HasTransform {
2 | @MainActor @preconcurrency public var transform: Transform { get set }}
  |                                       `- note: mutation of this property is only permitted within the actor
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+RealityKit.swift:49:20: warning: main actor-isolated property 'transform' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 31 |     }
 32 |
 33 |     func generateEntity(from node: Node) throws -> Entity {
    |          `- note: add '@MainActor' to make instance method 'generateEntity(from:)' part of global actor 'MainActor'
 34 |         let entity = Entity()
 35 |
    :
 47 |         }
 48 |         if let scale = node.scale {
 49 |             entity.transform.scale = scale
    |                    `- warning: main actor-isolated property 'transform' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
 50 |         }
 51 |         try node.children.map { try $0.resolve(in: document) }.map { try generateEntity(from: $0) }.forEach {
RealityFoundation.HasTransform.transform:2:39: note: mutation of this property is only permitted within the actor
1 | protocol HasTransform {
2 | @MainActor @preconcurrency public var transform: Transform { get set }}
  |                                       `- note: mutation of this property is only permitted within the actor
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+RealityKit.swift:57:10: error: type 'Material' does not conform to protocol 'Resolver'
 55 |     }
 56 |
 57 |     func generateMeshResource(from mesh: Mesh) throws -> ModelComponent {
    |          `- error: type 'Material' does not conform to protocol 'Resolver'
 58 |         // assert(mesh.primitives.count == 1)
 59 |         let primitive = mesh.primitives.first!
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+RealityKit.swift:78:45: warning: call to main actor-isolated static method 'generate(from:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 55 |     }
 56 |
 57 |     func generateMeshResource(from mesh: Mesh) throws -> ModelComponent {
    |          `- note: add '@MainActor' to make instance method 'generateMeshResource(from:)' part of global actor 'MainActor'
 58 |         // assert(mesh.primitives.count == 1)
 59 |         let primitive = mesh.primitives.first!
    :
 76 |             meshDescriptor.primitives = .triangles(indices)
 77 |         }
 78 |         let meshResource = try MeshResource.generate(from: [meshDescriptor])
    |                                             `- warning: call to main actor-isolated static method 'generate(from:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 79 |
 80 |         guard let material = try primitive.material?.resolve(in: document) else {
RealityFoundation.MeshResource.generate:2:47: note: calls to static method 'generate(from:)' from outside of its actor context are implicitly asynchronous
1 | class MeshResource {
2 | @MainActor @preconcurrency public static func generate(from descriptors: [MeshDescriptor]) throws -> MeshResource}
  |                                               `- note: calls to static method 'generate(from:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+RealityKit.swift:93:17: error: type 'Texture' does not conform to protocol 'Resolver'
 91 |             var reTexture: MaterialParameters.Texture?
 92 |             if let textureInfo = pbrMetallicRoughness.baseColorTexture {
 93 |                 let texture = try textureInfo.index.resolve(in: document)
    |                 `- error: type 'Texture' does not conform to protocol 'Resolver'
 94 |                 let source = try texture.source!.resolve(in: document)
 95 |                 let data = try container.data(for: source)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+RealityKit.swift:111:10: error: type 'BufferView' does not conform to protocol 'Resolver'
109 |
110 | extension Container {
111 |     func data(for image: Image) throws -> Data {
    |          `- error: type 'BufferView' does not conform to protocol 'Resolver'
112 |         if let uri = image.uri {
113 |             return try data(for: uri)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+RealityKit.swift:133:10: error: type 'Accessor' does not conform to protocol 'Resolver'
131 |
132 | extension Mesh.Primitive {
133 |     func value(semantic: Mesh.Primitive.Semantic, type: SIMD2<Float>.Type, in container: Container) throws -> [SIMD2<Float>]? {
    |          `- error: type 'Accessor' does not conform to protocol 'Resolver'
134 |         guard let accessor = try attributes[semantic]?.resolve(in: container.document) else {
135 |             return nil
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+RealityKit.swift:137:43: error: cannot infer contextual base in reference to member 'FLOAT'
135 |             return nil
136 |         }
137 |         assert(accessor.componentType == .FLOAT)
    |                                           `- error: cannot infer contextual base in reference to member 'FLOAT'
138 |         let values = Array <SIMD2<Float>>(withUnsafeData: try container.data(for: accessor))
139 |         assert(values.count == accessor.count)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf+RealityKit.swift:177:43: error: cannot infer contextual base in reference to member 'FLOAT'
175 |             return nil
176 |         }
177 |         assert(accessor.componentType == .FLOAT)
    |                                           `- error: cannot infer contextual base in reference to member 'FLOAT'
178 |         let values = Array <SIMD4<Float>>(withUnsafeData: try container.data(for: accessor))
179 |         assert(values.count == accessor.count)
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
[2/8] Compiling SwiftGLTF gltf+SceneKit.swift
[3/8] Compiling SwiftGLTF CollectionScanner.swift
[4/8] Emitting module SwiftGLTF
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:333:16: warning: stored property 'target' of 'Sendable'-conforming struct 'BufferView' has non-sendable type 'BufferView.Target?'; this is an error in the Swift 6 language mode
326 |     public let byteLength: Int
327 |     public let byteStride: Int?
328 |     public enum Target: Int, Decodable {
    |                 `- note: consider making enum 'Target' conform to the 'Sendable' protocol
329 |         case ARRAY_BUFFER = 34962
330 |         case ELEMENT_ARRAY_BUFFER = 34963
331 |     }
332 |
333 |     public let target: Target?
    |                `- warning: stored property 'target' of 'Sendable'-conforming struct 'BufferView' has non-sendable type 'BufferView.Target?'; this is an error in the Swift 6 language mode
334 |     public let name: String?
335 |     // let extensions: [String: Any]?
[5/8] Compiling SwiftGLTF gltf.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/gltf.swift:333:16: warning: stored property 'target' of 'Sendable'-conforming struct 'BufferView' has non-sendable type 'BufferView.Target?'; this is an error in the Swift 6 language mode
326 |     public let byteLength: Int
327 |     public let byteStride: Int?
328 |     public enum Target: Int, Decodable {
    |                 `- note: consider making enum 'Target' conform to the 'Sendable' protocol
329 |         case ARRAY_BUFFER = 34962
330 |         case ELEMENT_ARRAY_BUFFER = 34963
331 |     }
332 |
333 |     public let target: Target?
    |                `- warning: stored property 'target' of 'Sendable'-conforming struct 'BufferView' has non-sendable type 'BufferView.Target?'; this is an error in the Swift 6 language mode
334 |     public let name: String?
335 |     // let extensions: [String: Any]?
[6/8] Compiling SwiftGLTF gltf+RealityKit.swift
[7/8] Compiling SwiftGLTF glb.swift
[8/8] Compiling SwiftGLTF Scratch.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/Scratch.swift:25:9: warning: 'channel' is deprecated: Inefficient
 23 |
 24 |     var redChannel: CGImage {
 25 |         channel(CIVector(x: 1, y: 0, z: 0, w: 0))
    |         `- warning: 'channel' is deprecated: Inefficient
 26 |     }
 27 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/Scratch.swift:29:9: warning: 'channel' is deprecated: Inefficient
 27 |
 28 |     var greenChannel: CGImage {
 29 |         channel(CIVector(x: 0, y: 1, z: 0, w: 0))
    |         `- warning: 'channel' is deprecated: Inefficient
 30 |     }
 31 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftGLTF/Scratch.swift:33:9: warning: 'channel' is deprecated: Inefficient
 31 |
 32 |     var blueChannel: CGImage {
 33 |         channel(CIVector(x: 0, y: 0, z: 1, w: 0))
    |         `- warning: 'channel' is deprecated: Inefficient
 34 |     }
 35 | }
Build complete! (2.22s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "SwiftGLTF",
  "name" : "SwiftGLTF",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "17.0"
    },
    {
      "name" : "macos",
      "version" : "14.0"
    },
    {
      "name" : "maccatalyst",
      "version" : "17.0"
    }
  ],
  "products" : [
    {
      "name" : "SwiftGLTF",
      "targets" : [
        "SwiftGLTF"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SwiftGLTFTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftGLTFTests",
      "path" : "Tests/SwiftGLTFTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftGLTFTests/Box-byteStride.glb",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftGLTFTests/Box.gltf",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "GLTFTests.swift"
      ],
      "target_dependencies" : [
        "SwiftGLTF"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftGLTF",
      "module_type" : "SwiftTarget",
      "name" : "SwiftGLTF",
      "path" : "Sources/SwiftGLTF",
      "product_memberships" : [
        "SwiftGLTF"
      ],
      "sources" : [
        "CollectionScanner.swift",
        "Scratch.swift",
        "glb.swift",
        "gltf+RealityKit.swift",
        "gltf+SceneKit.swift",
        "gltf.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
Done.