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.