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 arm64Build 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.