Build Information
Successful build of mlx-swift, reference main (6f5849
), with Swift 6.2 (beta) for macOS (SPM) on 10 Sep 2025 20:34:59 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64
Build Log
========================================
RunAll
========================================
Builder version: 4.67.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/ml-explore/mlx-swift.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/ml-explore/mlx-swift
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 6f58497 Make `MLXError` provide a description (#268)
Submodule path 'Source/Cmlx/mlx': checked out 'eaf709b83e559079e212699bfc9dd2f939d25c9a'
Submodule path 'Source/Cmlx/mlx-c': checked out '9ebe155864eab06d94ba18e01f9cb2666b2975a7'
Submodule 'submodules/mlx' (https://github.com/ml-explore/mlx) registered for path 'Source/Cmlx/mlx'
Submodule 'submodules/mlx-c' (https://github.com/ml-explore/mlx-c) registered for path 'Source/Cmlx/mlx-c'
Cloning into '/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx'...
Cloning into '/Users/admin/builder/spi-builder-workspace/Source/Cmlx/mlx-c'...
Cloned https://github.com/ml-explore/mlx-swift.git
Revision (git rev-parse @):
6f58497cd6959045c045bb85c11f4086d19c02d5
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/ml-explore/mlx-swift.git at main
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.2
Building package at path: $PWD
https://github.com/ml-explore/mlx-swift.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64
Building for debugging...
[0/175] Compiling error.cpp
[1/175] Write swift-version-1EA4D86E10B52AF.txt
[2/175] Compiling _NumericsShims _NumericsShims.c
[2/175] Write sources
[2/175] Write Tutorial-entitlement.plist
[2/175] Write sources
[15/186] Compiling format.cc
[16/186] Write Example1-entitlement.plist
[16/186] Write sources
[18/186] Compiling string.cpp
[19/186] Compiling device.cpp
[20/186] Compiling export.cpp
[21/186] Compiling compile.cpp
[22/186] Compiling transforms.cpp
[24/186] Compiling RealModule Float80+Real.swift
[25/186] Compiling RealModule Real.swift
[26/186] Compiling RealModule RealFunctions.swift
[27/187] Compiling RealModule Double+Real.swift
[28/187] Compiling RealModule Float+Real.swift
[29/187] Compiling RealModule AlgebraicField.swift
[30/187] Compiling RealModule ApproximateEquality.swift
[31/187] Emitting module RealModule
[32/187] Compiling RealModule Float16+Real.swift
[33/187] Compiling RealModule ElementaryFunctions.swift
[34/187] Compiling RealModule AugmentedArithmetic.swift
[35/187] Compiling RealModule RelaxedArithmetic.swift
[35/187] Compiling fast.cpp
[36/187] Compiling version.cpp
[38/198] Compiling ComplexModule Polar.swift
[39/199] Compiling ComplexModule Complex+IntegerLiteral.swift
[40/199] Compiling ComplexModule Complex+Hashable.swift
[41/199] Compiling ComplexModule Complex.swift
[42/199] Compiling ComplexModule Complex+StringConvertible.swift
[43/199] Compiling ComplexModule Complex+Numeric.swift
[43/199] Compiling closure.cpp
[45/199] Compiling ComplexModule Scale.swift
[46/199] Compiling ComplexModule Complex+ElementaryFunctions.swift
[47/199] Compiling ComplexModule Complex+Codable.swift
[48/199] Compiling ComplexModule Complex+AdditiveArithmetic.swift
[49/199] Compiling ComplexModule Complex+AlgebraicField.swift
[50/199] Emitting module ComplexModule
[50/199] Compiling array.cpp
[51/199] Compiling utils.cpp
[52/201] Compiling scheduler.cpp
[54/201] Compiling Numerics Numerics.swift
[55/201] Emitting module Numerics
[55/201] Compiling no_gguf.cpp
[56/201] Compiling random.cpp
[57/201] Compiling linalg.cpp
[58/201] Compiling fft.cpp
[59/201] Compiling graph_utils.cpp
[60/201] Compiling load.cpp
[61/201] Compiling primitives.cpp
[62/201] Compiling transforms.cpp
[63/201] Compiling dtype.cpp
[64/201] Compiling dtype_utils.cpp
[65/201] Compiling no_ring.cpp
[66/201] Compiling einsum.cpp
[67/201] Compiling safetensors.cpp
[68/201] Compiling no_mpi.cpp
[69/201] Compiling primitives.cpp
[70/201] Compiling device.cpp
[71/201] Compiling ops.cpp
[72/201] Compiling distributed.cpp
[73/201] Compiling ops.cpp
[74/201] Compiling fast.cpp
[75/201] Compiling slicing.cpp
[76/201] Compiling utils.cpp
[77/201] Compiling compile.cpp
[78/201] Compiling unary.cpp
[79/201] Compiling ternary.cpp
[80/201] Compiling softmax.cpp
[81/201] Compiling sort.cpp
[82/201] Compiling scan.cpp
[83/201] Compiling scaled_dot_product_attention.cpp
[84/201] Compiling resident.cpp
[85/201] Compiling rope.cpp
[86/201] Compiling reduce.cpp
[87/201] Compiling normalization.cpp
[88/201] Compiling primitives.cpp
[89/201] Compiling metal.cpp
[90/201] Compiling quantized.cpp
[91/201] Compiling logsumexp.cpp
[92/201] Compiling matmul.cpp
[93/201] Compiling export.cpp
[94/201] Compiling event.cpp
[95/201] Compiling fence.cpp
[96/201] Compiling indexing.cpp
[97/201] Compiling jit_kernels.cpp
[98/201] Compiling distributed.cpp
[99/201] Compiling hadamard.cpp
[100/201] Compiling threefry.cpp
[101/201] Compiling custom_kernel.cpp
[102/201] Compiling copy.cpp
[103/201] Compiling fft.cpp
[104/201] Compiling device.cpp
[105/201] Compiling allocator.cpp
[106/201] Compiling binary.cpp
[107/201] Compiling conv.cpp
[108/201] Compiling compiled.cpp
[109/201] Compiling select.cpp
[110/201] Compiling softmax.cpp
[111/201] Compiling svd.cpp
[112/201] Compiling scan.cpp
[113/201] Compiling quantized.cpp
[114/201] Compiling sort.cpp
[115/201] Compiling qrf.cpp
[116/201] Compiling primitives.cpp
[117/201] Compiling matmul.cpp
[118/201] Compiling unary.cpp
[119/201] Compiling jit_compiler.cpp
[120/201] Compiling logsumexp.cpp
[121/201] Compiling luf.cpp
[122/201] Compiling masked_mm.cpp
[123/201] Compiling hadamard.cpp
[124/201] Compiling cblas.cpp
[125/201] Compiling encoder.cpp
[126/201] Compiling bnns.cpp
[127/201] Compiling inverse.cpp
[128/201] Compiling eval.cpp
[129/201] Compiling fft.cpp
[130/201] Compiling reduce.cpp
[131/201] Compiling distributed.cpp
[132/201] Compiling utils.cpp
[133/201] Compiling slicing.cpp
[134/201] Compiling eigh.cpp
[135/201] Compiling reduce.cpp
[136/201] Compiling arg_reduce.cpp
[137/201] Compiling indexing.cpp
[138/201] Compiling cholesky.cpp
[139/201] Compiling utils.cpp
[140/201] Compiling unary_ops.cpp
[141/201] Compiling broadcasting.cpp
[142/201] Compiling unary.cpp
[143/201] Compiling ternary_ops.cpp
[144/201] Compiling allocator.cpp
[145/201] Compiling ternary.cpp
[146/201] Compiling steel_gemm_splitk.cpp
[147/201] Compiling steel_gemm_masked.cpp
[148/201] Compiling steel_gemm_gather.cpp
[149/201] Compiling steel_gemm_fused.cpp
[150/201] Compiling steel_conv_general.cpp
[151/201] Compiling compiled.cpp
[152/201] Compiling load.cpp
[153/201] Compiling steel_conv.cpp
[154/201] Compiling sort.cpp
[155/201] Compiling softmax.cpp
[156/201] Compiling scatter_axis.cpp
[157/201] Compiling scatter.cpp
[158/201] Compiling scan.cpp
[159/201] Compiling reduce_utils.cpp
[160/201] Compiling reduce.cpp
[161/201] Compiling quantized.cpp
[162/201] Compiling logsumexp.cpp
[163/201] Compiling hadamard.cpp
[164/201] Compiling gemv_masked.cpp
[165/201] Compiling gemm.cpp
[166/201] Compiling gather_axis.cpp
[167/201] Compiling gather.cpp
[168/201] Compiling fft.cpp
[169/201] Compiling copy.cpp
[170/201] Compiling common.cpp
[171/201] Compiling conv.cpp
[172/201] Compiling binary_two.cpp
[173/201] Compiling compiled_preamble.cpp
[174/201] Compiling binary_ops.cpp
[175/201] Compiling binary.cpp
[176/201] Compiling arange.cpp
[177/201] Compiling conv.cpp
[178/201] Compiling array.cpp
[179/201] Compiling copy.cpp
[180/201] Compiling version.cpp
[181/201] Compiling stream.cpp
[182/201] Compiling random.cpp
[183/201] Compiling transforms_impl.cpp
[184/201] Compiling vector.cpp
[185/201] Compiling metal.cpp
[186/201] Compiling ops.cpp
[187/201] Compiling compiled_conditional.cpp
[188/201] Compiling memory.cpp
[189/201] Compiling linalg.cpp
[190/201] Compiling io_types.cpp
[191/201] Compiling map.cpp
[192/201] Compiling fft.cpp
[193/201] Compiling io.cpp
[194/201] Compiling binary.cpp
[196/232] Compiling MLX Transforms+Compile.swift
[197/232] Compiling MLX Transforms+Eval.swift
[198/232] Compiling MLX Transforms+Grad.swift
[199/235] Emitting module MLX
[200/235] Compiling MLX ArrayAt.swift
[201/235] Compiling MLX Cmlx+Util.swift
[202/235] Compiling MLX DType.swift
[203/235] Compiling MLX Device.swift
[204/235] Compiling MLX MLXFastKernel.swift
[205/235] Compiling MLX Nested.swift
[206/235] Compiling MLX Ops+Array.swift
[207/235] Compiling MLX MLXArray+Ops.swift
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/include/mlx/c/array.h:325:1: note: built-in type 'Complex' not supported
323 | * Array must be evaluated, otherwise returns NULL.
324 | */
325 | const float _Complex* mlx_array_data_complex64(const mlx_array arr);
| `- note: built-in type 'Complex' not supported
326 |
327 | #ifdef HAS_FLOAT16
[208/235] Compiling MLX MLXArray.swift
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/include/mlx/c/array.h:325:1: note: built-in type 'Complex' not supported
323 | * Array must be evaluated, otherwise returns NULL.
324 | */
325 | const float _Complex* mlx_array_data_complex64(const mlx_array arr);
| `- note: built-in type 'Complex' not supported
326 |
327 | #ifdef HAS_FLOAT16
[209/235] Compiling MLX MLXFast.swift
/Users/admin/builder/spi-builder-workspace/Source/Cmlx/include/mlx/c/array.h:325:1: note: built-in type 'Complex' not supported
323 | * Array must be evaluated, otherwise returns NULL.
324 | */
325 | const float _Complex* mlx_array_data_complex64(const mlx_array arr);
| `- note: built-in type 'Complex' not supported
326 |
327 | #ifdef HAS_FLOAT16
[210/235] Compiling MLX Foundation+Util.swift
[211/235] Compiling MLX GPU.swift
[212/235] Compiling MLX IO.swift
[213/235] Compiling MLX Linalg.swift
[214/235] Compiling MLX ErrorHandler.swift
[215/235] Compiling MLX Export.swift
[216/235] Compiling MLX FFT.swift
[217/235] Compiling MLX Factory.swift
[218/235] Compiling MLX Random.swift
[219/235] Compiling MLX State.swift
[220/235] Compiling MLX Stream.swift
[221/235] Compiling MLX Ops.swift
[222/235] Compiling MLX ParameterTypes.swift
[223/235] Compiling MLX Protocols.swift
[224/235] Compiling MLX MLXArray+Bytes.swift
/Users/admin/builder/spi-builder-workspace/Source/MLX/MLXArray+Bytes.swift:288:13: warning: initialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it [#no-usage]
286 | /// - ``asData(access:)``
287 | public func asMTLBuffer(device: any MTLDevice, noCopy: Bool = false) -> (any MTLBuffer)? {
288 | let data = asData(access: noCopy ? .noCopyIfContiguous : .copy)
| `- warning: initialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it [#no-usage]
289 |
290 | self.eval()
[225/235] Compiling MLX MLXArray+Indexing.swift
/Users/admin/builder/spi-builder-workspace/Source/MLX/MLXArray+Bytes.swift:288:13: warning: initialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it [#no-usage]
286 | /// - ``asData(access:)``
287 | public func asMTLBuffer(device: any MTLDevice, noCopy: Bool = false) -> (any MTLBuffer)? {
288 | let data = asData(access: noCopy ? .noCopyIfContiguous : .copy)
| `- warning: initialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it [#no-usage]
289 |
290 | self.eval()
[226/235] Compiling MLX MLXArray+Init.swift
/Users/admin/builder/spi-builder-workspace/Source/MLX/MLXArray+Bytes.swift:288:13: warning: initialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it [#no-usage]
286 | /// - ``asData(access:)``
287 | public func asMTLBuffer(device: any MTLDevice, noCopy: Bool = false) -> (any MTLBuffer)? {
288 | let data = asData(access: noCopy ? .noCopyIfContiguous : .copy)
| `- warning: initialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it [#no-usage]
289 |
290 | self.eval()
[227/235] Compiling MLX Transforms+Internal.swift
/Users/admin/builder/spi-builder-workspace/Source/MLX/Transforms+Vmap.swift:33:18: warning: result of call to 'withUnsafeBufferPointer' is unused [#no-usage]
31 |
32 | let closure = new_mlx_closure(f)
33 | inAxes32.withUnsafeBufferPointer { inAxesBuf in
| `- warning: result of call to 'withUnsafeBufferPointer' is unused [#no-usage]
34 | mlx_detail_vmap_trace(
35 | &traceInputs, &traceOutputs, closure, inputs, inAxesBuf.baseAddress, inAxesBuf.count
/Users/admin/builder/spi-builder-workspace/Source/MLX/Transforms+Vmap.swift:46:18: warning: result of call to 'withUnsafeBufferPointer' is unused [#no-usage]
44 |
45 | var result = mlx_vector_array_new()
46 | inAxes32.withUnsafeBufferPointer { inAxesBuf in
| `- warning: result of call to 'withUnsafeBufferPointer' is unused [#no-usage]
47 | outAxes32.withUnsafeBufferPointer { outAxesBuf in
48 | mlx_detail_vmap_replace(
[228/235] Compiling MLX Transforms+Vmap.swift
/Users/admin/builder/spi-builder-workspace/Source/MLX/Transforms+Vmap.swift:33:18: warning: result of call to 'withUnsafeBufferPointer' is unused [#no-usage]
31 |
32 | let closure = new_mlx_closure(f)
33 | inAxes32.withUnsafeBufferPointer { inAxesBuf in
| `- warning: result of call to 'withUnsafeBufferPointer' is unused [#no-usage]
34 | mlx_detail_vmap_trace(
35 | &traceInputs, &traceOutputs, closure, inputs, inAxesBuf.baseAddress, inAxesBuf.count
/Users/admin/builder/spi-builder-workspace/Source/MLX/Transforms+Vmap.swift:46:18: warning: result of call to 'withUnsafeBufferPointer' is unused [#no-usage]
44 |
45 | var result = mlx_vector_array_new()
46 | inAxes32.withUnsafeBufferPointer { inAxesBuf in
| `- warning: result of call to 'withUnsafeBufferPointer' is unused [#no-usage]
47 | outAxes32.withUnsafeBufferPointer { outAxesBuf in
48 | mlx_detail_vmap_replace(
[229/235] Compiling MLX Transforms.swift
/Users/admin/builder/spi-builder-workspace/Source/MLX/Transforms+Vmap.swift:33:18: warning: result of call to 'withUnsafeBufferPointer' is unused [#no-usage]
31 |
32 | let closure = new_mlx_closure(f)
33 | inAxes32.withUnsafeBufferPointer { inAxesBuf in
| `- warning: result of call to 'withUnsafeBufferPointer' is unused [#no-usage]
34 | mlx_detail_vmap_trace(
35 | &traceInputs, &traceOutputs, closure, inputs, inAxesBuf.baseAddress, inAxesBuf.count
/Users/admin/builder/spi-builder-workspace/Source/MLX/Transforms+Vmap.swift:46:18: warning: result of call to 'withUnsafeBufferPointer' is unused [#no-usage]
44 |
45 | var result = mlx_vector_array_new()
46 | inAxes32.withUnsafeBufferPointer { inAxesBuf in
| `- warning: result of call to 'withUnsafeBufferPointer' is unused [#no-usage]
47 | outAxes32.withUnsafeBufferPointer { outAxesBuf in
48 | mlx_detail_vmap_replace(
[230/248] Compiling MLXLinalg Linalg.swift
[231/248] Emitting module MLXLinalg
[232/248] Compiling MLXFast MLXFastKernel.swift
[233/248] Emitting module MLXFast
[234/248] Compiling MLXFast MLXFast.swift
[235/248] Compiling MLXFFT FFT.swift
[236/248] Emitting module MLXFFT
[237/248] Emitting module Example1
[238/248] Compiling Example1 Example1.swift
[238/248] Write Objects.LinkFileList
[240/248] Emitting module MLXRandom
[241/248] Compiling MLXRandom Random.swift
[242/248] Compiling Tutorial Tutorial.swift
[243/248] Emitting module Tutorial
[243/248] Write Objects.LinkFileList
[245/266] Compiling MLXNN Containers.swift
[246/266] Compiling MLXNN Convolution.swift
[247/267] Compiling MLXNN ConvolutionTransposed.swift
[248/267] Compiling MLXNN Dropout.swift
[249/267] Compiling MLXNN Upsample.swift
[250/267] Compiling MLXNN ValueAndGrad.swift
[251/267] Emitting module MLXNN
[252/267] Compiling MLXNN Activations.swift
[253/267] Compiling MLXNN Cache.swift
[254/267] Compiling MLXNN PositionalEncoding.swift
[255/267] Compiling MLXNN Quantized.swift
[256/267] Compiling MLXNN Recurrent.swift
[257/267] Compiling MLXNN Transformer.swift
[258/267] Compiling MLXNN Normalization.swift
[259/267] Compiling MLXNN Pooling.swift
[260/267] Compiling MLXNN Losses.swift
/Users/admin/builder/spi-builder-workspace/Source/MLXNN/Module.swift:465:42: warning: immutable value 'p' was never used; consider replacing with '_' or removing it [#no-usage]
463 | p._updateInternal(newArray)
464 |
465 | case (.value(.parameters(let p)), .none):
| `- warning: immutable value 'p' was never used; consider replacing with '_' or removing it [#no-usage]
466 | if Self.parameterIsValid(key) {
467 | throw UpdateError.keyNotFound(path: path, modules: modulePath)
/Users/admin/builder/spi-builder-workspace/Source/MLXNN/Module.swift:1377:34: warning: conditional downcast from 'T?' to 'T' does nothing
1375 | // note: this gives a warning but it does in fact do something
1376 | // in the case where this is e.g. ParameterInfo<MLXArray?>
1377 | if let value = value as? T {
| `- warning: conditional downcast from 'T?' to 'T' does nothing
1378 | return value
1379 | } else {
/Users/admin/builder/spi-builder-workspace/Source/MLXNN/Module.swift:1490:36: warning: conditional downcast from 'T?' to 'T' does nothing
1488 | // note: this gives a warning but it does in fact do something
1489 | // in the case where this is e.g. ModuleInfo<Linear?>
1490 | if let module = module as? T {
| `- warning: conditional downcast from 'T?' to 'T' does nothing
1491 | return module
1492 | } else {
/Users/admin/builder/spi-builder-workspace/Source/MLXNN/Module.swift:288:13: warning: default will never be executed
286 | return isAllNone ? .none : .array(result)
287 |
288 | default:
| `- warning: default will never be executed
289 | fatalError("Unexpected leaf \(vk) = \(v)")
290 | }
[261/267] Compiling MLXNN Module.swift
/Users/admin/builder/spi-builder-workspace/Source/MLXNN/Module.swift:465:42: warning: immutable value 'p' was never used; consider replacing with '_' or removing it [#no-usage]
463 | p._updateInternal(newArray)
464 |
465 | case (.value(.parameters(let p)), .none):
| `- warning: immutable value 'p' was never used; consider replacing with '_' or removing it [#no-usage]
466 | if Self.parameterIsValid(key) {
467 | throw UpdateError.keyNotFound(path: path, modules: modulePath)
/Users/admin/builder/spi-builder-workspace/Source/MLXNN/Module.swift:1377:34: warning: conditional downcast from 'T?' to 'T' does nothing
1375 | // note: this gives a warning but it does in fact do something
1376 | // in the case where this is e.g. ParameterInfo<MLXArray?>
1377 | if let value = value as? T {
| `- warning: conditional downcast from 'T?' to 'T' does nothing
1378 | return value
1379 | } else {
/Users/admin/builder/spi-builder-workspace/Source/MLXNN/Module.swift:1490:36: warning: conditional downcast from 'T?' to 'T' does nothing
1488 | // note: this gives a warning but it does in fact do something
1489 | // in the case where this is e.g. ModuleInfo<Linear?>
1490 | if let module = module as? T {
| `- warning: conditional downcast from 'T?' to 'T' does nothing
1491 | return module
1492 | } else {
/Users/admin/builder/spi-builder-workspace/Source/MLXNN/Module.swift:288:13: warning: default will never be executed
286 | return isAllNone ? .none : .array(result)
287 |
288 | default:
| `- warning: default will never be executed
289 | fatalError("Unexpected leaf \(vk) = \(v)")
290 | }
[262/267] Compiling MLXNN Embedding.swift
[263/267] Compiling MLXNN Linear.swift
[264/269] Emitting module MLXOptimizers
[265/269] Compiling MLXOptimizers Optimizers.swift
[265/269] Linking Example1
[266/269] Linking Tutorial
[267/269] Applying Example1
[268/269] Applying Tutorial
Build complete! (32.18s)
Fetching https://github.com/apple/swift-numerics
[1/6348] Fetching swift-numerics
Fetched https://github.com/apple/swift-numerics from cache (1.17s)
Computing version for https://github.com/apple/swift-numerics
Computed https://github.com/apple/swift-numerics at 1.1.0 (1.61s)
Creating working copy for https://github.com/apple/swift-numerics
Working copy of https://github.com/apple/swift-numerics resolved at 1.1.0
warning: 'spi-builder-workspace': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/Users/admin/builder/spi-builder-workspace/Source/Examples/Example1.swift
warning: 'spi-builder-workspace': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/Users/admin/builder/spi-builder-workspace/Source/Examples/Tutorial.swift
Build complete.
{
"cxx_language_standard" : "gnu++17",
"dependencies" : [
{
"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" : "mlx-swift",
"name" : "mlx-swift",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.3"
},
{
"name" : "ios",
"version" : "16.0"
},
{
"name" : "tvos",
"version" : "16.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "MLX",
"targets" : [
"MLX"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "MLXRandom",
"targets" : [
"MLXRandom"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "MLXNN",
"targets" : [
"MLXNN"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "MLXOptimizers",
"targets" : [
"MLXOptimizers"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "MLXFFT",
"targets" : [
"MLXFFT"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "MLXLinalg",
"targets" : [
"MLXLinalg"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "MLXFast",
"targets" : [
"MLXFast"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "Tutorial",
"targets" : [
"Tutorial"
],
"type" : {
"executable" : null
}
},
{
"name" : "Example1",
"targets" : [
"Example1"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "Tutorial",
"module_type" : "SwiftTarget",
"name" : "Tutorial",
"path" : "Source/Examples",
"product_memberships" : [
"Tutorial"
],
"sources" : [
"Tutorial.swift"
],
"target_dependencies" : [
"MLX"
],
"type" : "executable"
},
{
"c99name" : "MLXTests",
"module_type" : "SwiftTarget",
"name" : "MLXTests",
"path" : "Tests/MLXTests",
"sources" : [
"ArrayAtTests.swift",
"DTypeTests.swift",
"ErrorTests.swift",
"ExportTests.swift",
"GPUTests.swift",
"IntegrationTests.swift",
"LinalgTests.swift",
"LossTests.swift",
"MLXArray+IndexingTests.swift",
"MLXArray+InitTests.swift",
"MLXArray+OpsTests.swift",
"MLXArrayTests.swift",
"MLXFastKernelTests.swift",
"MLXRandomTests.swift",
"ModuleTests.swift",
"NestedTests.swift",
"OpsTests.swift",
"OptimizerTests.swift",
"PoolingTests.swift",
"SaveTests.swift",
"StreamTests.swift",
"SubclassTests.swift",
"TransformTests.swift",
"UpsampleTests.swift",
"Utils.swift"
],
"target_dependencies" : [
"MLX",
"MLXRandom",
"MLXNN",
"MLXOptimizers",
"MLXFFT",
"MLXLinalg",
"MLXFast"
],
"type" : "test"
},
{
"c99name" : "MLXRandom",
"module_type" : "SwiftTarget",
"name" : "MLXRandom",
"path" : "Source/MLXRandom",
"product_memberships" : [
"MLXRandom",
"MLXNN",
"MLXOptimizers"
],
"sources" : [
"Random.swift"
],
"target_dependencies" : [
"MLX"
],
"type" : "library"
},
{
"c99name" : "MLXOptimizers",
"module_type" : "SwiftTarget",
"name" : "MLXOptimizers",
"path" : "Source/MLXOptimizers",
"product_memberships" : [
"MLXOptimizers"
],
"sources" : [
"Optimizers.swift"
],
"target_dependencies" : [
"MLX",
"MLXNN"
],
"type" : "library"
},
{
"c99name" : "MLXNN",
"module_type" : "SwiftTarget",
"name" : "MLXNN",
"path" : "Source/MLXNN",
"product_memberships" : [
"MLXNN",
"MLXOptimizers"
],
"sources" : [
"Activations.swift",
"Cache.swift",
"Containers.swift",
"Convolution.swift",
"ConvolutionTransposed.swift",
"Dropout.swift",
"Embedding.swift",
"Linear.swift",
"Losses.swift",
"Module.swift",
"Normalization.swift",
"Pooling.swift",
"PositionalEncoding.swift",
"Quantized.swift",
"Recurrent.swift",
"Transformer.swift",
"Upsample.swift",
"ValueAndGrad.swift"
],
"target_dependencies" : [
"MLX",
"MLXRandom",
"MLXFast"
],
"type" : "library"
},
{
"c99name" : "MLXLinalg",
"module_type" : "SwiftTarget",
"name" : "MLXLinalg",
"path" : "Source/MLXLinalg",
"product_memberships" : [
"MLXLinalg"
],
"sources" : [
"Linalg.swift"
],
"target_dependencies" : [
"MLX"
],
"type" : "library"
},
{
"c99name" : "MLXFast",
"module_type" : "SwiftTarget",
"name" : "MLXFast",
"path" : "Source/MLXFast",
"product_memberships" : [
"MLXNN",
"MLXOptimizers",
"MLXFast"
],
"sources" : [
"MLXFast.swift",
"MLXFastKernel.swift"
],
"target_dependencies" : [
"MLX",
"Cmlx"
],
"type" : "library"
},
{
"c99name" : "MLXFFT",
"module_type" : "SwiftTarget",
"name" : "MLXFFT",
"path" : "Source/MLXFFT",
"product_memberships" : [
"MLXFFT"
],
"sources" : [
"FFT.swift"
],
"target_dependencies" : [
"MLX"
],
"type" : "library"
},
{
"c99name" : "MLX",
"module_type" : "SwiftTarget",
"name" : "MLX",
"path" : "Source/MLX",
"product_dependencies" : [
"Numerics"
],
"product_memberships" : [
"MLX",
"MLXRandom",
"MLXNN",
"MLXOptimizers",
"MLXFFT",
"MLXLinalg",
"MLXFast",
"Tutorial",
"Example1"
],
"sources" : [
"ArrayAt.swift",
"Cmlx+Util.swift",
"DType.swift",
"Device.swift",
"ErrorHandler.swift",
"Export.swift",
"FFT.swift",
"Factory.swift",
"Foundation+Util.swift",
"GPU.swift",
"IO.swift",
"Linalg.swift",
"MLXArray+Bytes.swift",
"MLXArray+Indexing.swift",
"MLXArray+Init.swift",
"MLXArray+Ops.swift",
"MLXArray.swift",
"MLXFast.swift",
"MLXFastKernel.swift",
"Nested.swift",
"Ops+Array.swift",
"Ops.swift",
"ParameterTypes.swift",
"Protocols.swift",
"Random.swift",
"State.swift",
"Stream.swift",
"Transforms+Compile.swift",
"Transforms+Eval.swift",
"Transforms+Grad.swift",
"Transforms+Internal.swift",
"Transforms+Vmap.swift",
"Transforms.swift"
],
"target_dependencies" : [
"Cmlx"
],
"type" : "library"
},
{
"c99name" : "Example1",
"module_type" : "SwiftTarget",
"name" : "Example1",
"path" : "Source/Examples",
"product_memberships" : [
"Example1"
],
"sources" : [
"Example1.swift"
],
"target_dependencies" : [
"MLX"
],
"type" : "executable"
},
{
"c99name" : "CmlxTests",
"module_type" : "SwiftTarget",
"name" : "CmlxTests",
"path" : "Tests/CmlxTests",
"sources" : [
"CmlxTests.swift"
],
"target_dependencies" : [
"Cmlx"
],
"type" : "test"
},
{
"c99name" : "Cmlx",
"module_type" : "ClangTarget",
"name" : "Cmlx",
"path" : "Source/Cmlx",
"product_memberships" : [
"MLX",
"MLXRandom",
"MLXNN",
"MLXOptimizers",
"MLXFFT",
"MLXLinalg",
"MLXFast",
"Tutorial",
"Example1"
],
"sources" : [
"fmt/src/format.cc",
"mlx-c/mlx/c/array.cpp",
"mlx-c/mlx/c/closure.cpp",
"mlx-c/mlx/c/compile.cpp",
"mlx-c/mlx/c/device.cpp",
"mlx-c/mlx/c/error.cpp",
"mlx-c/mlx/c/export.cpp",
"mlx-c/mlx/c/fast.cpp",
"mlx-c/mlx/c/fft.cpp",
"mlx-c/mlx/c/io.cpp",
"mlx-c/mlx/c/io_types.cpp",
"mlx-c/mlx/c/linalg.cpp",
"mlx-c/mlx/c/map.cpp",
"mlx-c/mlx/c/memory.cpp",
"mlx-c/mlx/c/metal.cpp",
"mlx-c/mlx/c/ops.cpp",
"mlx-c/mlx/c/random.cpp",
"mlx-c/mlx/c/stream.cpp",
"mlx-c/mlx/c/string.cpp",
"mlx-c/mlx/c/transforms.cpp",
"mlx-c/mlx/c/transforms_impl.cpp",
"mlx-c/mlx/c/vector.cpp",
"mlx-c/mlx/c/version.cpp",
"mlx-conditional/compiled_conditional.cpp",
"mlx-generated/arange.cpp",
"mlx-generated/binary.cpp",
"mlx-generated/binary_ops.cpp",
"mlx-generated/binary_two.cpp",
"mlx-generated/compiled_preamble.cpp",
"mlx-generated/conv.cpp",
"mlx-generated/copy.cpp",
"mlx-generated/fft.cpp",
"mlx-generated/gather.cpp",
"mlx-generated/gather_axis.cpp",
"mlx-generated/gemm.cpp",
"mlx-generated/gemv_masked.cpp",
"mlx-generated/hadamard.cpp",
"mlx-generated/logsumexp.cpp",
"mlx-generated/quantized.cpp",
"mlx-generated/reduce.cpp",
"mlx-generated/reduce_utils.cpp",
"mlx-generated/scan.cpp",
"mlx-generated/scatter.cpp",
"mlx-generated/scatter_axis.cpp",
"mlx-generated/softmax.cpp",
"mlx-generated/sort.cpp",
"mlx-generated/steel_conv.cpp",
"mlx-generated/steel_conv_general.cpp",
"mlx-generated/steel_gemm_fused.cpp",
"mlx-generated/steel_gemm_gather.cpp",
"mlx-generated/steel_gemm_masked.cpp",
"mlx-generated/steel_gemm_splitk.cpp",
"mlx-generated/ternary.cpp",
"mlx-generated/ternary_ops.cpp",
"mlx-generated/unary.cpp",
"mlx-generated/unary_ops.cpp",
"mlx-generated/utils.cpp",
"mlx/mlx/allocator.cpp",
"mlx/mlx/array.cpp",
"mlx/mlx/backend/common/broadcasting.cpp",
"mlx/mlx/backend/common/common.cpp",
"mlx/mlx/backend/common/compiled.cpp",
"mlx/mlx/backend/common/load.cpp",
"mlx/mlx/backend/common/reduce.cpp",
"mlx/mlx/backend/common/slicing.cpp",
"mlx/mlx/backend/common/utils.cpp",
"mlx/mlx/backend/cpu/arg_reduce.cpp",
"mlx/mlx/backend/cpu/binary.cpp",
"mlx/mlx/backend/cpu/cholesky.cpp",
"mlx/mlx/backend/cpu/conv.cpp",
"mlx/mlx/backend/cpu/copy.cpp",
"mlx/mlx/backend/cpu/distributed.cpp",
"mlx/mlx/backend/cpu/eigh.cpp",
"mlx/mlx/backend/cpu/encoder.cpp",
"mlx/mlx/backend/cpu/eval.cpp",
"mlx/mlx/backend/cpu/fft.cpp",
"mlx/mlx/backend/cpu/gemms/bnns.cpp",
"mlx/mlx/backend/cpu/gemms/cblas.cpp",
"mlx/mlx/backend/cpu/hadamard.cpp",
"mlx/mlx/backend/cpu/indexing.cpp",
"mlx/mlx/backend/cpu/inverse.cpp",
"mlx/mlx/backend/cpu/jit_compiler.cpp",
"mlx/mlx/backend/cpu/logsumexp.cpp",
"mlx/mlx/backend/cpu/luf.cpp",
"mlx/mlx/backend/cpu/masked_mm.cpp",
"mlx/mlx/backend/cpu/matmul.cpp",
"mlx/mlx/backend/cpu/primitives.cpp",
"mlx/mlx/backend/cpu/qrf.cpp",
"mlx/mlx/backend/cpu/quantized.cpp",
"mlx/mlx/backend/cpu/reduce.cpp",
"mlx/mlx/backend/cpu/scan.cpp",
"mlx/mlx/backend/cpu/select.cpp",
"mlx/mlx/backend/cpu/softmax.cpp",
"mlx/mlx/backend/cpu/sort.cpp",
"mlx/mlx/backend/cpu/svd.cpp",
"mlx/mlx/backend/cpu/threefry.cpp",
"mlx/mlx/backend/cpu/unary.cpp",
"mlx/mlx/backend/metal/allocator.cpp",
"mlx/mlx/backend/metal/binary.cpp",
"mlx/mlx/backend/metal/compiled.cpp",
"mlx/mlx/backend/metal/conv.cpp",
"mlx/mlx/backend/metal/copy.cpp",
"mlx/mlx/backend/metal/custom_kernel.cpp",
"mlx/mlx/backend/metal/device.cpp",
"mlx/mlx/backend/metal/distributed.cpp",
"mlx/mlx/backend/metal/event.cpp",
"mlx/mlx/backend/metal/fence.cpp",
"mlx/mlx/backend/metal/fft.cpp",
"mlx/mlx/backend/metal/hadamard.cpp",
"mlx/mlx/backend/metal/indexing.cpp",
"mlx/mlx/backend/metal/jit_kernels.cpp",
"mlx/mlx/backend/metal/logsumexp.cpp",
"mlx/mlx/backend/metal/matmul.cpp",
"mlx/mlx/backend/metal/metal.cpp",
"mlx/mlx/backend/metal/normalization.cpp",
"mlx/mlx/backend/metal/primitives.cpp",
"mlx/mlx/backend/metal/quantized.cpp",
"mlx/mlx/backend/metal/reduce.cpp",
"mlx/mlx/backend/metal/resident.cpp",
"mlx/mlx/backend/metal/rope.cpp",
"mlx/mlx/backend/metal/scaled_dot_product_attention.cpp",
"mlx/mlx/backend/metal/scan.cpp",
"mlx/mlx/backend/metal/slicing.cpp",
"mlx/mlx/backend/metal/softmax.cpp",
"mlx/mlx/backend/metal/sort.cpp",
"mlx/mlx/backend/metal/ternary.cpp",
"mlx/mlx/backend/metal/unary.cpp",
"mlx/mlx/backend/metal/utils.cpp",
"mlx/mlx/compile.cpp",
"mlx/mlx/device.cpp",
"mlx/mlx/distributed/distributed.cpp",
"mlx/mlx/distributed/mpi/no_mpi.cpp",
"mlx/mlx/distributed/ops.cpp",
"mlx/mlx/distributed/primitives.cpp",
"mlx/mlx/distributed/ring/no_ring.cpp",
"mlx/mlx/dtype.cpp",
"mlx/mlx/dtype_utils.cpp",
"mlx/mlx/einsum.cpp",
"mlx/mlx/export.cpp",
"mlx/mlx/fast.cpp",
"mlx/mlx/fft.cpp",
"mlx/mlx/graph_utils.cpp",
"mlx/mlx/io/load.cpp",
"mlx/mlx/io/no_gguf.cpp",
"mlx/mlx/io/safetensors.cpp",
"mlx/mlx/linalg.cpp",
"mlx/mlx/ops.cpp",
"mlx/mlx/primitives.cpp",
"mlx/mlx/random.cpp",
"mlx/mlx/scheduler.cpp",
"mlx/mlx/transforms.cpp",
"mlx/mlx/utils.cpp",
"mlx/mlx/version.cpp"
],
"type" : "library"
}
],
"tools_version" : "5.10"
}
Done.