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 AllCache, reference master (2fe87f), with Swift 6.0 for macOS (SPM) on 27 Nov 2024 16:01:11 UTC.

Swift 6 data race errors: 3

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.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/JuanjoArreola/AllCache.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/JuanjoArreola/AllCache
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 2fe87f2 Merge branch 'new'
Cloned https://github.com/JuanjoArreola/AllCache.git
Revision (git rev-parse @):
2fe87f2690c13cb7a012f5346cf3824477aec512
SUCCESS checkout https://github.com/JuanjoArreola/AllCache.git at master
Fetching https://github.com/JuanjoArreola/ShallowPromises.git
Fetching https://github.com/JuanjoArreola/Logg.git
[2/159] Fetching logg
[160/222] Fetching logg, shallowpromises
Fetched https://github.com/JuanjoArreola/Logg.git from cache (0.74s)
Fetched https://github.com/JuanjoArreola/ShallowPromises.git from cache (0.74s)
Computing version for https://github.com/JuanjoArreola/Logg.git
Computed https://github.com/JuanjoArreola/Logg.git at 2.4.0 (0.53s)
Computing version for https://github.com/JuanjoArreola/ShallowPromises.git
Computed https://github.com/JuanjoArreola/ShallowPromises.git at 0.7.1 (0.57s)
Creating working copy for https://github.com/JuanjoArreola/Logg.git
Working copy of https://github.com/JuanjoArreola/Logg.git resolved at 2.4.0
Creating working copy for https://github.com/JuanjoArreola/ShallowPromises.git
Working copy of https://github.com/JuanjoArreola/ShallowPromises.git resolved at 0.7.1
========================================
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": "allcache",
      "name": "AllCache",
      "url": "https://github.com/JuanjoArreola/AllCache.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/AllCache",
      "dependencies": [
        {
          "identity": "shallowpromises",
          "name": "ShallowPromises",
          "url": "https://github.com/JuanjoArreola/ShallowPromises.git",
          "version": "0.7.1",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/ShallowPromises",
          "dependencies": [
          ]
        },
        {
          "identity": "logg",
          "name": "Logg",
          "url": "https://github.com/JuanjoArreola/Logg.git",
          "version": "2.4.1",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Logg",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/JuanjoArreola/AllCache.git
[1/969] Fetching allcache
Fetched https://github.com/JuanjoArreola/AllCache.git from cache (0.90s)
Fetching https://github.com/JuanjoArreola/Logg.git from cache
Fetching https://github.com/JuanjoArreola/ShallowPromises.git from cache
Fetched https://github.com/JuanjoArreola/ShallowPromises.git from cache (0.51s)
Fetched https://github.com/JuanjoArreola/Logg.git from cache (0.51s)
Computing version for https://github.com/JuanjoArreola/ShallowPromises.git
Computed https://github.com/JuanjoArreola/ShallowPromises.git at 0.7.1 (0.02s)
Computing version for https://github.com/JuanjoArreola/Logg.git
Computed https://github.com/JuanjoArreola/Logg.git at 2.4.1 (0.02s)
Creating working copy for https://github.com/JuanjoArreola/Logg.git
Working copy of https://github.com/JuanjoArreola/Logg.git resolved at 2.4.1
Creating working copy for https://github.com/JuanjoArreola/AllCache.git
Working copy of https://github.com/JuanjoArreola/AllCache.git resolved at master (2fe87f2)
Creating working copy for https://github.com/JuanjoArreola/ShallowPromises.git
Working copy of https://github.com/JuanjoArreola/ShallowPromises.git resolved at 0.7.1
warning: '.resolve-product-dependencies': dependency 'allcache' is not used by any target
Found 2 product dependencies
  - ShallowPromises
  - Logg
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/JuanjoArreola/AllCache.git
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/5] Write sources
[4/5] Write swift-version--7754E27361AE5C74.txt
[6/20] Compiling ShallowPromises PromiseFailure.swift
[7/20] Compiling Logg Logger.swift
[8/20] Compiling Logg LogContext.swift
[9/20] Compiling Logg LogFormatter.swift
[10/20] Compiling Logg LogLevel.swift
[11/20] Compiling Logg FileLogger.swift
[12/20] Compiling ShallowPromises Futures.swift
[13/20] Compiling ShallowPromises Cancellable.swift
[14/20] Compiling ShallowPromises Promise.swift
[15/20] Emitting module ShallowPromises
[16/20] Compiling Logg DefaultFormatter.swift
[17/20] Compiling Logg ConsoleFormatter.swift
[18/20] Emitting module Logg
[19/20] Compiling Logg CompositeLogger.swift
[20/20] Compiling Logg ConsoleLogger.swift
[21/30] Compiling AllCache Processor.swift
[22/30] Compiling AllCache MemoryCache.swift
[23/30] Compiling AllCache Serializer.swift
[24/30] Compiling AllCache JSONSerializer.swift
[25/30] Compiling AllCache Fetcher.swift
[26/30] Compiling AllCache ElementDescriptor.swift
[27/30] Compiling AllCache Cache.swift
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/Cache.swift:52:13: warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | open class Cache<T, S: Serializer> where S.T == T {
    |            `- note: generic class 'Cache' does not conform to the 'Sendable' protocol
 11 |     public let memoryCache = MemoryCache<T>()
 12 |     public let diskCache: DiskCache<T, S>
    :
 50 |         let promise = createPromise(for: descriptor)
 51 |         workingQueue.async {
 52 |             self.searchOnDisk(descriptor: descriptor, promise: promise)
    |             `- warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 53 |         }
 54 |
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/Cache.swift:52:43: warning: capture of 'descriptor' with non-sendable type 'ElementDescriptor<T, F>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 50 |         let promise = createPromise(for: descriptor)
 51 |         workingQueue.async {
 52 |             self.searchOnDisk(descriptor: descriptor, promise: promise)
    |                                           `- warning: capture of 'descriptor' with non-sendable type 'ElementDescriptor<T, F>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 53 |         }
 54 |
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/ElementDescriptor.swift:10:15: note: consider making generic struct 'ElementDescriptor' conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | public struct ElementDescriptor<T, F: Fetcher> where F.T == T {
   |               `- note: consider making generic struct 'ElementDescriptor' conform to the 'Sendable' protocol
11 |     public var key: String
12 |     public var fetcher: F?
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/Cache.swift:52:64: warning: capture of 'promise' with non-sendable type 'Promise<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 50 |         let promise = createPromise(for: descriptor)
 51 |         workingQueue.async {
 52 |             self.searchOnDisk(descriptor: descriptor, promise: promise)
    |                                                                `- warning: capture of 'promise' with non-sendable type 'Promise<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 53 |         }
 54 |
/Users/admin/builder/spi-builder-workspace/.build/checkouts/ShallowPromises/Sources/ShallowPromises/Promise.swift:12:12: note: generic class 'Promise' does not conform to the 'Sendable' protocol
 10 | private let syncQueue = DispatchQueue(label: "com.shallowpromises.SyncQueue", attributes: [])
 11 |
 12 | open class Promise<U>: Cancellable {
    |            `- note: generic class 'Promise' does not conform to the 'Sendable' protocol
 13 |
 14 |     private var result: U?
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/Cache.swift:2:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ShallowPromises'
  1 | import Foundation
  2 | import ShallowPromises
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ShallowPromises'
  3 |
  4 | private let workingQueue = DispatchQueue(label: "com.allcache.WorkingQueue", attributes: .concurrent)
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/Cache.swift:139:18: warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | open class Cache<T, S: Serializer> where S.T == T {
    |            `- note: generic class 'Cache' does not conform to the 'Sendable' protocol
 11 |     public let memoryCache = MemoryCache<T>()
 12 |     public let diskCache: DiskCache<T, S>
    :
137 |         memoryCache.set(instance, forKey: key)
138 |         workingQueue.async {
139 |             try? self.diskCache.set(instance, forKey: key)
    |                  `- warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
140 |         }
141 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/Cache.swift:139:37: warning: capture of 'instance' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | open class Cache<T, S: Serializer> where S.T == T {
    |                  `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 11 |     public let memoryCache = MemoryCache<T>()
 12 |     public let diskCache: DiskCache<T, S>
    :
137 |         memoryCache.set(instance, forKey: key)
138 |         workingQueue.async {
139 |             try? self.diskCache.set(instance, forKey: key)
    |                                     `- warning: capture of 'instance' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
140 |         }
141 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/Cache.swift:148:18: warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | open class Cache<T, S: Serializer> where S.T == T {
    |            `- note: generic class 'Cache' does not conform to the 'Sendable' protocol
 11 |     public let memoryCache = MemoryCache<T>()
 12 |     public let diskCache: DiskCache<T, S>
    :
146 |         memoryCache.removeInstance(forKey: key)
147 |         workingQueue.async {
148 |             try? self.diskCache.removeInstance(forKey: key)
    |                  `- warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
149 |         }
150 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/Cache.swift:155:13: warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  8 | }
  9 |
 10 | open class Cache<T, S: Serializer> where S.T == T {
    |            `- note: generic class 'Cache' does not conform to the 'Sendable' protocol
 11 |     public let memoryCache = MemoryCache<T>()
 12 |     public let diskCache: DiskCache<T, S>
    :
153 |         memoryCache.clear()
154 |         workingQueue.async {
155 |             self.diskCache.clear()
    |             `- warning: capture of 'self' with non-sendable type 'Cache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
156 |         }
157 |     }
[28/30] Compiling AllCache AllCacheFormatter.swift
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/AllCacheFormatter.swift:11:12: warning: let 'logger' is not concurrency-safe because non-'Sendable' type 'CompositeLogger' may have shared mutable state; this is an error in the Swift 6 language mode
 9 | import Logg
10 |
11 | public let logger = CompositeLogger(loggers: [ConsoleLogger(formatter: AllCacheFormatter(), level: [.error, .fault])])
   |            `- warning: let 'logger' is not concurrency-safe because non-'Sendable' type 'CompositeLogger' may have shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | class AllCacheFormatter: ConsoleFormatter {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Logg/Sources/Logg/CompositeLogger.swift:3:14: note: class 'CompositeLogger' does not conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public class CompositeLogger {
   |              `- note: class 'CompositeLogger' does not conform to the 'Sendable' protocol
 4 |
 5 |     public convenience init() {
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/AllCacheFormatter.swift:9:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Logg'
 7 |
 8 | import Foundation
 9 | import Logg
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Logg'
10 |
11 | public let logger = CompositeLogger(loggers: [ConsoleLogger(formatter: AllCacheFormatter(), level: [.error, .fault])])
   |            |- note: annotate 'logger' with '@MainActor' if property should only be accessed from the main actor
   |            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 |
13 | class AllCacheFormatter: ConsoleFormatter {
[29/30] Emitting module AllCache
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/AllCacheFormatter.swift:11:12: warning: let 'logger' is not concurrency-safe because non-'Sendable' type 'CompositeLogger' may have shared mutable state; this is an error in the Swift 6 language mode
 9 | import Logg
10 |
11 | public let logger = CompositeLogger(loggers: [ConsoleLogger(formatter: AllCacheFormatter(), level: [.error, .fault])])
   |            `- warning: let 'logger' is not concurrency-safe because non-'Sendable' type 'CompositeLogger' may have shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | class AllCacheFormatter: ConsoleFormatter {
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Logg/Sources/Logg/CompositeLogger.swift:3:14: note: class 'CompositeLogger' does not conform to the 'Sendable' protocol
 1 | import Foundation
 2 |
 3 | public class CompositeLogger {
   |              `- note: class 'CompositeLogger' does not conform to the 'Sendable' protocol
 4 |
 5 |     public convenience init() {
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/AllCacheFormatter.swift:9:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Logg'
 7 |
 8 | import Foundation
 9 | import Logg
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Logg'
10 |
11 | public let logger = CompositeLogger(loggers: [ConsoleLogger(formatter: AllCacheFormatter(), level: [.error, .fault])])
   |            |- note: annotate 'logger' with '@MainActor' if property should only be accessed from the main actor
   |            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 |
13 | class AllCacheFormatter: ConsoleFormatter {
[30/30] Compiling AllCache DiskCache.swift
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/DiskCache.swift:44:17: warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 10 | private let diskQueue = DispatchQueue(label: "com.allcache.DiskQueue", attributes: .concurrent)
 11 |
 12 | public final class DiskCache<T, S: Serializer> where S.T == T {
    |                    `- note: generic class 'DiskCache' does not conform to the 'Sendable' protocol
 13 |
 14 |     public let identifier: String
    :
 42 |             result = try serializer.deserialize(Data(contentsOf: url))
 43 |             diskQueue.async(flags: .barrier) {
 44 |                 self.updateLastAccess(ofKey: key)
    |                 `- warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 45 |             }
 46 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/DiskCache.swift:52:23: warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 10 | private let diskQueue = DispatchQueue(label: "com.allcache.DiskQueue", attributes: .concurrent)
 11 |
 12 | public final class DiskCache<T, S: Serializer> where S.T == T {
    |                    `- note: generic class 'DiskCache' does not conform to the 'Sendable' protocol
 13 |
 14 |     public let identifier: String
    :
 50 |     public func removeInstance(forKey key: String) throws {
 51 |         diskQueue.async(flags: .barrier) {
 52 |             let url = self.cacheDirectory.appendingPathComponent(validkey(from: key))
    |                       `- warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 53 |             let attributes = try? self.fileManager.attributesOfItem(atPath: url.path)
 54 |             try? self.fileManager.removeItem(at: url)
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/DiskCache.swift:64:36: warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 10 | private let diskQueue = DispatchQueue(label: "com.allcache.DiskQueue", attributes: .concurrent)
 11 |
 12 | public final class DiskCache<T, S: Serializer> where S.T == T {
    |                    `- note: generic class 'DiskCache' does not conform to the 'Sendable' protocol
 13 |
 14 |     public let identifier: String
    :
 62 |         diskQueue.async(flags: .barrier) {
 63 |             let resourceKeys: [URLResourceKey] = [.contentAccessDateKey, .totalFileAllocatedSizeKey]
 64 |             guard let enumerator = self.cacheDirectory.enumerator(includingPropertiesForKeys: resourceKeys) else {
    |                                    `- warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 65 |                 return
 66 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/DiskCache.swift:68:28: warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in an isolated closure; this is an error in the Swift 6 language mode
 10 | private let diskQueue = DispatchQueue(label: "com.allcache.DiskQueue", attributes: .concurrent)
 11 |
 12 | public final class DiskCache<T, S: Serializer> where S.T == T {
    |                    `- note: generic class 'DiskCache' does not conform to the 'Sendable' protocol
 13 |
 14 |     public let identifier: String
    :
 66 |             }
 67 |             let urls = enumerator.compactMap({ $0 as? URL }).filter({ ($0.contentAccessDate ?? limit) < limit })
 68 |             urls.forEach({ self.removeIfPossible(url: $0) })
    |                            `- warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in an isolated closure; this is an error in the Swift 6 language mode
 69 |         }
 70 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/DiskCache.swift:86:23: warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 10 | private let diskQueue = DispatchQueue(label: "com.allcache.DiskQueue", attributes: .concurrent)
 11 |
 12 | public final class DiskCache<T, S: Serializer> where S.T == T {
    |                    `- note: generic class 'DiskCache' does not conform to the 'Sendable' protocol
 13 |
 14 |     public let identifier: String
    :
 84 |     public func set(data: Data, forKey key: String) throws {
 85 |         diskQueue.async(flags: .barrier) {
 86 |             let url = self.cacheDirectory.appendingPathComponent(validkey(from: key))
    |                       `- warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 87 |             try? data.write(to: url, options: .atomicWrite)
 88 |             self.size += data.count
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/DiskCache.swift:95:36: warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 10 | private let diskQueue = DispatchQueue(label: "com.allcache.DiskQueue", attributes: .concurrent)
 11 |
 12 | public final class DiskCache<T, S: Serializer> where S.T == T {
    |                    `- note: generic class 'DiskCache' does not conform to the 'Sendable' protocol
 13 |
 14 |     public let identifier: String
    :
 93 |     public func clear() {
 94 |         diskQueue.async(flags: .barrier) {
 95 |             guard let enumerator = self.cacheDirectory.enumerator(includingPropertiesForKeys: nil) else { return }
    |                                    `- warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 96 |             for case let url as URL in enumerator {
 97 |                 self.removeIfPossible(url: url)
/Users/admin/builder/spi-builder-workspace/Sources/AllCache/DiskCache.swift:120:16: warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 10 | private let diskQueue = DispatchQueue(label: "com.allcache.DiskQueue", attributes: .concurrent)
 11 |
 12 | public final class DiskCache<T, S: Serializer> where S.T == T {
    |                    `- note: generic class 'DiskCache' does not conform to the 'Sendable' protocol
 13 |
 14 |     public let identifier: String
    :
118 |         }
119 |         diskQueue.async {
120 |             if self.shrinking { return }
    |                `- warning: capture of 'self' with non-sendable type 'DiskCache<T, S>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
121 |             self.shrinking = true
122 |             do {
[31/41] Compiling ImageCache UIImageView+ImageCache.swift
[32/41] Compiling ImageCache UIButton+ImageCache.swift
[33/41] Compiling ImageCache ResizeFunctions.swift
[34/41] Compiling ImageCache PNGImageSerializer.swift
[35/41] Compiling ImageCache Networking.swift
/Users/admin/builder/spi-builder-workspace/Sources/ImageCache/Networking.swift:21:77: warning: passing non-sendable parameter 'completion' to function expecting a @Sendable closure
14 | }
15 |
16 | func request(url: URL, method: HTTPMethod = .GET, completion: @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionDataTask {
   |                                                   `- note: parameter 'completion' is implicitly non-sendable
17 |
18 |     var request = URLRequest(url: url)
19 |     request.httpMethod = method.rawValue
20 |
21 |     let task = URLSession.shared.dataTask(with: request, completionHandler: completion)
   |                                                                             `- warning: passing non-sendable parameter 'completion' to function expecting a @Sendable closure
22 |     task.resume()
23 |     return task
[36/42] Compiling ImageCache UIViewContentMode+Util.swift
[37/42] Compiling ImageCache JPEGImageSerializer.swift
[38/42] Compiling ImageCache ImageResizer.swift
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/ImageCache/ImageResizer.swift:25:13: warning: let 'resizeFunctions' is not concurrency-safe because non-'Sendable' type '[DefaultImageResizer.ContentMode : (CGSize, CGSize) -> CGRect]' may have shared mutable state; this is an error in the Swift 6 language mode
 23 | }
 24 |
 25 | private let resizeFunctions: [DefaultImageResizer.ContentMode: (CGSize, CGSize) -> CGRect] = [
    |             |- warning: let 'resizeFunctions' is not concurrency-safe because non-'Sendable' type '[DefaultImageResizer.ContentMode : (CGSize, CGSize) -> CGRect]' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'resizeFunctions' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 26 |     .scaleAspectFit: aspectFit,
 27 |     .scaleAspectFill: aspectFill,
    :
 39 | public final class DefaultImageResizer: Processor<Image> {
 40 |
 41 |     public enum ContentMode: Int {
    |                 `- note: consider making enum 'ContentMode' conform to the 'Sendable' protocol
 42 |         case scaleToFill, scaleAspectFit, scaleAspectFill
 43 |         case redraw
[39/42] Compiling ImageCache ImageSerializer.swift
[40/42] Emitting module ImageCache
/Users/admin/builder/spi-builder-workspace/Sources/ImageCache/ImageCache.swift:29:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ImageCache' may have shared mutable state; this is an error in the Swift 6 language mode
22 | #endif
23 |
24 | open class ImageCache: Cache<Image, ImageSerializer> {
   |            `- note: class 'ImageCache' does not conform to the 'Sendable' protocol
25 |
26 |     #if os(iOS) || os(tvOS) || os(watchOS)
27 |     public static let shared = try! ImageCache(identifier: "sharedImage", serializer: PNGImageSerializer())
28 |     #else
29 |     public static let shared = try! ImageCache(identifier: "sharedImage", serializer: ImageSerializer())
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ImageCache' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 |     #endif
31 |
/Users/admin/builder/spi-builder-workspace/Sources/ImageCache/ImageFetcher.swift:69:1: warning: extension declares a conformance of imported type 'URLSessionTask' to imported protocol 'Cancellable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
67 | }
68 |
69 | extension URLSessionTask: Cancellable {}
   | |- warning: extension declares a conformance of imported type 'URLSessionTask' to imported protocol 'Cancellable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
70 |
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/ImageCache/ImageResizer.swift:25:13: warning: let 'resizeFunctions' is not concurrency-safe because non-'Sendable' type '[DefaultImageResizer.ContentMode : (CGSize, CGSize) -> CGRect]' may have shared mutable state; this is an error in the Swift 6 language mode
 23 | }
 24 |
 25 | private let resizeFunctions: [DefaultImageResizer.ContentMode: (CGSize, CGSize) -> CGRect] = [
    |             |- warning: let 'resizeFunctions' is not concurrency-safe because non-'Sendable' type '[DefaultImageResizer.ContentMode : (CGSize, CGSize) -> CGRect]' may have shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: annotate 'resizeFunctions' with '@MainActor' if property should only be accessed from the main actor
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 26 |     .scaleAspectFit: aspectFit,
 27 |     .scaleAspectFill: aspectFill,
    :
 39 | public final class DefaultImageResizer: Processor<Image> {
 40 |
 41 |     public enum ContentMode: Int {
    |                 `- note: consider making enum 'ContentMode' conform to the 'Sendable' protocol
 42 |         case scaleToFill, scaleAspectFit, scaleAspectFill
 43 |         case redraw
[41/42] Compiling ImageCache ImageCache.swift
/Users/admin/builder/spi-builder-workspace/Sources/ImageCache/ImageCache.swift:29:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ImageCache' may have shared mutable state; this is an error in the Swift 6 language mode
22 | #endif
23 |
24 | open class ImageCache: Cache<Image, ImageSerializer> {
   |            `- note: class 'ImageCache' does not conform to the 'Sendable' protocol
25 |
26 |     #if os(iOS) || os(tvOS) || os(watchOS)
27 |     public static let shared = try! ImageCache(identifier: "sharedImage", serializer: PNGImageSerializer())
28 |     #else
29 |     public static let shared = try! ImageCache(identifier: "sharedImage", serializer: ImageSerializer())
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ImageCache' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 |     #endif
31 |
/Users/admin/builder/spi-builder-workspace/Sources/ImageCache/ImageFetcher.swift:69:1: warning: extension declares a conformance of imported type 'URLSessionTask' to imported protocol 'Cancellable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
67 | }
68 |
69 | extension URLSessionTask: Cancellable {}
   | |- warning: extension declares a conformance of imported type 'URLSessionTask' to imported protocol 'Cancellable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
70 |
[42/42] Compiling ImageCache ImageFetcher.swift
/Users/admin/builder/spi-builder-workspace/Sources/ImageCache/ImageCache.swift:29:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ImageCache' may have shared mutable state; this is an error in the Swift 6 language mode
22 | #endif
23 |
24 | open class ImageCache: Cache<Image, ImageSerializer> {
   |            `- note: class 'ImageCache' does not conform to the 'Sendable' protocol
25 |
26 |     #if os(iOS) || os(tvOS) || os(watchOS)
27 |     public static let shared = try! ImageCache(identifier: "sharedImage", serializer: PNGImageSerializer())
28 |     #else
29 |     public static let shared = try! ImageCache(identifier: "sharedImage", serializer: ImageSerializer())
   |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ImageCache' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 |     #endif
31 |
/Users/admin/builder/spi-builder-workspace/Sources/ImageCache/ImageFetcher.swift:69:1: warning: extension declares a conformance of imported type 'URLSessionTask' to imported protocol 'Cancellable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
67 | }
68 |
69 | extension URLSessionTask: Cancellable {}
   | |- warning: extension declares a conformance of imported type 'URLSessionTask' to imported protocol 'Cancellable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
70 |
Build complete! (33.17s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "shallowpromises",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.7.1",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/JuanjoArreola/ShallowPromises.git"
    },
    {
      "identity" : "logg",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "2.4.0",
            "upper_bound" : "3.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/JuanjoArreola/Logg.git"
    }
  ],
  "manifest_display_name" : "AllCache",
  "name" : "AllCache",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "AllCache",
      "targets" : [
        "AllCache",
        "ImageCache"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ImageCacheTests",
      "module_type" : "SwiftTarget",
      "name" : "ImageCacheTests",
      "path" : "Tests/ImageCacheTests",
      "sources" : [
        "ImageCacheTests.swift"
      ],
      "target_dependencies" : [
        "ImageCache"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ImageCache",
      "module_type" : "SwiftTarget",
      "name" : "ImageCache",
      "path" : "Sources/ImageCache",
      "product_memberships" : [
        "AllCache"
      ],
      "sources" : [
        "ImageCache.swift",
        "ImageFetcher.swift",
        "ImageResizer.swift",
        "ImageSerializer.swift",
        "JPEGImageSerializer.swift",
        "Networking.swift",
        "PNGImageSerializer.swift",
        "ResizeFunctions.swift",
        "UIButton+ImageCache.swift",
        "UIImageView+ImageCache.swift",
        "UIViewContentMode+Util.swift"
      ],
      "target_dependencies" : [
        "AllCache"
      ],
      "type" : "library"
    },
    {
      "c99name" : "AllCacheTests",
      "module_type" : "SwiftTarget",
      "name" : "AllCacheTests",
      "path" : "Tests/AllCacheTests",
      "sources" : [
        "CacheTests.swift",
        "DiskTests.swift",
        "Icecream.swift"
      ],
      "target_dependencies" : [
        "AllCache"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AllCache",
      "module_type" : "SwiftTarget",
      "name" : "AllCache",
      "path" : "Sources/AllCache",
      "product_dependencies" : [
        "ShallowPromises",
        "Logg"
      ],
      "product_memberships" : [
        "AllCache"
      ],
      "sources" : [
        "AllCacheFormatter.swift",
        "Cache.swift",
        "DiskCache.swift",
        "ElementDescriptor.swift",
        "Fetcher.swift",
        "JSONSerializer.swift",
        "MemoryCache.swift",
        "Processor.swift",
        "Serializer.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.2"
}
Done.