Build Information
Successful build of APNGKit, reference master (995386
), with Swift 6.0 for macOS (SPM) on 30 Nov 2024 18:38:26 UTC.
Swift 6 data race errors: 12
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.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/onevcat/APNGKit.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/onevcat/APNGKit
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 9953862 Bump version to 2.3.0
Cloned https://github.com/onevcat/APNGKit.git
Revision (git rev-parse @):
995386261326bce7ff19879cac84b6f27ce35629
SUCCESS checkout https://github.com/onevcat/APNGKit.git at master
Fetching https://github.com/onevcat/Delegate.git
[1/48] Fetching delegate
Fetched https://github.com/onevcat/Delegate.git from cache (0.66s)
Computing version for https://github.com/onevcat/Delegate.git
Computed https://github.com/onevcat/Delegate.git at 1.3.0 (2.94s)
Creating working copy for https://github.com/onevcat/Delegate.git
Working copy of https://github.com/onevcat/Delegate.git resolved at 1.3.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": "apngkit",
"name": "APNGKit",
"url": "https://github.com/onevcat/APNGKit.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/APNGKit",
"dependencies": [
{
"identity": "delegate",
"name": "Delegate",
"url": "https://github.com/onevcat/Delegate.git",
"version": "1.3.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Delegate",
"dependencies": [
]
}
]
}
]
}
Fetching https://github.com/onevcat/APNGKit.git
[1/3549] Fetching apngkit
Fetched https://github.com/onevcat/APNGKit.git from cache (1.32s)
Fetching https://github.com/onevcat/Delegate.git from cache
Fetched https://github.com/onevcat/Delegate.git from cache (0.45s)
Computing version for https://github.com/onevcat/Delegate.git
Computed https://github.com/onevcat/Delegate.git at 1.3.0 (0.02s)
Creating working copy for https://github.com/onevcat/APNGKit.git
Working copy of https://github.com/onevcat/APNGKit.git resolved at master (9953862)
Creating working copy for https://github.com/onevcat/Delegate.git
Working copy of https://github.com/onevcat/Delegate.git resolved at 1.3.0
warning: '.resolve-product-dependencies': dependency 'apngkit' is not used by any target
Found 1 product dependencies
- Delegate
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $PWD
https://github.com/onevcat/APNGKit.git
{
"dependencies" : [
{
"identity" : "delegate",
"requirement" : {
"range" : [
{
"lower_bound" : "1.3.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/onevcat/Delegate.git"
}
],
"manifest_display_name" : "APNGKit",
"name" : "APNGKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.14"
},
{
"name" : "ios",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "12.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "APNGKit",
"targets" : [
"APNGKit"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "APNGKitTests",
"module_type" : "SwiftTarget",
"name" : "APNGKitTests",
"path" : "Tests/APNGKitTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/APNGKitTests/Resources/General",
"rule" : {
"copy" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/APNGKitTests/Resources/SpecTesting",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"APNGDecoderTests.swift",
"APNGImageRendererTests.swift",
"APNGImageTests.swift",
"APNGImageViewTests.swift",
"APNGImageViewTimingTests.swift",
"ChunkTests.swift",
"DataReaderTests.swift",
"DecoderOptionsTests.swift",
"FileReaderTests.swift",
"Helpers.swift",
"ReaderExtensionTests.swift"
],
"target_dependencies" : [
"APNGKit"
],
"type" : "test"
},
{
"c99name" : "APNGKit",
"module_type" : "SwiftTarget",
"name" : "APNGKit",
"path" : "Source/APNGKit",
"product_dependencies" : [
"Delegate"
],
"product_memberships" : [
"APNGKit"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Source/APNGKit/PrivacyInfo.xcprivacy",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"APNGDecoder.swift",
"APNGImage.DecodingOptions.swift",
"APNGImage.swift",
"APNGImageRenderer.swift",
"APNGImageView.swift",
"APNGKitError.swift",
"Chunk.swift",
"CrossPlatform.swift",
"DisplayTimer.swift",
"Extensions.swift",
"LogLevel.swift",
"Reader.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
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/4] Write sources
[2/4] Copying PrivacyInfo.xcprivacy
[3/4] Write swift-version--7754E27361AE5C74.txt
[5/6] Compiling Delegate Delegate.swift
[6/6] Emitting module Delegate
[7/19] Compiling APNGKit Reader.swift
[8/20] Compiling APNGKit resource_bundle_accessor.swift
[9/20] Compiling APNGKit LogLevel.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/LogLevel.swift:26:23: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// The global setting of the log printed by APNGKit.
26 | public static var current: LogLevel = .default
| |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'current' 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
27 | }
28 |
[10/20] Compiling APNGKit DisplayTimer.swift
[11/20] Compiling APNGKit Extensions.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/LogLevel.swift:26:23: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// The global setting of the log printed by APNGKit.
26 | public static var current: LogLevel = .default
| |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'current' 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
27 | }
28 |
[12/20] Compiling APNGKit CrossPlatform.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/CrossPlatform.swift:48:16: warning: static property 'applicationDidBecomeActive' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | extension Notification.Name {
48 | static var applicationDidBecomeActive = NSApplication.didBecomeActiveNotification
| |- warning: static property 'applicationDidBecomeActive' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'applicationDidBecomeActive' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'applicationDidBecomeActive' 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
49 | }
50 |
[13/20] Compiling APNGKit Chunk.swift
[14/20] Compiling APNGKit APNGImage.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.swift:40:23: warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
38 | /// cached or not by checking its loop number and the estimated size. Enlarge this number to allow bigger images
39 | /// to be cached.
40 | public static var maximumCacheSize = 50_000_000 // 50 MB
| |- warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'maximumCacheSize' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'maximumCacheSize' 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
41 |
42 | /// The MIME type represents an APNG data. Fixed to `image/apng` according to APNG specification 1.0.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:26:27: warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
24 | /// detect any APNG data or file error before showing it or get the total frames information and gives you the
25 | /// total animation duration before actually displaying the image.
26 | public static let fullFirstPass = DecodingOptions(rawValue: 1 << 0)
| |- warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'fullFirstPass' 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
27 |
28 | /// Loads and holds the actual frame data when decoding the frames in the first pass.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:75:27: warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
73 | /// If `fullFirstPass` and `cacheDecodedImages` are not set in the same decoding options, APNGKit adds them
74 | /// for you automatically, since only enabling `preRenderAllFrames` is meaningless.
75 | public static let preRenderAllFrames = DecodingOptions(
| |- warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'preRenderAllFrames' 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
76 | rawValue: 1 << 4 |
77 | fullFirstPass.rawValue |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:88:27: warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
86 | /// Enable this to ask APNGKit to skip this check. It improves the CPU performance a bit, but with the risk of
87 | /// reading and trust unchecked chunks. It is not recommended to skip the check.
88 | public static let skipChecksumVerify = DecodingOptions(rawValue: 1 << 5)
| |- warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'skipChecksumVerify' 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
89 |
90 | /// Unsets frame count limitation when reading an APNG image.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:33:27: warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
31 | /// to ask APNGKit to copy out the image data for each frame at the first pass. So it won't read data again in
32 | /// the future playing loops. This option trades a bit CPU resource with cost of taking more memory.
33 | public static let loadFrameData = DecodingOptions(rawValue: 1 << 1)
| |- warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'loadFrameData' 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
34 |
35 | /// Holds the decoded image for each frame, so APNGKit will not render it again.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImageRenderer.swift:334:42: warning: capture of 'self' with non-sendable type 'APNGImageRenderer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
10 |
11 | // This class is not thread safe. Methods in this class are expected only run on main thread.
12 | class APNGImageRenderer {
| `- note: class 'APNGImageRenderer' does not conform to the 'Sendable' protocol
13 | let reader: Reader
14 | let decoder: APNGDecoder
:
332 | renderingQueue.async {
333 | do {
334 | let (image, index) = try self.renderNextImpl()
| `- warning: capture of 'self' with non-sendable type 'APNGImageRenderer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
335 | DispatchQueue.main.async {
336 | self.output = .success(image)
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImageRenderer.swift:477:33: warning: passing non-sendable parameter 'block' to function expecting a @Sendable closure
471 |
472 | extension DispatchQueue {
473 | func asyncOrSyncIfMain(execute block: @escaping () -> Void) {
| `- note: parameter 'block' is implicitly non-sendable
474 | if Thread.isMainThread {
475 | block()
476 | } else {
477 | self.async(execute: block)
| `- warning: passing non-sendable parameter 'block' to function expecting a @Sendable closure
478 | }
479 | }
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImageRenderer.swift:101:40: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
99 | _ = try reader.readChunk(type: IEND.self, skipChecksumVerify: skipChecksumVerify)
100 | // Dispatch to give the user a chance to setup delegate after they get the returned APNG image.
101 | DispatchQueue.main.async { self.decoder.onFirstPassDone() }
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
102 | }
103 | }
[15/20] Compiling APNGKit APNGImageRenderer.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.swift:40:23: warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
38 | /// cached or not by checking its loop number and the estimated size. Enlarge this number to allow bigger images
39 | /// to be cached.
40 | public static var maximumCacheSize = 50_000_000 // 50 MB
| |- warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'maximumCacheSize' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'maximumCacheSize' 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
41 |
42 | /// The MIME type represents an APNG data. Fixed to `image/apng` according to APNG specification 1.0.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:26:27: warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
24 | /// detect any APNG data or file error before showing it or get the total frames information and gives you the
25 | /// total animation duration before actually displaying the image.
26 | public static let fullFirstPass = DecodingOptions(rawValue: 1 << 0)
| |- warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'fullFirstPass' 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
27 |
28 | /// Loads and holds the actual frame data when decoding the frames in the first pass.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:75:27: warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
73 | /// If `fullFirstPass` and `cacheDecodedImages` are not set in the same decoding options, APNGKit adds them
74 | /// for you automatically, since only enabling `preRenderAllFrames` is meaningless.
75 | public static let preRenderAllFrames = DecodingOptions(
| |- warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'preRenderAllFrames' 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
76 | rawValue: 1 << 4 |
77 | fullFirstPass.rawValue |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:88:27: warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
86 | /// Enable this to ask APNGKit to skip this check. It improves the CPU performance a bit, but with the risk of
87 | /// reading and trust unchecked chunks. It is not recommended to skip the check.
88 | public static let skipChecksumVerify = DecodingOptions(rawValue: 1 << 5)
| |- warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'skipChecksumVerify' 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
89 |
90 | /// Unsets frame count limitation when reading an APNG image.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:33:27: warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
31 | /// to ask APNGKit to copy out the image data for each frame at the first pass. So it won't read data again in
32 | /// the future playing loops. This option trades a bit CPU resource with cost of taking more memory.
33 | public static let loadFrameData = DecodingOptions(rawValue: 1 << 1)
| |- warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'loadFrameData' 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
34 |
35 | /// Holds the decoded image for each frame, so APNGKit will not render it again.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImageRenderer.swift:334:42: warning: capture of 'self' with non-sendable type 'APNGImageRenderer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
10 |
11 | // This class is not thread safe. Methods in this class are expected only run on main thread.
12 | class APNGImageRenderer {
| `- note: class 'APNGImageRenderer' does not conform to the 'Sendable' protocol
13 | let reader: Reader
14 | let decoder: APNGDecoder
:
332 | renderingQueue.async {
333 | do {
334 | let (image, index) = try self.renderNextImpl()
| `- warning: capture of 'self' with non-sendable type 'APNGImageRenderer' in a `@Sendable` closure; this is an error in the Swift 6 language mode
335 | DispatchQueue.main.async {
336 | self.output = .success(image)
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImageRenderer.swift:477:33: warning: passing non-sendable parameter 'block' to function expecting a @Sendable closure
471 |
472 | extension DispatchQueue {
473 | func asyncOrSyncIfMain(execute block: @escaping () -> Void) {
| `- note: parameter 'block' is implicitly non-sendable
474 | if Thread.isMainThread {
475 | block()
476 | } else {
477 | self.async(execute: block)
| `- warning: passing non-sendable parameter 'block' to function expecting a @Sendable closure
478 | }
479 | }
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImageRenderer.swift:101:40: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
99 | _ = try reader.readChunk(type: IEND.self, skipChecksumVerify: skipChecksumVerify)
100 | // Dispatch to give the user a chance to setup delegate after they get the returned APNG image.
101 | DispatchQueue.main.async { self.decoder.onFirstPassDone() }
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
102 | }
103 | }
[16/20] Emitting module APNGKit
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:26:27: warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
24 | /// detect any APNG data or file error before showing it or get the total frames information and gives you the
25 | /// total animation duration before actually displaying the image.
26 | public static let fullFirstPass = DecodingOptions(rawValue: 1 << 0)
| |- warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'fullFirstPass' 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
27 |
28 | /// Loads and holds the actual frame data when decoding the frames in the first pass.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:33:27: warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
31 | /// to ask APNGKit to copy out the image data for each frame at the first pass. So it won't read data again in
32 | /// the future playing loops. This option trades a bit CPU resource with cost of taking more memory.
33 | public static let loadFrameData = DecodingOptions(rawValue: 1 << 1)
| |- warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'loadFrameData' 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
34 |
35 | /// Holds the decoded image for each frame, so APNGKit will not render it again.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:45:27: warning: static property 'cacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
43 | ///
44 | /// See ``APNGImage.CachePolicy`` for more.
45 | public static let cacheDecodedImages = DecodingOptions(rawValue: 1 << 2)
| |- warning: static property 'cacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'cacheDecodedImages' 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
46 |
47 | /// Drops the decoded image for each frame, so APNGKit will render it again when next time it is needed.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:57:27: warning: static property 'notCacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
55 | ///
56 | /// See ``APNGImage.CachePolicy`` for more.
57 | public static let notCacheDecodedImages = DecodingOptions(rawValue: 1 << 3)
| |- warning: static property 'notCacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'notCacheDecodedImages' 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
58 |
59 | /// Performs render for all frames before the APNG image finishes it initialization. This also enables
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:75:27: warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
73 | /// If `fullFirstPass` and `cacheDecodedImages` are not set in the same decoding options, APNGKit adds them
74 | /// for you automatically, since only enabling `preRenderAllFrames` is meaningless.
75 | public static let preRenderAllFrames = DecodingOptions(
| |- warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'preRenderAllFrames' 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
76 | rawValue: 1 << 4 |
77 | fullFirstPass.rawValue |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:88:27: warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
86 | /// Enable this to ask APNGKit to skip this check. It improves the CPU performance a bit, but with the risk of
87 | /// reading and trust unchecked chunks. It is not recommended to skip the check.
88 | public static let skipChecksumVerify = DecodingOptions(rawValue: 1 << 5)
| |- warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'skipChecksumVerify' 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
89 |
90 | /// Unsets frame count limitation when reading an APNG image.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:95:27: warning: static property 'unlimitedFrameCount' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
93 | /// all expected use cases. Allowing more frame count or even unlimited frames may easily causes
94 | ///
95 | public static let unlimitedFrameCount = DecodingOptions(rawValue: 1 << 6)
| |- warning: static property 'unlimitedFrameCount' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'unlimitedFrameCount' 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
96 | }
97 |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.swift:40:23: warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
38 | /// cached or not by checking its loop number and the estimated size. Enlarge this number to allow bigger images
39 | /// to be cached.
40 | public static var maximumCacheSize = 50_000_000 // 50 MB
| |- warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'maximumCacheSize' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'maximumCacheSize' 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
41 |
42 | /// The MIME type represents an APNG data. Fixed to `image/apng` according to APNG specification 1.0.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGKitError.swift:18:10: warning: associated value 'decoderError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.DecoderError'; this is an error in the Swift 6 language mode
16 | public enum APNGKitError: Error {
17 | /// Errors happening during decoding the image data.
18 | case decoderError(DecoderError)
| `- warning: associated value 'decoderError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.DecoderError'; this is an error in the Swift 6 language mode
19 | /// Errors happening during creating the image.
20 | case imageError(ImageError)
:
26 |
27 | /// Errors happening during decoding the image data.
28 | public enum DecoderError {
| `- note: consider making enum 'DecoderError' conform to the 'Sendable' protocol
29 | case fileHandleCreatingFailed(URL, Error)
30 | case fileHandleOperationFailed(FileHandle, Error)
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGKitError.swift:20:10: warning: associated value 'imageError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.ImageError'; this is an error in the Swift 6 language mode
18 | case decoderError(DecoderError)
19 | /// Errors happening during creating the image.
20 | case imageError(ImageError)
| `- warning: associated value 'imageError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.ImageError'; this is an error in the Swift 6 language mode
21 | /// Other errors happening inside system and not directly related to APNGKit.
22 | case internalError(Error)
:
48 |
49 | /// Errors happening during creating the image.
50 | public enum ImageError {
| `- note: consider making enum 'ImageError' conform to the 'Sendable' protocol
51 | case resourceNotFound(name: String, bundle: Bundle)
52 | case normalImageDataLoaded(data: Data, scale: CGFloat)
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/CrossPlatform.swift:48:16: warning: static property 'applicationDidBecomeActive' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | extension Notification.Name {
48 | static var applicationDidBecomeActive = NSApplication.didBecomeActiveNotification
| |- warning: static property 'applicationDidBecomeActive' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'applicationDidBecomeActive' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'applicationDidBecomeActive' 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
49 | }
50 |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/LogLevel.swift:26:23: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// The global setting of the log printed by APNGKit.
26 | public static var current: LogLevel = .default
| |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'current' 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
27 | }
28 |
[17/20] Compiling APNGKit APNGDecoder.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:88:27: warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
86 | /// Enable this to ask APNGKit to skip this check. It improves the CPU performance a bit, but with the risk of
87 | /// reading and trust unchecked chunks. It is not recommended to skip the check.
88 | public static let skipChecksumVerify = DecodingOptions(rawValue: 1 << 5)
| |- warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'skipChecksumVerify' 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
89 |
90 | /// Unsets frame count limitation when reading an APNG image.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:95:27: warning: static property 'unlimitedFrameCount' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
93 | /// all expected use cases. Allowing more frame count or even unlimited frames may easily causes
94 | ///
95 | public static let unlimitedFrameCount = DecodingOptions(rawValue: 1 << 6)
| |- warning: static property 'unlimitedFrameCount' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'unlimitedFrameCount' 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
96 | }
97 |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:45:27: warning: static property 'cacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
43 | ///
44 | /// See ``APNGImage.CachePolicy`` for more.
45 | public static let cacheDecodedImages = DecodingOptions(rawValue: 1 << 2)
| |- warning: static property 'cacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'cacheDecodedImages' 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
46 |
47 | /// Drops the decoded image for each frame, so APNGKit will render it again when next time it is needed.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:57:27: warning: static property 'notCacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
55 | ///
56 | /// See ``APNGImage.CachePolicy`` for more.
57 | public static let notCacheDecodedImages = DecodingOptions(rawValue: 1 << 3)
| |- warning: static property 'notCacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'notCacheDecodedImages' 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
58 |
59 | /// Performs render for all frames before the APNG image finishes it initialization. This also enables
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.swift:40:23: warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
38 | /// cached or not by checking its loop number and the estimated size. Enlarge this number to allow bigger images
39 | /// to be cached.
40 | public static var maximumCacheSize = 50_000_000 // 50 MB
| |- warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'maximumCacheSize' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'maximumCacheSize' 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
41 |
42 | /// The MIME type represents an APNG data. Fixed to `image/apng` according to APNG specification 1.0.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:26:27: warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
24 | /// detect any APNG data or file error before showing it or get the total frames information and gives you the
25 | /// total animation duration before actually displaying the image.
26 | public static let fullFirstPass = DecodingOptions(rawValue: 1 << 0)
| |- warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'fullFirstPass' 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
27 |
28 | /// Loads and holds the actual frame data when decoding the frames in the first pass.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:33:27: warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
31 | /// to ask APNGKit to copy out the image data for each frame at the first pass. So it won't read data again in
32 | /// the future playing loops. This option trades a bit CPU resource with cost of taking more memory.
33 | public static let loadFrameData = DecodingOptions(rawValue: 1 << 1)
| |- warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'loadFrameData' 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
34 |
35 | /// Holds the decoded image for each frame, so APNGKit will not render it again.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:75:27: warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
73 | /// If `fullFirstPass` and `cacheDecodedImages` are not set in the same decoding options, APNGKit adds them
74 | /// for you automatically, since only enabling `preRenderAllFrames` is meaningless.
75 | public static let preRenderAllFrames = DecodingOptions(
| |- warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'preRenderAllFrames' 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
76 | rawValue: 1 << 4 |
77 | fullFirstPass.rawValue |
[18/20] Compiling APNGKit APNGImage.DecodingOptions.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:88:27: warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
86 | /// Enable this to ask APNGKit to skip this check. It improves the CPU performance a bit, but with the risk of
87 | /// reading and trust unchecked chunks. It is not recommended to skip the check.
88 | public static let skipChecksumVerify = DecodingOptions(rawValue: 1 << 5)
| |- warning: static property 'skipChecksumVerify' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'skipChecksumVerify' 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
89 |
90 | /// Unsets frame count limitation when reading an APNG image.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:95:27: warning: static property 'unlimitedFrameCount' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
93 | /// all expected use cases. Allowing more frame count or even unlimited frames may easily causes
94 | ///
95 | public static let unlimitedFrameCount = DecodingOptions(rawValue: 1 << 6)
| |- warning: static property 'unlimitedFrameCount' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'unlimitedFrameCount' 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
96 | }
97 |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:45:27: warning: static property 'cacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
43 | ///
44 | /// See ``APNGImage.CachePolicy`` for more.
45 | public static let cacheDecodedImages = DecodingOptions(rawValue: 1 << 2)
| |- warning: static property 'cacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'cacheDecodedImages' 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
46 |
47 | /// Drops the decoded image for each frame, so APNGKit will render it again when next time it is needed.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:57:27: warning: static property 'notCacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
55 | ///
56 | /// See ``APNGImage.CachePolicy`` for more.
57 | public static let notCacheDecodedImages = DecodingOptions(rawValue: 1 << 3)
| |- warning: static property 'notCacheDecodedImages' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'notCacheDecodedImages' 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
58 |
59 | /// Performs render for all frames before the APNG image finishes it initialization. This also enables
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.swift:40:23: warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
38 | /// cached or not by checking its loop number and the estimated size. Enlarge this number to allow bigger images
39 | /// to be cached.
40 | public static var maximumCacheSize = 50_000_000 // 50 MB
| |- warning: static property 'maximumCacheSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'maximumCacheSize' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'maximumCacheSize' 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
41 |
42 | /// The MIME type represents an APNG data. Fixed to `image/apng` according to APNG specification 1.0.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:26:27: warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
24 | /// detect any APNG data or file error before showing it or get the total frames information and gives you the
25 | /// total animation duration before actually displaying the image.
26 | public static let fullFirstPass = DecodingOptions(rawValue: 1 << 0)
| |- warning: static property 'fullFirstPass' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'fullFirstPass' 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
27 |
28 | /// Loads and holds the actual frame data when decoding the frames in the first pass.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:33:27: warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
31 | /// to ask APNGKit to copy out the image data for each frame at the first pass. So it won't read data again in
32 | /// the future playing loops. This option trades a bit CPU resource with cost of taking more memory.
33 | public static let loadFrameData = DecodingOptions(rawValue: 1 << 1)
| |- warning: static property 'loadFrameData' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'loadFrameData' 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
34 |
35 | /// Holds the decoded image for each frame, so APNGKit will not render it again.
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGImage.DecodingOptions.swift:75:27: warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | /// Decoding options you can use when creating an APNG image view.
13 | public struct DecodingOptions: OptionSet {
| `- note: consider making struct 'DecodingOptions' conform to the 'Sendable' protocol
14 | public let rawValue: Int
15 | public init(rawValue: Int) {
:
73 | /// If `fullFirstPass` and `cacheDecodedImages` are not set in the same decoding options, APNGKit adds them
74 | /// for you automatically, since only enabling `preRenderAllFrames` is meaningless.
75 | public static let preRenderAllFrames = DecodingOptions(
| |- warning: static property 'preRenderAllFrames' is not concurrency-safe because non-'Sendable' type 'APNGImage.DecodingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'preRenderAllFrames' 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
76 | rawValue: 1 << 4 |
77 | fullFirstPass.rawValue |
[19/20] Compiling APNGKit APNGImageView.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/CrossPlatform.swift:48:16: warning: static property 'applicationDidBecomeActive' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | extension Notification.Name {
48 | static var applicationDidBecomeActive = NSApplication.didBecomeActiveNotification
| |- warning: static property 'applicationDidBecomeActive' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'applicationDidBecomeActive' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'applicationDidBecomeActive' 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
49 | }
50 |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGKitError.swift:18:10: warning: associated value 'decoderError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.DecoderError'; this is an error in the Swift 6 language mode
16 | public enum APNGKitError: Error {
17 | /// Errors happening during decoding the image data.
18 | case decoderError(DecoderError)
| `- warning: associated value 'decoderError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.DecoderError'; this is an error in the Swift 6 language mode
19 | /// Errors happening during creating the image.
20 | case imageError(ImageError)
:
26 |
27 | /// Errors happening during decoding the image data.
28 | public enum DecoderError {
| `- note: consider making enum 'DecoderError' conform to the 'Sendable' protocol
29 | case fileHandleCreatingFailed(URL, Error)
30 | case fileHandleOperationFailed(FileHandle, Error)
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGKitError.swift:20:10: warning: associated value 'imageError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.ImageError'; this is an error in the Swift 6 language mode
18 | case decoderError(DecoderError)
19 | /// Errors happening during creating the image.
20 | case imageError(ImageError)
| `- warning: associated value 'imageError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.ImageError'; this is an error in the Swift 6 language mode
21 | /// Other errors happening inside system and not directly related to APNGKit.
22 | case internalError(Error)
:
48 |
49 | /// Errors happening during creating the image.
50 | public enum ImageError {
| `- note: consider making enum 'ImageError' conform to the 'Sendable' protocol
51 | case resourceNotFound(name: String, bundle: Bundle)
52 | case normalImageDataLoaded(data: Data, scale: CGFloat)
[20/20] Compiling APNGKit APNGKitError.swift
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/CrossPlatform.swift:48:16: warning: static property 'applicationDidBecomeActive' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | extension Notification.Name {
48 | static var applicationDidBecomeActive = NSApplication.didBecomeActiveNotification
| |- warning: static property 'applicationDidBecomeActive' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'applicationDidBecomeActive' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'applicationDidBecomeActive' 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
49 | }
50 |
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGKitError.swift:18:10: warning: associated value 'decoderError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.DecoderError'; this is an error in the Swift 6 language mode
16 | public enum APNGKitError: Error {
17 | /// Errors happening during decoding the image data.
18 | case decoderError(DecoderError)
| `- warning: associated value 'decoderError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.DecoderError'; this is an error in the Swift 6 language mode
19 | /// Errors happening during creating the image.
20 | case imageError(ImageError)
:
26 |
27 | /// Errors happening during decoding the image data.
28 | public enum DecoderError {
| `- note: consider making enum 'DecoderError' conform to the 'Sendable' protocol
29 | case fileHandleCreatingFailed(URL, Error)
30 | case fileHandleOperationFailed(FileHandle, Error)
/Users/admin/builder/spi-builder-workspace/Source/APNGKit/APNGKitError.swift:20:10: warning: associated value 'imageError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.ImageError'; this is an error in the Swift 6 language mode
18 | case decoderError(DecoderError)
19 | /// Errors happening during creating the image.
20 | case imageError(ImageError)
| `- warning: associated value 'imageError' of 'Sendable'-conforming enum 'APNGKitError' has non-sendable type 'APNGKitError.ImageError'; this is an error in the Swift 6 language mode
21 | /// Other errors happening inside system and not directly related to APNGKit.
22 | case internalError(Error)
:
48 |
49 | /// Errors happening during creating the image.
50 | public enum ImageError {
| `- note: consider making enum 'ImageError' conform to the 'Sendable' protocol
51 | case resourceNotFound(name: String, bundle: Bundle)
52 | case normalImageDataLoaded(data: Data, scale: CGFloat)
Build complete! (12.37s)
Build complete.
{
"dependencies" : [
{
"identity" : "delegate",
"requirement" : {
"range" : [
{
"lower_bound" : "1.3.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/onevcat/Delegate.git"
}
],
"manifest_display_name" : "APNGKit",
"name" : "APNGKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.14"
},
{
"name" : "ios",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "12.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "APNGKit",
"targets" : [
"APNGKit"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "APNGKitTests",
"module_type" : "SwiftTarget",
"name" : "APNGKitTests",
"path" : "Tests/APNGKitTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/APNGKitTests/Resources/General",
"rule" : {
"copy" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/APNGKitTests/Resources/SpecTesting",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"APNGDecoderTests.swift",
"APNGImageRendererTests.swift",
"APNGImageTests.swift",
"APNGImageViewTests.swift",
"APNGImageViewTimingTests.swift",
"ChunkTests.swift",
"DataReaderTests.swift",
"DecoderOptionsTests.swift",
"FileReaderTests.swift",
"Helpers.swift",
"ReaderExtensionTests.swift"
],
"target_dependencies" : [
"APNGKit"
],
"type" : "test"
},
{
"c99name" : "APNGKit",
"module_type" : "SwiftTarget",
"name" : "APNGKit",
"path" : "Source/APNGKit",
"product_dependencies" : [
"Delegate"
],
"product_memberships" : [
"APNGKit"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Source/APNGKit/PrivacyInfo.xcprivacy",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"APNGDecoder.swift",
"APNGImage.DecodingOptions.swift",
"APNGImage.swift",
"APNGImageRenderer.swift",
"APNGImageView.swift",
"APNGKitError.swift",
"Chunk.swift",
"CrossPlatform.swift",
"DisplayTimer.swift",
"Extensions.swift",
"LogLevel.swift",
"Reader.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.