Build Information
Successful build of SwiftSlash, reference 3.4.0 (dbcd79
), with Swift 6.0 for macOS (SPM) on 29 Nov 2024 07:35:44 UTC.
Swift 6 data race errors: 1
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Build Log
========================================
RunAll
========================================
Builder version: 4.58.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/tannerdsilva/SwiftSlash.git
Reference: 3.4.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/tannerdsilva/SwiftSlash
* tag 3.4.0 -> FETCH_HEAD
HEAD is now at dbcd791 Improved Command struct API and documentation
Cloned https://github.com/tannerdsilva/SwiftSlash.git
Revision (git rev-parse @):
dbcd79125918644c348471853ef5332d650548db
SUCCESS checkout https://github.com/tannerdsilva/SwiftSlash.git at 3.4.0
========================================
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": "swiftslash",
"name": "SwiftSlash",
"url": "https://github.com/tannerdsilva/SwiftSlash.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SwiftSlash",
"dependencies": [
]
}
]
}
Fetching https://github.com/tannerdsilva/SwiftSlash.git
[1/2694] Fetching swiftslash
Fetched https://github.com/tannerdsilva/SwiftSlash.git from cache (1.02s)
Creating working copy for https://github.com/tannerdsilva/SwiftSlash.git
Working copy of https://github.com/tannerdsilva/SwiftSlash.git resolved at 3.4.0 (dbcd791)
warning: '.resolve-product-dependencies': dependency 'swiftslash' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $PWD
https://github.com/tannerdsilva/SwiftSlash.git
{
"dependencies" : [
],
"manifest_display_name" : "SwiftSlash",
"name" : "SwiftSlash",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "12.0"
}
],
"products" : [
{
"name" : "SwiftSlash",
"targets" : [
"SwiftSlash"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SwiftSlashTests",
"module_type" : "SwiftTarget",
"name" : "SwiftSlashTests",
"path" : "Tests/SwiftSlashTests",
"sources" : [
"ConcurrentExitTest.swift",
"ConcurrentReadTest.swift",
"ConcurrentWriteTest.swift",
"InternalTests.swift"
],
"target_dependencies" : [
"SwiftSlash"
],
"type" : "test"
},
{
"c99name" : "SwiftSlash",
"module_type" : "SwiftTarget",
"name" : "SwiftSlash",
"path" : "Sources/SwiftSlash",
"product_memberships" : [
"SwiftSlash"
],
"sources" : [
"Child Signal Handler/ChildSignalCatcher.swift",
"Command.swift",
"CurrentProcessState.swift",
"DataChannel.swift",
"Extensions/Command/Equatable.swift",
"Extensions/Command/Hashable.swift",
"Framework Internals/IO Handlers/Channels/BufferedLineParser.swift",
"Framework Internals/IO Handlers/Channels/EventTrigger.swift",
"Framework Internals/IO Handlers/Channels/States/InboundChannelState.swift",
"Framework Internals/IO Handlers/Channels/States/OutboundChannelState.swift",
"Framework Internals/IO Handlers/PosixBasics.swift",
"Framework Internals/ProcessSpawner.swift",
"ProcessInterface.swift",
"SwiftSlash.swift"
],
"target_dependencies" : [
"ClibSwiftSlash"
],
"type" : "library"
},
{
"c99name" : "ClibSwiftSlash",
"module_type" : "ClangTarget",
"name" : "ClibSwiftSlash",
"path" : "Sources/ClibSwiftSlash",
"product_memberships" : [
"SwiftSlash"
],
"sources" : [
"libswiftslash.c"
],
"type" : "library"
}
],
"tools_version" : "5.5"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/3] Write sources
[1/3] Write swift-version--7754E27361AE5C74.txt
[2/3] Compiling ClibSwiftSlash libswiftslash.c
[4/17] Compiling SwiftSlash BufferedLineParser.swift
[5/17] Compiling SwiftSlash EventTrigger.swift
[6/18] Emitting module SwiftSlash
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/Child Signal Handler/ChildSignalCatcher.swift:30:21: warning: no 'async' operations occur within 'await' expression
28 | if (waitResult > 0) {
29 | Task.detached { [waitResult, status] in
30 | for handler in await ChildSignalCatcher.global.handlerStack {
| `- warning: no 'async' operations occur within 'await' expression
31 | await handler.handler(waitResult, status)
32 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/Child Signal Handler/ChildSignalCatcher.swift:30:53: warning: non-sendable type 'Set<ChildSignalCatcher.KeyedHandler>' in implicitly asynchronous access to actor-isolated property 'handlerStack' cannot cross actor boundary; this is an error in the Swift 6 language mode
28 | if (waitResult > 0) {
29 | Task.detached { [waitResult, status] in
30 | for handler in await ChildSignalCatcher.global.handlerStack {
| `- warning: non-sendable type 'Set<ChildSignalCatcher.KeyedHandler>' in implicitly asynchronous access to actor-isolated property 'handlerStack' cannot cross actor boundary; this is an error in the Swift 6 language mode
31 | await handler.handler(waitResult, status)
32 | }
:
43 | public typealias SignalHandle = UInt64
44 |
45 | fileprivate struct KeyedHandler:Hashable{
| `- note: consider making struct 'KeyedHandler' conform to the 'Sendable' protocol
46 | let handle:SignalHandle
47 | let handler:SignalHandler
[7/18] Compiling SwiftSlash OutboundChannelState.swift
[8/18] Compiling SwiftSlash PosixBasics.swift
[9/18] Compiling SwiftSlash InboundChannelState.swift
[10/18] Compiling SwiftSlash ProcessSpawner.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/Framework Internals/ProcessSpawner.swift:230:20: warning: sending 'self'-isolated value of type 'DataChannel.Outbound' with later accesses to actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
228 | fhWritersToDeregisterIfThrown.update(with:newPipe.writing)
229 | enabledWriters.update(with:newPipe)
230 | let newOut = OutboundChannelState(channel:curOut.value)
| `- warning: sending 'self'-isolated value of type 'DataChannel.Outbound' with later accesses to actor-isolated context risks causing data races; this is an error in the Swift 6 language mode
231 | buildOut[curOut.key] = newOut
232 | _ = self.writerTrigger.updateValue(newOut.continuation, forKey:newPipe.writing)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/Framework Internals/ProcessSpawner.swift:264:19: warning: sending 'parseMode' risks causing data races; this is an error in the Swift 6 language mode
262 | readPipes[curIn.key] = newPipe
263 | enabledReaders.update(with:newPipe)
264 | let newIn = InboundChannelState(mode:parseMode, continuation:curIn.value.continuation)
| |- warning: sending 'parseMode' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'parseMode' to actor-isolated callee risks causing data races between actor-isolated and 'self'-isolated uses
265 | buildIn[curIn.key] = newIn
266 | _ = self.readerTrigger.updateValue(newIn.eventContinuation, forKey:newPipe.reading)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/Framework Internals/ProcessSpawner.swift:384:124: warning: sending 'writables' risks causing data races; this is an error in the Swift 6 language mode
381 | do {
382 | if utilized > threshold {
383 | let result:pid_t = try await withUnsafeThrowingContinuation { exitCont in
| `- note: access can happen concurrently
384 | self.pendingLaunchPackages.append(PackagedLaunch(interface:interface, path:path, args:args, wd:wd, env:env, writables:writables, readables:readables, exitContinuation:exitCont))
| |- warning: sending 'writables' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'self'-isolated 'writables' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
385 | }
386 | try await taskGroup.waitForAll()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/Framework Internals/ProcessSpawner.swift:384:145: warning: sending 'readables' risks causing data races; this is an error in the Swift 6 language mode
382 | if utilized > threshold {
383 | let result:pid_t = try await withUnsafeThrowingContinuation { exitCont in
384 | self.pendingLaunchPackages.append(PackagedLaunch(interface:interface, path:path, args:args, wd:wd, env:env, writables:writables, readables:readables, exitContinuation:exitCont))
| |- warning: sending 'readables' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'self'-isolated 'readables' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
385 | }
386 | try await taskGroup.waitForAll()
| `- note: access can happen concurrently
387 | return result
388 | } else {
:
394 | }
395 | } catch let error {
396 | taskGroup.cancelAll()
| `- note: access can happen concurrently
397 | throw error
398 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/Framework Internals/ProcessSpawner.swift:390:110: warning: sending 'writables' risks causing data races; this is an error in the Swift 6 language mode
387 | return result
388 | } else {
389 | let result:pid_t = try await withUnsafeThrowingContinuation { exitCont in
| `- note: access can happen concurrently
390 | self.launch(package:PackagedLaunch(interface:interface, path:path, args:args, wd:wd, env:env, writables:writables, readables:readables, exitContinuation:exitCont))
| |- warning: sending 'writables' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'self'-isolated 'writables' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
391 | }
392 | try await taskGroup.waitForAll()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/Framework Internals/ProcessSpawner.swift:390:131: warning: sending 'readables' risks causing data races; this is an error in the Swift 6 language mode
388 | } else {
389 | let result:pid_t = try await withUnsafeThrowingContinuation { exitCont in
390 | self.launch(package:PackagedLaunch(interface:interface, path:path, args:args, wd:wd, env:env, writables:writables, readables:readables, exitContinuation:exitCont))
| |- warning: sending 'readables' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'self'-isolated 'readables' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
391 | }
392 | try await taskGroup.waitForAll()
| `- note: access can happen concurrently
393 | return result
394 | }
395 | } catch let error {
396 | taskGroup.cancelAll()
| `- note: access can happen concurrently
397 | throw error
398 | }
[11/18] Compiling SwiftSlash Equatable.swift
[12/18] Compiling SwiftSlash Hashable.swift
[13/18] Compiling SwiftSlash CurrentProcessState.swift
[14/18] Compiling SwiftSlash DataChannel.swift
[15/18] Compiling SwiftSlash ProcessInterface.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/ProcessInterface.swift:164:37: warning: sending 'self.outboundChannels' risks causing data races; this is an error in the Swift 6 language mode
162 | do {
163 | let exitPid = try await withThrowingTaskGroup(of:Void.self, returning:pid_t.self, body: { tg in
164 | try await ProcessSpawner.global.launch(path:self.command.executable, args:self.command.arguments, wd:self.command.workingDirectory, env:self.command.environment, writables:self.outboundChannels, readables:self.inboundChannels, taskGroup:&tg, onBehalfOf:self)
| |- warning: sending 'self.outboundChannels' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.outboundChannels' to actor-isolated instance method 'launch(path:args:wd:env:writables:readables:taskGroup:onBehalfOf:)' risks causing data races between actor-isolated and 'self'-isolated uses
165 | })
166 | self._state = .running(exitPid)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/ProcessInterface.swift:164:37: warning: sending 'self.inboundChannels' risks causing data races; this is an error in the Swift 6 language mode
162 | do {
163 | let exitPid = try await withThrowingTaskGroup(of:Void.self, returning:pid_t.self, body: { tg in
164 | try await ProcessSpawner.global.launch(path:self.command.executable, args:self.command.arguments, wd:self.command.workingDirectory, env:self.command.environment, writables:self.outboundChannels, readables:self.inboundChannels, taskGroup:&tg, onBehalfOf:self)
| |- warning: sending 'self.inboundChannels' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.inboundChannels' to actor-isolated instance method 'launch(path:args:wd:env:writables:readables:taskGroup:onBehalfOf:)' risks causing data races between actor-isolated and 'self'-isolated uses
165 | })
166 | self._state = .running(exitPid)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/ProcessInterface.swift:164:37: warning: sending 'tg' risks causing data races; this is an error in the Swift 6 language mode
162 | do {
163 | let exitPid = try await withThrowingTaskGroup(of:Void.self, returning:pid_t.self, body: { tg in
164 | try await ProcessSpawner.global.launch(path:self.command.executable, args:self.command.arguments, wd:self.command.workingDirectory, env:self.command.environment, writables:self.outboundChannels, readables:self.inboundChannels, taskGroup:&tg, onBehalfOf:self)
| |- warning: sending 'tg' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'tg' to actor-isolated instance method 'launch(path:args:wd:env:writables:readables:taskGroup:onBehalfOf:)' risks causing data races between actor-isolated and 'self'-isolated uses
165 | })
166 | self._state = .running(exitPid)
[16/18] Compiling SwiftSlash ChildSignalCatcher.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/Child Signal Handler/ChildSignalCatcher.swift:30:21: warning: no 'async' operations occur within 'await' expression
28 | if (waitResult > 0) {
29 | Task.detached { [waitResult, status] in
30 | for handler in await ChildSignalCatcher.global.handlerStack {
| `- warning: no 'async' operations occur within 'await' expression
31 | await handler.handler(waitResult, status)
32 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/Child Signal Handler/ChildSignalCatcher.swift:30:53: warning: non-sendable type 'Set<ChildSignalCatcher.KeyedHandler>' in implicitly asynchronous access to actor-isolated property 'handlerStack' cannot cross actor boundary; this is an error in the Swift 6 language mode
28 | if (waitResult > 0) {
29 | Task.detached { [waitResult, status] in
30 | for handler in await ChildSignalCatcher.global.handlerStack {
| `- warning: non-sendable type 'Set<ChildSignalCatcher.KeyedHandler>' in implicitly asynchronous access to actor-isolated property 'handlerStack' cannot cross actor boundary; this is an error in the Swift 6 language mode
31 | await handler.handler(waitResult, status)
32 | }
:
43 | public typealias SignalHandle = UInt64
44 |
45 | fileprivate struct KeyedHandler:Hashable{
| `- note: consider making struct 'KeyedHandler' conform to the 'Sendable' protocol
46 | let handle:SignalHandle
47 | let handler:SignalHandler
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/Command.swift:84:23: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
82 | /// - Returns: Results of the command are captured in a ``Result`` and returned after the command has finished executing
83 | public func runSync() async throws -> Command.Result {
84 | let procInterface = ProcessInterface(command:self)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
85 | try await procInterface.launch()
86 | //add the stdout task
[17/18] Compiling SwiftSlash Command.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/Child Signal Handler/ChildSignalCatcher.swift:30:21: warning: no 'async' operations occur within 'await' expression
28 | if (waitResult > 0) {
29 | Task.detached { [waitResult, status] in
30 | for handler in await ChildSignalCatcher.global.handlerStack {
| `- warning: no 'async' operations occur within 'await' expression
31 | await handler.handler(waitResult, status)
32 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/Child Signal Handler/ChildSignalCatcher.swift:30:53: warning: non-sendable type 'Set<ChildSignalCatcher.KeyedHandler>' in implicitly asynchronous access to actor-isolated property 'handlerStack' cannot cross actor boundary; this is an error in the Swift 6 language mode
28 | if (waitResult > 0) {
29 | Task.detached { [waitResult, status] in
30 | for handler in await ChildSignalCatcher.global.handlerStack {
| `- warning: non-sendable type 'Set<ChildSignalCatcher.KeyedHandler>' in implicitly asynchronous access to actor-isolated property 'handlerStack' cannot cross actor boundary; this is an error in the Swift 6 language mode
31 | await handler.handler(waitResult, status)
32 | }
:
43 | public typealias SignalHandle = UInt64
44 |
45 | fileprivate struct KeyedHandler:Hashable{
| `- note: consider making struct 'KeyedHandler' conform to the 'Sendable' protocol
46 | let handle:SignalHandle
47 | let handler:SignalHandler
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/Command.swift:84:23: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
82 | /// - Returns: Results of the command are captured in a ``Result`` and returned after the command has finished executing
83 | public func runSync() async throws -> Command.Result {
84 | let procInterface = ProcessInterface(command:self)
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to actor-isolated callee risks causing data races between actor-isolated and task-isolated uses
85 | try await procInterface.launch()
86 | //add the stdout task
[18/18] Compiling SwiftSlash SwiftSlash.swift
Build complete! (13.17s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "SwiftSlash",
"name" : "SwiftSlash",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "12.0"
}
],
"products" : [
{
"name" : "SwiftSlash",
"targets" : [
"SwiftSlash"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SwiftSlashTests",
"module_type" : "SwiftTarget",
"name" : "SwiftSlashTests",
"path" : "Tests/SwiftSlashTests",
"sources" : [
"ConcurrentExitTest.swift",
"ConcurrentReadTest.swift",
"ConcurrentWriteTest.swift",
"InternalTests.swift"
],
"target_dependencies" : [
"SwiftSlash"
],
"type" : "test"
},
{
"c99name" : "SwiftSlash",
"module_type" : "SwiftTarget",
"name" : "SwiftSlash",
"path" : "Sources/SwiftSlash",
"product_memberships" : [
"SwiftSlash"
],
"sources" : [
"Child Signal Handler/ChildSignalCatcher.swift",
"Command.swift",
"CurrentProcessState.swift",
"DataChannel.swift",
"Extensions/Command/Equatable.swift",
"Extensions/Command/Hashable.swift",
"Framework Internals/IO Handlers/Channels/BufferedLineParser.swift",
"Framework Internals/IO Handlers/Channels/EventTrigger.swift",
"Framework Internals/IO Handlers/Channels/States/InboundChannelState.swift",
"Framework Internals/IO Handlers/Channels/States/OutboundChannelState.swift",
"Framework Internals/IO Handlers/PosixBasics.swift",
"Framework Internals/ProcessSpawner.swift",
"ProcessInterface.swift",
"SwiftSlash.swift"
],
"target_dependencies" : [
"ClibSwiftSlash"
],
"type" : "library"
},
{
"c99name" : "ClibSwiftSlash",
"module_type" : "ClangTarget",
"name" : "ClibSwiftSlash",
"path" : "Sources/ClibSwiftSlash",
"product_memberships" : [
"SwiftSlash"
],
"sources" : [
"libswiftslash.c"
],
"type" : "library"
}
],
"tools_version" : "5.5"
}
Done.