Build Information
Successful build of WebMIDIKit, reference master (6f3506), with Swift 6.4 for macOS (SPM) on 15 Sep 2026 18:42:39 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/adamnemecek/webmidikit.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/adamnemecek/webmidikit
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 6f35069 Improve Xcode 12+ compatibility (#35)
Cloned https://github.com/adamnemecek/webmidikit.git
Revision (git rev-parse @):
6f3506937c141f04edaaa182502984d7baaa2e26
SUCCESS checkout https://github.com/adamnemecek/webmidikit.git at master
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/adamnemecek/webmidikit.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Planning deferred tasks]
[19 / 28]
[20 / 29] WebMIDIKit
[29 / 100]
[32 / 100]
[39 / 100]
[41 / 100]
[42 / 100]
[47 / 100]
[49 / 100]
[52 / 100]
[57 / 100]
[60 / 100]
[62 / 100]
[63 / 100]
[70 / 100]
[71 / 100]
[73 / 100]
[76 / 100]
[79 / 100]
[80 / 100]
[91 / 100] WebMIDIKit
[97 / 100] WebMIDIKit
Build complete! (10.03 sec)
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/CoreMIDI.swift:3:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'MIDIObjectAddRemoveNotification' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future[0;0m
[0;36m1 |[0;0m import CoreMIDI
[0;36m2 |[0;0m
[0;36m3 |[0;0m extension MIDIObjectAddRemoveNotification: CustomStringConvertible {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'MIDIObjectAddRemoveNotification' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m4 |[0;0m
[0;36m5 |[0;0m public var description: String {
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/Extensions.swift:10:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'MIDIObjectType' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future[0;0m
[0;36m8 |[0;0m }
[0;36m9 |[0;0m
[0;36m10 |[0;0m extension MIDIObjectType: CustomStringConvertible {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'MIDIObjectType' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m11 |[0;0m public var description: String {
[0;36m12 |[0;0m switch self {
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketList.swift:133:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'MIDIPacketList' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future[0;0m
[0;36m131 |[0;0m // }
[0;36m132 |[0;0m
[0;36m133 |[0;0m extension MIDIPacketList: Sequence {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'MIDIPacketList' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m134 |[0;0m public typealias Element = UnsafeMutablePointer<MIDIPacket>
[0;36m135 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketList.swift:220:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'UnsafePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m218 |[0;0m // }
[0;36m219 |[0;0m
[0;36m220 |[0;0m extension UnsafePointer: Sequence where Pointee == MIDIPacketList {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'UnsafePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m221 |[0;0m public typealias Element = UnsafeMutablePointer<MIDIPacket>
[0;36m222 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketListBuilder.swift:194:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'UnsafeMutablePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m192 |[0;0m
[0;36m193 |[0;0m
[0;36m194 |[0;0m extension UnsafeMutablePointer: Sequence where Pointee == MIDIPacketList {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'UnsafeMutablePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m195 |[0;0m public typealias Element = UnsafePointer<MIDIPacket>
[0;36m196 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketListBuilder.swift:216:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'UnsafeRawBufferPointer' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m214 |[0;0m }
[0;36m215 |[0;0m
[0;36m216 |[0;0m extension UnsafeRawBufferPointer : Equatable {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'UnsafeRawBufferPointer' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m217 |[0;0m @inline(__always)
[0;36m218 |[0;0m public static func ==(lhs: Self, rhs: Self) -> Bool {
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/Extensions.swift:10:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'MIDIObjectType' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future[0;0m
[0;36m8 |[0;0m }
[0;36m9 |[0;0m
[0;36m10 |[0;0m extension MIDIObjectType: CustomStringConvertible {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'MIDIObjectType' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m11 |[0;0m public var description: String {
[0;36m12 |[0;0m switch self {
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/CoreMIDI.swift:3:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'MIDIObjectAddRemoveNotification' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future[0;0m
[0;36m1 |[0;0m import CoreMIDI
[0;36m2 |[0;0m
[0;36m3 |[0;0m extension MIDIObjectAddRemoveNotification: CustomStringConvertible {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'MIDIObjectAddRemoveNotification' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m4 |[0;0m
[0;36m5 |[0;0m public var description: String {
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPort.swift:186:27: [1;33mwarning: [1;39mstring interpolation produces a debug description for an optional value; did you mean to make this explicit?[0;0m
[0;36m184 |[0;0m type = "MIDIOutput"
[0;36m185 |[0;0m }
[0;36m186 |[0;0m return "\(type) \([4;39mname[0;0m) by \(manufacturer), connection: \(connection) (id: \(id))"
[0;36m|[0;0m |- [1;33mwarning: [1;39mstring interpolation produces a debug description for an optional value; did you mean to make this explicit?[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39mprovide a default value to avoid this warning[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39muse 'String(describing:)' to silence this warning[0;0m
[0;36m187 |[0;0m }
[0;36m188 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPort.swift:186:38: [1;33mwarning: [1;39mstring interpolation produces a debug description for an optional value; did you mean to make this explicit?[0;0m
[0;36m184 |[0;0m type = "MIDIOutput"
[0;36m185 |[0;0m }
[0;36m186 |[0;0m return "\(type) \(name) by \([4;39mmanufacturer[0;0m), connection: \(connection) (id: \(id))"
[0;36m|[0;0m |- [1;33mwarning: [1;39mstring interpolation produces a debug description for an optional value; did you mean to make this explicit?[0;0m
[0;36m|[0;0m |- [1;39mnote: [1;39mprovide a default value to avoid this warning[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39muse 'String(describing:)' to silence this warning[0;0m
[0;36m187 |[0;0m }
[0;36m188 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketList.swift:133:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'MIDIPacketList' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future[0;0m
[0;36m131 |[0;0m // }
[0;36m132 |[0;0m
[0;36m133 |[0;0m extension MIDIPacketList: Sequence {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'MIDIPacketList' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'CoreMIDI' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m134 |[0;0m public typealias Element = UnsafeMutablePointer<MIDIPacket>
[0;36m135 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketList.swift:220:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'UnsafePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m218 |[0;0m // }
[0;36m219 |[0;0m
[0;36m220 |[0;0m extension UnsafePointer: Sequence where Pointee == MIDIPacketList {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'UnsafePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m221 |[0;0m public typealias Element = UnsafeMutablePointer<MIDIPacket>
[0;36m222 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketListBuilder.swift:194:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'UnsafeMutablePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m192 |[0;0m
[0;36m193 |[0;0m
[0;36m194 |[0;0m extension UnsafeMutablePointer: Sequence where Pointee == MIDIPacketList {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'UnsafeMutablePointer' to imported protocol 'Sequence'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m195 |[0;0m public typealias Element = UnsafePointer<MIDIPacket>
[0;36m196 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/WebMIDIKit/MIDIPacketListBuilder.swift:216:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'UnsafeRawBufferPointer' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m214 |[0;0m }
[0;36m215 |[0;0m
[0;36m216 |[0;0m extension UnsafeRawBufferPointer : Equatable {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'UnsafeRawBufferPointer' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m217 |[0;0m @inline(__always)
[0;36m218 |[0;0m public static func ==(lhs: Self, rhs: Self) -> Bool {
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "WebMIDIKit",
"name" : "WebMIDIKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
}
],
"products" : [
{
"name" : "WebMIDIKit",
"targets" : [
"WebMIDIKit"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "WebMIDIKitTests",
"module_type" : "SwiftTarget",
"name" : "WebMIDIKitTests",
"path" : "Tests/WebMIDIKitTests",
"sources" : [
"MIDIPacketListBuilderTests.swift",
"WebMIDIKitTests.swift"
],
"target_dependencies" : [
"WebMIDIKit"
],
"type" : "test"
},
{
"c99name" : "WebMIDIKit",
"module_type" : "SwiftTarget",
"name" : "WebMIDIKit",
"path" : "Sources/WebMIDIKit",
"product_memberships" : [
"WebMIDIKit"
],
"sources" : [
"CoreMIDI.swift",
"Enums.swift",
"Extensions.swift",
"MIDIClient.swift",
"MIDIEndpoint.swift",
"MIDIEvent.swift",
"MIDIInput.swift",
"MIDIOutput.swift",
"MIDIPacketList.swift",
"MIDIPacketListBuilder.swift",
"MIDIPort.swift",
"MIDIPortMap.swift",
"MIDIStatus.swift",
"VirtualMIDIInput.swift",
"VirtualMIDIOutput.swift",
"WebMIDIKit.swift"
],
"type" : "library"
}
],
"tools_version" : "5.5"
}
Done.