Build Information
Successful build of SwiftSlash with Swift 6.0 (beta) for macOS (SPM).
Swift 6 data race errors: 1
Build Command
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Build Log
========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/tannerdsilva/SwiftSlash.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/tannerdsilva/SwiftSlash
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 10a6080 Update README.md with some rendering niceties and code corrections (#16)
Cloned https://github.com/tannerdsilva/SwiftSlash.git
Revision (git rev-parse @):
10a6080470d0fe481ca2b5ad6acdfc8246cf5406
SUCCESS checkout https://github.com/tannerdsilva/SwiftSlash.git at master
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $workDir
https://github.com/tannerdsilva/SwiftSlash.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/3] Write sources
[1/3] Write swift-version-6F35C1178C84523A.txt
[2/3] Compiling ClibSwiftSlash libswiftslash.c
[4/17] Compiling SwiftSlash InboundChannelState.swift
[5/17] 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
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 '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()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/Framework Internals/ProcessSpawner.swift:383:34: warning: sending 'self'-isolated value of type '(UnsafeContinuation<pid_t, any Error>) -> Void' (aka '(UnsafeContinuation<Int32, any Error>) -> ()') with later accesses to nonisolated context 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
| `- warning: sending 'self'-isolated value of type '(UnsafeContinuation<pid_t, any Error>) -> Void' (aka '(UnsafeContinuation<Int32, any Error>) -> ()') with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
384 | self.pendingLaunchPackages.append(PackagedLaunch(interface:interface, path:path, args:args, wd:wd, env:env, writables:writables, readables:readables, exitContinuation:exitCont))
385 | }
/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
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 '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()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/Framework Internals/ProcessSpawner.swift:389:34: warning: sending 'self'-isolated value of type '(UnsafeContinuation<pid_t, any Error>) -> ()' (aka '(UnsafeContinuation<Int32, any Error>) -> ()') with later accesses to nonisolated context 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
| `- warning: sending 'self'-isolated value of type '(UnsafeContinuation<pid_t, any Error>) -> ()' (aka '(UnsafeContinuation<Int32, any Error>) -> ()') with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
390 | self.launch(package:PackagedLaunch(interface:interface, path:path, args:args, wd:wd, env:env, writables:writables, readables:readables, exitContinuation:exitCont))
391 | }
[6/17] Compiling SwiftSlash PosixBasics.swift
[7/17] Compiling SwiftSlash OutboundChannelState.swift
[8/17] Compiling SwiftSlash BufferedLineParser.swift
[9/17] Compiling SwiftSlash EventTrigger.swift
[10/17] Compiling SwiftSlash Equatable.swift
[11/17] Compiling SwiftSlash Hashable.swift
[12/17] Compiling SwiftSlash CurrentProcessState.swift
[13/17] Compiling SwiftSlash DataChannel.swift
[14/17] 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:112:23: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
110 | /// - Returns: Results of the command are captured in a ``Result`` and returned after the command has finished executing
111 | public func runSync() async throws -> Command.Result {
112 | 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
113 | try await procInterface.launch()
114 | //add the stdout task
[15/17] 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:112:23: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
110 | /// - Returns: Results of the command are captured in a ``Result`` and returned after the command has finished executing
111 | public func runSync() async throws -> Command.Result {
112 | 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
113 | try await procInterface.launch()
114 | //add the stdout task
[16/17] 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
[17/17] Compiling SwiftSlash ProcessInterface.swift
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/ProcessInterface.swift:164:37: warning: sending 'self.command.executable' 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.command.executable' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.command.executable' 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.command.arguments' 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.command.arguments' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.command.arguments' 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.command.environment' 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.command.environment' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.command.environment' 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.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)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftSlash/ProcessInterface.swift:207:20: warning: sending 'self'-isolated value of type '(UnsafeContinuation<Int32, any Error>) -> ()' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
205 |
206 | }
207 | return try await withUnsafeThrowingContinuation { continuation in
| `- warning: sending 'self'-isolated value of type '(UnsafeContinuation<Int32, any Error>) -> ()' with later accesses to nonisolated context risks causing data races; this is an error in the Swift 6 language mode
208 | self.whenExited { exitResults in
209 | switch exitResults {
[18/18] Compiling SwiftSlash SwiftSlash.swift
Build complete! (20.86s)
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.