The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of mlx-swift, reference main (b79c74), with Swift 6.0 for macOS (SPM) on 16 Jun 2025 00:13:31 UTC.

Swift 6 data race errors: 0

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.63.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 b79c74c Add ReLUSquared Activation Function (#250)
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 @):
b79c74ce773440b86a81ef925ea78dd5023a16c0
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.0
Building package at path:  $PWD
https://github.com/ml-explore/mlx-swift.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64
Building for debugging...
[0/175] Compiling threefry.cpp
[1/175] Compiling error.cpp
[2/175] Compiling _NumericsShims _NumericsShims.c
[3/175] Write sources
[4/175] Write Tutorial-entitlement.plist
[5/175] Write sources
[15/175] Write Example1-entitlement.plist
[16/175] Write sources
[17/175] Write swift-version-5BDAB9E9C0126B9D.txt
[18/175] Compiling version.cpp
[19/185] Compiling utils.cpp
[21/185] Compiling RealModule Float80+Real.swift
[22/185] Compiling RealModule Real.swift
[23/186] Compiling RealModule Float16+Real.swift
[24/186] Compiling RealModule Float+Real.swift
[25/186] Compiling RealModule ElementaryFunctions.swift
[26/186] Compiling RealModule AugmentedArithmetic.swift
[27/186] Compiling RealModule ApproximateEquality.swift
[28/186] Compiling RealModule Double+Real.swift
[29/186] Compiling RealModule AlgebraicField.swift
[30/186] Emitting module RealModule
[31/186] Compiling RealModule RealFunctions.swift
[31/186] Compiling io_types.cpp
[32/186] Compiling device.cpp
[32/186] Compiling export.cpp
[34/186] Compiling compile.cpp
[35/186] Compiling io.cpp
[36/191] Compiling fast.cpp
[38/191] Compiling ComplexModule Arithmetic.swift
[39/191] Emitting module ComplexModule
[40/191] Compiling ComplexModule ElementaryFunctions.swift
[41/191] Compiling ComplexModule Differentiable.swift
[42/191] Compiling ComplexModule Complex.swift
[42/191] Compiling closure.cpp
[43/191] Compiling scheduler.cpp
[45/193] Emitting module Numerics
[46/193] Compiling Numerics Numerics.swift
[46/193] Compiling no_gguf.cpp
[47/193] Compiling random.cpp
[48/193] Compiling linalg.cpp
[49/193] Compiling load.cpp
[50/193] Compiling graph_utils.cpp
[51/193] Compiling primitives.cpp
[52/193] Compiling fft.cpp
[53/193] Compiling transforms.cpp
[54/193] Compiling dtype.cpp
[55/193] Compiling dtype_utils.cpp
[56/193] Compiling no_ring.cpp
[57/193] Compiling safetensors.cpp
[58/193] Compiling no_mpi.cpp
[59/193] Compiling einsum.cpp
[60/193] Compiling device.cpp
[61/193] Compiling distributed.cpp
[62/193] Compiling ops.cpp
[63/193] Compiling primitives.cpp
[64/193] Compiling ops.cpp
[65/193] Compiling fast.cpp
[66/193] Compiling unary.cpp
[67/193] Compiling utils.cpp
[68/193] Compiling slicing.cpp
[69/193] Compiling unary.cpp
[70/193] Compiling softmax.cpp
[71/193] Compiling ternary.cpp
[72/193] Compiling sort.cpp
[73/193] Compiling compile.cpp
[74/193] Compiling scan.cpp
[75/193] Compiling resident.cpp
[76/193] Compiling rope.cpp
[77/193] Compiling scaled_dot_product_attention.cpp
[78/193] Compiling reduce.cpp
[79/193] Compiling normalization.cpp
[80/193] Compiling quantized.cpp
[81/193] Compiling primitives.cpp
[82/193] Compiling metal.cpp
[83/193] Compiling logsumexp.cpp
[84/193] Compiling matmul.cpp
[85/193] Compiling event.cpp
[86/193] Compiling fence.cpp
[87/193] Compiling hadamard.cpp
[88/193] Compiling indexing.cpp
[89/193] Compiling distributed.cpp
[90/193] Compiling jit_kernels.cpp
[91/193] Compiling custom_kernel.cpp
[92/193] Compiling fft.cpp
[93/193] Compiling allocator.cpp
[94/193] Compiling device.cpp
[95/193] Compiling copy.cpp
[96/193] Compiling binary.cpp
[97/193] Compiling conv.cpp
[98/193] Compiling compiled.cpp
[99/193] Compiling export.cpp
[100/193] Compiling svd.cpp
[101/193] Compiling softmax.cpp
[102/193] Compiling select.cpp
[103/193] Compiling quantized.cpp
[104/193] Compiling scan.cpp
[105/193] Compiling matmul.cpp
[106/193] Compiling qrf.cpp
[107/193] Compiling sort.cpp
[108/193] Compiling jit_compiler.cpp
[109/193] Compiling primitives.cpp
[110/193] Compiling logsumexp.cpp
[111/193] Compiling luf.cpp
[112/193] Compiling hadamard.cpp
[113/193] Compiling masked_mm.cpp
[114/193] Compiling cblas.cpp
[115/193] Compiling bnns.cpp
[116/193] Compiling encoder.cpp
[117/193] Compiling inverse.cpp
[118/193] Compiling eval.cpp
[119/193] Compiling distributed.cpp
[120/193] Compiling fft.cpp
[121/193] Compiling utils.cpp
[122/193] Compiling eigh.cpp
[123/193] Compiling arg_reduce.cpp
[124/193] Compiling indexing.cpp
[125/193] Compiling slicing.cpp
[126/193] Compiling cholesky.cpp
[127/193] Compiling reduce.cpp
[128/193] Compiling load.cpp
[129/193] Compiling compiled.cpp
[130/193] Compiling utils.cpp
[131/193] Compiling allocator.cpp
[132/193] Compiling unary_ops.cpp
[133/193] Compiling unary.cpp
[134/193] Compiling ternary_ops.cpp
[135/193] Compiling ternary.cpp
[136/193] Compiling steel_gemm_splitk.cpp
[137/193] Compiling steel_gemm_masked.cpp
[138/193] Compiling broadcasting.cpp
[138/193] Compiling steel_gemm_gather.cpp
[140/193] Compiling steel_gemm_fused.cpp
[141/193] Compiling steel_conv_general.cpp
[142/193] Compiling steel_conv.cpp
[143/193] Compiling sort.cpp
[144/193] Compiling softmax.cpp
[145/193] Compiling scatter_axis.cpp
[146/193] Compiling scatter.cpp
[147/193] Compiling scan.cpp
[148/193] Compiling reduce_utils.cpp
[149/193] Compiling reduce.cpp
[150/193] Compiling quantized.cpp
[150/193] Compiling logsumexp.cpp
[152/193] Compiling hadamard.cpp
[153/193] Compiling gemv_masked.cpp
[154/193] Compiling gather_axis.cpp
[155/193] Compiling gemm.cpp
[156/193] Compiling gather.cpp
[157/193] Compiling fft.cpp
[158/193] Compiling copy.cpp
[159/193] Compiling conv.cpp
[160/193] Compiling compiled_preamble.cpp
[161/193] Compiling binary_two.cpp
[162/193] Compiling binary_ops.cpp
[163/193] Compiling binary.cpp
[164/193] Compiling arange.cpp
[165/193] Compiling common.cpp
[166/193] Compiling conv.cpp
[167/193] Compiling copy.cpp
[168/193] Compiling array.cpp
[169/193] Compiling version.cpp
[170/193] Compiling transforms_impl.cpp
[171/193] Compiling transforms.cpp
[172/193] Compiling vector.cpp
[173/193] Compiling string.cpp
[174/193] Compiling stream.cpp
[175/193] Compiling random.cpp
[176/193] Compiling compiled_conditional.cpp
[177/193] Compiling reduce.cpp
[178/193] Compiling memory.cpp
[179/193] Compiling metal.cpp
[180/193] Compiling ops.cpp
[181/193] Compiling fft.cpp
[182/193] Compiling map.cpp
[183/193] Compiling linalg.cpp
[184/193] Compiling format.cc
[185/193] Compiling array.cpp
[186/193] Compiling binary.cpp
[188/224] Emitting module MLX
[189/227] 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
31 |
32 |         let closure = new_mlx_closure(f)
33 |         inAxes32.withUnsafeBufferPointer { inAxesBuf in
   |                  `- warning: result of call to 'withUnsafeBufferPointer' is unused
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
44 |
45 |         var result = mlx_vector_array_new()
46 |         inAxes32.withUnsafeBufferPointer { inAxesBuf in
   |                  `- warning: result of call to 'withUnsafeBufferPointer' is unused
47 |             outAxes32.withUnsafeBufferPointer { outAxesBuf in
48 |                 mlx_detail_vmap_replace(
[190/227] 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
31 |
32 |         let closure = new_mlx_closure(f)
33 |         inAxes32.withUnsafeBufferPointer { inAxesBuf in
   |                  `- warning: result of call to 'withUnsafeBufferPointer' is unused
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
44 |
45 |         var result = mlx_vector_array_new()
46 |         inAxes32.withUnsafeBufferPointer { inAxesBuf in
   |                  `- warning: result of call to 'withUnsafeBufferPointer' is unused
47 |             outAxes32.withUnsafeBufferPointer { outAxesBuf in
48 |                 mlx_detail_vmap_replace(
[191/227] 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
31 |
32 |         let closure = new_mlx_closure(f)
33 |         inAxes32.withUnsafeBufferPointer { inAxesBuf in
   |                  `- warning: result of call to 'withUnsafeBufferPointer' is unused
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
44 |
45 |         var result = mlx_vector_array_new()
46 |         inAxes32.withUnsafeBufferPointer { inAxesBuf in
   |                  `- warning: result of call to 'withUnsafeBufferPointer' is unused
47 |             outAxes32.withUnsafeBufferPointer { outAxesBuf in
48 |                 mlx_detail_vmap_replace(
[192/227] Compiling MLX ErrorHandler.swift
[193/227] Compiling MLX Export.swift
[194/227] Compiling MLX FFT.swift
[195/227] Compiling MLX Factory.swift
[196/227] Compiling MLX ArrayAt.swift
[197/227] Compiling MLX Cmlx+Util.swift
[198/227] Compiling MLX DType.swift
[199/227] Compiling MLX Device.swift
[200/227] Compiling MLX Ops.swift
[201/227] Compiling MLX ParameterTypes.swift
[202/227] Compiling MLX Protocols.swift
[203/227] Compiling MLX Transforms+Compile.swift
[204/227] Compiling MLX Transforms+Eval.swift
[205/227] Compiling MLX Transforms+Grad.swift
[206/227] Compiling MLX Foundation+Util.swift
[207/227] Compiling MLX GPU.swift
[208/227] Compiling MLX IO.swift
[209/227] Compiling MLX Linalg.swift
[210/227] Compiling MLX MLXArray+Ops.swift
[211/227] Compiling MLX MLXArray.swift
[212/227] Compiling MLX MLXFast.swift
[213/227] Compiling MLX Random.swift
[214/227] Compiling MLX State.swift
[215/227] Compiling MLX Stream.swift
[216/227] Compiling MLX MLXFastKernel.swift
[217/227] Compiling MLX Nested.swift
[218/227] Compiling MLX Ops+Array.swift
[219/227] 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
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
289 |
290 |         self.eval()
[220/227] 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
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
289 |
290 |         self.eval()
[221/227] 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
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
289 |
290 |         self.eval()
[222/240] Compiling MLXFFT FFT.swift
[223/240] Emitting module MLXFFT
[224/240] Emitting module MLXLinalg
[225/240] Compiling MLXLinalg Linalg.swift
[226/240] Emitting module MLXRandom
[227/240] Compiling MLXRandom Random.swift
[228/240] Emitting module MLXFast
[229/240] Compiling MLXFast MLXFastKernel.swift
[230/240] Compiling MLXFast MLXFast.swift
[231/240] Emitting module Example1
[232/240] Compiling Example1 Example1.swift
[233/240] Compiling Tutorial Tutorial.swift
[234/240] Emitting module Tutorial
[234/240] Write Objects.LinkFileList
[237/258] Compiling MLXNN Upsample.swift
[238/258] Compiling MLXNN Normalization.swift
[239/258] Compiling MLXNN Pooling.swift
[240/259] Compiling MLXNN Embedding.swift
[241/259] Compiling MLXNN Linear.swift
[242/259] Compiling MLXNN ValueAndGrad.swift
[243/259] Compiling MLXNN Recurrent.swift
[244/259] Compiling MLXNN Transformer.swift
[245/259] Emitting module MLXNN
[246/259] Compiling MLXNN Activations.swift
[247/259] Compiling MLXNN Cache.swift
[248/259] Compiling MLXNN PositionalEncoding.swift
[249/259] Compiling MLXNN Quantized.swift
[250/259] Compiling MLXNN Containers.swift
[251/259] Compiling MLXNN Convolution.swift
[252/259] Compiling MLXNN ConvolutionTransposed.swift
[253/259] Compiling MLXNN Dropout.swift
[254/259] Compiling MLXNN Losses.swift
/Users/admin/builder/spi-builder-workspace/Source/MLXNN/Module.swift:456:42: warning: immutable value 'p' was never used; consider replacing with '_' or removing it
 454 |                 p._updateInternal(newArray)
 455 |
 456 |             case (.value(.parameters(let p)), .none):
     |                                          `- warning: immutable value 'p' was never used; consider replacing with '_' or removing it
 457 |                 if Self.parameterIsValid(key) {
 458 |                     throw UpdateError.keyNotFound(base: describeType(self), key: key)
/Users/admin/builder/spi-builder-workspace/Source/MLXNN/Module.swift:1353:34: warning: conditional downcast from 'T?' to 'T' does nothing
1351 |             // note: this gives a warning but it does in fact do something
1352 |             // in the case where this is e.g. ParameterInfo<MLXArray?>
1353 |             if let value = value as? T {
     |                                  `- warning: conditional downcast from 'T?' to 'T' does nothing
1354 |                 return value
1355 |             } else {
/Users/admin/builder/spi-builder-workspace/Source/MLXNN/Module.swift:1466:36: warning: conditional downcast from 'T?' to 'T' does nothing
1464 |             // note: this gives a warning but it does in fact do something
1465 |             // in the case where this is e.g. ModuleInfo<Linear?>
1466 |             if let module = module as? T {
     |                                    `- warning: conditional downcast from 'T?' to 'T' does nothing
1467 |                 return module
1468 |             } 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 |             }
[255/259] Compiling MLXNN Module.swift
/Users/admin/builder/spi-builder-workspace/Source/MLXNN/Module.swift:456:42: warning: immutable value 'p' was never used; consider replacing with '_' or removing it
 454 |                 p._updateInternal(newArray)
 455 |
 456 |             case (.value(.parameters(let p)), .none):
     |                                          `- warning: immutable value 'p' was never used; consider replacing with '_' or removing it
 457 |                 if Self.parameterIsValid(key) {
 458 |                     throw UpdateError.keyNotFound(base: describeType(self), key: key)
/Users/admin/builder/spi-builder-workspace/Source/MLXNN/Module.swift:1353:34: warning: conditional downcast from 'T?' to 'T' does nothing
1351 |             // note: this gives a warning but it does in fact do something
1352 |             // in the case where this is e.g. ParameterInfo<MLXArray?>
1353 |             if let value = value as? T {
     |                                  `- warning: conditional downcast from 'T?' to 'T' does nothing
1354 |                 return value
1355 |             } else {
/Users/admin/builder/spi-builder-workspace/Source/MLXNN/Module.swift:1466:36: warning: conditional downcast from 'T?' to 'T' does nothing
1464 |             // note: this gives a warning but it does in fact do something
1465 |             // in the case where this is e.g. ModuleInfo<Linear?>
1466 |             if let module = module as? T {
     |                                    `- warning: conditional downcast from 'T?' to 'T' does nothing
1467 |                 return module
1468 |             } 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 |             }
[256/261] Emitting module MLXOptimizers
[257/261] Compiling MLXOptimizers Optimizers.swift
[257/261] Linking Example1
[258/261] Linking Tutorial
[259/261] Applying Example1
[260/261] Applying Tutorial
Build complete! (39.60s)
Fetching https://github.com/apple/swift-numerics
[1/5757] Fetching swift-numerics
Fetched https://github.com/apple/swift-numerics from cache (1.15s)
Computing version for https://github.com/apple/swift-numerics
Computed https://github.com/apple/swift-numerics at 1.0.3 (3.40s)
Creating working copy for https://github.com/apple/swift-numerics
Working copy of https://github.com/apple/swift-numerics resolved at 1.0.3
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" : "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.