Build Information
Failed to build MetalANNS, reference 0.1.3 (ea4586), with Swift 6.0 for macOS (SPM) on 16 Mar 2026 07:22:13 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 4.69.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/christopherkarani/MetalANNS.git
Reference: 0.1.3
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/christopherkarani/MetalANNS
* tag 0.1.3 -> FETCH_HEAD
HEAD is now at ea4586f chore: add MIT license
Cloned https://github.com/christopherkarani/MetalANNS.git
Revision (git rev-parse @):
ea4586fff3f89fd655529927688aa910a85ed641
SUCCESS checkout https://github.com/christopherkarani/MetalANNS.git at 0.1.3
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $PWD
https://github.com/christopherkarani/MetalANNS.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64
Building for debugging...
[0/20] Write sources
[1/20] Copying Sort.metal
[1/20] Write sources
[3/20] Copying SearchFloat16.metal
[3/20] Write MetalANNSBenchmarks-entitlement.plist
[3/20] Write sources
[3/20] Copying PQDistance.metal
[4/20] Copying HammingDistance.metal
[4/20] Copying Search.metal
[8/20] Copying Info.plist
[8/20] Copying NNDescent.metal
[8/20] Copying NNDescentFloat16.metal
[12/20] Copying PrivacyInfo.xcprivacy
[12/20] Copying Distance.metal
[12/20] Copying DistanceFloat16.metal
[16/20] Write swift-version-5BDAB9E9C0126B9D.txt
[18/215] Emitting module GRDB
[19/231] Emitting module MetalANNSCore
[20/235] Compiling GRDB MutablePersistableRecord+Update.swift
[21/235] Compiling GRDB MutablePersistableRecord+Upsert.swift
[22/235] Compiling GRDB MutablePersistableRecord.swift
[23/235] Compiling GRDB PersistableRecord+Insert.swift
[24/235] Compiling GRDB PersistableRecord+Save.swift
[25/235] Compiling GRDB PersistableRecord+Upsert.swift
[26/235] Compiling GRDB PersistableRecord.swift
[27/235] Compiling GRDB Record.swift
[28/235] Compiling GRDB TableRecord.swift
[29/235] Compiling GRDB CaseInsensitiveIdentifier.swift
[30/235] Compiling GRDB Inflections+English.swift
[31/235] Compiling GRDB Inflections.swift
[32/235] Compiling GRDB Mutex.swift
[33/235] Compiling GRDB OnDemandFuture.swift
[34/235] Compiling GRDB OrderedDictionary.swift
[35/235] Compiling GRDB Pool.swift
[36/235] Compiling GRDB ForeignKeyDefinition.swift
[37/235] Compiling GRDB IndexDefinition.swift
[38/235] Compiling GRDB TableAlteration.swift
[39/235] Compiling GRDB TableDefinition.swift
[40/235] Compiling GRDB VirtualTableModule.swift
[41/235] Compiling GRDB TableRecord+Association.swift
[42/235] Compiling GRDB TableRecord+QueryInterfaceRequest.swift
[43/235] Compiling GRDB EncodableRecord+Encodable.swift
[44/235] Compiling GRDB EncodableRecord.swift
[45/235] Compiling GRDB FetchableRecord+Decodable.swift
[46/235] Compiling GRDB FetchableRecord+TableRecord.swift
[47/235] Compiling GRDB FetchableRecord.swift
[48/235] Compiling GRDB MutablePersistableRecord+DAO.swift
[49/235] Compiling GRDB MutablePersistableRecord+Delete.swift
[50/235] Compiling GRDB MutablePersistableRecord+Insert.swift
[51/235] Compiling GRDB MutablePersistableRecord+Save.swift
[52/235] Compiling GRDB SQLFunctions.swift
[53/235] Compiling GRDB SQLOperators.swift
[54/235] Compiling GRDB SQLOrdering.swift
[55/235] Compiling GRDB SQLRelation.swift
[56/235] Compiling GRDB SQLSelection.swift
[57/235] Compiling GRDB SQLSubquery.swift
[58/235] Compiling GRDB Table.swift
[59/235] Compiling GRDB SQLColumnGenerator.swift
[60/235] Compiling GRDB SQLGenerationContext.swift
[61/235] Compiling GRDB SQLIndexGenerator.swift
[62/235] Compiling GRDB SQLQueryGenerator.swift
[63/235] Compiling GRDB SQLTableAlterationGenerator.swift
[64/235] Compiling GRDB SQLTableGenerator.swift
[65/235] Compiling GRDB TableAlias.swift
[66/235] Compiling GRDB SQLInterpolation+QueryInterface.swift
[67/235] Compiling GRDB ColumnDefinition.swift
[68/235] Compiling GRDB Database+SchemaDefinition.swift
[69/235] Compiling GRDB Association.swift
[70/235] Compiling GRDB AssociationAggregate.swift
[71/235] Compiling GRDB BelongsToAssociation.swift
[72/235] Compiling GRDB HasManyAssociation.swift
[73/235] Compiling GRDB HasManyThroughAssociation.swift
[74/235] Compiling GRDB HasOneAssociation.swift
[75/235] Compiling GRDB HasOneThroughAssociation.swift
[76/235] Compiling GRDB JoinAssociation.swift
[77/235] Compiling GRDB CommonTableExpression.swift
[78/235] Compiling GRDB QueryInterfaceRequest.swift
[79/235] Compiling GRDB RequestProtocols.swift
[80/235] Compiling GRDB Column.swift
[81/235] Compiling GRDB DatabasePromise.swift
[82/235] Compiling GRDB SQLAssociation.swift
[83/235] Compiling GRDB SQLCollection.swift
[84/235] Compiling GRDB SQLExpression.swift
[85/235] Compiling GRDB SQLForeignKeyRequest.swift
[86/235] Compiling GRDB JSONRequiredEncoder.swift
[87/235] Compiling GRDB Optional.swift
[88/235] Compiling GRDB StandardLibrary.swift
[89/235] Compiling GRDB TransactionClock.swift
[90/235] Compiling GRDB TransactionObserver.swift
[91/235] Compiling GRDB WALSnapshot.swift
[92/235] Compiling GRDB WALSnapshotTransaction.swift
[93/235] Compiling GRDB Database+Dump.swift
[94/235] Compiling MetalANNSCore SoftDeletion.swift
[95/235] Compiling MetalANNSCore VectorBuffer.swift
[96/235] Compiling MetalANNSCore VectorStorage.swift
[97/235] Compiling MetalANNSCore resource_bundle_accessor.swift
[98/235] Compiling GRDB LineDumpFormat.swift
[99/235] Compiling GRDB ListDumpFormat.swift
[100/235] Compiling GRDB QuoteDumpFormat.swift
[101/235] Compiling GRDB FTS3.swift
[102/235] Compiling GRDB FTS3Pattern.swift
[103/235] Compiling GRDB FTS3TokenizerDescriptor.swift
[104/235] Compiling GRDB FTS4.swift
[105/235] Compiling GRDB FTS5.swift
[106/235] Compiling GRDB FTS5CustomTokenizer.swift
[107/235] Compiling GRDB FTS5Pattern.swift
[108/235] Compiling GRDB FTS5Tokenizer.swift
[109/235] Compiling GRDB FTS5TokenizerDescriptor.swift
[110/235] Compiling GRDB FTS5WrapperTokenizer.swift
[111/235] Compiling GRDB Fixits.swift
[112/235] Compiling GRDB JSONColumn.swift
[113/235] Compiling GRDB SQLJSONExpressible.swift
[114/235] Compiling GRDB SQLJSONFunctions.swift
[115/235] Compiling GRDB DatabaseMigrator.swift
[116/235] Compiling GRDB Migration.swift
[117/235] Compiling GRDB FTS3+QueryInterface.swift
[118/235] Compiling GRDB FTS5+QueryInterface.swift
[119/235] Compiling GRDB ForeignKey.swift
[120/235] Compiling GRDB StatementColumnConvertible.swift
[121/235] Compiling GRDB CGFloat.swift
[122/235] Compiling GRDB Data.swift
[123/235] Compiling GRDB DatabaseDateComponents.swift
[124/235] Compiling GRDB DatabaseValueConvertible+ReferenceConvertible.swift
[125/235] Compiling GRDB Date.swift
[126/235] Compiling GRDB Decimal.swift
[127/235] Compiling GRDB NSData.swift
[128/235] Compiling GRDB NSNull.swift
[129/235] Compiling GRDB NSNumber.swift
[130/235] Compiling GRDB NSString.swift
[131/235] Compiling GRDB SQLiteDateParser.swift
[132/235] Compiling GRDB URL.swift
[133/235] Compiling GRDB UUID.swift
[134/235] Compiling GRDB DatabaseValueConvertible+Decodable.swift
[135/235] Compiling GRDB DatabaseValueConvertible+Encodable.swift
[136/235] Compiling GRDB DatabaseValueConvertible+RawRepresentable.swift
[137/235] Compiling GRDB DatabaseSnapshot.swift
[138/235] Compiling GRDB DatabaseSnapshotPool.swift
[139/235] Compiling GRDB DatabaseValue.swift
[140/235] Compiling GRDB DatabaseValueConvertible.swift
[141/235] Compiling GRDB DatabaseWriter.swift
[142/235] Compiling GRDB DispatchQueueActor.swift
[143/235] Compiling GRDB FetchRequest.swift
[144/235] Compiling GRDB Row.swift
[145/235] Compiling GRDB RowAdapter.swift
[146/235] Compiling GRDB RowDecodingError.swift
[147/235] Compiling GRDB SQL.swift
[148/235] Compiling GRDB SQLInterpolation.swift
[149/235] Compiling GRDB SQLRequest.swift
[150/235] Compiling GRDB SchedulingWatchdog.swift
[151/235] Compiling GRDB SerializedDatabase.swift
[152/235] Compiling GRDB Statement.swift
[153/235] Compiling GRDB StatementAuthorizer.swift
[158/235] Compiling GRDB DatabasePublishers.swift
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/SearchGPU.swift:134:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
132 | }
133 |
134 | let pipeline = try await context.pipelineCache.pipeline(for: functionName)
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
135 |
136 | let neighborLength = neighborIDs.count * MemoryLayout<UInt32>.stride
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/SearchGPU.swift:2:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Foundation
2 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
3 |
4 | public enum SearchGPU {
[159/235] Compiling GRDB DatabaseQueue.swift
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/SearchGPU.swift:134:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
132 | }
133 |
134 | let pipeline = try await context.pipelineCache.pipeline(for: functionName)
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
135 |
136 | let neighborLength = neighborIDs.count * MemoryLayout<UInt32>.stride
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/SearchGPU.swift:2:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Foundation
2 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
3 |
4 | public enum SearchGPU {
[160/235] Compiling GRDB DatabaseReader.swift
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/SearchGPU.swift:134:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
132 | }
133 |
134 | let pipeline = try await context.pipelineCache.pipeline(for: functionName)
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
135 |
136 | let neighborLength = neighborIDs.count * MemoryLayout<UInt32>.stride
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/SearchGPU.swift:2:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Foundation
2 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
3 |
4 | public enum SearchGPU {
[161/235] Compiling GRDB DatabaseRegion.swift
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/SearchGPU.swift:134:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
132 | }
133 |
134 | let pipeline = try await context.pipelineCache.pipeline(for: functionName)
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
135 |
136 | let neighborLength = neighborIDs.count * MemoryLayout<UInt32>.stride
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/SearchGPU.swift:2:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Foundation
2 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
3 |
4 | public enum SearchGPU {
[162/235] Compiling GRDB DatabaseBackupProgress.swift
[163/235] Compiling GRDB DatabaseCollation.swift
[164/235] Compiling GRDB DatabaseError.swift
[165/235] Compiling GRDB DatabaseFunction.swift
[166/235] Compiling GRDB DatabasePool.swift
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/IncrementalBuilder.swift:64:17: warning: variable 'existingDistances' was never mutated; consider changing to 'let' constant
62 |
63 | let existingIDs = graph.neighborIDs(of: neighborIndex)
64 | var existingDistances = graph.neighborDistances(of: neighborIndex)
| `- warning: variable 'existingDistances' was never mutated; consider changing to 'let' constant
65 |
66 | if existingIDs.contains(UInt32(internalID)) {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/IncrementalBuilder.swift:64:17: warning: variable 'existingDistances' was never mutated; consider changing to 'let' constant
62 |
63 | let existingIDs = graph.neighborIDs(of: neighborIndex)
64 | var existingDistances = graph.neighborDistances(of: neighborIndex)
| `- warning: variable 'existingDistances' was never mutated; consider changing to 'let' constant
65 |
66 | if existingIDs.contains(UInt32(internalID)) {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/IncrementalBuilder.swift:64:17: warning: variable 'existingDistances' was never mutated; consider changing to 'let' constant
62 |
63 | let existingIDs = graph.neighborIDs(of: neighborIndex)
64 | var existingDistances = graph.neighborDistances(of: neighborIndex)
| `- warning: variable 'existingDistances' was never mutated; consider changing to 'let' constant
65 |
66 | if existingIDs.contains(UInt32(internalID)) {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/IncrementalBuilder.swift:64:17: warning: variable 'existingDistances' was never mutated; consider changing to 'let' constant
62 |
63 | let existingIDs = graph.neighborIDs(of: neighborIndex)
64 | var existingDistances = graph.neighborDistances(of: neighborIndex)
| `- warning: variable 'existingDistances' was never mutated; consider changing to 'let' constant
65 |
66 | if existingIDs.contains(UInt32(internalID)) {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/IncrementalBuilder.swift:64:17: warning: variable 'existingDistances' was never mutated; consider changing to 'let' constant
62 |
63 | let existingIDs = graph.neighborIDs(of: neighborIndex)
64 | var existingDistances = graph.neighborDistances(of: neighborIndex)
| `- warning: variable 'existingDistances' was never mutated; consider changing to 'let' constant
65 |
66 | if existingIDs.contains(UInt32(internalID)) {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:17:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
15 | }
16 |
17 | let pipeline = try await context.pipelineCache.pipeline(for: "random_init")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
18 |
19 | var n = UInt32(nodeCount)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:1:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
2 | import os.log
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:56:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
54 |
55 | let kernelName = vectors.isFloat16 ? "compute_initial_distances_f16" : "compute_initial_distances"
56 | let pipeline = try await context.pipelineCache.pipeline(for: kernelName)
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
57 |
58 | var n = UInt32(nodeCount)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:138:63: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
136 | }
137 |
138 | let reversePipeline = try await context.pipelineCache.pipeline(for: "build_reverse_list")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
139 | let localJoinKernel = vectors.isFloat16 ? "local_join_f16" : "local_join"
140 | let localJoinPipeline = try await context.pipelineCache.pipeline(for: localJoinKernel)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:140:65: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
138 | let reversePipeline = try await context.pipelineCache.pipeline(for: "build_reverse_list")
139 | let localJoinKernel = vectors.isFloat16 ? "local_join_f16" : "local_join"
140 | let localJoinPipeline = try await context.pipelineCache.pipeline(for: localJoinKernel)
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
141 |
142 | var n = UInt32(nodeCount)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:245:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
243 | }
244 |
245 | let pipeline = try await context.pipelineCache.pipeline(for: "bitonic_sort_neighbors")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
246 | let threadgroupWidth = degree / 2
247 | guard threadgroupWidth <= pipeline.maxTotalThreadsPerThreadgroup else {
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:17:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
15 | }
16 |
17 | let pipeline = try await context.pipelineCache.pipeline(for: "random_init")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
18 |
19 | var n = UInt32(nodeCount)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:1:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
2 | import os.log
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:56:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
54 |
55 | let kernelName = vectors.isFloat16 ? "compute_initial_distances_f16" : "compute_initial_distances"
56 | let pipeline = try await context.pipelineCache.pipeline(for: kernelName)
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
57 |
58 | var n = UInt32(nodeCount)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:138:63: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
136 | }
137 |
138 | let reversePipeline = try await context.pipelineCache.pipeline(for: "build_reverse_list")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
139 | let localJoinKernel = vectors.isFloat16 ? "local_join_f16" : "local_join"
140 | let localJoinPipeline = try await context.pipelineCache.pipeline(for: localJoinKernel)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:140:65: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
138 | let reversePipeline = try await context.pipelineCache.pipeline(for: "build_reverse_list")
139 | let localJoinKernel = vectors.isFloat16 ? "local_join_f16" : "local_join"
140 | let localJoinPipeline = try await context.pipelineCache.pipeline(for: localJoinKernel)
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
141 |
142 | var n = UInt32(nodeCount)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:245:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
243 | }
244 |
245 | let pipeline = try await context.pipelineCache.pipeline(for: "bitonic_sort_neighbors")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
246 | let threadgroupWidth = degree / 2
247 | guard threadgroupWidth <= pipeline.maxTotalThreadsPerThreadgroup else {
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:17:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
15 | }
16 |
17 | let pipeline = try await context.pipelineCache.pipeline(for: "random_init")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
18 |
19 | var n = UInt32(nodeCount)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:1:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
2 | import os.log
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:56:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
54 |
55 | let kernelName = vectors.isFloat16 ? "compute_initial_distances_f16" : "compute_initial_distances"
56 | let pipeline = try await context.pipelineCache.pipeline(for: kernelName)
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
57 |
58 | var n = UInt32(nodeCount)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:138:63: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
136 | }
137 |
138 | let reversePipeline = try await context.pipelineCache.pipeline(for: "build_reverse_list")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
139 | let localJoinKernel = vectors.isFloat16 ? "local_join_f16" : "local_join"
140 | let localJoinPipeline = try await context.pipelineCache.pipeline(for: localJoinKernel)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:140:65: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
138 | let reversePipeline = try await context.pipelineCache.pipeline(for: "build_reverse_list")
139 | let localJoinKernel = vectors.isFloat16 ? "local_join_f16" : "local_join"
140 | let localJoinPipeline = try await context.pipelineCache.pipeline(for: localJoinKernel)
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
141 |
142 | var n = UInt32(nodeCount)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:245:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
243 | }
244 |
245 | let pipeline = try await context.pipelineCache.pipeline(for: "bitonic_sort_neighbors")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
246 | let threadgroupWidth = degree / 2
247 | guard threadgroupWidth <= pipeline.maxTotalThreadsPerThreadgroup else {
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:17:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
15 | }
16 |
17 | let pipeline = try await context.pipelineCache.pipeline(for: "random_init")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
18 |
19 | var n = UInt32(nodeCount)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:1:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
2 | import os.log
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:56:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
54 |
55 | let kernelName = vectors.isFloat16 ? "compute_initial_distances_f16" : "compute_initial_distances"
56 | let pipeline = try await context.pipelineCache.pipeline(for: kernelName)
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
57 |
58 | var n = UInt32(nodeCount)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:138:63: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
136 | }
137 |
138 | let reversePipeline = try await context.pipelineCache.pipeline(for: "build_reverse_list")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
139 | let localJoinKernel = vectors.isFloat16 ? "local_join_f16" : "local_join"
140 | let localJoinPipeline = try await context.pipelineCache.pipeline(for: localJoinKernel)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:140:65: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
138 | let reversePipeline = try await context.pipelineCache.pipeline(for: "build_reverse_list")
139 | let localJoinKernel = vectors.isFloat16 ? "local_join_f16" : "local_join"
140 | let localJoinPipeline = try await context.pipelineCache.pipeline(for: localJoinKernel)
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
141 |
142 | var n = UInt32(nodeCount)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/NNDescentGPU.swift:245:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
243 | }
244 |
245 | let pipeline = try await context.pipelineCache.pipeline(for: "bitonic_sort_neighbors")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
246 | let threadgroupWidth = degree / 2
247 | guard threadgroupWidth <= pipeline.maxTotalThreadsPerThreadgroup else {
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalBackend.swift:45:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
43 | }
44 |
45 | let pipeline = try await context.pipelineCache.pipeline(for: functionName)
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
46 |
47 | let scalarSize = MemoryLayout<Float>.stride
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalBackend.swift:1:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
2 |
3 | public final class MetalBackend: ComputeBackend, @unchecked Sendable {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:87:29: error: value of type 'any MTLCommandBuffer' has no member 'completed'
85 | try encode(commandBuffer)
86 | commandBuffer.commit()
87 | await commandBuffer.completed()
| `- error: value of type 'any MTLCommandBuffer' has no member 'completed'
88 |
89 | if let error = commandBuffer.error {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:102:29: error: value of type 'any MTLCommandBuffer' has no member 'completed'
100 | try encode(commandBuffer)
101 | commandBuffer.commit()
102 | await commandBuffer.completed()
| `- error: value of type 'any MTLCommandBuffer' has no member 'completed'
103 |
104 | if let error = commandBuffer.error {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:96:37: error: non-sendable type 'any MTLCommandQueue' returned by call to actor-isolated function cannot cross actor boundary
94 | /// Like execute(), but picks a queue from the pool for pipelining concurrent calls.
95 | public func executeOnPool(_ encode: (MTLCommandBuffer) throws -> Void) async throws {
96 | let queue = await queuePool.next()
| `- error: non-sendable type 'any MTLCommandQueue' returned by call to actor-isolated function cannot cross actor boundary
97 | guard let commandBuffer = queue.makeCommandBuffer() else {
98 | throw ANNSError.constructionFailed("Failed to create command buffer from pool queue")
Metal.MTLCommandQueue:2:17: note: protocol 'MTLCommandQueue' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLCommandQueue : NSObjectProtocol {
| `- note: protocol 'MTLCommandQueue' does not conform to the 'Sendable' protocol
3 | var label: String? { get set }
4 | var device: any MTLDevice { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:2:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Foundation
2 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
3 | import os.log
4 |
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalBackend.swift:45:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
43 | }
44 |
45 | let pipeline = try await context.pipelineCache.pipeline(for: functionName)
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
46 |
47 | let scalarSize = MemoryLayout<Float>.stride
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalBackend.swift:1:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
2 |
3 | public final class MetalBackend: ComputeBackend, @unchecked Sendable {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:87:29: error: value of type 'any MTLCommandBuffer' has no member 'completed'
85 | try encode(commandBuffer)
86 | commandBuffer.commit()
87 | await commandBuffer.completed()
| `- error: value of type 'any MTLCommandBuffer' has no member 'completed'
88 |
89 | if let error = commandBuffer.error {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:102:29: error: value of type 'any MTLCommandBuffer' has no member 'completed'
100 | try encode(commandBuffer)
101 | commandBuffer.commit()
102 | await commandBuffer.completed()
| `- error: value of type 'any MTLCommandBuffer' has no member 'completed'
103 |
104 | if let error = commandBuffer.error {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:96:37: error: non-sendable type 'any MTLCommandQueue' returned by call to actor-isolated function cannot cross actor boundary
94 | /// Like execute(), but picks a queue from the pool for pipelining concurrent calls.
95 | public func executeOnPool(_ encode: (MTLCommandBuffer) throws -> Void) async throws {
96 | let queue = await queuePool.next()
| `- error: non-sendable type 'any MTLCommandQueue' returned by call to actor-isolated function cannot cross actor boundary
97 | guard let commandBuffer = queue.makeCommandBuffer() else {
98 | throw ANNSError.constructionFailed("Failed to create command buffer from pool queue")
Metal.MTLCommandQueue:2:17: note: protocol 'MTLCommandQueue' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLCommandQueue : NSObjectProtocol {
| `- note: protocol 'MTLCommandQueue' does not conform to the 'Sendable' protocol
3 | var label: String? { get set }
4 | var device: any MTLDevice { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:2:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Foundation
2 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
3 | import os.log
4 |
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalBackend.swift:45:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
43 | }
44 |
45 | let pipeline = try await context.pipelineCache.pipeline(for: functionName)
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
46 |
47 | let scalarSize = MemoryLayout<Float>.stride
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalBackend.swift:1:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
2 |
3 | public final class MetalBackend: ComputeBackend, @unchecked Sendable {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:87:29: error: value of type 'any MTLCommandBuffer' has no member 'completed'
85 | try encode(commandBuffer)
86 | commandBuffer.commit()
87 | await commandBuffer.completed()
| `- error: value of type 'any MTLCommandBuffer' has no member 'completed'
88 |
89 | if let error = commandBuffer.error {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:102:29: error: value of type 'any MTLCommandBuffer' has no member 'completed'
100 | try encode(commandBuffer)
101 | commandBuffer.commit()
102 | await commandBuffer.completed()
| `- error: value of type 'any MTLCommandBuffer' has no member 'completed'
103 |
104 | if let error = commandBuffer.error {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:96:37: error: non-sendable type 'any MTLCommandQueue' returned by call to actor-isolated function cannot cross actor boundary
94 | /// Like execute(), but picks a queue from the pool for pipelining concurrent calls.
95 | public func executeOnPool(_ encode: (MTLCommandBuffer) throws -> Void) async throws {
96 | let queue = await queuePool.next()
| `- error: non-sendable type 'any MTLCommandQueue' returned by call to actor-isolated function cannot cross actor boundary
97 | guard let commandBuffer = queue.makeCommandBuffer() else {
98 | throw ANNSError.constructionFailed("Failed to create command buffer from pool queue")
Metal.MTLCommandQueue:2:17: note: protocol 'MTLCommandQueue' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLCommandQueue : NSObjectProtocol {
| `- note: protocol 'MTLCommandQueue' does not conform to the 'Sendable' protocol
3 | var label: String? { get set }
4 | var device: any MTLDevice { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:2:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Foundation
2 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
3 | import os.log
4 |
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalBackend.swift:45:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
43 | }
44 |
45 | let pipeline = try await context.pipelineCache.pipeline(for: functionName)
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
46 |
47 | let scalarSize = MemoryLayout<Float>.stride
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalBackend.swift:1:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
2 |
3 | public final class MetalBackend: ComputeBackend, @unchecked Sendable {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:87:29: error: value of type 'any MTLCommandBuffer' has no member 'completed'
85 | try encode(commandBuffer)
86 | commandBuffer.commit()
87 | await commandBuffer.completed()
| `- error: value of type 'any MTLCommandBuffer' has no member 'completed'
88 |
89 | if let error = commandBuffer.error {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:102:29: error: value of type 'any MTLCommandBuffer' has no member 'completed'
100 | try encode(commandBuffer)
101 | commandBuffer.commit()
102 | await commandBuffer.completed()
| `- error: value of type 'any MTLCommandBuffer' has no member 'completed'
103 |
104 | if let error = commandBuffer.error {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:96:37: error: non-sendable type 'any MTLCommandQueue' returned by call to actor-isolated function cannot cross actor boundary
94 | /// Like execute(), but picks a queue from the pool for pipelining concurrent calls.
95 | public func executeOnPool(_ encode: (MTLCommandBuffer) throws -> Void) async throws {
96 | let queue = await queuePool.next()
| `- error: non-sendable type 'any MTLCommandQueue' returned by call to actor-isolated function cannot cross actor boundary
97 | guard let commandBuffer = queue.makeCommandBuffer() else {
98 | throw ANNSError.constructionFailed("Failed to create command buffer from pool queue")
Metal.MTLCommandQueue:2:17: note: protocol 'MTLCommandQueue' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLCommandQueue : NSObjectProtocol {
| `- note: protocol 'MTLCommandQueue' does not conform to the 'Sendable' protocol
3 | var label: String? { get set }
4 | var device: any MTLDevice { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:2:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Foundation
2 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
3 | import os.log
4 |
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalBackend.swift:45:56: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
43 | }
44 |
45 | let pipeline = try await context.pipelineCache.pipeline(for: functionName)
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
46 |
47 | let scalarSize = MemoryLayout<Float>.stride
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalBackend.swift:1:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
2 |
3 | public final class MetalBackend: ComputeBackend, @unchecked Sendable {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:87:29: error: value of type 'any MTLCommandBuffer' has no member 'completed'
85 | try encode(commandBuffer)
86 | commandBuffer.commit()
87 | await commandBuffer.completed()
| `- error: value of type 'any MTLCommandBuffer' has no member 'completed'
88 |
89 | if let error = commandBuffer.error {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:102:29: error: value of type 'any MTLCommandBuffer' has no member 'completed'
100 | try encode(commandBuffer)
101 | commandBuffer.commit()
102 | await commandBuffer.completed()
| `- error: value of type 'any MTLCommandBuffer' has no member 'completed'
103 |
104 | if let error = commandBuffer.error {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:96:37: error: non-sendable type 'any MTLCommandQueue' returned by call to actor-isolated function cannot cross actor boundary
94 | /// Like execute(), but picks a queue from the pool for pipelining concurrent calls.
95 | public func executeOnPool(_ encode: (MTLCommandBuffer) throws -> Void) async throws {
96 | let queue = await queuePool.next()
| `- error: non-sendable type 'any MTLCommandQueue' returned by call to actor-isolated function cannot cross actor boundary
97 | guard let commandBuffer = queue.makeCommandBuffer() else {
98 | throw ANNSError.constructionFailed("Failed to create command buffer from pool queue")
Metal.MTLCommandQueue:2:17: note: protocol 'MTLCommandQueue' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLCommandQueue : NSObjectProtocol {
| `- note: protocol 'MTLCommandQueue' does not conform to the 'Sendable' protocol
3 | var label: String? { get set }
4 | var device: any MTLDevice { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/MetalDevice.swift:2:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Foundation
2 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
3 | import os.log
4 |
[186/235] Compiling GRDB ReadWriteLock.swift
[187/235] Compiling GRDB ReceiveValuesOn.swift
[188/235] Compiling GRDB Refinable.swift
[189/235] Compiling GRDB Utils.swift
[190/235] Compiling GRDB DatabaseCancellable.swift
[191/235] Compiling GRDB ValueConcurrentObserver.swift
[192/235] Compiling GRDB ValueWriteOnlyObserver.swift
[193/235] Compiling GRDB Fetch.swift
[194/235] Compiling GRDB Map.swift
[195/235] Compiling GRDB RemoveDuplicates.swift
[196/235] Compiling GRDB Trace.swift
[197/235] Compiling GRDB ValueReducer.swift
[198/235] Compiling GRDB SharedValueObservation.swift
[199/235] Compiling GRDB ValueObservation.swift
[200/235] Compiling GRDB ValueObservationScheduler.swift
[201/235] Compiling GRDB resource_bundle_accessor.swift
[202/235] Compiling GRDB Configuration.swift
[203/235] Compiling GRDB Cursor.swift
[204/235] Compiling GRDB Database+Schema.swift
[205/235] Compiling GRDB Database+Statements.swift
[206/235] Compiling GRDB Database.swift
[211/235] Compiling GRDB DatabaseRegionObservation.swift
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/GPUADCSearch.swift:118:61: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
116 | }
117 |
118 | let tablePipeline = try await context.pipelineCache.pipeline(for: "pq_compute_distance_table")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
119 | let scanPipeline = try await context.pipelineCache.pipeline(for: "pq_adc_scan")
120 |
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/GPUADCSearch.swift:2:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Foundation
2 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
3 |
4 | public enum GPUADCSearch {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/GPUADCSearch.swift:119:60: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
117 |
118 | let tablePipeline = try await context.pipelineCache.pipeline(for: "pq_compute_distance_table")
119 | let scanPipeline = try await context.pipelineCache.pipeline(for: "pq_adc_scan")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
120 |
121 | var mU32 = UInt32(m)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
[212/235] Compiling GRDB DatabaseSchemaCache.swift
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/GPUADCSearch.swift:118:61: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
116 | }
117 |
118 | let tablePipeline = try await context.pipelineCache.pipeline(for: "pq_compute_distance_table")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
119 | let scanPipeline = try await context.pipelineCache.pipeline(for: "pq_adc_scan")
120 |
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/GPUADCSearch.swift:2:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Foundation
2 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
3 |
4 | public enum GPUADCSearch {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/GPUADCSearch.swift:119:60: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
117 |
118 | let tablePipeline = try await context.pipelineCache.pipeline(for: "pq_compute_distance_table")
119 | let scanPipeline = try await context.pipelineCache.pipeline(for: "pq_adc_scan")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
120 |
121 | var mU32 = UInt32(m)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
[213/235] Compiling GRDB DatabaseSchemaSource.swift
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/GPUADCSearch.swift:118:61: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
116 | }
117 |
118 | let tablePipeline = try await context.pipelineCache.pipeline(for: "pq_compute_distance_table")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
119 | let scanPipeline = try await context.pipelineCache.pipeline(for: "pq_adc_scan")
120 |
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/GPUADCSearch.swift:2:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Foundation
2 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
3 |
4 | public enum GPUADCSearch {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/GPUADCSearch.swift:119:60: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
117 |
118 | let tablePipeline = try await context.pipelineCache.pipeline(for: "pq_compute_distance_table")
119 | let scanPipeline = try await context.pipelineCache.pipeline(for: "pq_adc_scan")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
120 |
121 | var mU32 = UInt32(m)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/GPUADCSearch.swift:118:61: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
116 | }
117 |
118 | let tablePipeline = try await context.pipelineCache.pipeline(for: "pq_compute_distance_table")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
119 | let scanPipeline = try await context.pipelineCache.pipeline(for: "pq_adc_scan")
120 |
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/GPUADCSearch.swift:2:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Foundation
2 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
3 |
4 | public enum GPUADCSearch {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/GPUADCSearch.swift:119:60: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
117 |
118 | let tablePipeline = try await context.pipelineCache.pipeline(for: "pq_compute_distance_table")
119 | let scanPipeline = try await context.pipelineCache.pipeline(for: "pq_adc_scan")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
120 |
121 | var mU32 = UInt32(m)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/GPUADCSearch.swift:118:61: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
116 | }
117 |
118 | let tablePipeline = try await context.pipelineCache.pipeline(for: "pq_compute_distance_table")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
119 | let scanPipeline = try await context.pipelineCache.pipeline(for: "pq_adc_scan")
120 |
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/GPUADCSearch.swift:2:1: warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
1 | import Foundation
2 | import Metal
| `- warning: add '@preconcurrency' to treat 'Sendable'-related errors from module 'Metal' as warnings
3 |
4 | public enum GPUADCSearch {
/Users/admin/builder/spi-builder-workspace/Sources/MetalANNSCore/GPUADCSearch.swift:119:60: error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
117 |
118 | let tablePipeline = try await context.pipelineCache.pipeline(for: "pq_compute_distance_table")
119 | let scanPipeline = try await context.pipelineCache.pipeline(for: "pq_adc_scan")
| `- error: non-sendable type 'any MTLComputePipelineState' returned by call to actor-isolated function cannot cross actor boundary
120 |
121 | var mU32 = UInt32(m)
Metal.MTLComputePipelineState:2:17: note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.11, *)
2 | public protocol MTLComputePipelineState : NSObjectProtocol {
| `- note: protocol 'MTLComputePipelineState' does not conform to the 'Sendable' protocol
3 | @available(macOS 10.13, *)
4 | var label: String? { get }
Fetching https://github.com/groue/GRDB.swift.git
[1/113619] Fetching grdb.swift
Fetched https://github.com/groue/GRDB.swift.git from cache (11.87s)
Computing version for https://github.com/groue/GRDB.swift.git
Computed https://github.com/groue/GRDB.swift.git at 7.8.0 (3.98s)
Creating working copy for https://github.com/groue/GRDB.swift.git
Working copy of https://github.com/groue/GRDB.swift.git resolved at 7.8.0
BUILD FAILURE 6.0 macosSpm