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 Compute, reference main (b1ba1e), with Swift 6.0 for macOS (SPM) on 9 Jul 2025 18:22:44 UTC.

Swift 6 data race errors: 0

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/schwa/Compute.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/schwa/Compute
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at b1ba1e1 Add link to shader constant ticket
Cloned https://github.com/schwa/Compute.git
Revision (git rev-parse @):
b1ba1e1071c912007bdbb59313e175887335fab8
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/schwa/Compute.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/schwa/Compute.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64
[1/1] Compiling plugin MetalCompilerPlugin
Building for debugging...
[1/13] Write sources
[1/13] Copying Bundle.txt
[3/13] Write sources
[4/13] Write Examples-entitlement.plist
[6/13] Copying Media.xcassets
[7/13] Write swift-version-5BDAB9E9C0126B9D.txt
[8/26] metal
[9/26] Copying debug.metallib
[11/26] Compiling MetalSupportLite MetalSupportLite.swift
[12/26] Compiling MetalSupportLite BaseSupport.swift
[13/26] Compiling MetalSupportLite TypedMTLBuffer.swift
[14/26] Compiling MetalSupportLite MetalBasicExtensions.swift
[15/26] Compiling MetalSupportLite MTLBuffer+Extensions.swift
[16/26] Emitting module MetalSupportLite
[17/26] Compiling Compute Support.swift
[18/26] Compiling Compute Compute.swift
[19/26] Compiling Compute Compute+Pipeline.swift
[20/26] Compiling Compute Compute+Task.swift
[21/26] Compiling Compute ShaderFunction.swift
[22/26] Emitting module Compute
[23/26] Compiling Compute Compute+Arguments.swift
[24/47] Emitting module Examples
[25/49] Compiling Examples Examples.swift
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/BareMetal.swift:93:21: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
91 |
92 |         // Execute compute pipeline
93 |         try compute.run(pipeline: fill, width: buffer.length)
   |                     `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
94 |     }
95 | }
[26/49] Compiling Examples BareMetal.swift
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/BareMetal.swift:93:21: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
91 |
92 |         // Execute compute pipeline
93 |         try compute.run(pipeline: fill, width: buffer.length)
   |                     `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
94 |     }
95 | }
[27/49] Compiling Examples BitonicSort.swift
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/BareMetal.swift:93:21: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
91 |
92 |         // Execute compute pipeline
93 |         try compute.run(pipeline: fill, width: buffer.length)
   |                     `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
94 |     }
95 | }
[28/49] Compiling Examples BufferFill.swift
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/BufferFill.swift:36:25: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
34 |         var values = Array<UInt32>(repeating: 0, count: count)
35 |         while n > 0 {
36 |             try compute.run(pipeline: bufferFill, width: n)
   |                         `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
37 |             values[0..<n] = Array(repeating: UInt32(n), count: n)[0..<n]
38 |             n >>= 1
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/Checkerboard.swift:65:21: warning: 'run(pipeline:arguments:width:height:)' is deprecated: Deprecated
63 |         checkerboard.arguments.color2 = try .color(.mint)
64 |         checkerboard.arguments.cellSize = .vector(SIMD2<UInt32>(64, 64))
65 |         try compute.run(pipeline: checkerboard, width: outputTexture.width, height: outputTexture.height)
   |                     `- warning: 'run(pipeline:arguments:width:height:)' is deprecated: Deprecated
66 |
67 |         let url = URL(filePath: "/tmp/checkerboard.png")
[29/49] Compiling Examples Checkerboard.swift
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/BufferFill.swift:36:25: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
34 |         var values = Array<UInt32>(repeating: 0, count: count)
35 |         while n > 0 {
36 |             try compute.run(pipeline: bufferFill, width: n)
   |                         `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
37 |             values[0..<n] = Array(repeating: UInt32(n), count: n)[0..<n]
38 |             n >>= 1
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/Checkerboard.swift:65:21: warning: 'run(pipeline:arguments:width:height:)' is deprecated: Deprecated
63 |         checkerboard.arguments.color2 = try .color(.mint)
64 |         checkerboard.arguments.cellSize = .vector(SIMD2<UInt32>(64, 64))
65 |         try compute.run(pipeline: checkerboard, width: outputTexture.width, height: outputTexture.height)
   |                     `- warning: 'run(pipeline:arguments:width:height:)' is deprecated: Deprecated
66 |
67 |         let url = URL(filePath: "/tmp/checkerboard.png")
[30/49] Compiling Examples MaxParallel.swift
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/MaxParallel.swift:39:29: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
37 |             let count = Int(pow(2, Double(n+1))) - 1
38 |             let time = try timed() {
39 |                 try compute.run(pipeline: pipeline, width: count)
   |                             `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
40 |             }
41 |             print("\(count),\t\(Array<UInt32>(maximum)[0]),\t\(Double(time) / Double(1_000_000))")
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/MaxValue.swift:41:25: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
 39 |         maxValue.arguments.output = .buffer(output)
 40 |         try timeit(#function) {
 41 |             try compute.run(pipeline: maxValue, width: 1)
    |                         `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
 42 |         }
 43 |         let result = output.contents().assumingMemoryBound(to: Int32.self)[0]
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/MaxValue.swift:74:25: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
 72 |         maxValue.arguments.output = .buffer(output)
 73 |         try timeit(#function) {
 74 |             try compute.run(pipeline: maxValue, width: values.count)
    |                         `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
 75 |         }
 76 |         let result = output.contents().assumingMemoryBound(to: Int32.self)[0]
[31/49] Compiling Examples MaxValue.swift
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/MaxParallel.swift:39:29: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
37 |             let count = Int(pow(2, Double(n+1))) - 1
38 |             let time = try timed() {
39 |                 try compute.run(pipeline: pipeline, width: count)
   |                             `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
40 |             }
41 |             print("\(count),\t\(Array<UInt32>(maximum)[0]),\t\(Double(time) / Double(1_000_000))")
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/MaxValue.swift:41:25: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
 39 |         maxValue.arguments.output = .buffer(output)
 40 |         try timeit(#function) {
 41 |             try compute.run(pipeline: maxValue, width: 1)
    |                         `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
 42 |         }
 43 |         let result = output.contents().assumingMemoryBound(to: Int32.self)[0]
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/MaxValue.swift:74:25: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
 72 |         maxValue.arguments.output = .buffer(output)
 73 |         try timeit(#function) {
 74 |             try compute.run(pipeline: maxValue, width: values.count)
    |                         `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
 75 |         }
 76 |         let result = output.contents().assumingMemoryBound(to: Int32.self)[0]
[32/49] Compiling Examples HelloWorldDemo.swift
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/HelloWorldDemo.swift:24:21: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
22 |         let library = ShaderLibrary.source(source, enableLogging: true)
23 |         let helloWorld = try compute.makePipeline(function: library.hello_world)
24 |         try compute.run(pipeline: helloWorld, width: 1)
   |                     `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
25 |     }
26 | }
[33/49] Compiling Examples Histogram.swift
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/HelloWorldDemo.swift:24:21: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
22 |         let library = ShaderLibrary.source(source, enableLogging: true)
23 |         let helloWorld = try compute.makePipeline(function: library.hello_world)
24 |         try compute.run(pipeline: helloWorld, width: 1)
   |                     `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
25 |     }
26 | }
[34/49] Compiling Examples ImageInvert.swift
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/ImageInvert.swift:47:21: warning: 'run(pipeline:arguments:width:height:)' is deprecated: Deprecated
45 |         invertImage.arguments.inputTexture = .texture(inputTexture)
46 |         invertImage.arguments.outputTexture = .texture(outputTexture)
47 |         try compute.run(pipeline: invertImage, width: inputTexture.width, height: inputTexture.height)
   |                     `- warning: 'run(pipeline:arguments:width:height:)' is deprecated: Deprecated
48 |
49 |         try outputTexture.export(to: URL(filePath: "/tmp/inverted.png"))
[35/49] Compiling Examples IsSorted.swift
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/ImageInvert.swift:47:21: warning: 'run(pipeline:arguments:width:height:)' is deprecated: Deprecated
45 |         invertImage.arguments.inputTexture = .texture(inputTexture)
46 |         invertImage.arguments.outputTexture = .texture(outputTexture)
47 |         try compute.run(pipeline: invertImage, width: inputTexture.width, height: inputTexture.height)
   |                     `- warning: 'run(pipeline:arguments:width:height:)' is deprecated: Deprecated
48 |
49 |         try outputTexture.export(to: URL(filePath: "/tmp/inverted.png"))
[36/49] Compiling Examples CountingSort.swift
[37/49] Compiling Examples RadixSort.swift
[38/49] Compiling Examples RadixSortCPU.swift
[39/49] Compiling Examples CounterDemo.swift
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/CounterDemo.swift:39:25: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
37 |         pipeline.arguments.step = .int(1)
38 |         try timeit {
39 |             try compute.run(pipeline: pipeline, width: numberOfCounters)
   |                         `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
40 |         }
41 | //        print(Array<Float>(counters))
[40/49] Compiling Examples GameOfLife.swift
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/CounterDemo.swift:39:25: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
37 |         pipeline.arguments.step = .int(1)
38 |         try timeit {
39 |             try compute.run(pipeline: pipeline, width: numberOfCounters)
   |                         `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
40 |         }
41 | //        print(Array<Float>(counters))
[41/49] Compiling Examples MemcopyDemo.swift
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/MemcopyDemo.swift:66:25: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
64 |         // Run and time the empty kernel (baseline)
65 |         try timeit(length: length) {
66 |             try compute.run(pipeline: empty, width: count)
   |                         `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
67 |         }
68 |
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/MemcopyDemo.swift:72:25: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
70 |         // Run and time the fill kernel
71 |         try timeit(length: length) {
72 |             try compute.run(pipeline: fill, width: count)
   |                         `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
73 |         }
74 |
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/MemcopyDemo.swift:78:25: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
76 |         // Run and time the GPU memcpy kernel
77 |         try timeit(length: length) {
78 |             try compute.run(pipeline: memcopy, width: count)
   |                         `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
79 |         }
80 |
[42/49] Compiling Examples RandomFill.swift
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/MemcopyDemo.swift:66:25: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
64 |         // Run and time the empty kernel (baseline)
65 |         try timeit(length: length) {
66 |             try compute.run(pipeline: empty, width: count)
   |                         `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
67 |         }
68 |
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/MemcopyDemo.swift:72:25: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
70 |         // Run and time the fill kernel
71 |         try timeit(length: length) {
72 |             try compute.run(pipeline: fill, width: count)
   |                         `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
73 |         }
74 |
/Users/admin/builder/spi-builder-workspace/Sources/Examples/Examples/MemcopyDemo.swift:78:25: warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
76 |         // Run and time the GPU memcpy kernel
77 |         try timeit(length: length) {
78 |             try compute.run(pipeline: memcopy, width: count)
   |                         `- warning: 'run(pipeline:arguments:width:)' is deprecated: Deprecated
79 |         }
80 |
[43/49] Compiling Examples SIMDReduce.swift
[44/49] Compiling Examples ThreadgroupLog.swift
[45/49] Compiling Examples Support.swift
[46/49] Compiling Examples resource_bundle_accessor.swift
[46/49] Write Objects.LinkFileList
[47/49] Linking Examples
[48/49] Applying Examples
Build complete! (19.13s)
Fetching https://github.com/schwa/MetalCompilerPlugin
[1/270] Fetching metalcompilerplugin
Fetched https://github.com/schwa/MetalCompilerPlugin from cache (0.86s)
Computing version for https://github.com/schwa/MetalCompilerPlugin
Computed https://github.com/schwa/MetalCompilerPlugin at 0.1.0 (2.87s)
Creating working copy for https://github.com/schwa/MetalCompilerPlugin
Working copy of https://github.com/schwa/MetalCompilerPlugin resolved at 0.1.0
Build complete.
{
  "dependencies" : [
    {
      "identity" : "metalcompilerplugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.1.0",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/schwa/MetalCompilerPlugin"
    }
  ],
  "manifest_display_name" : "Compute",
  "name" : "Compute",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "15.0"
    },
    {
      "name" : "ios",
      "version" : "18.0"
    }
  ],
  "products" : [
    {
      "name" : "Compute",
      "targets" : [
        "Compute"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "Examples",
      "targets" : [
        "Examples"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "MetalSupportLite",
      "module_type" : "SwiftTarget",
      "name" : "MetalSupportLite",
      "path" : "Sources/MetalSupportLite",
      "product_memberships" : [
        "Examples"
      ],
      "sources" : [
        "BaseSupport.swift",
        "MTLBuffer+Extensions.swift",
        "MetalBasicExtensions.swift",
        "MetalSupportLite.swift",
        "TypedMTLBuffer.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Examples",
      "module_type" : "SwiftTarget",
      "name" : "Examples",
      "path" : "Sources/Examples",
      "product_dependencies" : [
        "MetalCompilerPlugin"
      ],
      "product_memberships" : [
        "Examples"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Examples/Bundle.txt",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Examples/Resources/Media.xcassets",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Examples.swift",
        "Examples/BareMetal.swift",
        "Examples/BitonicSort/BitonicSort.swift",
        "Examples/Broken/CountingSort/CountingSort.swift",
        "Examples/Broken/RadixSort/RadixSort.swift",
        "Examples/Broken/RadixSort/RadixSortCPU.swift",
        "Examples/BufferFill.swift",
        "Examples/Checkerboard.swift",
        "Examples/CounterDemo.swift",
        "Examples/GameOfLife/GameOfLife.swift",
        "Examples/HelloWorldDemo.swift",
        "Examples/Histogram.swift",
        "Examples/ImageInvert.swift",
        "Examples/IsSorted.swift",
        "Examples/MaxParallel.swift",
        "Examples/MaxValue.swift",
        "Examples/MemcopyDemo.swift",
        "Examples/RandomFill.swift",
        "Examples/SIMDReduce.swift",
        "Examples/ThreadgroupLog.swift",
        "Support.swift"
      ],
      "target_dependencies" : [
        "Compute",
        "MetalSupportLite"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "ComputeTests",
      "module_type" : "SwiftTarget",
      "name" : "ComputeTests",
      "path" : "Tests/ComputeTests",
      "sources" : [
        "ComputeTests.swift"
      ],
      "target_dependencies" : [
        "Compute"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Compute",
      "module_type" : "SwiftTarget",
      "name" : "Compute",
      "path" : "Sources/Compute",
      "product_memberships" : [
        "Compute",
        "Examples"
      ],
      "sources" : [
        "Compute+Arguments.swift",
        "Compute+Pipeline.swift",
        "Compute+Task.swift",
        "Compute.swift",
        "ShaderFunction.swift",
        "Support.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.0"
}
Done.