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 0.29.1 (072b68), with Swift 6.2 for macOS (SPM) on 16 Oct 2025 19:56:48 UTC.

Swift 6 data race errors: 0

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/ml-explore/mlx-swift.git
Reference: 0.29.1
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/ml-explore/mlx-swift
 * tag               0.29.1     -> FETCH_HEAD
HEAD is now at 072b684 adopt mlx 0.29.1 and related mlx-c (#273)
Submodule path 'Source/Cmlx/mlx': checked out 'ee18e1cbf0ab7937578d716cc1b62b3fb1725e27'
Submodule path 'Source/Cmlx/mlx-c': checked out 'd5b8715b8e540ea69a955b2d3812e67ccad4c79e'
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 @):
072b684acaae80b6a463abab3a103732f33774bf
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/ml-explore/mlx-swift.git at 0.29.1
Fetching https://github.com/apple/swift-numerics
[1/6371] Fetching swift-numerics
Fetched https://github.com/apple/swift-numerics from cache (2.68s)
Computing version for https://github.com/apple/swift-numerics
Computed https://github.com/apple/swift-numerics at 1.1.1 (3.28s)
Creating working copy for https://github.com/apple/swift-numerics
Working copy of https://github.com/apple/swift-numerics resolved at 1.1.1
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "mlx-swift",
      "name": "mlx-swift",
      "url": "https://github.com/ml-explore/mlx-swift.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/mlx-swift",
      "dependencies": [
        {
          "identity": "swift-numerics",
          "name": "swift-numerics",
          "url": "https://github.com/apple/swift-numerics",
          "version": "1.1.1",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-numerics",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/ml-explore/mlx-swift.git
[1/11425] Fetching mlx-swift
Fetched https://github.com/ml-explore/mlx-swift.git from cache (1.56s)
Fetching https://github.com/apple/swift-numerics from cache
Fetched https://github.com/apple/swift-numerics from cache (0.55s)
Computing version for https://github.com/apple/swift-numerics
Computed https://github.com/apple/swift-numerics at 1.1.1 (0.61s)
Creating working copy for https://github.com/apple/swift-numerics
Working copy of https://github.com/apple/swift-numerics resolved at 1.1.1
Creating working copy for https://github.com/ml-explore/mlx-swift.git
Working copy of https://github.com/ml-explore/mlx-swift.git resolved at 0.29.1 (072b684)
warning: '.resolve-product-dependencies': dependency 'mlx-swift' is not used by any target
Found 1 product dependencies
  - swift-numerics
========================================
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.app xcrun swift build --arch arm64
Building for debugging...
[0/187] Compiling error.cpp
[1/187] Write swift-version-49B95AFC49DCD68C.txt
[2/187] Compiling _NumericsShims _NumericsShims.c
[2/187] Write sources
[2/187] Write Tutorial-entitlement.plist
[2/187] Write sources
[12/187] Compiling format.cc
[12/187] Write sources
[12/187] Write Example1-entitlement.plist
[17/187] Write sources
[18/187] Compiling version.cpp
[19/198] Compiling compile.cpp
[20/198] Compiling transforms_impl.cpp
[21/198] Compiling export.cpp
[22/198] Compiling device.cpp
[23/198] Compiling transforms.cpp
[24/198] Compiling vector.cpp
[25/198] Compiling closure.cpp
[27/198] Compiling RealModule RealFunctions.swift
[28/199] Compiling RealModule Real.swift
[29/199] Compiling RealModule Float80+Real.swift
[30/199] Compiling RealModule Float16+Real.swift
[31/199] Compiling RealModule RelaxedArithmetic.swift
[32/199] Compiling RealModule ElementaryFunctions.swift
[33/199] Compiling RealModule Float+Real.swift
[34/199] Compiling RealModule AugmentedArithmetic.swift
[35/199] Emitting module RealModule
[36/199] Compiling RealModule AlgebraicField.swift
[37/199] Compiling RealModule ApproximateEquality.swift
[38/199] Compiling RealModule Double+Real.swift
[38/199] Compiling array.cpp
[39/199] Compiling utils.cpp
[40/210] Compiling scheduler.cpp
[42/210] Compiling ComplexModule Polar.swift
[43/211] Compiling ComplexModule Complex+StringConvertible.swift
[44/211] Compiling ComplexModule Complex+Numeric.swift
[45/211] Compiling ComplexModule Complex+IntegerLiteral.swift
[46/211] Compiling ComplexModule Complex+Hashable.swift
[47/211] Compiling ComplexModule Complex.swift
[48/211] Compiling ComplexModule Scale.swift
[49/211] Compiling ComplexModule Complex+AdditiveArithmetic.swift
[50/211] Compiling ComplexModule Complex+AlgebraicField.swift
[51/211] Compiling ComplexModule Complex+Codable.swift
[52/211] Compiling ComplexModule Complex+ElementaryFunctions.swift
[53/211] Emitting module ComplexModule
[53/211] Compiling no_gguf.cpp
[55/213] Compiling Numerics Numerics.swift
[56/213] Emitting module Numerics
[56/213] Compiling random.cpp
[57/213] Compiling linalg.cpp
[58/213] Compiling load.cpp
[59/213] Compiling graph_utils.cpp
[60/213] Compiling fft.cpp
[61/213] Compiling primitives.cpp
[62/213] Compiling transforms.cpp
[63/213] Compiling dtype.cpp
[64/213] Compiling dtype_utils.cpp
[65/213] Compiling einsum.cpp
[66/213] Compiling no_ring.cpp
[67/213] Compiling device.cpp
[68/213] Compiling safetensors.cpp
[69/213] Compiling fast.cpp
[70/213] Compiling no_nccl.cpp
[71/213] Compiling no_mpi.cpp
[72/213] Compiling primitives.cpp
[73/213] Compiling ops.cpp
[74/213] Compiling distributed.cpp
[75/213] Compiling ops.cpp
[76/213] Compiling utils.cpp
[77/213] Compiling unary.cpp
[78/213] Compiling ternary.cpp
[79/213] Compiling compile.cpp
[80/213] Compiling sort.cpp
[81/213] Compiling softmax.cpp
[82/213] Compiling slicing.cpp
[83/213] Compiling scan.cpp
[84/213] Compiling scaled_dot_product_attention.cpp
[85/213] Compiling resident.cpp
[86/213] Compiling rope.cpp
[87/213] Compiling reduce.cpp
[88/213] Compiling primitives.cpp
[89/213] Compiling normalization.cpp
[90/213] Compiling metal.cpp
[91/213] Compiling quantized.cpp
[92/213] Compiling logsumexp.cpp
[93/213] Compiling matmul.cpp
[94/213] Compiling export.cpp
[95/213] Compiling jit_kernels.cpp
[96/213] Compiling event.cpp
[97/213] Compiling fence.cpp
[98/213] Compiling indexing.cpp
[99/213] Compiling hadamard.cpp
[100/213] Compiling eval.cpp
[101/213] Compiling distributed.cpp
[102/213] Compiling slicing.cpp
[103/213] Compiling fft.cpp
[104/213] Compiling device.cpp
[105/213] Compiling allocator.cpp
[106/213] Compiling primitives.cpp
[107/213] Compiling copy.cpp
[108/213] Compiling threefry.cpp
[109/213] Compiling binary.cpp
[110/213] Compiling custom_kernel.cpp
[111/213] Compiling compiled.cpp
[112/213] Compiling conv.cpp
[113/213] Compiling no_cuda.cpp
[114/213] Compiling copy.cpp
[115/213] Compiling select.cpp
[116/213] Compiling softmax.cpp
[117/213] Compiling scan.cpp
[118/213] Compiling quantized.cpp
[119/213] Compiling primitives.cpp
[120/213] Compiling svd.cpp
[120/213] Compiling qrf.cpp
[122/213] Compiling sort.cpp
[123/213] Compiling matmul.cpp
[124/213] Compiling jit_compiler.cpp
[125/213] Compiling unary.cpp
[126/213] Compiling logsumexp.cpp
[127/213] Compiling masked_mm.cpp
[128/213] Compiling hadamard.cpp
[129/213] Compiling luf.cpp
[130/213] Compiling cblas.cpp
[131/213] Compiling inverse.cpp
[132/213] Compiling encoder.cpp
[133/213] Compiling bnns.cpp
[134/213] Compiling eval.cpp
[135/213] Compiling fft.cpp
[136/213] Compiling available.cpp
[137/213] Compiling reduce.cpp
[138/213] Compiling distributed.cpp
[139/213] Compiling indexing.cpp
[140/213] Compiling eig.cpp
[141/213] Compiling eigh.cpp
[142/213] Compiling utils.cpp
[143/213] Compiling slicing.cpp
[144/213] Compiling arg_reduce.cpp
[145/213] Compiling reduce.cpp
[146/213] Compiling cholesky.cpp
[147/213] Compiling utils.cpp
[148/213] Compiling unary_ops.cpp
[149/213] Compiling unary.cpp
[150/213] Compiling ternary_ops.cpp
[151/213] Compiling ternary.cpp
[152/213] Compiling steel_gemm_splitk.cpp
[153/213] Compiling steel_gemm_segmented.cpp
[154/213] Compiling steel_gemm_masked.cpp
[155/213] Compiling steel_gemm_gather.cpp
[156/213] Compiling steel_gemm_fused.cpp
[157/213] Compiling broadcasting.cpp
[158/213] Compiling steel_conv_general.cpp
[159/213] Compiling steel_conv.cpp
[160/213] Compiling sort.cpp
[161/213] Compiling softmax.cpp
[162/213] Compiling scatter_axis.cpp
[163/213] Compiling scatter.cpp
[164/213] Compiling scan.cpp
[165/213] Compiling load.cpp
[166/213] Compiling quantized_utils.cpp
[167/213] Compiling reduce.cpp
[167/213] Compiling reduce_utils.cpp
[169/213] Compiling compiled.cpp
[170/213] Compiling quantized.cpp
[171/213] Compiling logsumexp.cpp
[171/213] Compiling hadamard.cpp
[173/213] Compiling gemv_masked.cpp
[174/213] Compiling allocator.cpp
[175/213] Compiling gather_front.cpp
[175/213] Compiling gather_axis.cpp
[177/213] Compiling gemm.cpp
[178/213] Compiling gather.cpp
[179/213] Compiling fp4_quantized.cpp
[180/213] Compiling copy.cpp
[181/213] Compiling fft.cpp
[182/213] Compiling conv.cpp
[183/213] Compiling binary_two.cpp
[184/213] Compiling compiled_preamble.cpp
[185/213] Compiling binary_ops.cpp
[185/213] Compiling binary.cpp
[187/213] Compiling arange.cpp
[188/213] Compiling common.cpp
[189/213] Compiling conv.cpp
[190/213] Compiling copy.cpp
[191/213] Compiling array.cpp
[192/213] Compiling string.cpp
[193/213] Compiling version.cpp
[194/213] Compiling stream.cpp
[195/213] Compiling random.cpp
[196/213] Compiling metal.cpp
[197/213] Compiling ops.cpp
[198/213] Compiling memory.cpp
[199/213] Compiling compiled_conditional.cpp
[200/213] Compiling map.cpp
[201/213] Compiling io_types.cpp
[202/213] Compiling linalg.cpp
[203/213] Compiling io.cpp
[204/213] Compiling fft.cpp
[205/213] Compiling fast.cpp
[206/213] Compiling binary.cpp
[208/244] Emitting module MLX
[209/247] Compiling MLX Transforms+Internal.swift
[210/247] Compiling MLX Transforms+Vmap.swift
[211/247] Compiling MLX Transforms.swift
[212/247] Compiling MLX MLXFastKernel.swift
[213/247] Compiling MLX Nested.swift
[214/247] Compiling MLX Ops+Array.swift
[215/247] Compiling MLX Random.swift
[216/247] Compiling MLX State.swift
[217/247] Compiling MLX Stream.swift
[218/247] Compiling MLX ErrorHandler.swift
[219/247] Compiling MLX Export.swift
[220/247] Compiling MLX FFT.swift
[221/247] Compiling MLX Factory.swift
[222/247] Compiling MLX ArrayAt.swift
[223/247] Compiling MLX Cmlx+Util.swift
[224/247] Compiling MLX DType.swift
[225/247] Compiling MLX Device.swift
[226/247] Compiling MLX Transforms+Compile.swift
[227/247] Compiling MLX Transforms+Eval.swift
[228/247] Compiling MLX Transforms+Grad.swift
[229/247] 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
[230/247] 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
[231/247] 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
[232/247] Compiling MLX Ops.swift
[233/247] Compiling MLX ParameterTypes.swift
[234/247] Compiling MLX Protocols.swift
[235/247] Compiling MLX Foundation+Util.swift
[236/247] Compiling MLX GPU.swift
[237/247] Compiling MLX IO.swift
[238/247] Compiling MLX Linalg.swift
[239/247] Compiling MLX MLXArray+Bytes.swift
[240/247] Compiling MLX MLXArray+Indexing.swift
[241/247] Compiling MLX MLXArray+Init.swift
[242/260] Compiling MLXLinalg Linalg.swift
[243/260] Emitting module MLXLinalg
[244/260] Emitting module Example1
[245/260] Compiling Example1 Example1.swift
[245/260] Write Objects.LinkFileList
[247/260] Compiling MLXFFT FFT.swift
[248/260] Emitting module MLXFFT
[249/260] Compiling MLXFast MLXFastKernel.swift
[250/260] Compiling MLXFast MLXFast.swift
[251/260] Emitting module MLXFast
[252/260] Emitting module MLXRandom
[253/260] Compiling MLXRandom Random.swift
[254/260] Compiling Tutorial Tutorial.swift
[255/260] Emitting module Tutorial
[255/260] Write Objects.LinkFileList
[257/278] Compiling MLXNN Upsample.swift
[258/279] Compiling MLXNN PositionalEncoding.swift
[259/279] Compiling MLXNN Quantized.swift
[260/279] Compiling MLXNN Normalization.swift
[261/279] Compiling MLXNN Pooling.swift
[262/279] Compiling MLXNN Recurrent.swift
[263/279] Compiling MLXNN Transformer.swift
[264/279] Compiling MLXNN ValueAndGrad.swift
[265/279] Compiling MLXNN Embedding.swift
[266/279] Compiling MLXNN Linear.swift
[267/279] Compiling MLXNN ConvolutionTransposed.swift
[268/279] Compiling MLXNN Dropout.swift
[269/279] Compiling MLXNN Activations.swift
[270/279] Compiling MLXNN Cache.swift
[271/279] 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 |             }
[272/279] 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 |             }
[273/279] Compiling MLXNN Containers.swift
[274/279] Compiling MLXNN Convolution.swift
[275/279] Emitting module MLXNN
[276/281] Emitting module MLXOptimizers
[277/281] Compiling MLXOptimizers Optimizers.swift
[277/281] Linking Example1
[278/281] Linking Tutorial
[279/281] Applying Example1
[280/281] Applying Tutorial
Build complete! (31.91s)
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/fp4_quantized.cpp",
        "mlx-generated/gather.cpp",
        "mlx-generated/gather_axis.cpp",
        "mlx-generated/gather_front.cpp",
        "mlx-generated/gemm.cpp",
        "mlx-generated/gemv_masked.cpp",
        "mlx-generated/hadamard.cpp",
        "mlx-generated/logsumexp.cpp",
        "mlx-generated/quantized.cpp",
        "mlx-generated/quantized_utils.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_segmented.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/available.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/eig.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/cuda/no_cuda.cpp",
        "mlx/mlx/backend/gpu/copy.cpp",
        "mlx/mlx/backend/gpu/primitives.cpp",
        "mlx/mlx/backend/gpu/slicing.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/eval.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/nccl/no_nccl.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"
}
✅  Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path:  $PWD/.docs/ml-explore/mlx-swift/0.29.1
Repository:               ml-explore/mlx-swift
Swift version used:       6.2
        .package(url: "https://github.com/apple/swift-docc-plugin", from: "1.3.0")
Target:                   MLX
Extracting symbol information for 'MLX'...
Finished extracting symbol information for 'MLX'. (2.54s)
Building documentation for 'MLX'...
warning: 'Double.ulpOfOne' doesn't exist at '/MLX/DType/FInfo/eps'
   --> ../DType.swift:127:37-127:52
125 |         /// The difference between 1.0 and the next smallest representable float larger than 1.0
126 |         ///
127 +         /// In Swift this is e.g. ``Double.ulpOfOne``
128 |         public var eps: Double {
129 |             switch dtype {
warning: 'vmap(_:inAxes:outAxes:)' is ambiguous at '/MLX'
 --> Articles/vmap.md:3:32-3:55
1 | # Vectorization
2 |
3 + Automatic vectorization with ``vmap(_:inAxes:outAxes:)``.
  |                                                       ├─suggestion: Insert '->(MLXArray)->MLXArray' for 'func vmap(_ f: @escaping (MLXArray) -> MLXArray, inAxes: Int? = 0, outAxes: Int? = 0) -> (MLXArray) -> MLXArray'
  |                                                       ├─suggestion: Insert '->(MLXArray,MLXArray)->MLXArray' for 'func vmap(_ f: @escaping (MLXArray, MLXArray) -> MLXArray, inAxes: (Int?, Int?) = (0, 0), outAxes: Int? = 0) -> (MLXArray, MLXArray) -> MLXArray'
  |                                                       ╰─suggestion: Insert '->([MLXArray])->[MLXArray]' for 'func vmap(_ f: @escaping ([MLXArray]) -> [MLXArray], inAxes: [Int?] = [0], outAxes: [Int?] = [0]) -> ([MLXArray]) -> [MLXArray]'
4 |
5 | `vmap` transforms a function so that it operates independently over a batch
warning: 'vmap(_:inAxes:outAxes:)' is ambiguous at '/MLX'
  --> Articles/vmap.md:44:25-44:48
42 | ## Nested Mapping
43 |
44 + You can nest calls to ``vmap(_:inAxes:outAxes:)`` to map over multiple axes.
   |                                                ├─suggestion: Insert '->(MLXArray)->MLXArray' for 'func vmap(_ f: @escaping (MLXArray) -> MLXArray, inAxes: Int? = 0, outAxes: Int? = 0) -> (MLXArray) -> MLXArray'
   |                                                ├─suggestion: Insert '->(MLXArray,MLXArray)->MLXArray' for 'func vmap(_ f: @escaping (MLXArray, MLXArray) -> MLXArray, inAxes: (Int?, Int?) = (0, 0), outAxes: Int? = 0) -> (MLXArray, MLXArray) -> MLXArray'
   |                                                ╰─suggestion: Insert '->([MLXArray])->[MLXArray]' for 'func vmap(_ f: @escaping ([MLXArray]) -> [MLXArray], inAxes: [Int?] = [0], outAxes: [Int?] = [0]) -> ([MLXArray]) -> [MLXArray]'
45 | Each nested `vmap` introduces another batch dimension in the result.
46 |
warning: 'vmap(_:inAxes:outAxes:)' is ambiguous at '/MLX'
  --> Articles/vmap.md:51:5-51:28
49 | ### Functions
50 |
51 + - ``vmap(_:inAxes:outAxes:)``
   |                            ├─suggestion: Insert '->(MLXArray)->MLXArray' for 'func vmap(_ f: @escaping (MLXArray) -> MLXArray, inAxes: Int? = 0, outAxes: Int? = 0) -> (MLXArray) -> MLXArray'
   |                            ├─suggestion: Insert '->(MLXArray,MLXArray)->MLXArray' for 'func vmap(_ f: @escaping (MLXArray, MLXArray) -> MLXArray, inAxes: (Int?, Int?) = (0, 0), outAxes: Int? = 0) -> (MLXArray, MLXArray) -> MLXArray'
   |                            ╰─suggestion: Insert '->([MLXArray])->[MLXArray]' for 'func vmap(_ f: @escaping ([MLXArray]) -> [MLXArray], inAxes: [Int?] = [0], outAxes: [Int?] = [0]) -> ([MLXArray]) -> [MLXArray]'
warning: 'convTransposed1d(_:_:stride:padding:dilation:groups:stream:)' doesn't exist at '/MLX/convolution'
  --> Organization/convolution.md:16:5-16:65
14 | - ``convGeneral(_:_:strides:padding:kernelDilation:inputDilation:groups:flip:stream:)-9t1sj``
15 | - ``convGeneral(_:_:strides:padding:kernelDilation:inputDilation:groups:flip:stream:)-6j1nr``
16 + - ``convTransposed1d(_:_:stride:padding:dilation:groups:stream:)``
17 | - ``convTransposed2d(_:_:stride:padding:dilation:groups:stream:)``
18 | - ``convTransposed3d(_:_:stride:padding:dilation:groups:stream:)``
warning: 'convTransposed2d(_:_:stride:padding:dilation:groups:stream:)' doesn't exist at '/MLX/convolution'
  --> Organization/convolution.md:17:5-17:65
15 | - ``convGeneral(_:_:strides:padding:kernelDilation:inputDilation:groups:flip:stream:)-6j1nr``
16 | - ``convTransposed1d(_:_:stride:padding:dilation:groups:stream:)``
17 + - ``convTransposed2d(_:_:stride:padding:dilation:groups:stream:)``
18 | - ``convTransposed3d(_:_:stride:padding:dilation:groups:stream:)``
19 | - ``convolve(_:_:mode:stream:)``
warning: 'convTransposed3d(_:_:stride:padding:dilation:groups:stream:)' doesn't exist at '/MLX/convolution'
  --> Organization/convolution.md:18:5-18:65
16 | - ``convTransposed1d(_:_:stride:padding:dilation:groups:stream:)``
17 | - ``convTransposed2d(_:_:stride:padding:dilation:groups:stream:)``
18 + - ``convTransposed3d(_:_:stride:padding:dilation:groups:stream:)``
19 | - ``convolve(_:_:mode:stream:)``
warning: Parameter 'dtor' is missing documentation
 --> ../ErrorHandler.swift:7:102-7:102
5 | /// - Parameters:
6 | ///   - handler: An error handler. Pass nil to reset to the default error handler. Pass
7 + ///   ``fatalErrorHandler`` to make the error handler call `fatalError` for improved Xcode debugging.
  |                                                                                                      ╰─suggestion: Document 'dtor' parameter
8 | @available(*, deprecated, message: "please use withErrorHandler() or withError()")
9 | public func setErrorHandler(
warning: Parameter 'data' is missing documentation
 --> ../ErrorHandler.swift:7:102-7:102
5 | /// - Parameters:
6 | ///   - handler: An error handler. Pass nil to reset to the default error handler. Pass
7 + ///   ``fatalErrorHandler`` to make the error handler call `fatalError` for improved Xcode debugging.
  |                                                                                                      ╰─suggestion: Document 'data' parameter
8 | @available(*, deprecated, message: "please use withErrorHandler() or withError()")
9 | public func setErrorHandler(
warning: '8zljj' isn't a disambiguation for 'norm(_:ord:axes:keepDims:stream:)' at '/MLX'
   --> ../Linalg.swift:509:42-509:48
507 | ///
508 | /// ### See Also
509 + /// - ``norm(_:ord:axes:keepDims:stream:)-8zljj``
    |                                          ╰─suggestion: Remove '-8zljj' for 'func norm(_ array: MLXArray, ord: MLXLinalg.NormKind? = nil, axes: [Int], keepDims: Bool = false, stream: StreamOrDevice = .default) -> MLXArray'
510 | public func norm(
511 |     _ array: MLXArray, ord: MLXLinalg.NormKind? = nil, axis: Int, keepDims: Bool = false,
warning: '8zljj' isn't a disambiguation for 'norm(_:ord:axes:keepDims:stream:)' at '/MLX'
   --> ../Linalg.swift:529:44-529:50
527 | /// Matrix or vector norm.
528 | ///
529 + /// See ``norm(_:ord:axes:keepDims:stream:)-8zljj``
    |                                            ╰─suggestion: Remove '-8zljj' for 'func norm(_ array: MLXArray, ord: MLXLinalg.NormKind? = nil, axes: [Int], keepDims: Bool = false, stream: StreamOrDevice = .default) -> MLXArray'
530 | public func norm(
531 |     _ array: MLXArray, ord: MLXLinalg.NormKind? = nil, axis: IntOrArray? = nil,
warning: Parameter 'stream' is missing documentation
    --> ../MLXArray+Ops.swift:1790:9-1790:9
1788 |     ///     - start: first dimension to flatten
1789 |     ///     - end: last dimension to flatten
1790 +     ///
     |         ╰─suggestion: Document 'stream' parameter
1791 |     /// ### See Also
1792 |     /// - <doc:shapes>
warning: Parameter 'stream' is missing documentation
    --> ../MLXArray+Ops.swift:2490:9-2490:9
2488 |     ///     - parts: array is split into that many sections of equal size. It is a fatal error if this is not possible
2489 |     ///     - axis: axis to split along
2490 +     ///
     |         ╰─suggestion: Document 'stream' parameter
2491 |     /// ### See Also
2492 |     /// - <doc:shapes>
warning: Parameter 'stream' is missing documentation
    --> ../MLXArray+Ops.swift:2515:9-2515:9
2513 |     /// - Parameters:
2514 |     ///     - axis: axis to split along
2515 +     ///
     |         ╰─suggestion: Document 'stream' parameter
2516 |     /// ### See Also
2517 |     /// - <doc:shapes>
warning: Parameter 'stream' is missing documentation
    --> ../MLXArray+Ops.swift:2534:9-2534:9
2532 |     ///     - indices: the indices of the start of each subarray along the given axis
2533 |     ///     - axis: axis to split along
2534 +     ///
     |         ╰─suggestion: Document 'stream' parameter
2535 |     /// ### See Also
2536 |     /// - <doc:shapes>
warning: Parameter 'stream' is missing documentation
    --> ../MLXArray+Ops.swift:2574:9-2574:9
2572 |     /// - Parameters:
2573 |     ///     - axes: axes to remove
2574 +     ///
     |         ╰─suggestion: Document 'stream' parameter
2575 |     /// ### See Also
2576 |     /// - <doc:shapes>
warning: Parameter 'stream' is missing documentation
    --> ../MLXArray+Ops.swift:2590:9-2590:9
2588 |     /// - Parameters:
2589 |     ///     - axis: axis to remove
2590 +     ///
     |         ╰─suggestion: Document 'stream' parameter
2591 |     /// ### See Also
2592 |     /// - <doc:shapes>
warning: Parameter 'stream' is missing documentation
    --> ../MLXArray+Ops.swift:2746:9-2746:9
2744 |     /// - Parameters:
2745 |     ///     - axes: Specifies the source axis for each axis in the new array
2746 +     ///
     |         ╰─suggestion: Document 'stream' parameter
2747 |     /// ### See Also
2748 |     /// - <doc:shapes>
warning: Parameter 'stream' is missing documentation
    --> ../MLXArray+Ops.swift:2807:9-2807:9
2805 |     ///     - keepDims: if `true` keep the reduces axes as singleton dimensions
2806 |     ///     - ddof: the divisor to compute the variance is `N - ddof`
2807 +     ///
     |         ╰─suggestion: Document 'stream' parameter
2808 |     /// ### See Also
2809 |     /// - <doc:reduction>
warning: Parameter 'stream' is missing documentation
    --> ../MLXArray+Ops.swift:2827:9-2827:9
2825 |     ///     - keepDims: if `true` keep the reduces axis as singleton dimensions
2826 |     ///     - ddof: the divisor to compute the variance is `N - ddof`
2827 +     ///
     |         ╰─suggestion: Document 'stream' parameter
2828 |     /// ### See Also
2829 |     /// - <doc:reduction>
warning: Parameter 'stream' is missing documentation
    --> ../MLXArray+Ops.swift:2847:9-2847:9
2845 |     ///     - ddof: the divisor to compute the variance is `N - ddof`
2846 |     ///
2847 +     ///
     |         ╰─suggestion: Document 'stream' parameter
2848 |     /// ### See Also
2849 |     /// - <doc:reduction>
warning: 'subscript(indices:stream:)' doesn't exist at '/MLX/MLXArray/at'
   --> ../MLXArray.swift:605:13-605:39
603 |     ///
604 |     /// ### See Also
605 +     /// - ``subscript(indices:stream:)``
606 |     /// - ``ArrayAtIndices``
607 |     public var at: ArrayAt { ArrayAt(array: self) }
warning: Parameter 'stream' is missing documentation
    --> ../Ops+Array.swift:1480:5-1480:5
1478 | ///     - parts: array is split into that many sections of equal size. It is a fatal error if this is not possible
1479 | ///     - axis: axis to split along
1480 + ///
     |     ╰─suggestion: Document 'stream' parameter
1481 | /// ### See Also
1482 | /// - <doc:shapes>
warning: Parameter 'parts' not found in function declaration
    --> ../Ops+Array.swift:1507:9-1507:115
1505 | /// - Parameters:
1506 | ///     - array: input array
1507 + ///     - parts: array is split into that many sections of equal size. It is a fatal error if this is not possible
     |         ╰─suggestion: Remove 'parts' parameter documentation
1508 | ///     - axis: axis to split along
1509 | ///
warning: Parameter 'stream' is missing documentation
    --> ../Ops+Array.swift:1509:5-1509:5
1507 | ///     - parts: array is split into that many sections of equal size. It is a fatal error if this is not possible
1508 | ///     - axis: axis to split along
1509 + ///
     |     ╰─suggestion: Document 'stream' parameter
1510 | /// ### See Also
1511 | /// - <doc:shapes>
warning: Parameter 'stream' is missing documentation
    --> ../Ops+Array.swift:1531:5-1531:5
1529 | ///     - indices: the indices of the start of each subarray along the given axis
1530 | ///     - axis: axis to split along
1531 + ///
     |     ╰─suggestion: Document 'stream' parameter
1532 | /// ### See Also
1533 | /// - <doc:shapes>
warning: Parameter 'stream' is missing documentation
    --> ../Ops+Array.swift:1572:5-1572:5
1570 | ///     - array: input array
1571 | ///     - axes: axes to remove
1572 + ///
     |     ╰─suggestion: Document 'stream' parameter
1573 | /// ### See Also
1574 | /// - <doc:shapes>
warning: Parameter 'stream' is missing documentation
    --> ../Ops+Array.swift:1590:5-1590:5
1588 | ///     - array: input array
1589 | ///     - axis: axis to remove
1590 + ///
     |     ╰─suggestion: Document 'stream' parameter
1591 | /// ### See Also
1592 | /// - <doc:shapes>
warning: Parameter 'stream' is missing documentation
    --> ../Ops+Array.swift:1755:5-1755:5
1753 | ///     - array: input array
1754 | ///     - axes: Specifies the source axis for each axis in the new array
1755 + ///
     |     ╰─suggestion: Document 'stream' parameter
1756 | /// ### See Also
1757 | /// - <doc:shapes>
warning: Parameter 'stream' is missing documentation
    --> ../Ops+Array.swift:1822:5-1822:5
1820 | ///     - keepDims: if `true` keep the reduces axes as singleton dimensions
1821 | ///     - ddof: the divisor to compute the variance is `N - ddof`
1822 + ///
     |     ╰─suggestion: Document 'stream' parameter
1823 | /// ### See Also
1824 | /// - <doc:reduction>
warning: Parameter 'stream' is missing documentation
    --> ../Ops+Array.swift:1844:5-1844:5
1842 | ///     - keepDims: if `true` keep the reduces axis as singleton dimensions
1843 | ///     - ddof: the divisor to compute the variance is `N - ddof`
1844 + ///
     |     ╰─suggestion: Document 'stream' parameter
1845 | /// ### See Also
1846 | /// - <doc:reduction>
warning: Parameter 'stream' is missing documentation
    --> ../Ops+Array.swift:1865:5-1865:5
1863 | ///     - keepDims: if `true` keep the reduces axes as singleton dimensions
1864 | ///     - ddof: the divisor to compute the variance is `N - ddof`
1865 + ///
     |     ╰─suggestion: Document 'stream' parameter
1866 | /// ### See Also
1867 | /// - <doc:reduction>
warning: Parameter 'array' is missing documentation
    --> ../Ops+Array.swift:1891:5-1891:5
1889 | ///   - dtype: type to change to
     |       ╰─suggestion: Document 'array' parameter
1890 | ///   - stream: stream or device to evaluate on
1891 + ///
1892 | /// ### See Also
1893 | ///- ``MLXArray/view(dtype:stream:)``
warning: Parameter 'offset' is missing documentation
   --> ../Ops.swift:358:5-358:5
356 | ///     - shape: shape of the resulting array.  If not specified it will keep the same shape
357 | ///     - stream: stream or device to evaluate on
    |         ╰─suggestion: Document 'offset' parameter
358 + ///
359 | /// ### See Also
360 | /// - <doc:shapes>
warning: Parameter 'strides' is missing documentation
   --> ../Ops.swift:358:5-358:5
356 | ///     - shape: shape of the resulting array.  If not specified it will keep the same shape
357 | ///     - stream: stream or device to evaluate on
    |         ╰─suggestion: Document 'strides' parameter
358 + ///
359 | /// ### See Also
360 | /// - <doc:shapes>
warning: Parameter 'stream' is missing documentation
    --> ../Ops.swift:1266:5-1266:5
1264 | ///   - array: input array
1265 | ///     - stream: stream or device to evaluate on
1266 + ///
     |     ╰─suggestion: Document 'stream' parameter
1267 | /// ### See Also
1268 | /// - <doc:arithmetic>
warning: Parameter 'precise' is missing documentation
    --> ../Ops.swift:2332:5-2332:5
2330 | ///     - array: input array
2331 | ///     - stream: stream or device to evaluate on
     |         ╰─suggestion: Document 'precise' parameter
2332 + ///
2333 | /// ### See Also
2334 | /// - <doc:arithmetic>
warning: Parameter 'axes' is missing documentation
    --> ../Ops.swift:2332:5-2332:5
2330 | ///     - array: input array
2331 | ///     - stream: stream or device to evaluate on
     |         ╰─suggestion: Document 'axes' parameter
2332 + ///
2333 | /// ### See Also
2334 | /// - <doc:arithmetic>
warning: Parameter 'precise' is missing documentation
    --> ../Ops.swift:2364:5-2364:5
2362 | ///     - array: input array
2363 | ///     - stream: stream or device to evaluate on
     |         ╰─suggestion: Document 'precise' parameter
2364 + ///
2365 | /// ### See Also
2366 | /// - <doc:arithmetic>
warning: Parameter 'axis' is missing documentation
    --> ../Ops.swift:2364:5-2364:5
2362 | ///     - array: input array
2363 | ///     - stream: stream or device to evaluate on
     |         ╰─suggestion: Document 'axis' parameter
2364 + ///
2365 | /// ### See Also
2366 | /// - <doc:arithmetic>
warning: Parameter 'precise' is missing documentation
    --> ../Ops.swift:2396:5-2396:5
2394 | ///     - array: input array
2395 | ///     - stream: stream or device to evaluate on
     |         ╰─suggestion: Document 'precise' parameter
2396 + ///
2397 | /// ### See Also
2398 | /// - ``softmax(_:axes:precise:stream:)``
warning: Parameter 'start_axis' not found in function declaration
    --> ../Ops.swift:2897:11-2897:21
2895 | /// - Parameters:
2896 | ///     - a: input array
2897 + ///     - start_axis: first dim to flatten
     |           ╰─suggestion: Replace 'start_axis' with 'startAxis'
2898 | ///     - end_axis: last dim to flatten
2899 | ///     - stream: stream or device to evaluate on
warning: Parameter 'end_axis' not found in function declaration
    --> ../Ops.swift:2898:11-2898:19
2896 | ///     - a: input array
2897 | ///     - start_axis: first dim to flatten
2898 + ///     - end_axis: last dim to flatten
     |           ╰─suggestion: Replace 'end_axis' with 'endAxis'
2899 | ///     - stream: stream or device to evaluate on
2900 | public func flatten(
warning: Parameter 'endAxis' is missing documentation
    --> ../Ops.swift:2899:50-2899:50
2897 | ///     - start_axis: first dim to flatten
2898 | ///     - end_axis: last dim to flatten
2899 + ///     - stream: stream or device to evaluate on
     |         ╰─suggestion: Document 'endAxis' parameter
2900 | public func flatten(
2901 |     _ a: MLXArray, startAxis: Int, endAxis: Int = -1, stream: StreamOrDevice = .default
warning: Parameter 'startAxis' is missing documentation
    --> ../Ops.swift:2899:50-2899:50
2897 | ///     - start_axis: first dim to flatten
2898 | ///     - end_axis: last dim to flatten
2899 + ///     - stream: stream or device to evaluate on
     |         ╰─suggestion: Document 'startAxis' parameter
2900 | public func flatten(
2901 |     _ a: MLXArray, startAxis: Int, endAxis: Int = -1, stream: StreamOrDevice = .default
warning: Parameter 'stream' is missing documentation
   --> ../Random.swift:272:26-272:26
270 |     ///   - loc: mean of the distribution
271 |     ///   - scale: standard deviation of the distribution
272 +     ///   - key: PRNG key
    |                          ╰─suggestion: Document 'stream' parameter
273 |     public static func normal<T>(
274 |         _ shape: [Int] = [], type: T.Type = Float.self, loc: Float = 0, scale: Float = 1,
warning: Parameter 'stream' is missing documentation
   --> ../Random.swift:307:26-307:26
305 |     ///   - loc: mean of the distribution
306 |     ///   - scale: standard deviation of the distribution
307 +     ///   - key: PRNG key
    |                          ╰─suggestion: Document 'stream' parameter
308 |     public static func normal(
309 |         _ shape: [Int] = [], dtype: DType = .float32, loc: Float = 0, scale: Float = 1,
warning: Parameter 'stream' is missing documentation
   --> ../Random.swift:337:26-337:26
335 |     /// shapes of `mean` and `covariance`.
336 |     ///   - dtype: DType of the result
337 +     ///   - key: PRNG key
    |                          ╰─suggestion: Document 'stream' parameter
338 |     public static func multivariateNormal(
339 |         mean: MLXArray, covariance: MLXArray, shape: [Int] = [], dtype: DType = .float32,
warning: Parameter 'axis' is missing documentation
   --> ../Random.swift:690:70-690:70
688 |     ///
689 |     /// - Parameters:
690 +     ///     - logits: The *unnormalized* categorical distribution(s).
    |                                                                      ╰─suggestion: Document 'axis' parameter
691 |     public static func categorical(
692 |         _ logits: MLXArray, axis: Int = -1, shape: [Int]? = nil, key: RandomStateOrKey? = nil,
warning: Parameter 'stream' is missing documentation
   --> ../Random.swift:690:70-690:70
688 |     ///
689 |     /// - Parameters:
690 +     ///     - logits: The *unnormalized* categorical distribution(s).
    |                                                                      ╰─suggestion: Document 'stream' parameter
691 |     public static func categorical(
692 |         _ logits: MLXArray, axis: Int = -1, shape: [Int]? = nil, key: RandomStateOrKey? = nil,
warning: Parameter 'shape' is missing documentation
   --> ../Random.swift:690:70-690:70
688 |     ///
689 |     /// - Parameters:
690 +     ///     - logits: The *unnormalized* categorical distribution(s).
    |                                                                      ╰─suggestion: Document 'shape' parameter
691 |     public static func categorical(
692 |         _ logits: MLXArray, axis: Int = -1, shape: [Int]? = nil, key: RandomStateOrKey? = nil,
warning: Parameter 'key' is missing documentation
   --> ../Random.swift:690:70-690:70
688 |     ///
689 |     /// - Parameters:
690 +     ///     - logits: The *unnormalized* categorical distribution(s).
    |                                                                      ╰─suggestion: Document 'key' parameter
691 |     public static func categorical(
692 |         _ logits: MLXArray, axis: Int = -1, shape: [Int]? = nil, key: RandomStateOrKey? = nil,
warning: Parameter 'axis' is missing documentation
   --> ../Random.swift:726:70-726:70
724 |     ///
725 |     /// - Parameters:
726 +     ///     - logits: The *unnormalized* categorical distribution(s).
    |                                                                      ╰─suggestion: Document 'axis' parameter
727 |     public static func categorical(
728 |         _ logits: MLXArray, axis: Int = -1, count: Int, key: RandomStateOrKey? = nil,
warning: Parameter 'key' is missing documentation
   --> ../Random.swift:726:70-726:70
724 |     ///
725 |     /// - Parameters:
726 +     ///     - logits: The *unnormalized* categorical distribution(s).
    |                                                                      ╰─suggestion: Document 'key' parameter
727 |     public static func categorical(
728 |         _ logits: MLXArray, axis: Int = -1, count: Int, key: RandomStateOrKey? = nil,
warning: Parameter 'stream' is missing documentation
   --> ../Random.swift:726:70-726:70
724 |     ///
725 |     /// - Parameters:
726 +     ///     - logits: The *unnormalized* categorical distribution(s).
    |                                                                      ╰─suggestion: Document 'stream' parameter
727 |     public static func categorical(
728 |         _ logits: MLXArray, axis: Int = -1, count: Int, key: RandomStateOrKey? = nil,
warning: Parameter 'count' is missing documentation
   --> ../Random.swift:726:70-726:70
724 |     ///
725 |     /// - Parameters:
726 +     ///     - logits: The *unnormalized* categorical distribution(s).
    |                                                                      ╰─suggestion: Document 'count' parameter
727 |     public static func categorical(
728 |         _ logits: MLXArray, axis: Int = -1, count: Int, key: RandomStateOrKey? = nil,
warning: Parameter 'key' is missing documentation
   --> ../Random.swift:746:49-746:49
744 |     ///   - dtype: type of the output
745 |     ///   - loc: mean of the distribution
746 +     ///   - scale: scale "b" of the distribution
    |                                                 ╰─suggestion: Document 'key' parameter
747 |     public static func laplace(
748 |         _ shape: [Int] = [], dtype: DType = .float32, loc: Float = 0, scale: Float = 1,
warning: Parameter 'stream' is missing documentation
   --> ../Random.swift:746:49-746:49
744 |     ///   - dtype: type of the output
745 |     ///   - loc: mean of the distribution
746 +     ///   - scale: scale "b" of the distribution
    |                                                 ╰─suggestion: Document 'stream' parameter
747 |     public static func laplace(
748 |         _ shape: [Int] = [], dtype: DType = .float32, loc: Float = 0, scale: Float = 1,
warning: Parameter 'stream' is missing documentation
   --> ../Random.swift:895:22-895:22
893 | ///   - loc: mean of the distribution
894 | ///   - scale: standard deviation of the distribution
895 + ///   - key: PRNG key
    |                      ╰─suggestion: Document 'stream' parameter
896 | public func normal<T>(
897 |     _ shape: [Int] = [], type: T.Type = Float.self, loc: Float = 0, scale: Float = 1,
warning: Parameter 'stream' is missing documentation
   --> ../Random.swift:924:22-924:22
922 | ///   - loc: mean of the distribution
923 | ///   - scale: standard deviation of the distribution
924 + ///   - key: PRNG key
    |                      ╰─suggestion: Document 'stream' parameter
925 | public func normal(
926 |     _ shape: [Int] = [], dtype: DType = .float32, loc: Float = 0, scale: Float = 1,
warning: Parameter 'stream' is missing documentation
   --> ../Random.swift:948:22-948:22
946 | /// shapes of `mean` and `covariance`.
947 | ///   - dtype: DType of the result
948 + ///   - key: PRNG key
    |                      ╰─suggestion: Document 'stream' parameter
949 | public func multivariateNormal(
950 |     mean: MLXArray, covariance: MLXArray, shape: [Int] = [], dtype: DType = .float32,
warning: Parameter 'key' is missing documentation
    --> ../Random.swift:1209:66-1209:66
1207 | ///
1208 | /// - Parameters:
1209 + ///     - logits: The *unnormalized* categorical distribution(s).
     |                                                                  ╰─suggestion: Document 'key' parameter
1210 | public func categorical(
1211 |     _ logits: MLXArray, axis: Int = -1, shape: [Int]? = nil, key: RandomStateOrKey? = nil,
warning: Parameter 'shape' is missing documentation
    --> ../Random.swift:1209:66-1209:66
1207 | ///
1208 | /// - Parameters:
1209 + ///     - logits: The *unnormalized* categorical distribution(s).
     |                                                                  ╰─suggestion: Document 'shape' parameter
1210 | public func categorical(
1211 |     _ logits: MLXArray, axis: Int = -1, shape: [Int]? = nil, key: RandomStateOrKey? = nil,
warning: Parameter 'axis' is missing documentation
    --> ../Random.swift:1209:66-1209:66
1207 | ///
1208 | /// - Parameters:
1209 + ///     - logits: The *unnormalized* categorical distribution(s).
     |                                                                  ╰─suggestion: Document 'axis' parameter
1210 | public func categorical(
1211 |     _ logits: MLXArray, axis: Int = -1, shape: [Int]? = nil, key: RandomStateOrKey? = nil,
warning: Parameter 'stream' is missing documentation
    --> ../Random.swift:1209:66-1209:66
1207 | ///
1208 | /// - Parameters:
1209 + ///     - logits: The *unnormalized* categorical distribution(s).
     |                                                                  ╰─suggestion: Document 'stream' parameter
1210 | public func categorical(
1211 |     _ logits: MLXArray, axis: Int = -1, shape: [Int]? = nil, key: RandomStateOrKey? = nil,
warning: Parameter 'stream' is missing documentation
    --> ../Random.swift:1232:66-1232:66
1230 | ///
1231 | /// - Parameters:
1232 + ///     - logits: The *unnormalized* categorical distribution(s).
     |                                                                  ╰─suggestion: Document 'stream' parameter
1233 | public func categorical(
1234 |     _ logits: MLXArray, axis: Int = -1, count: Int, key: RandomStateOrKey? = nil,
warning: Parameter 'axis' is missing documentation
    --> ../Random.swift:1232:66-1232:66
1230 | ///
1231 | /// - Parameters:
1232 + ///     - logits: The *unnormalized* categorical distribution(s).
     |                                                                  ╰─suggestion: Document 'axis' parameter
1233 | public func categorical(
1234 |     _ logits: MLXArray, axis: Int = -1, count: Int, key: RandomStateOrKey? = nil,
warning: Parameter 'key' is missing documentation
    --> ../Random.swift:1232:66-1232:66
1230 | ///
1231 | /// - Parameters:
1232 + ///     - logits: The *unnormalized* categorical distribution(s).
     |                                                                  ╰─suggestion: Document 'key' parameter
1233 | public func categorical(
1234 |     _ logits: MLXArray, axis: Int = -1, count: Int, key: RandomStateOrKey? = nil,
warning: Parameter 'count' is missing documentation
    --> ../Random.swift:1232:66-1232:66
1230 | ///
1231 | /// - Parameters:
1232 + ///     - logits: The *unnormalized* categorical distribution(s).
     |                                                                  ╰─suggestion: Document 'count' parameter
1233 | public func categorical(
1234 |     _ logits: MLXArray, axis: Int = -1, count: Int, key: RandomStateOrKey? = nil,
warning: Parameter 'stream' is missing documentation
    --> ../Random.swift:1246:45-1246:45
1244 | ///   - dtype: type of the output
1245 | ///   - loc: mean of the distribution
1246 + ///   - scale: scale "b" of the distribution
     |                                             ╰─suggestion: Document 'stream' parameter
1247 | public func laplace(
1248 |     _ shape: [Int] = [], dtype: DType = .float32, loc: Float = 0, scale: Float = 1,
warning: Parameter 'key' is missing documentation
    --> ../Random.swift:1246:45-1246:45
1244 | ///   - dtype: type of the output
1245 | ///   - loc: mean of the distribution
1246 + ///   - scale: scale "b" of the distribution
     |                                             ╰─suggestion: Document 'key' parameter
1247 | public func laplace(
1248 |     _ shape: [Int] = [], dtype: DType = .float32, loc: Float = 0, scale: Float = 1,
warning: 'withNewDefaultStream(device:_:)' is ambiguous at '/MLX/Stream'
   --> ../Stream.swift:128:20-128:51
126 |     /// New stream on the given device.
127 |     ///
128 +     /// See also ``withNewDefaultStream(device:_:)``
    |                                                   ├─suggestion: Insert '-5bwc3' for 'static func withNewDefaultStream<R>(device: Device? = nil, _ body: () async throws -> R) async rethrows -> R'
    |                                                   ╰─suggestion: Insert '-7pvrv' for 'static func withNewDefaultStream<R>(device: Device? = nil, _ body: () throws -> R) rethrows -> R'
129 |     public init(_ device: Device) {
130 |         self.ctx = evalLock.withLock {
Finished building documentation for 'MLX' (0.86s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/ml-explore/mlx-swift/0.29.1
Fetching https://github.com/apple/swift-docc-plugin
Updating https://github.com/apple/swift-numerics
Updated https://github.com/apple/swift-numerics (0.48s)
[1/2133] Fetching swift-docc-plugin
Fetched https://github.com/apple/swift-docc-plugin from cache (1.26s)
Computing version for https://github.com/apple/swift-numerics
Computed https://github.com/apple/swift-numerics at 1.1.1 (1.79s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.4.5 (2.03s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3553] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.21s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.93s)
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.4.5
Building for debugging...
[0/7] Write snippet-extract-tool-entitlement.plist
[1/8] Write sources
[4/8] Write swift-version-49B95AFC49DCD68C.txt
[6/53] Compiling SymbolKit Mixin+Equals.swift
[7/53] Compiling SymbolKit Mixin+Hash.swift
[8/53] Compiling SymbolKit Mixin.swift
[9/53] Compiling SymbolKit LineList.swift
[10/53] Compiling SymbolKit Position.swift
[11/57] Emitting module SymbolKit
[12/57] Compiling SymbolKit Names.swift
[13/57] Compiling SymbolKit SPI.swift
[14/57] Compiling SymbolKit Snippet.swift
[15/57] Compiling SymbolKit Extension.swift
[16/57] Compiling Snippets SnippetParser.swift
[17/57] Emitting module Snippets
[18/57] Compiling Snippets Snippet.swift
[19/57] Compiling SymbolKit GenericConstraint.swift
[20/57] Compiling SymbolKit GenericParameter.swift
[21/57] Compiling SymbolKit Generics.swift
[22/57] Compiling SymbolKit Namespace.swift
[23/57] Compiling SymbolKit SemanticVersion.swift
[24/57] Compiling SymbolKit AccessControl.swift
[25/57] Compiling SymbolKit Availability.swift
[26/57] Compiling SymbolKit AvailabilityItem.swift
[27/57] Compiling SymbolKit Domain.swift
[28/57] Compiling SymbolKit SourceRange.swift
[29/57] Compiling SymbolKit Metadata.swift
[30/57] Compiling SymbolKit Module.swift
[31/57] Compiling SymbolKit OperatingSystem.swift
[32/57] Compiling SymbolKit Platform.swift
[33/57] Compiling SymbolKit Identifier.swift
[34/57] Compiling SymbolKit KindIdentifier.swift
[35/57] Compiling SymbolKit Location.swift
[36/57] Compiling SymbolKit Mutability.swift
[37/57] Compiling SymbolKit Relationship.swift
[38/57] Compiling SymbolKit RelationshipKind.swift
[39/57] Compiling SymbolKit SourceOrigin.swift
[40/57] Compiling SymbolKit GenericConstraints.swift
[41/57] Compiling SymbolKit Swift.swift
[42/57] Compiling SymbolKit DeclarationFragments.swift
[43/57] Compiling SymbolKit Fragment.swift
[44/57] Compiling SymbolKit FragmentKind.swift
[45/57] Compiling SymbolKit FunctionParameter.swift
[46/57] Compiling SymbolKit FunctionSignature.swift
[47/57] Compiling SymbolKit Symbol.swift
[48/57] Compiling SymbolKit SymbolKind.swift
[49/57] Compiling SymbolKit SymbolGraph.swift
[50/57] Compiling SymbolKit GraphCollector.swift
[51/57] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[52/57] Compiling SymbolKit UnifiedSymbol.swift
[53/57] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[54/57] Compiling SymbolKit UnifiedSymbolGraph.swift
[55/61] Compiling snippet_extract SymbolGraph+Snippet.swift
[56/61] Compiling snippet_extract URL+Status.swift
[57/61] Compiling snippet_extract SnippetBuildCommand.swift
[58/61] Emitting module snippet_extract
[58/61] Write Objects.LinkFileList
[59/61] Linking snippet-extract-tool
[60/61] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (3.76s)
Building for debugging...
[0/1] Write swift-version-49B95AFC49DCD68C.txt
Build of target: 'MLX' complete! (0.59s)
Target:                   MLXRandom
Extracting symbol information for 'MLXRandom'...
Finished extracting symbol information for 'MLXRandom'. (0.69s)
Building documentation for 'MLXRandom'...
warning: Parameter 'stream' is missing documentation
   --> Source/MLXRandom/Random.swift:160:22-160:22
158 | ///   - loc: mean of the distribution
159 | ///   - scale: standard deviation of the distribution
160 + ///   - key: PRNG key
    |                      ╰─suggestion: Document 'stream' parameter
161 | @available(*, deprecated, message: "normal is now available in the main MLX module")
162 | @_disfavoredOverload
warning: Parameter 'stream' is missing documentation
   --> Source/MLXRandom/Random.swift:191:22-191:22
189 | ///   - loc: mean of the distribution
190 | ///   - scale: standard deviation of the distribution
191 + ///   - key: PRNG key
    |                      ╰─suggestion: Document 'stream' parameter
192 | @available(*, deprecated, message: "normal is now available in the main MLX module")
193 | @_disfavoredOverload
warning: Parameter 'stream' is missing documentation
   --> Source/MLXRandom/Random.swift:217:22-217:22
215 | /// shapes of `mean` and `covariance`.
216 | ///   - dtype: DType of the result
217 + ///   - key: PRNG key
    |                      ╰─suggestion: Document 'stream' parameter
218 | @available(*, deprecated, message: "multivariateNormal is now available in the main MLX module")
219 | @_disfavoredOverload
warning: Parameter 'stream' is missing documentation
   --> Source/MLXRandom/Random.swift:498:66-498:66
496 | ///
497 | /// - Parameters:
498 + ///     - logits: The *unnormalized* categorical distribution(s).
    |                                                                  ╰─suggestion: Document 'stream' parameter
499 | @available(*, deprecated, message: "categorical is now available in the main MLX module")
500 | @_disfavoredOverload
warning: Parameter 'axis' is missing documentation
   --> Source/MLXRandom/Random.swift:498:66-498:66
496 | ///
497 | /// - Parameters:
498 + ///     - logits: The *unnormalized* categorical distribution(s).
    |                                                                  ╰─suggestion: Document 'axis' parameter
499 | @available(*, deprecated, message: "categorical is now available in the main MLX module")
500 | @_disfavoredOverload
warning: Parameter 'key' is missing documentation
   --> Source/MLXRandom/Random.swift:498:66-498:66
496 | ///
497 | /// - Parameters:
498 + ///     - logits: The *unnormalized* categorical distribution(s).
    |                                                                  ╰─suggestion: Document 'key' parameter
499 | @available(*, deprecated, message: "categorical is now available in the main MLX module")
500 | @_disfavoredOverload
warning: Parameter 'shape' is missing documentation
   --> Source/MLXRandom/Random.swift:498:66-498:66
496 | ///
497 | /// - Parameters:
498 + ///     - logits: The *unnormalized* categorical distribution(s).
    |                                                                  ╰─suggestion: Document 'shape' parameter
499 | @available(*, deprecated, message: "categorical is now available in the main MLX module")
500 | @_disfavoredOverload
warning: Parameter 'axis' is missing documentation
   --> Source/MLXRandom/Random.swift:523:66-523:66
521 | ///
522 | /// - Parameters:
523 + ///     - logits: The *unnormalized* categorical distribution(s).
    |                                                                  ╰─suggestion: Document 'axis' parameter
524 | @available(*, deprecated, message: "categorical is now available in the main MLX module")
525 | @_disfavoredOverload
warning: Parameter 'count' is missing documentation
   --> Source/MLXRandom/Random.swift:523:66-523:66
521 | ///
522 | /// - Parameters:
523 + ///     - logits: The *unnormalized* categorical distribution(s).
    |                                                                  ╰─suggestion: Document 'count' parameter
524 | @available(*, deprecated, message: "categorical is now available in the main MLX module")
525 | @_disfavoredOverload
warning: Parameter 'stream' is missing documentation
   --> Source/MLXRandom/Random.swift:523:66-523:66
521 | ///
522 | /// - Parameters:
523 + ///     - logits: The *unnormalized* categorical distribution(s).
    |                                                                  ╰─suggestion: Document 'stream' parameter
524 | @available(*, deprecated, message: "categorical is now available in the main MLX module")
525 | @_disfavoredOverload
warning: Parameter 'key' is missing documentation
   --> Source/MLXRandom/Random.swift:523:66-523:66
521 | ///
522 | /// - Parameters:
523 + ///     - logits: The *unnormalized* categorical distribution(s).
    |                                                                  ╰─suggestion: Document 'key' parameter
524 | @available(*, deprecated, message: "categorical is now available in the main MLX module")
525 | @_disfavoredOverload
warning: Parameter 'key' is missing documentation
   --> Source/MLXRandom/Random.swift:539:45-539:45
537 | ///   - dtype: type of the output
538 | ///   - loc: mean of the distribution
539 + ///   - scale: scale "b" of the distribution
    |                                             ╰─suggestion: Document 'key' parameter
540 | @available(*, deprecated, message: "laplace is now available in the main MLX module")
541 | @_disfavoredOverload
warning: Parameter 'stream' is missing documentation
   --> Source/MLXRandom/Random.swift:539:45-539:45
537 | ///   - dtype: type of the output
538 | ///   - loc: mean of the distribution
539 + ///   - scale: scale "b" of the distribution
    |                                             ╰─suggestion: Document 'stream' parameter
540 | @available(*, deprecated, message: "laplace is now available in the main MLX module")
541 | @_disfavoredOverload
Finished building documentation for 'MLXRandom' (0.07s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/ml-explore/mlx-swift/0.29.1
Building for debugging...
[0/3] Write swift-version-49B95AFC49DCD68C.txt
Build of product 'snippet-extract' complete! (0.51s)
Building for debugging...
[0/1] Write swift-version-49B95AFC49DCD68C.txt
Build of target: 'MLXRandom' complete! (0.59s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/ml-explore/mlx-swift/0.29.1/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/ml-explore/mlx-swift/0.29.1/linkable-paths.json
Target:                   MLXNN
Extracting symbol information for 'MLXNN'...
Finished extracting symbol information for 'MLXNN'. (0.70s)
Building documentation for 'MLXNN'...
warning: 'update(parameters:verify:)' doesn't exist at '/MLXNN/Module'
  --> Module.md:13:12-13:38
11 | - ``Module/trainableParameters()``
12 | - ``Module/update(parameters:)``
13 + - ``Module/update(parameters:verify:)``
   |            ├─suggestion: Replace 'update(parameters:verify:)' with 'update(parameters:verify:path:modulePath:)'
   |            ╰─suggestion: Replace 'update(parameters:verify:)' with 'update(parameters:)'
14 |
15 | ### Layers (sub-modules)
warning: 'update(modules:verify:)' doesn't exist at '/MLXNN/Module'
  --> Module.md:23:12-23:35
21 | - ``Module/namedModules()``
22 | - ``Module/update(modules:)``
23 + - ``Module/update(modules:verify:)``
   |            ├─suggestion: Replace 'update(modules:verify:)' with 'update(modules:verify:path:modulePath:)'
   |            ╰─suggestion: Replace 'update(modules:verify:)' with 'update(modules:)'
24 | - ``Module/visit(modules:)``
25 |
warning: 'update(parameters:verify:)' doesn't exist at '/MLXNN/Module'
  --> custom-layers.md:89:23-89:49
87 | MLX modules allow accessing and updating individual parameters. However, most
88 | times we need to update large subsets of a module's parameters. This action is
89 + performed by ``Module/update(parameters:verify:)``.
   |                       ├─suggestion: Replace 'update(parameters:verify:)' with 'update(parameters:verify:path:modulePath:)'
   |                       ╰─suggestion: Replace 'update(parameters:verify:)' with 'update(parameters:)'
90 |
91 | See also <doc:training>.
warning: 'update(modules:verify:)' doesn't exist at '/MLXNN/Module'
   --> custom-layers.md:143:38-143:61
141 |
142 | - both property wrappers allow replacement keys to be specified
143 + - the ``ModuleInfo`` allows ``Module/update(modules:verify:)`` to replace the module
    |                                      ├─suggestion: Replace 'update(modules:verify:)' with 'update(modules:verify:path:modulePath:)'
    |                                      ╰─suggestion: Replace 'update(modules:verify:)' with 'update(modules:)'
144 |
145 | Replacement keys are important because many times models and weights are defined
warning: 'update(modules:verify:)' doesn't exist at '/MLXNN/Module'
   --> custom-layers.md:199:71-199:94
197 | ```
198 |
199 + The `ModuleInfo` provides a hook for ``QuantizedLinear`` and ``Module/update(modules:verify:)`` to
    |                                                                       ├─suggestion: Replace 'update(modules:verify:)' with 'update(modules:verify:path:modulePath:)'
    |                                                                       ╰─suggestion: Replace 'update(modules:verify:)' with 'update(modules:)'
200 | replace the contents of `w1`, etc. with a new compatible `Model` after it is created.
201 |
warning: 'update(modules:verify:)' doesn't exist at '/MLXNN/Module'
  --> ../Linear.swift:34:77-34:100
32 | /// ## Using In A Module
33 | ///
34 + /// > Use `@ModuleInfo` with all your `Linear` module uses so that ``Module/update(modules:verify:)`` can
   |                                                                             ├─suggestion: Replace 'update(modules:verify:)' with 'update(modules:verify:path:modulePath:)'
   |                                                                             ╰─suggestion: Replace 'update(modules:verify:)' with 'update(modules:)'
35 | /// replace the modules, e.g. via ``QuantizedLinear/quantize(model:groupSize:bits:predicate:)``.
36 | ///
warning: 'update(modules:verify:)' doesn't exist at '/MLXNN/Module'
  --> ../Module.swift:82:39-82:62
80 | /// > Please read <doc:custom-layers> for more information about implementing custom layers
81 | /// including how to override the module and parameter keys and allowing dynamic updates of the
82 + /// module structure to occur via ``update(modules:verify:)``.
   |                                       ├─suggestion: Replace 'update(modules:verify:)' with 'update(modules:verify:path:modulePath:)'
   |                                       ╰─suggestion: Replace 'update(modules:verify:)' with 'update(modules:)'
83 | ///
84 | /// ### Training
warning: 'update(parameters:verify:)' doesn't exist at '/MLXNN/Module/VerifyUpdate'
   --> ../Module.swift:377:33-377:59
375 |     }
376 |
377 +     /// Options for verifying ``update(parameters:verify:)`` and ``update(modules:verify:)``.
    |                                 ╰─suggestion: Replace 'update(parameters:verify:)' with 'update(with:)'
378 |     public struct VerifyUpdate: OptionSet, Sendable {
379 |         public init(rawValue: Int) {
warning: 'update(modules:verify:)' doesn't exist at '/MLXNN/Module/VerifyUpdate'
   --> ../Module.swift:377:68-377:91
375 |     }
376 |
377 +     /// Options for verifying ``update(parameters:verify:)`` and ``update(modules:verify:)``.
    |                                                                    ╰─suggestion: Replace 'update(modules:verify:)' with 'update(with:)'
378 |     public struct VerifyUpdate: OptionSet, Sendable {
379 |         public init(rawValue: Int) {
warning: 'update(parameters:verify:)' doesn't exist at '/MLXNN/Module/update(parameters:)'
   --> ../Module.swift:396:37-396:63
394 |     }
395 |
396 +     /// A non-throwing version of ``update(parameters:verify:)``.
397 |     ///
398 |     /// This passes `verify: .none`.  Note that there may still be `fatalErrors()` if
warning: Parameter 'modulePath' is missing documentation
   --> ../Module.swift:428:9-428:9
426 |     ///     or ``mapParameters(map:isLeaf:)`` provides
427 |     ///   - verify: options for verifying parameters
428 +     ///
    |         ╰─suggestion: Document 'modulePath' parameter
429 |     /// ### See Also
430 |     /// - <doc:custom-layers>
warning: Parameter 'path' is missing documentation
   --> ../Module.swift:428:9-428:9
426 |     ///     or ``mapParameters(map:isLeaf:)`` provides
427 |     ///   - verify: options for verifying parameters
428 +     ///
    |         ╰─suggestion: Document 'path' parameter
429 |     /// ### See Also
430 |     /// - <doc:custom-layers>
warning: 'update(modules:verify:)' doesn't exist at '/MLXNN/Module/update(parameters:verify:path:modulePath:)'
   --> ../Module.swift:435:13-435:36
433 |     /// - ``parameters()``
434 |     /// - ``mapParameters(map:isLeaf:)``
435 +     /// - ``update(modules:verify:)``
436 |     @discardableResult
437 |     open func update(
warning: 'update(modules:verify:)' doesn't exist at '/MLXNN/Module/update(modules:)'
   --> ../Module.swift:564:37-564:60
562 |     }
563 |
564 +     /// A non-throwing version of ``update(modules:verify:)``.
565 |     ///
566 |     /// This passes `verify: .none`.  Note that there may still be `fatalErrors()` if
warning: Parameter 'path' is missing documentation
   --> ../Module.swift:607:9-607:9
605 |     ///   - modules: replacement modules in the same format as ``children()`` or ``leafModules()``
606 |     ///   - verify: options for verifying parameters
607 +     ///
    |         ╰─suggestion: Document 'path' parameter
608 |     /// ### See Also
609 |     /// - <doc:custom-layers>
warning: Parameter 'modulePath' is missing documentation
   --> ../Module.swift:607:9-607:9
605 |     ///   - modules: replacement modules in the same format as ``children()`` or ``leafModules()``
606 |     ///   - verify: options for verifying parameters
607 +     ///
    |         ╰─suggestion: Document 'modulePath' parameter
608 |     /// ### See Also
609 |     /// - <doc:custom-layers>
warning: 'update(parameters:verify:)' doesn't exist at '/MLXNN/Module/update(modules:verify:path:modulePath:)'
   --> ../Module.swift:611:13-611:39
609 |     /// - <doc:custom-layers>
610 |     /// - ``update(modules:)``
611 +     /// - ``update(parameters:verify:)``
612 |     /// - ``children()``
613 |     /// - ``leafModules()``
warning: 'update(modules:verify:)' doesn't exist at '/MLXNN/Module'
    --> ../Module.swift:1427:31-1427:54
1425 |
1426 | /// ModuleInfo can provde information about child modules and act as an
1427 + /// update point for ``Module/update(modules:verify:)``.
     |                               ├─suggestion: Replace 'update(modules:verify:)' with 'update(modules:verify:path:modulePath:)'
     |                               ╰─suggestion: Replace 'update(modules:verify:)' with 'update(modules:)'
1428 | ///
1429 | /// The keys for modules and parameters are usually named after their instance variables,
warning: 'update(modules:verify:)' doesn't exist at '/MLXNN/Module'
    --> ../Module.swift:1476:75-1476:98
1474 | /// ```
1475 | ///
1476 + /// The `ModuleInfo` provides a hook for ``QuantizedLinear`` and ``Module/update(modules:verify:)`` /// to
     |                                                                           ├─suggestion: Replace 'update(modules:verify:)' with 'update(modules:verify:path:modulePath:)'
     |                                                                           ╰─suggestion: Replace 'update(modules:verify:)' with 'update(modules:)'
1477 | /// replace the contents of `w1`, etc. with a new compatible `Model` after it is created.
1478 | ///
warning: Parameter 'mode' is missing documentation
  --> ../Quantized.swift:53:125-53:125
51 | ///   - bits: bits per parameter
52 | ///   - filter: filter receiving path and module -- return `false` to skip a layer
   |       ╰─suggestion: Document 'mode' parameter
53 + ///   - apply: function to attempt the quantization -- the default implementation will quantize ``Linear`` and ``Embedding``
54 | /// ### See Also
55 | /// - ``quantize(model:filter:apply:)``
warning: 'quantize(model:filter:apply:)' is ambiguous at '/MLXNN'
  --> ../Quantized.swift:55:9-55:38
53 | ///   - apply: function to attempt the quantization -- the default implementation will quantize ``Linear`` and ``Embedding``
54 | /// ### See Also
55 + /// - ``quantize(model:filter:apply:)``
   |                                      ├─suggestion: Insert '-(_,_,(Module,Int,Int)->Module?)' for 'func quantize(model: Module, filter: (String, Module) -> (groupSize: Int, bits: Int)?, apply: (Module, Int, Int) -> Module? = { quantizeSingle(layer: $0, groupSize: $1, bits: $2, mode: .affine) })'
   |                                      ╰─suggestion: Insert '-(_,_,(Module,Int,Int,QuantizationMode)->Module?)' for 'func quantize(model: Module, filter: (String, Module) -> (groupSize: Int, bits: Int, mode: QuantizationMode)?, apply: (Module, Int, Int, QuantizationMode) -> Module? = quantizeSingle( layer:groupSize:bits:mode:))'
56 | public func quantize(
57 |     model: Module,
warning: 'init(weight:bias:groupSize:bits:)' doesn't exist at '/MLXNN/QuantizedLinear'
   --> ../Quantized.swift:231:9-231:42
229 | ///
230 | /// ### See Also
231 + /// - ``init(weight:bias:groupSize:bits:)``
    |         ├─suggestion: Replace 'init(weight:bias:groupSize:bits:)' with 'init(weight:bias:groupSize:bits:mode:)'
    |         ╰─suggestion: Replace 'init(weight:bias:groupSize:bits:)' with 'init(weight:bias:scales:biases:groupSize:bits:mode:)'
232 | open class QuantizedLinear: Linear, Quantized {
233 |
warning: Parameter 'mode' is missing documentation
   --> ../Quantized.swift:255:64-255:64
253 |     ///   - bias: if `true` this layer will apply a bias
254 |     ///   - groupSize: The group size to use for the quantized weight
255 +     ///   - bits: The bit width to use for the quantized weight
    |                                                                ╰─suggestion: Document 'mode' parameter
256 |     public convenience init(
257 |         _ inputDimensions: Int, _ outputDimensions: Int,
warning: Parameter 'mode' is missing documentation
   --> ../Quantized.swift:275:64-275:64
273 |     ///   - other: a `Linear` layer
274 |     ///   - groupSize: The group size to use for the quantized weight
275 +     ///   - bits: The bit width to use for the quantized weight
    |                                                                ╰─suggestion: Document 'mode' parameter
276 |     public convenience init(
277 |         _ other: Linear, groupSize: Int = 64, bits: Int = 4,
Finished building documentation for 'MLXNN' (0.40s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/ml-explore/mlx-swift/0.29.1
Building for debugging...
[0/3] Write swift-version-49B95AFC49DCD68C.txt
Build of product 'snippet-extract' complete! (0.51s)
Building for debugging...
[0/1] Write swift-version-49B95AFC49DCD68C.txt
Build of target: 'MLXNN' complete! (0.58s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/ml-explore/mlx-swift/0.29.1/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/ml-explore/mlx-swift/0.29.1/linkable-paths.json
Target:                   MLXOptimizers
Extracting symbol information for 'MLXOptimizers'...
Finished extracting symbol information for 'MLXOptimizers'. (0.65s)
Building documentation for 'MLXOptimizers'...
Finished building documentation for 'MLXOptimizers' (0.08s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/ml-explore/mlx-swift/0.29.1
Building for debugging...
[0/3] Write swift-version-49B95AFC49DCD68C.txt
Build of product 'snippet-extract' complete! (0.49s)
Building for debugging...
[0/1] Write swift-version-49B95AFC49DCD68C.txt
Build of target: 'MLXOptimizers' complete! (0.56s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/ml-explore/mlx-swift/0.29.1/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/ml-explore/mlx-swift/0.29.1/linkable-paths.json
Target:                   MLXFFT
Extracting symbol information for 'MLXFFT'...
Finished extracting symbol information for 'MLXFFT'. (0.64s)
Building documentation for 'MLXFFT'...
warning: Parameter 'n' not found in function declaration
   --> Source/MLXFFT/FFT.swift:207:7-208:83
205 | /// - Parameters:
206 | ///   - array: input array
207 + ///   - n: size of the transformed axis.  The corresponding axis in the input is truncated or padded with zeros to
    |       ╰─suggestion: Remove 'n' parameter documentation
208 + ///   match `n / 2 + 1`.  If not specified `array.dim(axis) / 2 + 1` will be used.
209 | ///   - axis: axis along which to perform the FFT
210 | ///   - stream: stream or device to evaluate on
warning: Parameter 'axis' not found in function declaration
   --> Source/MLXFFT/FFT.swift:209:7-209:50
207 | ///   - n: size of the transformed axis.  The corresponding axis in the input is truncated or padded with zeros to
208 | ///   match `n / 2 + 1`.  If not specified `array.dim(axis) / 2 + 1` will be used.
209 + ///   - axis: axis along which to perform the FFT
    |       ╰─suggestion: Remove 'axis' parameter documentation
210 | ///   - stream: stream or device to evaluate on
211 | /// - Returns: inverse of ``rfft2(_:s:axes:stream:)``
warning: Parameter 'axes' is missing documentation
   --> Source/MLXFFT/FFT.swift:210:48-210:48
208 | ///   match `n / 2 + 1`.  If not specified `array.dim(axis) / 2 + 1` will be used.
209 | ///   - axis: axis along which to perform the FFT
210 + ///   - stream: stream or device to evaluate on
    |       ╰─suggestion: Document 'axes' parameter
211 | /// - Returns: inverse of ``rfft2(_:s:axes:stream:)``
212 | ///
warning: Parameter 's' is missing documentation
   --> Source/MLXFFT/FFT.swift:210:48-210:48
208 | ///   match `n / 2 + 1`.  If not specified `array.dim(axis) / 2 + 1` will be used.
209 | ///   - axis: axis along which to perform the FFT
210 + ///   - stream: stream or device to evaluate on
    |       ╰─suggestion: Document 's' parameter
211 | /// - Returns: inverse of ``rfft2(_:s:axes:stream:)``
212 | ///
warning: Parameter 'n' not found in function declaration
   --> Source/MLXFFT/FFT.swift:256:7-257:83
254 | /// - Parameters:
255 | ///   - array: input array
256 + ///   - n: size of the transformed axis.  The corresponding axis in the input is truncated or padded with zeros to
    |       ╰─suggestion: Remove 'n' parameter documentation
257 + ///   match `n / 2 + 1`.  If not specified `array.dim(axis) / 2 + 1` will be used.
258 | ///   - axis: axis along which to perform the FFT
259 | ///   - stream: stream or device to evaluate on
warning: Parameter 'axis' not found in function declaration
   --> Source/MLXFFT/FFT.swift:258:7-258:50
256 | ///   - n: size of the transformed axis.  The corresponding axis in the input is truncated or padded with zeros to
257 | ///   match `n / 2 + 1`.  If not specified `array.dim(axis) / 2 + 1` will be used.
258 + ///   - axis: axis along which to perform the FFT
    |       ╰─suggestion: Remove 'axis' parameter documentation
259 | ///   - stream: stream or device to evaluate on
260 | /// - Returns: inverse of ``rfftn(_:s:axes:stream:)``
warning: Parameter 's' is missing documentation
   --> Source/MLXFFT/FFT.swift:259:48-259:48
257 | ///   match `n / 2 + 1`.  If not specified `array.dim(axis) / 2 + 1` will be used.
258 | ///   - axis: axis along which to perform the FFT
259 + ///   - stream: stream or device to evaluate on
    |       ╰─suggestion: Document 's' parameter
260 | /// - Returns: inverse of ``rfftn(_:s:axes:stream:)``
261 | ///
warning: Parameter 'axes' is missing documentation
   --> Source/MLXFFT/FFT.swift:259:48-259:48
257 | ///   match `n / 2 + 1`.  If not specified `array.dim(axis) / 2 + 1` will be used.
258 | ///   - axis: axis along which to perform the FFT
259 + ///   - stream: stream or device to evaluate on
    |       ╰─suggestion: Document 'axes' parameter
260 | /// - Returns: inverse of ``rfftn(_:s:axes:stream:)``
261 | ///
Finished building documentation for 'MLXFFT' (0.06s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/ml-explore/mlx-swift/0.29.1
Building for debugging...
[0/3] Write swift-version-49B95AFC49DCD68C.txt
Build of product 'snippet-extract' complete! (0.49s)
Building for debugging...
[0/1] Write swift-version-49B95AFC49DCD68C.txt
Build of target: 'MLXFFT' complete! (0.56s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/ml-explore/mlx-swift/0.29.1/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/ml-explore/mlx-swift/0.29.1/linkable-paths.json
Target:                   MLXLinalg
Extracting symbol information for 'MLXLinalg'...
Finished extracting symbol information for 'MLXLinalg'. (0.64s)
Building documentation for 'MLXLinalg'...
warning: '4dwwp' isn't a disambiguation for 'norm(_:ord:axes:keepDims:stream:)' at '/MLXLinalg'
   --> Source/MLXLinalg/Linalg.swift:103:42-103:48
101 | ///
102 | /// ### See Also
103 + /// - ``norm(_:ord:axes:keepDims:stream:)-4dwwp``
    |                                          ├─suggestion: Replace '4dwwp' with '(_,Double,_,_,_)' for 'func norm(_ array: MLXArray, ord: Double, axes: [Int], keepDims: Bool = false, stream: StreamOrDevice = .default) -> MLXArray'
    |                                          ╰─suggestion: Replace '4dwwp' with '(_,MLXLinalg.NormKind?,_,_,_)' for 'func norm(_ array: MLXArray, ord: MLXLinalg.NormKind? = nil, axes: [Int], keepDims: Bool = false, stream: StreamOrDevice = .default) -> MLXArray'
104 | @available(*, deprecated, message: "norm is now available in the main MLX module")
105 | @_disfavoredOverload
warning: '4dwwp' isn't a disambiguation for 'norm(_:ord:axes:keepDims:stream:)' at '/MLXLinalg'
   --> Source/MLXLinalg/Linalg.swift:115:44-115:50
113 | /// Matrix or vector norm.
114 | ///
115 + /// See ``norm(_:ord:axes:keepDims:stream:)-4dwwp``
    |                                            ├─suggestion: Replace '4dwwp' with '(_,Double,_,_,_)' for 'func norm(_ array: MLXArray, ord: Double, axes: [Int], keepDims: Bool = false, stream: StreamOrDevice = .default) -> MLXArray'
    |                                            ╰─suggestion: Replace '4dwwp' with '(_,MLXLinalg.NormKind?,_,_,_)' for 'func norm(_ array: MLXArray, ord: MLXLinalg.NormKind? = nil, axes: [Int], keepDims: Bool = false, stream: StreamOrDevice = .default) -> MLXArray'
116 | @available(*, deprecated, message: "norm is now available in the main MLX module")
117 | @_disfavoredOverload
warning: 'norm(_:ord:axes:keepDims:stream:)' is ambiguous at '/MLXLinalg'
   --> Source/MLXLinalg/Linalg.swift:127:11-127:44
125 | /// Matrix or vector norm.
126 | ///
127 + /// See ``norm(_:ord:axes:keepDims:stream:)``
    |                                            ├─suggestion: Insert '-(_,Double,_,_,_)' for 'func norm(_ array: MLXArray, ord: Double, axes: [Int], keepDims: Bool = false, stream: StreamOrDevice = .default) -> MLXArray'
    |                                            ╰─suggestion: Insert '-(_,MLXLinalg.NormKind?,_,_,_)' for 'func norm(_ array: MLXArray, ord: MLXLinalg.NormKind? = nil, axes: [Int], keepDims: Bool = false, stream: StreamOrDevice = .default) -> MLXArray'
128 | @available(*, deprecated, message: "norm is now available in the main MLX module")
129 | @_disfavoredOverload
warning: '4dwwp' isn't a disambiguation for 'norm(_:ord:axes:keepDims:stream:)' at '/MLXLinalg'
   --> Source/MLXLinalg/Linalg.swift:139:44-139:50
137 | /// Matrix or vector norm.
138 | ///
139 + /// See ``norm(_:ord:axes:keepDims:stream:)-4dwwp``
    |                                            ├─suggestion: Replace '4dwwp' with '(_,Double,_,_,_)' for 'func norm(_ array: MLXArray, ord: Double, axes: [Int], keepDims: Bool = false, stream: StreamOrDevice = .default) -> MLXArray'
    |                                            ╰─suggestion: Replace '4dwwp' with '(_,MLXLinalg.NormKind?,_,_,_)' for 'func norm(_ array: MLXArray, ord: MLXLinalg.NormKind? = nil, axes: [Int], keepDims: Bool = false, stream: StreamOrDevice = .default) -> MLXArray'
140 | @available(*, deprecated, message: "norm is now available in the main MLX module")
141 | @_disfavoredOverload
warning: 'norm(_:ord:axes:keepDims:stream:)' is ambiguous at '/MLXLinalg'
   --> Source/MLXLinalg/Linalg.swift:151:11-151:44
149 | /// Matrix or vector norm.
150 | ///
151 + /// See ``norm(_:ord:axes:keepDims:stream:)``
    |                                            ├─suggestion: Insert '-(_,Double,_,_,_)' for 'func norm(_ array: MLXArray, ord: Double, axes: [Int], keepDims: Bool = false, stream: StreamOrDevice = .default) -> MLXArray'
    |                                            ╰─suggestion: Insert '-(_,MLXLinalg.NormKind?,_,_,_)' for 'func norm(_ array: MLXArray, ord: MLXLinalg.NormKind? = nil, axes: [Int], keepDims: Bool = false, stream: StreamOrDevice = .default) -> MLXArray'
152 | @available(*, deprecated, message: "norm is now available in the main MLX module")
153 | @_disfavoredOverload
warning: 'A' doesn't exist at '/MLXLinalg/lu(_:stream:)'
   --> Source/MLXLinalg/Linalg.swift:289:56-289:57
287 | }
288 |
289 + /// Compute the LU factorization of the given matrix ``A``.
290 | ///
291 | /// Note, unlike the default behavior of ``scipy.linalg.lu``, the pivots
warning: 'scipy.linalg.lu' doesn't exist at '/MLXLinalg/lu(_:stream:)'
   --> Source/MLXLinalg/Linalg.swift:291:44-291:59
289 | /// Compute the LU factorization of the given matrix ``A``.
290 | ///
291 + /// Note, unlike the default behavior of ``scipy.linalg.lu``, the pivots
292 | /// are indices. To reconstruct the input use ``L[P] @ U`` for 2
293 | /// dimensions or ``takeAlong(L, P[.ellipsis, .newAxis], axis: -2) @ U``
warning: 'L[P] @ U' doesn't exist at '/MLXLinalg/lu(_:stream:)'
   --> Source/MLXLinalg/Linalg.swift:292:49-292:57
290 | ///
291 | /// Note, unlike the default behavior of ``scipy.linalg.lu``, the pivots
292 + /// are indices. To reconstruct the input use ``L[P] @ U`` for 2
293 | /// dimensions or ``takeAlong(L, P[.ellipsis, .newAxis], axis: -2) @ U``
294 | /// for more than 2 dimensions.
warning: 'takeAlong(L, P[.ellipsis, .newAxis], axis: -2) @ U' doesn't exist at '/MLXLinalg/lu(_:stream:)'
   --> Source/MLXLinalg/Linalg.swift:293:21-293:71
291 | /// Note, unlike the default behavior of ``scipy.linalg.lu``, the pivots
292 | /// are indices. To reconstruct the input use ``L[P] @ U`` for 2
293 + /// dimensions or ``takeAlong(L, P[.ellipsis, .newAxis], axis: -2) @ U``
294 | /// for more than 2 dimensions.
295 | ///
Finished building documentation for 'MLXLinalg' (0.06s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/ml-explore/mlx-swift/0.29.1
Building for debugging...
[0/3] Write swift-version-49B95AFC49DCD68C.txt
Build of product 'snippet-extract' complete! (0.48s)
Building for debugging...
[0/1] Write swift-version-49B95AFC49DCD68C.txt
Build of target: 'MLXLinalg' complete! (0.56s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/ml-explore/mlx-swift/0.29.1/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/ml-explore/mlx-swift/0.29.1/linkable-paths.json
Target:                   MLXFast
Extracting symbol information for 'MLXFast'...
Finished extracting symbol information for 'MLXFast'. (0.64s)
Building documentation for 'MLXFast'...
warning: 'metalKernel(name:inputNames:outputNames:source:header:ensureRowContiguous:atomicOutputs:template:grid:threadGroup:outputShapes:outputDTypes:initValue:verbose:)' doesn't exist at '/MLXFast/MLXFastKernel'
 --> Source/MLXFast/MLXFastKernel.swift:7:7-7:166
5 |
6 | /// Container for a kernel created by
7 + /// ``metalKernel(name:inputNames:outputNames:source:header:ensureRowContiguous:atomicOutputs:template:grid:threadGroup:outputShapes:outputDTypes:initValue:verbose:)``
8 | ///
9 | /// The ``MLXFast/MLXFastKernel`` can be used to evaluate the kernel with inputs:
Finished building documentation for 'MLXFast' (0.05s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/ml-explore/mlx-swift/0.29.1
Building for debugging...
[0/3] Write swift-version-49B95AFC49DCD68C.txt
Build of product 'snippet-extract' complete! (0.48s)
Building for debugging...
[0/1] Write swift-version-49B95AFC49DCD68C.txt
Build of target: 'MLXFast' complete! (0.55s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/ml-explore/mlx-swift/0.29.1/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/ml-explore/mlx-swift/0.29.1/linkable-paths.json
    3726
31	/Users/admin/builder/spi-builder-workspace/.docs/ml-explore/mlx-swift/0.29.1
✅  Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/ml-explore/mlx-swift/0.29.1
File count: 3726
Doc size:   31.0MB
Preparing doc bundle ...
Uploading prod-ml-explore-mlx-swift-0.29.1-21630b19.zip to s3://spi-docs-inbox/prod-ml-explore-mlx-swift-0.29.1-21630b19.zip
Copying... [11%]
Copying... [20%]
Copying... [30%]
Copying... [41%]
Copying... [51%]
Copying... [60%]
Copying... [71%]
Copying... [81%]
Copying... [90%]
Copying... [100%]
Done.