Build Information
Successful build of ETTrace, reference main (ea8a0e), with Swift 6.4 for macOS (SPM) on 21 Sep 2026 09:57:07 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/EmergeTools/ETTrace.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/EmergeTools/ETTrace
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at ea8a0ec Add more options (#108)
Cloned https://github.com/EmergeTools/ETTrace.git
Revision (git rev-parse @):
ea8a0ec37872d732992f1d6fdd2b0307f463eb65
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/EmergeTools/ETTrace.git at main
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/EmergeTools/ETTrace.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Computing dependencies]
[Pre-planning 1 / 481]
[Planning deferred tasks]
[39 / 188] Swifter
[85 / 188]
[96 / 192] ETModels
[103 / 215]
[109 / 215]
[117 / 250]
[139 / 332]
[152 / 333]
[162 / 333]
[174 / 333]
[182 / 378]
[184 / 378]
[197 / 378]
[214 / 378]
[223 / 378]
[229 / 378]
[236 / 378]
[239 / 378]
[246 / 378]
[253 / 378]
[257 / 378]
[261 / 378]
[270 / 378]
[275 / 378]
[277 / 378]
[278 / 378]
[289 / 378]
[302 / 378] Tracer
[304 / 378] Swifter
[306 / 378] Swifter
[327 / 378] ETTrace
[331 / 378] ArgumentParser-product
[335 / 378] ArgumentParser
[337 / 378] Swifter
[346 / 379] Tracer
[346 / 379] ArgumentParser
[347 / 379] Swifter
[352 / 380] ETTrace
[356 / 391]
[361 / 391]
[367 / 426]
[373 / 426]
[380 / 426]
[384 / 426]
[392 / 426]
[393 / 426]
[396 / 426]
[398 / 426]
[403 / 426]
[403 / 426] ETTrace-product
[405 / 426]
[410 / 426] Symbolicator
[419 / 427] Symbolicator
[419 / 427] ETTraceRunner-product
[432 / 441] ETTraceRunner-product
[434 / 441] ETTraceRunner-product
[434 / 441] Symbolicator
[437 / 441] ETTraceRunner-product
[439 / 441] ETTraceRunner-product
Build complete! (12.34 sec)
Fetching https://github.com/httpswift/swifter.git
Fetching https://github.com/EmergeTools/peertalk.git
Fetching https://github.com/apple/swift-argument-parser.git
[1/682] Fetching peertalk
[49/6732] Fetching peertalk, swifter
[1334/25650] Fetching peertalk, swifter, swift-argument-parser
Fetched https://github.com/EmergeTools/peertalk.git (1.93s)
Fetched https://github.com/apple/swift-argument-parser.git (1.93s)
[4477/6050] Fetching swifter
Fetched https://github.com/httpswift/swifter.git (2.16s)
Computing version for https://github.com/httpswift/swifter.git
Computed https://github.com/httpswift/swifter.git at 1.5.0 (4.90s)
Computing version for https://github.com/EmergeTools/peertalk.git
Computed https://github.com/EmergeTools/peertalk.git at 1.0.0 (0.65s)
Computing version for https://github.com/apple/swift-argument-parser.git
Computed https://github.com/apple/swift-argument-parser.git at 1.8.2 (0.60s)
Creating working copy for https://github.com/httpswift/swifter.git
Working copy of https://github.com/httpswift/swifter.git resolved at 1.5.0
Creating working copy for https://github.com/EmergeTools/peertalk.git
Working copy of https://github.com/EmergeTools/peertalk.git resolved at 1.0.0
Creating working copy for https://github.com/apple/swift-argument-parser.git
Working copy of https://github.com/apple/swift-argument-parser.git resolved at 1.8.2
[1m/Users/admin/builder/spi-builder-workspace/ETTrace/ETTrace/EMGChannelListener.m:127:95: [0m[0;1;35mwarning: [0m[1mincompatible pointer types sending 'dispatch_data_t' (aka 'NSObject<OS_dispatch_data> *') to parameter of type 'NSData * _Nullable' [-Wincompatible-pointer-types][0m
127 | [self.peerChannel sendFrameOfType:PTFrameTypeResultsMetadata tag:PTFrameNoTag withPayload:dataFrame callback:nil];[0m
| [0;1;32m ^~~~~~~~~
[0mIn module 'Peertalk' imported from /Users/admin/builder/spi-builder-workspace/ETTrace/ETTrace/EMGChannelListener.m:10:
[1m/Users/admin/builder/spi-builder-workspace/.build/checkouts/peertalk/peertalk/public/PTChannel.h:72:94: [0m[0;1;36mnote: [0mpassing argument to parameter 'payload' here[0m
72 | - (void)sendFrameOfType:(uint32_t)frameType tag:(uint32_t)tag withPayload:(nullable NSData *)payload callback:(nullable void(^)(NSError * _Nullable error))callback NS_SWIFT_NAME(sendFrame(type:tag:payload:callback:));[0m
| [0;1;32m ^
[0m1 warning generated.
[1m/Users/admin/builder/spi-builder-workspace/ETTrace/Tracer/EMGTracer.mm:108:24: [0m[0;1;35mwarning: [0m[1mvariable length arrays in C++ are a Clang extension [-Wvla-cxx-extension][0m
108 | u_char buildBuffer[bufferSize];[0m
| [0;1;32m ^~~~~~~~~~
[0m[1m/Users/admin/builder/spi-builder-workspace/ETTrace/Tracer/EMGTracer.mm:108:24: [0m[0;1;36mnote: [0mread of non-const variable 'bufferSize' is not allowed in a constant expression[0m
[1m/Users/admin/builder/spi-builder-workspace/ETTrace/Tracer/EMGTracer.mm:101:12: [0m[0;1;36mnote: [0mdeclared here[0m
101 | size_t bufferSize = [0;32m0[0m;[0m
| [0;1;32m ^
[0m1 warning generated.
/Users/admin/builder/spi-builder-workspace/ETTrace/ETTraceRunner/Devices/PhysicalDeviceManager.swift:49:24: [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'PhysicalDevicemanager?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m15 |[0;0m }
[0;36m16 |[0;0m
[0;36m17 |[0;0m class PhysicalDevicemanager: DeviceManager {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'PhysicalDevicemanager' does not conform to the 'Sendable' protocol[0;0m
[0;36m18 |[0;0m
[0;36m19 |[0;0m var communicationChannel: CommunicationChannel
[0;36m:[0;0m
[0;36m47 |[0;0m } else {
[0;36m48 |[0;0m observer = NotificationCenter.default.addObserver(forName:.deviceDidAttach, object: usbHub, queue: nil) {[weak self] notification in
[0;36m49 |[0;0m if self?.verbose == true {
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'PhysicalDevicemanager?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m50 |[0;0m print("Device did attach notification")
[0;36m51 |[0;0m }
/Users/admin/builder/spi-builder-workspace/ETTrace/ETTraceRunner/Devices/PhysicalDeviceManager.swift:57:118: [1;33mwarning: [1;39mcapture of 'usbHub' with non-Sendable type 'PTUSBHub' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m55 |[0;0m self?.deviceID = deviceID
[0;36m56 |[0;0m
[0;36m57 |[0;0m NotificationCenter.default.removeObserver(self?.observer as Any, name: .deviceDidAttach, object: usbHub)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'usbHub' with non-Sendable type 'PTUSBHub' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m58 |[0;0m
[0;36m59 |[0;0m self?.connect(withId: deviceID, usbHub: usbHub, continuation: continuation)
/Users/admin/builder/spi-builder-workspace/.build/checkouts/peertalk/peertalk/public/PTUSBHub.h:47:12: [1;39mnote: [1;39mclass 'PTUSBHub' does not conform to the 'Sendable' protocol[0;0m
[0;36m45 |[0;0m } PTUSBHubError;
[0;36m46 |[0;0m
[0;36m47 |[0;0m @interface PTUSBHub : NSObject
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'PTUSBHub' does not conform to the 'Sendable' protocol[0;0m
[0;36m48 |[0;0m
[0;36m49 |[0;0m // Shared, implicitly opened hub.
/Users/admin/builder/spi-builder-workspace/ETTrace/ETTraceRunner/Devices/PhysicalDeviceManager.swift:9:1: [1;33mwarning: [1;39madd '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Peertalk'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/add-preconcurrency-import\AddPreconcurrencyImport]8;;\]
[0;36m7 |[0;0m
[0;36m8 |[0;0m import Foundation
[0;36m9 |[0;0m import Peertalk
[0;36m|[0;0m `- [1;33mwarning: [1;39madd '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Peertalk'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/add-preconcurrency-import\AddPreconcurrencyImport]8;;\]
[0;36m10 |[0;0m import CommunicationFrame
[0;36m11 |[0;0m
[#AddPreconcurrencyImport]: <https://docs.swift.org/compiler/documentation/diagnostics/add-preconcurrency-import>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
/Users/admin/builder/spi-builder-workspace/ETTrace/ETTraceRunner/Devices/CommunicationChannel.swift:36:12: [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'CommunicationChannel?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m10 |[0;0m import Peertalk
[0;36m11 |[0;0m
[0;36m12 |[0;0m class CommunicationChannel: NSObject {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'CommunicationChannel' does not conform to the 'Sendable' protocol[0;0m
[0;36m13 |[0;0m
[0;36m14 |[0;0m lazy var channel = PTChannel(protocol: nil, delegate: self)
[0;36m:[0;0m
[0;36m34 |[0;0m return await withCheckedContinuation { continuation in
[0;36m35 |[0;0m DispatchQueue.main.async { [weak self] in
[0;36m36 |[0;0m if self?.reportGenerated == true {
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'CommunicationChannel?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m37 |[0;0m continuation.resume()
[0;36m38 |[0;0m } else {
/Users/admin/builder/spi-builder-workspace/ETTrace/ETTraceRunner/Devices/CommunicationChannel.swift:48:26: [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'CommunicationChannel?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m10 |[0;0m import Peertalk
[0;36m11 |[0;0m
[0;36m12 |[0;0m class CommunicationChannel: NSObject {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'CommunicationChannel' does not conform to the 'Sendable' protocol[0;0m
[0;36m13 |[0;0m
[0;36m14 |[0;0m lazy var channel = PTChannel(protocol: nil, delegate: self)
[0;36m:[0;0m
[0;36m46 |[0;0m return await withCheckedContinuation{ continuation in
[0;36m47 |[0;0m DispatchQueue.main.async { [weak self] in
[0;36m48 |[0;0m guard let self = self else { return }
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'self' with non-Sendable type 'CommunicationChannel?' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m49 |[0;0m
[0;36m50 |[0;0m if self.resultsReceived == true {
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
Build complete.
{
"cxx_language_standard" : "c++17",
"dependencies" : [
{
"identity" : "peertalk",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/EmergeTools/peertalk.git"
},
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.2.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser.git"
},
{
"identity" : "swifter",
"requirement" : {
"range" : [
{
"lower_bound" : "1.5.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/httpswift/swifter.git"
}
],
"manifest_display_name" : "ETTrace",
"name" : "ETTrace",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "13.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "ETTrace",
"targets" : [
"ETTrace"
],
"type" : {
"library" : [
"dynamic"
]
}
},
{
"name" : "Tracer",
"targets" : [
"Tracer"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "Symbolicator",
"targets" : [
"Symbolicator"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "ETTraceRunner",
"targets" : [
"ETTraceRunner"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "Unwinding",
"module_type" : "ClangTarget",
"name" : "Unwinding",
"path" : "Unwinding/Crashlytics",
"product_memberships" : [
"ETTrace",
"Tracer"
],
"sources" : [
"Crashlytics/Components/FIRCLSEmerge.c",
"Crashlytics/Helpers/FIRCLSInternalLogging.c",
"Crashlytics/Helpers/FIRCLSLogger.m",
"Crashlytics/Helpers/FIRCLSThreadState.c",
"Crashlytics/Helpers/FIRCLSUtility.m",
"Crashlytics/Unwind/FIRCLSUnwind.c",
"Crashlytics/Unwind/FIRCLSUnwind_arm.c",
"Crashlytics/Unwind/FIRCLSUnwind_x86.c"
],
"type" : "library"
},
{
"c99name" : "TracerSwift",
"module_type" : "SwiftTarget",
"name" : "TracerSwift",
"path" : "ETTrace/TracerSwift",
"product_memberships" : [
"ETTrace",
"Tracer"
],
"sources" : [
"ThreadHelper.swift",
"UnsafeRawPointer+Commands.swift"
],
"target_dependencies" : [
"Unwinding"
],
"type" : "library"
},
{
"c99name" : "Tracer",
"module_type" : "ClangTarget",
"name" : "Tracer",
"path" : "ETTrace/Tracer",
"product_memberships" : [
"ETTrace",
"Tracer"
],
"sources" : [
"EMGStackTraceRecorder.cpp",
"EMGTracer+PrintThreads.m",
"EMGTracer.mm",
"EMGWriteLibraries.m"
],
"target_dependencies" : [
"Unwinding",
"TracerSwift"
],
"type" : "library"
},
{
"c99name" : "Symbolicator",
"module_type" : "SwiftTarget",
"name" : "Symbolicator",
"path" : "ETTrace/Symbolicator",
"product_memberships" : [
"Symbolicator",
"ETTraceRunner"
],
"sources" : [
"FlamegraphGenerator.swift",
"Models.swift",
"Symbolicator.swift",
"Utils.swift"
],
"target_dependencies" : [
"ETModels"
],
"type" : "library"
},
{
"c99name" : "JSONWrapper",
"module_type" : "ClangTarget",
"name" : "JSONWrapper",
"path" : "ETTrace/JSONWrapper",
"product_memberships" : [
"ETTraceRunner"
],
"sources" : [
"JSONWrapper.m"
],
"target_dependencies" : [
"ETModels"
],
"type" : "library"
},
{
"c99name" : "ETTraceRunner",
"module_type" : "SwiftTarget",
"name" : "ETTraceRunner",
"path" : "ETTrace/ETTraceRunner",
"product_dependencies" : [
"Peertalk",
"ArgumentParser",
"Swifter"
],
"product_memberships" : [
"ETTraceRunner"
],
"sources" : [
"ConnectivityHelper.swift",
"Devices/CommunicationChannel.swift",
"Devices/DeviceManager.swift",
"Devices/PhysicalDeviceManager.swift",
"Devices/SimulatorDeviceManager.swift",
"ETTrace.swift",
"ProcessSelector.swift",
"ResponseModels/ResponseModel.swift",
"RunnerHelper.swift",
"main.swift"
],
"target_dependencies" : [
"CommunicationFrame",
"JSONWrapper",
"ETModels",
"Symbolicator"
],
"type" : "executable"
},
{
"c99name" : "ETTrace",
"module_type" : "ClangTarget",
"name" : "ETTrace",
"path" : "ETTrace/ETTrace",
"product_dependencies" : [
"Peertalk"
],
"product_memberships" : [
"ETTrace"
],
"sources" : [
"EMGChannelListener.m",
"EMGPerfAnalysis.mm"
],
"target_dependencies" : [
"Tracer",
"CommunicationFrame"
],
"type" : "library"
},
{
"c99name" : "ETModels",
"module_type" : "SwiftTarget",
"name" : "ETModels",
"path" : "ETTrace/ETModels",
"product_memberships" : [
"Symbolicator",
"ETTraceRunner"
],
"sources" : [
"FlameNode.swift",
"Flamegraph.swift",
"FlamegraphEvent.swift",
"Sample.swift",
"ThreadNode.swift"
],
"type" : "library"
},
{
"c99name" : "CommunicationFrame",
"module_type" : "ClangTarget",
"name" : "CommunicationFrame",
"path" : "ETTrace/CommunicationFrame",
"product_memberships" : [
"ETTrace",
"ETTraceRunner"
],
"sources" : [
"EMGDummyEmptyClass.m"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.