Build Information
Successful build of AllCache, reference master (2fe87f
), with Swift 6.0 for macOS (SPM) on 1 Nov 2024 06:57:48 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
Build Log
========================================
RunAll
========================================
Builder version: 4.56.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
[1/159] Fetching logg
[43/222] Fetching logg, shallowpromises
Fetched https://github.com/JuanjoArreola/Logg.git from cache (0.71s)
Fetched https://github.com/JuanjoArreola/ShallowPromises.git from cache (0.71s)
Computing version for https://github.com/JuanjoArreola/Logg.git
Computed https://github.com/JuanjoArreola/Logg.git at 2.4.0 (0.68s)
Computing version for https://github.com/JuanjoArreola/ShallowPromises.git
Computed https://github.com/JuanjoArreola/ShallowPromises.git at 0.7.1 (0.72s)
Creating working copy for https://github.com/JuanjoArreola/ShallowPromises.git
Working copy of https://github.com/JuanjoArreola/ShallowPromises.git resolved at 0.7.1
Creating working copy for https://github.com/JuanjoArreola/Logg.git
Working copy of https://github.com/JuanjoArreola/Logg.git resolved at 2.4.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"dependencies": [
{
"identity": "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 (1.08s)
Fetching https://github.com/JuanjoArreola/ShallowPromises.git from cache
Fetching https://github.com/JuanjoArreola/Logg.git from cache
Fetched https://github.com/JuanjoArreola/ShallowPromises.git from cache (0.50s)
Fetched https://github.com/JuanjoArreola/Logg.git from cache (0.50s)
Computing version for https://github.com/JuanjoArreola/ShallowPromises.git
Computed https://github.com/JuanjoArreola/ShallowPromises.git at 0.7.1 (0.04s)
Computing version for https://github.com/JuanjoArreola/Logg.git
Computed https://github.com/JuanjoArreola/Logg.git at 2.4.1 (0.04s)
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
Creating working copy for https://github.com/JuanjoArreola/Logg.git
Working copy of https://github.com/JuanjoArreola/Logg.git resolved at 2.4.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
Building for debugging...
[0/5] Write sources
[4/5] Write swift-version--7754E27361AE5C74.txt
[6/20] Compiling ShallowPromises Promise.swift
[7/20] Compiling ShallowPromises PromiseFailure.swift
[8/20] Emitting module ShallowPromises
[9/20] Compiling ShallowPromises Futures.swift
[10/20] Compiling ShallowPromises Cancellable.swift
[11/20] Compiling Logg Logger.swift
[12/20] Emitting module Logg
[13/20] Compiling Logg LogLevel.swift
[14/20] Compiling Logg FileLogger.swift
[15/20] Compiling Logg LogContext.swift
[16/20] Compiling Logg LogFormatter.swift
[17/20] Compiling Logg DefaultFormatter.swift
[18/20] Compiling Logg CompositeLogger.swift
[19/20] Compiling Logg ConsoleFormatter.swift
[20/20] Compiling Logg ConsoleLogger.swift
[21/30] Compiling AllCache Fetcher.swift
[22/30] Compiling AllCache ElementDescriptor.swift
[23/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 {
[24/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 {
[25/30] Compiling AllCache MemoryCache.swift
[26/30] Compiling AllCache Serializer.swift
[27/30] Compiling AllCache Processor.swift
[28/30] Compiling AllCache JSONSerializer.swift
[29/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 | }
[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 PNGImageSerializer.swift
[32/42] Compiling ImageCache UIViewContentMode+Util.swift
[33/42] Compiling ImageCache UIImageView+ImageCache.swift
[34/42] 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
[35/42] Compiling ImageCache ResizeFunctions.swift
[36/42] Compiling ImageCache UIButton+ImageCache.swift
[37/42] Compiling ImageCache JPEGImageSerializer.swift
[38/42] Compiling ImageCache ImageSerializer.swift
[39/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 |
[40/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 |
[41/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
[42/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
Build complete! (27.67s)
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.