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 unxip, reference v1.1.3 (b3ce1a), with Swift 6.0 for macOS (SPM) on 14 Sep 2024 00:30:58 UTC.

Swift 6 data race errors: 2

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.0.0-Release.Candidate.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.53.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/saagarjha/unxip.git
Reference: v1.1.3
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/saagarjha/unxip
 * tag               v1.1.3     -> FETCH_HEAD
HEAD is now at b3ce1ab unxip 1.1.3
Cloned https://github.com/saagarjha/unxip.git
Revision (git rev-parse @):
b3ce1ab4728d4173390c97eddd28e821ad9e2974
SUCCESS checkout https://github.com/saagarjha/unxip.git at v1.1.3
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/saagarjha/unxip.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.0.0-Release.Candidate.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/6] Write sources
[1/6] Write unxip-entitlement.plist
[2/6] Write swift-version-117DEE11B69C53C9.txt
[4/8] Emitting module unxip
/Users/admin/builder/spi-builder-workspace/unxip.swift:84:6: warning: stored property 'buffer' of 'Sendable'-conforming class 'Chunk' has non-sendable type 'UnsafeBufferPointer<UInt8>'; this is an error in the Swift 6 language mode
 82 |
 83 | final class Chunk: Sendable {
 84 | 	let buffer: UnsafeBufferPointer<UInt8>
    |      `- warning: stored property 'buffer' of 'Sendable'-conforming class 'Chunk' has non-sendable type 'UnsafeBufferPointer<UInt8>'; this is an error in the Swift 6 language mode
 85 | 	let owned: Bool
 86 |
Swift.UnsafeBufferPointer:1:23: note: generic struct 'UnsafeBufferPointer' does not conform to the 'Sendable' protocol
1 | @frozen public struct UnsafeBufferPointer<Element> : Copyable where Element : ~Copyable {
  |                       `- note: generic struct 'UnsafeBufferPointer' does not conform to the 'Sendable' protocol
2 |     public let count: Int
3 |     @inlinable public init(start: UnsafePointer<Element>?, count: Int)
[5/8] Compiling unxip unxip.swift
/Users/admin/builder/spi-builder-workspace/unxip.swift:84:6: warning: stored property 'buffer' of 'Sendable'-conforming class 'Chunk' has non-sendable type 'UnsafeBufferPointer<UInt8>'; this is an error in the Swift 6 language mode
 82 |
 83 | final class Chunk: Sendable {
 84 | 	let buffer: UnsafeBufferPointer<UInt8>
    |      `- warning: stored property 'buffer' of 'Sendable'-conforming class 'Chunk' has non-sendable type 'UnsafeBufferPointer<UInt8>'; this is an error in the Swift 6 language mode
 85 | 	let owned: Bool
 86 |
Swift.UnsafeBufferPointer:1:23: note: generic struct 'UnsafeBufferPointer' does not conform to the 'Sendable' protocol
1 | @frozen public struct UnsafeBufferPointer<Element> : Copyable where Element : ~Copyable {
  |                       `- note: generic struct 'UnsafeBufferPointer' does not conform to the 'Sendable' protocol
2 |     public let count: Int
3 |     @inlinable public init(start: UnsafePointer<Element>?, count: Int)
/Users/admin/builder/spi-builder-workspace/unxip.swift:277:75: warning: reference to var 'optind' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
275 | 		} while true
276 |
277 | 		let arguments = UnsafeBufferPointer(start: CommandLine.unsafeArgv + Int(optind), count: Int(CommandLine.argc - optind)).map {
    |                                                                           `- warning: reference to var 'optind' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
278 | 			String(cString: $0!)
279 | 		}
unistd.optind:1:12: note: var declared here
1 | public var optind: Int32
  |            `- note: var declared here
/Users/admin/builder/spi-builder-workspace/unxip.swift:277:114: warning: reference to var 'optind' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
275 | 		} while true
276 |
277 | 		let arguments = UnsafeBufferPointer(start: CommandLine.unsafeArgv + Int(optind), count: Int(CommandLine.argc - optind)).map {
    |                                                                                                                  `- warning: reference to var 'optind' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
278 | 			String(cString: $0!)
279 | 		}
unistd.optind:1:12: note: var declared here
1 | public var optind: Int32
  |            `- note: var declared here
/Users/admin/builder/spi-builder-workspace/unxip.swift:353:21: warning: capture of '_remaining' with non-sendable type 'UnsafeBufferPointer<UInt8>.SubSequence' (aka 'Slice<UnsafeBufferPointer<UInt8>>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
351 |
352 | 			chunkStream.addTask {
353 | 				let remaining = _remaining
    |                     `- warning: capture of '_remaining' with non-sendable type 'UnsafeBufferPointer<UInt8>.SubSequence' (aka 'Slice<UnsafeBufferPointer<UInt8>>') in a `@Sendable` closure; this is an error in the Swift 6 language mode
354 | 				let decompressedSize = _decompressedSize
355 |
Swift.Slice:1:23: note: generic struct 'Slice' does not conform to the 'Sendable' protocol
1 | @frozen public struct Slice<Base> where Base : Collection {
  |                       `- note: generic struct 'Slice' does not conform to the 'Sendable' protocol
2 |     public var _startIndex: Base.Index
3 |     public var _endIndex: Base.Index
/Users/admin/builder/spi-builder-workspace/unxip.swift:444:29: warning: capture of 'file' with non-sendable type 'File' in a `@Sendable` local function; this is an error in the Swift 6 language mode
 97 | }
 98 |
 99 | struct File {
    |        `- note: consider making struct 'File' conform to the 'Sendable' protocol
100 | 	let dev: Int
101 | 	let ino: Int
    :
442 | 			func warn(_ result: CInt, _ operation: String) {
443 | 				if result != 0 {
444 | 					perror("\(operation) \(file.name) failed")
    |                             `- warning: capture of 'file' with non-sendable type 'File' in a `@Sendable` local function; this is an error in the Swift 6 language mode
445 | 				}
446 | 			}
/Users/admin/builder/spi-builder-workspace/unxip.swift:482:26: warning: capture of 'file' with non-sendable type 'File' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 97 | }
 98 |
 99 | struct File {
    |        `- note: consider making struct 'File' conform to the 'Sendable' protocol
100 | 	let dev: Int
101 | 	let ino: Int
    :
480 | 					}
481 |
482 | 					warn(link(original, file.name), "linking")
    |                          `- warning: capture of 'file' with non-sendable type 'File' in a `@Sendable` closure; this is an error in the Swift 6 language mode
483 | 				}
484 | 				continue
/Users/admin/builder/spi-builder-workspace/unxip.swift:499:38: warning: capture of 'file' with non-sendable type 'File' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 97 | }
 98 |
 99 | struct File {
    |        `- note: consider making struct 'File' conform to the 'Sendable' protocol
100 | 	let dev: Int
101 | 	let ino: Int
    :
497 | 						}
498 |
499 | 						warn(symlink(String(data: Data(file.data.map(Array.init).reduce([], +)), encoding: .utf8), file.name), "symlinking")
    |                                      `- warning: capture of 'file' with non-sendable type 'File' in a `@Sendable` closure; this is an error in the Swift 6 language mode
500 | 						setStickyBit(on: file)
501 | 					}
/Users/admin/builder/spi-builder-workspace/unxip.swift:511:18: warning: capture of 'file' with non-sendable type 'File' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 97 | }
 98 |
 99 | struct File {
    |        `- note: consider making struct 'File' conform to the 'Sendable' protocol
100 | 	let dev: Int
101 | 	let ino: Int
    :
509 | 						}
510 |
511 | 						warn(mkdir(file.name, mode_t(file.mode & 0o777)), "creating directory at")
    |                  `- warning: capture of 'file' with non-sendable type 'File' in a `@Sendable` closure; this is an error in the Swift 6 language mode
512 | 						setStickyBit(on: file)
513 | 					}
/Users/admin/builder/spi-builder-workspace/unxip.swift:521:54: warning: capture of 'file' with non-sendable type 'File' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 97 | }
 98 |
 99 | struct File {
    |        `- note: consider making struct 'File' conform to the 'Sendable' protocol
100 | 	let dev: Int
101 | 	let ino: Int
    :
519 | 						taskStream.addRunningTask {
520 | 							await task?.value
521 | 							let compressedData = options.compress ? await file.compressedData() : nil
    |                                                      `- warning: capture of 'file' with non-sendable type 'File' in a `@Sendable` closure; this is an error in the Swift 6 language mode
522 | 							guard !options.dryRun else {
523 | 								return
/Users/admin/builder/spi-builder-workspace/unxip.swift:533:26: warning: capture of 'file' with non-sendable type 'File' in an isolated local function; this is an error in the Swift 6 language mode
 97 | }
 98 |
 99 | struct File {
    |        `- note: consider making struct 'File' conform to the 'Sendable' protocol
100 | 	let dev: Int
101 | 	let ino: Int
    :
531 | 							defer {
532 | 								warn(close(fd), "closing")
533 | 								setStickyBit(on: file)
    |                          `- warning: capture of 'file' with non-sendable type 'File' in an isolated local function; this is an error in the Swift 6 language mode
534 | 							}
535 |
/Users/admin/builder/spi-builder-workspace/unxip.swift:19:28: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
 17 | 	func yieldWithBackoff(_ value: Element) async {
 18 | 		let backoff: UInt64 = 1_000_000
 19 | 		while case .dropped(_) = yield(value) {
    |                            |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
    |                            `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
 20 | 			try? await Task.sleep(nanoseconds: backoff)
 21 | 		}
/Users/admin/builder/spi-builder-workspace/unxip.swift:374:4: warning: task-isolated value of type '() async -> ()' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
372 | 	static func files<ChunkStream: AsyncSequence>(in chunkStream: ChunkStream) -> AsyncStream<File> where ChunkStream.Element == Chunk {
373 | 		AsyncStream(bufferingPolicy: .bufferingOldest(ProcessInfo.processInfo.activeProcessorCount)) { continuation in
374 | 			Task {
    |    `- warning: task-isolated value of type '() async -> ()' passed as a strongly transferred parameter; later accesses could race; this is an error in the Swift 6 language mode
375 | 				var iterator = chunkStream.makeAsyncIterator()
376 | 				var chunk = try! await iterator.next()!
[5/8] Write Objects.LinkFileList
[6/8] Linking unxip
[7/8] Applying unxip
Build complete! (7.47s)
warning: 'spi-builder-workspace': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/release.sh
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "unxip",
  "name" : "unxip",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "11.0"
    }
  ],
  "products" : [
    {
      "name" : "unxip",
      "targets" : [
        "unxip"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "unxip",
      "module_type" : "SwiftTarget",
      "name" : "unxip",
      "path" : ".",
      "product_memberships" : [
        "unxip"
      ],
      "sources" : [
        "unxip.swift"
      ],
      "type" : "executable"
    }
  ],
  "tools_version" : "5.5"
}
Done.