The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of SwiftSlash, reference 3.4.0 (dbcd79), with Swift 6.0 for Linux on 29 Nov 2024 07:28:50 UTC.

Swift 6 data race errors: 1

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1

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 /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
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
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/tannerdsilva/SwiftSlash.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Building for debugging...
[0/3] Write sources
[1/3] Compiling ClibSwiftSlash libswiftslash.c
[2/3] Write swift-version-24593BA9C3E375BF.txt
[4/17] Compiling SwiftSlash BufferedLineParser.swift
[5/17] Compiling SwiftSlash EventTrigger.swift
[6/17] Compiling SwiftSlash PosixBasics.swift
/host/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)
/host/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)
/host/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()
/host/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 | 		}
/host/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()
/host/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 | 		}
[7/17] Compiling SwiftSlash ProcessSpawner.swift
/host/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)
/host/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)
/host/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()
/host/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 | 		}
/host/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()
/host/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 | 		}
[8/17] Compiling SwiftSlash ChildSignalCatcher.swift
/host/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 | 					}
/host/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
/host/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
[9/17] Compiling SwiftSlash Command.swift
/host/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 | 					}
/host/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
/host/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
[10/17] Compiling SwiftSlash CurrentProcessState.swift
[11/17] Compiling SwiftSlash DataChannel.swift
[12/17] Emitting module SwiftSlash
/host/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 | 					}
/host/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
[13/17] Compiling SwiftSlash Equatable.swift
[14/17] Compiling SwiftSlash Hashable.swift
[15/17] Compiling SwiftSlash InboundChannelState.swift
[16/17] Compiling SwiftSlash OutboundChannelState.swift
[17/18] Compiling SwiftSlash ProcessInterface.swift
/host/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)
/host/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)
/host/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)
[18/18] Compiling SwiftSlash SwiftSlash.swift
Build complete! (12.24s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "SwiftSlash",
  "name" : "SwiftSlash",
  "path" : "/host/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"
}
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Done.