Build Information
Successful build of Neuron, reference 2.0.24 (cdea55
), with Swift 6.1 for macOS (SPM) on 30 Apr 2025 12:32:12 UTC.
Swift 6 data race errors: 1
Build Command
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
Build Log
========================================
RunAll
========================================
Builder version: 4.61.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/wvabrinskas/Neuron.git
Reference: 2.0.24
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/wvabrinskas/Neuron
* tag 2.0.24 -> FETCH_HEAD
HEAD is now at cdea55a Merge develop (#99)
Cloned https://github.com/wvabrinskas/Neuron.git
Revision (git rev-parse @):
cdea55a67ec494b275b9aacab6fb2c43b216a07f
SUCCESS checkout https://github.com/wvabrinskas/Neuron.git at 2.0.24
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/wvabrinskas/Neuron.git
https://github.com/wvabrinskas/Neuron.git
{
"dependencies" : [
{
"identity" : "numswift",
"requirement" : {
"range" : [
{
"lower_bound" : "2.0.13",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/wvabrinskas/NumSwift.git"
},
{
"identity" : "logger",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.6",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/wvabrinskas/Logger.git"
},
{
"identity" : "swift-numerics",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-numerics"
}
],
"manifest_display_name" : "Neuron",
"name" : "Neuron",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "14.0"
},
{
"name" : "tvos",
"version" : "14.0"
},
{
"name" : "watchos",
"version" : "7.0"
},
{
"name" : "macos",
"version" : "11.0"
}
],
"products" : [
{
"name" : "Neuron",
"targets" : [
"Neuron"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "NeuronTests",
"module_type" : "SwiftTarget",
"name" : "NeuronTests",
"path" : "Tests/NeuronTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/NeuronTests/Resources/pretrained-classifier-color.smodel",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"DecayFunctionTests.swift",
"FullModelTests.swift",
"ImporterTests.swift",
"LayerTests.swift",
"ModelUtilitiesTests.swift",
"Models/ColorType.swift",
"NeuronTests.swift",
"TensorMathTests.swift",
"Utilities/Resource.swift",
"VectorizeTests.swift"
],
"target_dependencies" : [
"Neuron"
],
"type" : "test"
},
{
"c99name" : "Neuron",
"module_type" : "SwiftTarget",
"name" : "Neuron",
"path" : "Sources/Neuron",
"product_dependencies" : [
"NumSwift",
"Logger",
"Numerics"
],
"product_memberships" : [
"Neuron"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Resources/GPU.metal",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Resources/print-example.png",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Constants.swift",
"Datasets/Dataset.swift",
"Devices/CPU.swift",
"Devices/Devices.swift",
"Devices/GPU.swift",
"Devices/GPUManager.swift",
"Export/ExportHelper.swift",
"Export/LayerModel.swift",
"Export/LayerModelConverter.swift",
"Gradient.swift",
"Importers/Importer.swift",
"Importers/Remote.swift",
"Initializers.swift",
"Layers/Activations/Activation.swift",
"Layers/Activations/GeLu.swift",
"Layers/Activations/LeakyReLu.swift",
"Layers/Activations/ReLu.swift",
"Layers/Activations/SeLu.swift",
"Layers/Activations/Sigmoid.swift",
"Layers/Activations/Softmax.swift",
"Layers/Activations/Swish.swift",
"Layers/Activations/Tanh.swift",
"Layers/AvgPool.swift",
"Layers/BatchNormalize.swift",
"Layers/Conv2d.swift",
"Layers/Dense.swift",
"Layers/Dropout.swift",
"Layers/Embedding/Embedding.swift",
"Layers/Flatten.swift",
"Layers/LSTM/LSTM.swift",
"Layers/LSTM/LSTMCell.swift",
"Layers/LSTM/OutputCell.swift",
"Layers/Layer.swift",
"Layers/LayerNormalize.swift",
"Layers/MaxPool.swift",
"Layers/Reshape.swift",
"Layers/TransConv2d.swift",
"Models/Classifier.swift",
"Models/GAN.swift",
"Models/RNN.swift",
"Models/Utilities/Accuracy.swift",
"Models/WGAN.swift",
"Models/WGANGP.swift",
"Optimizers/Adam.swift",
"Optimizers/DecayFunction/DecayFunction.swift",
"Optimizers/DecayFunction/ExponentialDecay.swift",
"Optimizers/LossFunction/LossFunction.swift",
"Optimizers/Optimizer.swift",
"Optimizers/RMSProp.swift",
"Optimizers/SGD.swift",
"Tensor/Tensor.swift",
"Tensor/TensorContext.swift",
"Tensor/TensorMath.swift",
"Tensor/TensorSize.swift",
"Trainable/Sequential.swift",
"Trainable/Trainable.swift",
"Utilities/Extensions+Numbers.swift",
"Utilities/Extensions+String.swift",
"Utilities/Extensions+ThreadSafety.swift",
"Utilities/Metrics.swift",
"Utilities/ModelBuilder.swift",
"Utilities/NormalDistribution.swift",
"Utilities/Storage.swift",
"Utilities/Vectorize.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
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/12] Write sources
[4/12] Copying print-example.png
[4/12] Write sources
[4/12] Copying GPU.metal
[6/12] Write sources
[8/12] Compiling _NumericsShims _NumericsShims.c
[9/12] Write swift-version-2F0A5646E1D333AE.txt
[10/24] Compiling NumSwiftC numswiftc_base.c
[11/24] Compiling NumSwiftC numswiftc.c
[13/34] Emitting module RealModule
[14/35] Compiling RealModule ElementaryFunctions.swift
[15/35] Compiling RealModule ApproximateEquality.swift
[16/35] Compiling RealModule AugmentedArithmetic.swift
[17/35] Compiling RealModule AlgebraicField.swift
[18/35] Compiling RealModule Float+Real.swift
[19/35] Compiling RealModule Real.swift
[20/35] Compiling RealModule Float80+Real.swift
[21/35] Compiling RealModule Float16+Real.swift
[22/35] Compiling RealModule Double+Real.swift
[23/35] Compiling RealModule RealFunctions.swift
[24/40] Compiling ComplexModule Complex.swift
[25/40] Compiling ComplexModule Differentiable.swift
[26/40] Compiling ComplexModule Arithmetic.swift
[27/40] Compiling ComplexModule ElementaryFunctions.swift
[28/40] Emitting module ComplexModule
[29/42] Emitting module Numerics
[30/42] Compiling Numerics Numerics.swift
[31/42] Emitting module Logger
[32/42] Compiling Logger Logger.swift
[33/42] Compiling NumSwift NumSwiftC.swift
[34/42] Compiling NumSwift NumSwiftC_Float16.swift
[35/42] Compiling NumSwift NumSwiftCF16Base.swift
[36/42] Compiling NumSwift Float16.swift
[37/42] Compiling NumSwift Float32.swift
[38/42] Compiling NumSwift BaseNumeric.swift
[39/42] Compiling NumSwift Extensions.swift
[40/42] Compiling NumSwift Double.swift
[41/42] Emitting module NumSwift
[42/42] Compiling NumSwift NumSwift.swift
[43/102] Compiling Neuron TensorSize.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Extensions+ThreadSafety.swift:65:9: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
63 | if barrier {
64 | self.addBarrierBlock {
65 | block()
| |- warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
66 | group.leave()
67 | }
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Extensions+ThreadSafety.swift:71:9: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
69 | } else {
70 | self.addOperation {
71 | block()
| |- warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
72 | group.leave()
73 | }
[44/102] Compiling Neuron Sequential.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Extensions+ThreadSafety.swift:65:9: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
63 | if barrier {
64 | self.addBarrierBlock {
65 | block()
| |- warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
66 | group.leave()
67 | }
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Extensions+ThreadSafety.swift:71:9: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
69 | } else {
70 | self.addOperation {
71 | block()
| |- warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
72 | group.leave()
73 | }
[45/102] Compiling Neuron Trainable.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Extensions+ThreadSafety.swift:65:9: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
63 | if barrier {
64 | self.addBarrierBlock {
65 | block()
| |- warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
66 | group.leave()
67 | }
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Extensions+ThreadSafety.swift:71:9: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
69 | } else {
70 | self.addOperation {
71 | block()
| |- warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
72 | group.leave()
73 | }
[46/102] Compiling Neuron Extensions+Numbers.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Extensions+ThreadSafety.swift:65:9: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
63 | if barrier {
64 | self.addBarrierBlock {
65 | block()
| |- warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
66 | group.leave()
67 | }
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Extensions+ThreadSafety.swift:71:9: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
69 | } else {
70 | self.addOperation {
71 | block()
| |- warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
72 | group.leave()
73 | }
[47/102] Compiling Neuron Extensions+String.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Extensions+ThreadSafety.swift:65:9: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
63 | if barrier {
64 | self.addBarrierBlock {
65 | block()
| |- warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
66 | group.leave()
67 | }
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Extensions+ThreadSafety.swift:71:9: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
69 | } else {
70 | self.addOperation {
71 | block()
| |- warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
72 | group.leave()
73 | }
[48/102] Compiling Neuron Extensions+ThreadSafety.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Extensions+ThreadSafety.swift:65:9: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
63 | if barrier {
64 | self.addBarrierBlock {
65 | block()
| |- warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
66 | group.leave()
67 | }
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Extensions+ThreadSafety.swift:71:9: warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
69 | } else {
70 | self.addOperation {
71 | block()
| |- warning: capture of 'block' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
72 | group.leave()
73 | }
[49/108] Emitting module Neuron
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Devices/GPUManager.swift:26:21: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'GPUManager' may have shared mutable state; this is an error in the Swift 6 language mode
23 | public typealias ResultType = CFloat
24 |
25 | public class GPUManager {
| `- note: class 'GPUManager' does not conform to the 'Sendable' protocol
26 | public static let shared = GPUManager()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'GPUManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | public enum MetalFunction: String {
[50/108] Compiling Neuron Flatten.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:7: warning: capture of 'self' with non-sendable type 'MaxPool' in a '@Sendable' closure
10 |
11 | /// Will decrease the size of the input tensor by half using a max pooling technique.
12 | public final class MaxPool: BaseLayer {
| `- note: class 'MaxPool' does not conform to the 'Sendable' protocol
13 | internal struct PoolingIndex: Hashable, Codable {
14 | var r: Int
:
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: capture of 'self' with non-sendable type 'MaxPool' in a '@Sendable' closure
107 | }
108 |
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:56: warning: capture of 'tensor' with non-sendable type 'Tensor' in a '@Sendable' closure
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: capture of 'tensor' with non-sendable type 'Tensor' in a '@Sendable' closure
107 | }
108 |
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Tensor/Tensor.swift:19:14: note: class 'Tensor' does not conform to the 'Sendable' protocol
17 | /// The fundamental base for all arithmetic in the network. It holds a reference to the backpropgation graph as well as the values of the forward pass.
18 | /// Its `value` property is a 3D array for all instances.
19 | public class Tensor: Equatable, Codable {
| `- note: class 'Tensor' does not conform to the 'Sendable' protocol
20 | public static func == (lhs: Tensor, rhs: Tensor) -> Bool {
21 | lhs.value == rhs.value || lhs.id == rhs.id // not sure at all why there's an ID property
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:35: warning: reference to captured var 'currentIndicies' in concurrently-executing code
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: reference to captured var 'currentIndicies' in concurrently-executing code
107 | }
108 |
[51/108] Compiling Neuron LSTM.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:7: warning: capture of 'self' with non-sendable type 'MaxPool' in a '@Sendable' closure
10 |
11 | /// Will decrease the size of the input tensor by half using a max pooling technique.
12 | public final class MaxPool: BaseLayer {
| `- note: class 'MaxPool' does not conform to the 'Sendable' protocol
13 | internal struct PoolingIndex: Hashable, Codable {
14 | var r: Int
:
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: capture of 'self' with non-sendable type 'MaxPool' in a '@Sendable' closure
107 | }
108 |
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:56: warning: capture of 'tensor' with non-sendable type 'Tensor' in a '@Sendable' closure
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: capture of 'tensor' with non-sendable type 'Tensor' in a '@Sendable' closure
107 | }
108 |
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Tensor/Tensor.swift:19:14: note: class 'Tensor' does not conform to the 'Sendable' protocol
17 | /// The fundamental base for all arithmetic in the network. It holds a reference to the backpropgation graph as well as the values of the forward pass.
18 | /// Its `value` property is a 3D array for all instances.
19 | public class Tensor: Equatable, Codable {
| `- note: class 'Tensor' does not conform to the 'Sendable' protocol
20 | public static func == (lhs: Tensor, rhs: Tensor) -> Bool {
21 | lhs.value == rhs.value || lhs.id == rhs.id // not sure at all why there's an ID property
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:35: warning: reference to captured var 'currentIndicies' in concurrently-executing code
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: reference to captured var 'currentIndicies' in concurrently-executing code
107 | }
108 |
[52/108] Compiling Neuron LSTMCell.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:7: warning: capture of 'self' with non-sendable type 'MaxPool' in a '@Sendable' closure
10 |
11 | /// Will decrease the size of the input tensor by half using a max pooling technique.
12 | public final class MaxPool: BaseLayer {
| `- note: class 'MaxPool' does not conform to the 'Sendable' protocol
13 | internal struct PoolingIndex: Hashable, Codable {
14 | var r: Int
:
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: capture of 'self' with non-sendable type 'MaxPool' in a '@Sendable' closure
107 | }
108 |
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:56: warning: capture of 'tensor' with non-sendable type 'Tensor' in a '@Sendable' closure
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: capture of 'tensor' with non-sendable type 'Tensor' in a '@Sendable' closure
107 | }
108 |
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Tensor/Tensor.swift:19:14: note: class 'Tensor' does not conform to the 'Sendable' protocol
17 | /// The fundamental base for all arithmetic in the network. It holds a reference to the backpropgation graph as well as the values of the forward pass.
18 | /// Its `value` property is a 3D array for all instances.
19 | public class Tensor: Equatable, Codable {
| `- note: class 'Tensor' does not conform to the 'Sendable' protocol
20 | public static func == (lhs: Tensor, rhs: Tensor) -> Bool {
21 | lhs.value == rhs.value || lhs.id == rhs.id // not sure at all why there's an ID property
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:35: warning: reference to captured var 'currentIndicies' in concurrently-executing code
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: reference to captured var 'currentIndicies' in concurrently-executing code
107 | }
108 |
[53/108] Compiling Neuron OutputCell.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:7: warning: capture of 'self' with non-sendable type 'MaxPool' in a '@Sendable' closure
10 |
11 | /// Will decrease the size of the input tensor by half using a max pooling technique.
12 | public final class MaxPool: BaseLayer {
| `- note: class 'MaxPool' does not conform to the 'Sendable' protocol
13 | internal struct PoolingIndex: Hashable, Codable {
14 | var r: Int
:
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: capture of 'self' with non-sendable type 'MaxPool' in a '@Sendable' closure
107 | }
108 |
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:56: warning: capture of 'tensor' with non-sendable type 'Tensor' in a '@Sendable' closure
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: capture of 'tensor' with non-sendable type 'Tensor' in a '@Sendable' closure
107 | }
108 |
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Tensor/Tensor.swift:19:14: note: class 'Tensor' does not conform to the 'Sendable' protocol
17 | /// The fundamental base for all arithmetic in the network. It holds a reference to the backpropgation graph as well as the values of the forward pass.
18 | /// Its `value` property is a 3D array for all instances.
19 | public class Tensor: Equatable, Codable {
| `- note: class 'Tensor' does not conform to the 'Sendable' protocol
20 | public static func == (lhs: Tensor, rhs: Tensor) -> Bool {
21 | lhs.value == rhs.value || lhs.id == rhs.id // not sure at all why there's an ID property
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:35: warning: reference to captured var 'currentIndicies' in concurrently-executing code
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: reference to captured var 'currentIndicies' in concurrently-executing code
107 | }
108 |
[54/108] Compiling Neuron Layer.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:7: warning: capture of 'self' with non-sendable type 'MaxPool' in a '@Sendable' closure
10 |
11 | /// Will decrease the size of the input tensor by half using a max pooling technique.
12 | public final class MaxPool: BaseLayer {
| `- note: class 'MaxPool' does not conform to the 'Sendable' protocol
13 | internal struct PoolingIndex: Hashable, Codable {
14 | var r: Int
:
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: capture of 'self' with non-sendable type 'MaxPool' in a '@Sendable' closure
107 | }
108 |
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:56: warning: capture of 'tensor' with non-sendable type 'Tensor' in a '@Sendable' closure
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: capture of 'tensor' with non-sendable type 'Tensor' in a '@Sendable' closure
107 | }
108 |
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Tensor/Tensor.swift:19:14: note: class 'Tensor' does not conform to the 'Sendable' protocol
17 | /// The fundamental base for all arithmetic in the network. It holds a reference to the backpropgation graph as well as the values of the forward pass.
18 | /// Its `value` property is a 3D array for all instances.
19 | public class Tensor: Equatable, Codable {
| `- note: class 'Tensor' does not conform to the 'Sendable' protocol
20 | public static func == (lhs: Tensor, rhs: Tensor) -> Bool {
21 | lhs.value == rhs.value || lhs.id == rhs.id // not sure at all why there's an ID property
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:35: warning: reference to captured var 'currentIndicies' in concurrently-executing code
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: reference to captured var 'currentIndicies' in concurrently-executing code
107 | }
108 |
[55/108] Compiling Neuron LayerNormalize.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:7: warning: capture of 'self' with non-sendable type 'MaxPool' in a '@Sendable' closure
10 |
11 | /// Will decrease the size of the input tensor by half using a max pooling technique.
12 | public final class MaxPool: BaseLayer {
| `- note: class 'MaxPool' does not conform to the 'Sendable' protocol
13 | internal struct PoolingIndex: Hashable, Codable {
14 | var r: Int
:
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: capture of 'self' with non-sendable type 'MaxPool' in a '@Sendable' closure
107 | }
108 |
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:56: warning: capture of 'tensor' with non-sendable type 'Tensor' in a '@Sendable' closure
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: capture of 'tensor' with non-sendable type 'Tensor' in a '@Sendable' closure
107 | }
108 |
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Tensor/Tensor.swift:19:14: note: class 'Tensor' does not conform to the 'Sendable' protocol
17 | /// The fundamental base for all arithmetic in the network. It holds a reference to the backpropgation graph as well as the values of the forward pass.
18 | /// Its `value` property is a 3D array for all instances.
19 | public class Tensor: Equatable, Codable {
| `- note: class 'Tensor' does not conform to the 'Sendable' protocol
20 | public static func == (lhs: Tensor, rhs: Tensor) -> Bool {
21 | lhs.value == rhs.value || lhs.id == rhs.id // not sure at all why there's an ID property
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:35: warning: reference to captured var 'currentIndicies' in concurrently-executing code
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: reference to captured var 'currentIndicies' in concurrently-executing code
107 | }
108 |
[56/108] Compiling Neuron MaxPool.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:7: warning: capture of 'self' with non-sendable type 'MaxPool' in a '@Sendable' closure
10 |
11 | /// Will decrease the size of the input tensor by half using a max pooling technique.
12 | public final class MaxPool: BaseLayer {
| `- note: class 'MaxPool' does not conform to the 'Sendable' protocol
13 | internal struct PoolingIndex: Hashable, Codable {
14 | var r: Int
:
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: capture of 'self' with non-sendable type 'MaxPool' in a '@Sendable' closure
107 | }
108 |
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:56: warning: capture of 'tensor' with non-sendable type 'Tensor' in a '@Sendable' closure
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: capture of 'tensor' with non-sendable type 'Tensor' in a '@Sendable' closure
107 | }
108 |
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Tensor/Tensor.swift:19:14: note: class 'Tensor' does not conform to the 'Sendable' protocol
17 | /// The fundamental base for all arithmetic in the network. It holds a reference to the backpropgation graph as well as the values of the forward pass.
18 | /// Its `value` property is a 3D array for all instances.
19 | public class Tensor: Equatable, Codable {
| `- note: class 'Tensor' does not conform to the 'Sendable' protocol
20 | public static func == (lhs: Tensor, rhs: Tensor) -> Bool {
21 | lhs.value == rhs.value || lhs.id == rhs.id // not sure at all why there's an ID property
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Layers/MaxPool.swift:106:35: warning: reference to captured var 'currentIndicies' in concurrently-executing code
104 |
105 | queue.addBarrierBlock {
106 | self.setGradients(indicies: currentIndicies, id: tensor.id)
| `- warning: reference to captured var 'currentIndicies' in concurrently-executing code
107 | }
108 |
[57/108] Compiling Neuron Tanh.swift
[58/108] Compiling Neuron AvgPool.swift
[59/108] Compiling Neuron BatchNormalize.swift
[60/108] Compiling Neuron Conv2d.swift
[61/108] Compiling Neuron Dense.swift
[62/108] Compiling Neuron Dropout.swift
[63/108] Compiling Neuron Embedding.swift
[64/108] Compiling Neuron Metrics.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:163:24: warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
127 |
128 | @dynamicMemberLookup
129 | public class MetricsReporter: MetricCalculator {
| `- note: class 'MetricsReporter' does not conform to the 'Sendable' protocol
130 | public var lock: NSLock = NSLock()
131 | internal var totalValCorrectGuesses: Int = 0
:
161 | public func startTimer(metric: Metric) {
162 | timerQueue.addBarrierBlock { [weak self] in
163 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
164 |
165 | if var hasTimers = self.timers[metric] {
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:165:38: warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
9 | import NumSwift
10 |
11 | public enum Metric: String {
| `- note: consider making enum 'Metric' conform to the 'Sendable' protocol
12 | case loss
13 | case accuracy
:
163 | guard let self = self else { return }
164 |
165 | if var hasTimers = self.timers[metric] {
| `- warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
166 | hasTimers.append(Date())
167 | self.timers[metric] = hasTimers
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:178:24: warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
127 |
128 | @dynamicMemberLookup
129 | public class MetricsReporter: MetricCalculator {
| `- note: class 'MetricsReporter' does not conform to the 'Sendable' protocol
130 | public var lock: NSLock = NSLock()
131 | internal var totalValCorrectGuesses: Int = 0
:
176 |
177 | timerQueue.addBarrierBlock { [weak self] in
178 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
179 |
180 | if let timer = self.timers[metric] {
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:180:34: warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
9 | import NumSwift
10 |
11 | public enum Metric: String {
| `- note: consider making enum 'Metric' conform to the 'Sendable' protocol
12 | case loss
13 | case accuracy
:
178 | guard let self = self else { return }
179 |
180 | if let timer = self.timers[metric] {
| `- warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
181 | let result = timer.map { Tensor.Scalar(Date().timeIntervalSince1970 - $0.timeIntervalSince1970) }
182 | let average = result.average
[65/108] Compiling Neuron ModelBuilder.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:163:24: warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
127 |
128 | @dynamicMemberLookup
129 | public class MetricsReporter: MetricCalculator {
| `- note: class 'MetricsReporter' does not conform to the 'Sendable' protocol
130 | public var lock: NSLock = NSLock()
131 | internal var totalValCorrectGuesses: Int = 0
:
161 | public func startTimer(metric: Metric) {
162 | timerQueue.addBarrierBlock { [weak self] in
163 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
164 |
165 | if var hasTimers = self.timers[metric] {
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:165:38: warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
9 | import NumSwift
10 |
11 | public enum Metric: String {
| `- note: consider making enum 'Metric' conform to the 'Sendable' protocol
12 | case loss
13 | case accuracy
:
163 | guard let self = self else { return }
164 |
165 | if var hasTimers = self.timers[metric] {
| `- warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
166 | hasTimers.append(Date())
167 | self.timers[metric] = hasTimers
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:178:24: warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
127 |
128 | @dynamicMemberLookup
129 | public class MetricsReporter: MetricCalculator {
| `- note: class 'MetricsReporter' does not conform to the 'Sendable' protocol
130 | public var lock: NSLock = NSLock()
131 | internal var totalValCorrectGuesses: Int = 0
:
176 |
177 | timerQueue.addBarrierBlock { [weak self] in
178 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
179 |
180 | if let timer = self.timers[metric] {
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:180:34: warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
9 | import NumSwift
10 |
11 | public enum Metric: String {
| `- note: consider making enum 'Metric' conform to the 'Sendable' protocol
12 | case loss
13 | case accuracy
:
178 | guard let self = self else { return }
179 |
180 | if let timer = self.timers[metric] {
| `- warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
181 | let result = timer.map { Tensor.Scalar(Date().timeIntervalSince1970 - $0.timeIntervalSince1970) }
182 | let average = result.average
[66/108] Compiling Neuron NormalDistribution.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:163:24: warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
127 |
128 | @dynamicMemberLookup
129 | public class MetricsReporter: MetricCalculator {
| `- note: class 'MetricsReporter' does not conform to the 'Sendable' protocol
130 | public var lock: NSLock = NSLock()
131 | internal var totalValCorrectGuesses: Int = 0
:
161 | public func startTimer(metric: Metric) {
162 | timerQueue.addBarrierBlock { [weak self] in
163 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
164 |
165 | if var hasTimers = self.timers[metric] {
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:165:38: warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
9 | import NumSwift
10 |
11 | public enum Metric: String {
| `- note: consider making enum 'Metric' conform to the 'Sendable' protocol
12 | case loss
13 | case accuracy
:
163 | guard let self = self else { return }
164 |
165 | if var hasTimers = self.timers[metric] {
| `- warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
166 | hasTimers.append(Date())
167 | self.timers[metric] = hasTimers
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:178:24: warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
127 |
128 | @dynamicMemberLookup
129 | public class MetricsReporter: MetricCalculator {
| `- note: class 'MetricsReporter' does not conform to the 'Sendable' protocol
130 | public var lock: NSLock = NSLock()
131 | internal var totalValCorrectGuesses: Int = 0
:
176 |
177 | timerQueue.addBarrierBlock { [weak self] in
178 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
179 |
180 | if let timer = self.timers[metric] {
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:180:34: warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
9 | import NumSwift
10 |
11 | public enum Metric: String {
| `- note: consider making enum 'Metric' conform to the 'Sendable' protocol
12 | case loss
13 | case accuracy
:
178 | guard let self = self else { return }
179 |
180 | if let timer = self.timers[metric] {
| `- warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
181 | let result = timer.map { Tensor.Scalar(Date().timeIntervalSince1970 - $0.timeIntervalSince1970) }
182 | let average = result.average
[67/108] Compiling Neuron Storage.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:163:24: warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
127 |
128 | @dynamicMemberLookup
129 | public class MetricsReporter: MetricCalculator {
| `- note: class 'MetricsReporter' does not conform to the 'Sendable' protocol
130 | public var lock: NSLock = NSLock()
131 | internal var totalValCorrectGuesses: Int = 0
:
161 | public func startTimer(metric: Metric) {
162 | timerQueue.addBarrierBlock { [weak self] in
163 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
164 |
165 | if var hasTimers = self.timers[metric] {
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:165:38: warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
9 | import NumSwift
10 |
11 | public enum Metric: String {
| `- note: consider making enum 'Metric' conform to the 'Sendable' protocol
12 | case loss
13 | case accuracy
:
163 | guard let self = self else { return }
164 |
165 | if var hasTimers = self.timers[metric] {
| `- warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
166 | hasTimers.append(Date())
167 | self.timers[metric] = hasTimers
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:178:24: warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
127 |
128 | @dynamicMemberLookup
129 | public class MetricsReporter: MetricCalculator {
| `- note: class 'MetricsReporter' does not conform to the 'Sendable' protocol
130 | public var lock: NSLock = NSLock()
131 | internal var totalValCorrectGuesses: Int = 0
:
176 |
177 | timerQueue.addBarrierBlock { [weak self] in
178 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
179 |
180 | if let timer = self.timers[metric] {
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:180:34: warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
9 | import NumSwift
10 |
11 | public enum Metric: String {
| `- note: consider making enum 'Metric' conform to the 'Sendable' protocol
12 | case loss
13 | case accuracy
:
178 | guard let self = self else { return }
179 |
180 | if let timer = self.timers[metric] {
| `- warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
181 | let result = timer.map { Tensor.Scalar(Date().timeIntervalSince1970 - $0.timeIntervalSince1970) }
182 | let average = result.average
[68/108] Compiling Neuron Vectorize.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:163:24: warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
127 |
128 | @dynamicMemberLookup
129 | public class MetricsReporter: MetricCalculator {
| `- note: class 'MetricsReporter' does not conform to the 'Sendable' protocol
130 | public var lock: NSLock = NSLock()
131 | internal var totalValCorrectGuesses: Int = 0
:
161 | public func startTimer(metric: Metric) {
162 | timerQueue.addBarrierBlock { [weak self] in
163 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
164 |
165 | if var hasTimers = self.timers[metric] {
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:165:38: warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
9 | import NumSwift
10 |
11 | public enum Metric: String {
| `- note: consider making enum 'Metric' conform to the 'Sendable' protocol
12 | case loss
13 | case accuracy
:
163 | guard let self = self else { return }
164 |
165 | if var hasTimers = self.timers[metric] {
| `- warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
166 | hasTimers.append(Date())
167 | self.timers[metric] = hasTimers
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:178:24: warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
127 |
128 | @dynamicMemberLookup
129 | public class MetricsReporter: MetricCalculator {
| `- note: class 'MetricsReporter' does not conform to the 'Sendable' protocol
130 | public var lock: NSLock = NSLock()
131 | internal var totalValCorrectGuesses: Int = 0
:
176 |
177 | timerQueue.addBarrierBlock { [weak self] in
178 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
179 |
180 | if let timer = self.timers[metric] {
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:180:34: warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
9 | import NumSwift
10 |
11 | public enum Metric: String {
| `- note: consider making enum 'Metric' conform to the 'Sendable' protocol
12 | case loss
13 | case accuracy
:
178 | guard let self = self else { return }
179 |
180 | if let timer = self.timers[metric] {
| `- warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
181 | let result = timer.map { Tensor.Scalar(Date().timeIntervalSince1970 - $0.timeIntervalSince1970) }
182 | let average = result.average
[69/108] Compiling Neuron resource_bundle_accessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:163:24: warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
127 |
128 | @dynamicMemberLookup
129 | public class MetricsReporter: MetricCalculator {
| `- note: class 'MetricsReporter' does not conform to the 'Sendable' protocol
130 | public var lock: NSLock = NSLock()
131 | internal var totalValCorrectGuesses: Int = 0
:
161 | public func startTimer(metric: Metric) {
162 | timerQueue.addBarrierBlock { [weak self] in
163 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
164 |
165 | if var hasTimers = self.timers[metric] {
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:165:38: warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
9 | import NumSwift
10 |
11 | public enum Metric: String {
| `- note: consider making enum 'Metric' conform to the 'Sendable' protocol
12 | case loss
13 | case accuracy
:
163 | guard let self = self else { return }
164 |
165 | if var hasTimers = self.timers[metric] {
| `- warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
166 | hasTimers.append(Date())
167 | self.timers[metric] = hasTimers
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:178:24: warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
127 |
128 | @dynamicMemberLookup
129 | public class MetricsReporter: MetricCalculator {
| `- note: class 'MetricsReporter' does not conform to the 'Sendable' protocol
130 | public var lock: NSLock = NSLock()
131 | internal var totalValCorrectGuesses: Int = 0
:
176 |
177 | timerQueue.addBarrierBlock { [weak self] in
178 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'MetricsReporter?' in a '@Sendable' closure
179 |
180 | if let timer = self.timers[metric] {
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Utilities/Metrics.swift:180:34: warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
9 | import NumSwift
10 |
11 | public enum Metric: String {
| `- note: consider making enum 'Metric' conform to the 'Sendable' protocol
12 | case loss
13 | case accuracy
:
178 | guard let self = self else { return }
179 |
180 | if let timer = self.timers[metric] {
| `- warning: capture of 'metric' with non-sendable type 'Metric' in a '@Sendable' closure
181 | let result = timer.map { Tensor.Scalar(Date().timeIntervalSince1970 - $0.timeIntervalSince1970) }
182 | let average = result.average
[70/108] Compiling Neuron LayerModel.swift
[71/108] Compiling Neuron LayerModelConverter.swift
[72/108] Compiling Neuron Gradient.swift
[73/108] Compiling Neuron Importer.swift
[74/108] Compiling Neuron Remote.swift
[75/108] Compiling Neuron Initializers.swift
[76/108] Compiling Neuron Activation.swift
[77/108] Compiling Neuron GeLu.swift
[78/108] Compiling Neuron LeakyReLu.swift
[79/108] Compiling Neuron ReLu.swift
[80/108] Compiling Neuron SeLu.swift
[81/108] Compiling Neuron Sigmoid.swift
[82/108] Compiling Neuron Softmax.swift
[83/108] Compiling Neuron Swish.swift
[84/108] Compiling Neuron Reshape.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Models/GAN.swift:91:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
89 | if i % validationFrequency == 0 {
90 | DispatchQueue.main.async {
91 | self.validateGenerator?(self.generate())
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
92 | }
93 |
[85/108] Compiling Neuron TransConv2d.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Models/GAN.swift:91:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
89 | if i % validationFrequency == 0 {
90 | DispatchQueue.main.async {
91 | self.validateGenerator?(self.generate())
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
92 | }
93 |
[86/108] Compiling Neuron Classifier.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Models/GAN.swift:91:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
89 | if i % validationFrequency == 0 {
90 | DispatchQueue.main.async {
91 | self.validateGenerator?(self.generate())
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
92 | }
93 |
[87/108] Compiling Neuron GAN.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Models/GAN.swift:91:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
89 | if i % validationFrequency == 0 {
90 | DispatchQueue.main.async {
91 | self.validateGenerator?(self.generate())
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
92 | }
93 |
[88/108] Compiling Neuron RNN.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Models/GAN.swift:91:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
89 | if i % validationFrequency == 0 {
90 | DispatchQueue.main.async {
91 | self.validateGenerator?(self.generate())
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
92 | }
93 |
[89/108] Compiling Neuron Accuracy.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Models/GAN.swift:91:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
89 | if i % validationFrequency == 0 {
90 | DispatchQueue.main.async {
91 | self.validateGenerator?(self.generate())
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
92 | }
93 |
[90/108] Compiling Neuron Constants.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Devices/GPUManager.swift:26:21: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'GPUManager' may have shared mutable state; this is an error in the Swift 6 language mode
23 | public typealias ResultType = CFloat
24 |
25 | public class GPUManager {
| `- note: class 'GPUManager' does not conform to the 'Sendable' protocol
26 | public static let shared = GPUManager()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'GPUManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | public enum MetalFunction: String {
[91/108] Compiling Neuron Dataset.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Devices/GPUManager.swift:26:21: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'GPUManager' may have shared mutable state; this is an error in the Swift 6 language mode
23 | public typealias ResultType = CFloat
24 |
25 | public class GPUManager {
| `- note: class 'GPUManager' does not conform to the 'Sendable' protocol
26 | public static let shared = GPUManager()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'GPUManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | public enum MetalFunction: String {
[92/108] Compiling Neuron CPU.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Devices/GPUManager.swift:26:21: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'GPUManager' may have shared mutable state; this is an error in the Swift 6 language mode
23 | public typealias ResultType = CFloat
24 |
25 | public class GPUManager {
| `- note: class 'GPUManager' does not conform to the 'Sendable' protocol
26 | public static let shared = GPUManager()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'GPUManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | public enum MetalFunction: String {
[93/108] Compiling Neuron Devices.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Devices/GPUManager.swift:26:21: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'GPUManager' may have shared mutable state; this is an error in the Swift 6 language mode
23 | public typealias ResultType = CFloat
24 |
25 | public class GPUManager {
| `- note: class 'GPUManager' does not conform to the 'Sendable' protocol
26 | public static let shared = GPUManager()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'GPUManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | public enum MetalFunction: String {
[94/108] Compiling Neuron GPU.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Devices/GPUManager.swift:26:21: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'GPUManager' may have shared mutable state; this is an error in the Swift 6 language mode
23 | public typealias ResultType = CFloat
24 |
25 | public class GPUManager {
| `- note: class 'GPUManager' does not conform to the 'Sendable' protocol
26 | public static let shared = GPUManager()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'GPUManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | public enum MetalFunction: String {
[95/108] Compiling Neuron GPUManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Devices/GPUManager.swift:26:21: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'GPUManager' may have shared mutable state; this is an error in the Swift 6 language mode
23 | public typealias ResultType = CFloat
24 |
25 | public class GPUManager {
| `- note: class 'GPUManager' does not conform to the 'Sendable' protocol
26 | public static let shared = GPUManager()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'GPUManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | public enum MetalFunction: String {
[96/108] Compiling Neuron ExportHelper.swift
/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Devices/GPUManager.swift:26:21: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'GPUManager' may have shared mutable state; this is an error in the Swift 6 language mode
23 | public typealias ResultType = CFloat
24 |
25 | public class GPUManager {
| `- note: class 'GPUManager' does not conform to the 'Sendable' protocol
26 | public static let shared = GPUManager()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'GPUManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 | public enum MetalFunction: String {
[97/108] Compiling Neuron Optimizer.swift
[98/108] Compiling Neuron RMSProp.swift
[99/108] Compiling Neuron SGD.swift
[100/108] Compiling Neuron Tensor.swift
[101/108] Compiling Neuron TensorContext.swift
[102/108] Compiling Neuron TensorMath.swift
[103/108] Compiling Neuron WGAN.swift
[104/108] Compiling Neuron WGANGP.swift
[105/108] Compiling Neuron Adam.swift
[106/108] Compiling Neuron DecayFunction.swift
[107/108] Compiling Neuron ExponentialDecay.swift
[108/108] Compiling Neuron LossFunction.swift
Build complete! (19.66s)
Fetching https://github.com/wvabrinskas/Logger.git
Fetching https://github.com/wvabrinskas/NumSwift.git
Fetching https://github.com/apple/swift-numerics from cache
[1/1179] Fetching numswift
[273/1286] Fetching numswift, logger
Fetched https://github.com/wvabrinskas/Logger.git from cache (0.79s)
Fetched https://github.com/apple/swift-numerics from cache (0.79s)
Fetched https://github.com/wvabrinskas/NumSwift.git from cache (0.79s)
Computing version for https://github.com/wvabrinskas/NumSwift.git
Computed https://github.com/wvabrinskas/NumSwift.git at 2.0.13 (1.71s)
Computing version for https://github.com/wvabrinskas/Logger.git
Computed https://github.com/wvabrinskas/Logger.git at 1.0.7 (0.54s)
Computing version for https://github.com/apple/swift-numerics
Computed https://github.com/apple/swift-numerics at 1.0.3 (0.56s)
Creating working copy for https://github.com/wvabrinskas/NumSwift.git
Working copy of https://github.com/wvabrinskas/NumSwift.git resolved at 2.0.13
Creating working copy for https://github.com/wvabrinskas/Logger.git
Working copy of https://github.com/wvabrinskas/Logger.git resolved at 1.0.7
Creating working copy for https://github.com/apple/swift-numerics
Working copy of https://github.com/apple/swift-numerics resolved at 1.0.3
Build complete.
{
"dependencies" : [
{
"identity" : "numswift",
"requirement" : {
"range" : [
{
"lower_bound" : "2.0.13",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/wvabrinskas/NumSwift.git"
},
{
"identity" : "logger",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.6",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/wvabrinskas/Logger.git"
},
{
"identity" : "swift-numerics",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-numerics"
}
],
"manifest_display_name" : "Neuron",
"name" : "Neuron",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "14.0"
},
{
"name" : "tvos",
"version" : "14.0"
},
{
"name" : "watchos",
"version" : "7.0"
},
{
"name" : "macos",
"version" : "11.0"
}
],
"products" : [
{
"name" : "Neuron",
"targets" : [
"Neuron"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "NeuronTests",
"module_type" : "SwiftTarget",
"name" : "NeuronTests",
"path" : "Tests/NeuronTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/NeuronTests/Resources/pretrained-classifier-color.smodel",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"DecayFunctionTests.swift",
"FullModelTests.swift",
"ImporterTests.swift",
"LayerTests.swift",
"ModelUtilitiesTests.swift",
"Models/ColorType.swift",
"NeuronTests.swift",
"TensorMathTests.swift",
"Utilities/Resource.swift",
"VectorizeTests.swift"
],
"target_dependencies" : [
"Neuron"
],
"type" : "test"
},
{
"c99name" : "Neuron",
"module_type" : "SwiftTarget",
"name" : "Neuron",
"path" : "Sources/Neuron",
"product_dependencies" : [
"NumSwift",
"Logger",
"Numerics"
],
"product_memberships" : [
"Neuron"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Resources/GPU.metal",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/Neuron/Resources/print-example.png",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Constants.swift",
"Datasets/Dataset.swift",
"Devices/CPU.swift",
"Devices/Devices.swift",
"Devices/GPU.swift",
"Devices/GPUManager.swift",
"Export/ExportHelper.swift",
"Export/LayerModel.swift",
"Export/LayerModelConverter.swift",
"Gradient.swift",
"Importers/Importer.swift",
"Importers/Remote.swift",
"Initializers.swift",
"Layers/Activations/Activation.swift",
"Layers/Activations/GeLu.swift",
"Layers/Activations/LeakyReLu.swift",
"Layers/Activations/ReLu.swift",
"Layers/Activations/SeLu.swift",
"Layers/Activations/Sigmoid.swift",
"Layers/Activations/Softmax.swift",
"Layers/Activations/Swish.swift",
"Layers/Activations/Tanh.swift",
"Layers/AvgPool.swift",
"Layers/BatchNormalize.swift",
"Layers/Conv2d.swift",
"Layers/Dense.swift",
"Layers/Dropout.swift",
"Layers/Embedding/Embedding.swift",
"Layers/Flatten.swift",
"Layers/LSTM/LSTM.swift",
"Layers/LSTM/LSTMCell.swift",
"Layers/LSTM/OutputCell.swift",
"Layers/Layer.swift",
"Layers/LayerNormalize.swift",
"Layers/MaxPool.swift",
"Layers/Reshape.swift",
"Layers/TransConv2d.swift",
"Models/Classifier.swift",
"Models/GAN.swift",
"Models/RNN.swift",
"Models/Utilities/Accuracy.swift",
"Models/WGAN.swift",
"Models/WGANGP.swift",
"Optimizers/Adam.swift",
"Optimizers/DecayFunction/DecayFunction.swift",
"Optimizers/DecayFunction/ExponentialDecay.swift",
"Optimizers/LossFunction/LossFunction.swift",
"Optimizers/Optimizer.swift",
"Optimizers/RMSProp.swift",
"Optimizers/SGD.swift",
"Tensor/Tensor.swift",
"Tensor/TensorContext.swift",
"Tensor/TensorMath.swift",
"Tensor/TensorSize.swift",
"Trainable/Sequential.swift",
"Trainable/Trainable.swift",
"Utilities/Extensions+Numbers.swift",
"Utilities/Extensions+String.swift",
"Utilities/Extensions+ThreadSafety.swift",
"Utilities/Metrics.swift",
"Utilities/ModelBuilder.swift",
"Utilities/NormalDistribution.swift",
"Utilities/Storage.swift",
"Utilities/Vectorize.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.