Build Information
Successful build of SwiftSpellbook, reference 1.1.3 (e89030
), with Swift 6.0 for macOS (SPM) on 6 Nov 2024 17:39:42 UTC.
Swift 6 data race errors: 83
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
48 |
49 | extension FileEnumerator {
50 | public struct FilterVerdict {
| `- note: consider making struct 'FilterVerdict' conform to the 'Sendable' protocol
51 | public var current: Bool
52 | public var children: Bool
:
58 |
59 | /// URL is included into results.
60 | public static let proceed = Self(current: true, children: true)
| |- warning: static property 'proceed' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'proceed' 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
61 |
62 | /// URL is excluded from results.
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/FileEnumerator.swift:63:27: warning: static property 'skip' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
48 |
49 | extension FileEnumerator {
50 | public struct FilterVerdict {
| `- note: consider making struct 'FilterVerdict' conform to the 'Sendable' protocol
51 | public var current: Bool
52 | public var children: Bool
:
61 |
62 | /// URL is excluded from results.
63 | public static let skip = Self(current: false, children: true)
| |- warning: static property 'skip' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'skip' 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
64 |
65 | /// URL and all descendants are excluded from results.
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/FileEnumerator.swift:66:27: warning: static property 'skipRecursive' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
48 |
49 | extension FileEnumerator {
50 | public struct FilterVerdict {
| `- note: consider making struct 'FilterVerdict' conform to the 'Sendable' protocol
51 | public var current: Bool
52 | public var children: Bool
:
64 |
65 | /// URL and all descendants are excluded from results.
66 | public static let skipRecursive = Self(current: false, children: false)
| |- warning: static property 'skipRecursive' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'skipRecursive' 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
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/FileStore.swift:50:23: warning: static property 'standard' is not concurrency-safe because non-'Sendable' type 'FileStore<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
25 | /// Wraps common file operations file reading and writing.
26 | /// Provides ability to change underlying implementation to mock dealing with real file system.
27 | public struct FileStore<T> {
| `- note: consider making generic struct 'FileStore' conform to the 'Sendable' protocol
28 | private let read: (URL, T?) throws -> T
29 | private let write: (T, URL, Bool) throws -> Void
:
48 | extension FileStore where T == Data {
49 | @available(*, deprecated, renamed: "standard(writingOptions:)")
50 | public static let standard: FileStore = .standard()
| |- warning: static property 'standard' is not concurrency-safe because non-'Sendable' type 'FileStore<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'standard' 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
51 |
52 | public static func standard(writingOptions: Data.WritingOptions = .atomic) -> FileStore {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/TemporaryDirectory.swift:63:23: warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// A convenient interface to deal with temporary directories.
26 | public struct TemporaryDirectory {
| `- note: consider making struct 'TemporaryDirectory' conform to the 'Sendable' protocol
27 | public let location: URL
28 |
:
61 | extension TemporaryDirectory {
62 | /// Temporarty directory named as the main app bundle inside current user temporary directory.
63 | public static let bundle = TemporaryDirectory(
| |- warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'bundle' 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
64 | name: Bundle.main.bundleIdentifier ?? Bundle.main.bundlePath.lastPathComponent
65 | )
[41/66] Compiling SpellbookFoundation FileStore.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/FileEnumerator.swift:60:27: warning: static property 'proceed' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
48 |
49 | extension FileEnumerator {
50 | public struct FilterVerdict {
| `- note: consider making struct 'FilterVerdict' conform to the 'Sendable' protocol
51 | public var current: Bool
52 | public var children: Bool
:
58 |
59 | /// URL is included into results.
60 | public static let proceed = Self(current: true, children: true)
| |- warning: static property 'proceed' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'proceed' 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
61 |
62 | /// URL is excluded from results.
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/FileEnumerator.swift:63:27: warning: static property 'skip' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
48 |
49 | extension FileEnumerator {
50 | public struct FilterVerdict {
| `- note: consider making struct 'FilterVerdict' conform to the 'Sendable' protocol
51 | public var current: Bool
52 | public var children: Bool
:
61 |
62 | /// URL is excluded from results.
63 | public static let skip = Self(current: false, children: true)
| |- warning: static property 'skip' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'skip' 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
64 |
65 | /// URL and all descendants are excluded from results.
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/FileEnumerator.swift:66:27: warning: static property 'skipRecursive' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
48 |
49 | extension FileEnumerator {
50 | public struct FilterVerdict {
| `- note: consider making struct 'FilterVerdict' conform to the 'Sendable' protocol
51 | public var current: Bool
52 | public var children: Bool
:
64 |
65 | /// URL and all descendants are excluded from results.
66 | public static let skipRecursive = Self(current: false, children: false)
| |- warning: static property 'skipRecursive' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'skipRecursive' 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
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/FileStore.swift:50:23: warning: static property 'standard' is not concurrency-safe because non-'Sendable' type 'FileStore<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
25 | /// Wraps common file operations file reading and writing.
26 | /// Provides ability to change underlying implementation to mock dealing with real file system.
27 | public struct FileStore<T> {
| `- note: consider making generic struct 'FileStore' conform to the 'Sendable' protocol
28 | private let read: (URL, T?) throws -> T
29 | private let write: (T, URL, Bool) throws -> Void
:
48 | extension FileStore where T == Data {
49 | @available(*, deprecated, renamed: "standard(writingOptions:)")
50 | public static let standard: FileStore = .standard()
| |- warning: static property 'standard' is not concurrency-safe because non-'Sendable' type 'FileStore<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'standard' 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
51 |
52 | public static func standard(writingOptions: Data.WritingOptions = .atomic) -> FileStore {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/TemporaryDirectory.swift:63:23: warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// A convenient interface to deal with temporary directories.
26 | public struct TemporaryDirectory {
| `- note: consider making struct 'TemporaryDirectory' conform to the 'Sendable' protocol
27 | public let location: URL
28 |
:
61 | extension TemporaryDirectory {
62 | /// Temporarty directory named as the main app bundle inside current user temporary directory.
63 | public static let bundle = TemporaryDirectory(
| |- warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'bundle' 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
64 | name: Bundle.main.bundleIdentifier ?? Bundle.main.bundlePath.lastPathComponent
65 | )
[42/66] Compiling SpellbookFoundation TemporaryDirectory.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/FileEnumerator.swift:60:27: warning: static property 'proceed' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
48 |
49 | extension FileEnumerator {
50 | public struct FilterVerdict {
| `- note: consider making struct 'FilterVerdict' conform to the 'Sendable' protocol
51 | public var current: Bool
52 | public var children: Bool
:
58 |
59 | /// URL is included into results.
60 | public static let proceed = Self(current: true, children: true)
| |- warning: static property 'proceed' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'proceed' 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
61 |
62 | /// URL is excluded from results.
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/FileEnumerator.swift:63:27: warning: static property 'skip' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
48 |
49 | extension FileEnumerator {
50 | public struct FilterVerdict {
| `- note: consider making struct 'FilterVerdict' conform to the 'Sendable' protocol
51 | public var current: Bool
52 | public var children: Bool
:
61 |
62 | /// URL is excluded from results.
63 | public static let skip = Self(current: false, children: true)
| |- warning: static property 'skip' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'skip' 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
64 |
65 | /// URL and all descendants are excluded from results.
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/FileEnumerator.swift:66:27: warning: static property 'skipRecursive' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
48 |
49 | extension FileEnumerator {
50 | public struct FilterVerdict {
| `- note: consider making struct 'FilterVerdict' conform to the 'Sendable' protocol
51 | public var current: Bool
52 | public var children: Bool
:
64 |
65 | /// URL and all descendants are excluded from results.
66 | public static let skipRecursive = Self(current: false, children: false)
| |- warning: static property 'skipRecursive' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'skipRecursive' 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
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/FileStore.swift:50:23: warning: static property 'standard' is not concurrency-safe because non-'Sendable' type 'FileStore<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
25 | /// Wraps common file operations file reading and writing.
26 | /// Provides ability to change underlying implementation to mock dealing with real file system.
27 | public struct FileStore<T> {
| `- note: consider making generic struct 'FileStore' conform to the 'Sendable' protocol
28 | private let read: (URL, T?) throws -> T
29 | private let write: (T, URL, Bool) throws -> Void
:
48 | extension FileStore where T == Data {
49 | @available(*, deprecated, renamed: "standard(writingOptions:)")
50 | public static let standard: FileStore = .standard()
| |- warning: static property 'standard' is not concurrency-safe because non-'Sendable' type 'FileStore<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'standard' 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
51 |
52 | public static func standard(writingOptions: Data.WritingOptions = .atomic) -> FileStore {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/TemporaryDirectory.swift:63:23: warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// A convenient interface to deal with temporary directories.
26 | public struct TemporaryDirectory {
| `- note: consider making struct 'TemporaryDirectory' conform to the 'Sendable' protocol
27 | public let location: URL
28 |
:
61 | extension TemporaryDirectory {
62 | /// Temporarty directory named as the main app bundle inside current user temporary directory.
63 | public static let bundle = TemporaryDirectory(
| |- warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'bundle' 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
64 | name: Bundle.main.bundleIdentifier ?? Bundle.main.bundlePath.lastPathComponent
65 | )
[43/66] Compiling SpellbookFoundation Extensions - CoreGraphics.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/FileEnumerator.swift:60:27: warning: static property 'proceed' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
48 |
49 | extension FileEnumerator {
50 | public struct FilterVerdict {
| `- note: consider making struct 'FilterVerdict' conform to the 'Sendable' protocol
51 | public var current: Bool
52 | public var children: Bool
:
58 |
59 | /// URL is included into results.
60 | public static let proceed = Self(current: true, children: true)
| |- warning: static property 'proceed' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'proceed' 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
61 |
62 | /// URL is excluded from results.
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/FileEnumerator.swift:63:27: warning: static property 'skip' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
48 |
49 | extension FileEnumerator {
50 | public struct FilterVerdict {
| `- note: consider making struct 'FilterVerdict' conform to the 'Sendable' protocol
51 | public var current: Bool
52 | public var children: Bool
:
61 |
62 | /// URL is excluded from results.
63 | public static let skip = Self(current: false, children: true)
| |- warning: static property 'skip' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'skip' 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
64 |
65 | /// URL and all descendants are excluded from results.
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/FileEnumerator.swift:66:27: warning: static property 'skipRecursive' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
48 |
49 | extension FileEnumerator {
50 | public struct FilterVerdict {
| `- note: consider making struct 'FilterVerdict' conform to the 'Sendable' protocol
51 | public var current: Bool
52 | public var children: Bool
:
64 |
65 | /// URL and all descendants are excluded from results.
66 | public static let skipRecursive = Self(current: false, children: false)
| |- warning: static property 'skipRecursive' is not concurrency-safe because non-'Sendable' type 'FileEnumerator.FilterVerdict' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'skipRecursive' 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
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/FileStore.swift:50:23: warning: static property 'standard' is not concurrency-safe because non-'Sendable' type 'FileStore<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
25 | /// Wraps common file operations file reading and writing.
26 | /// Provides ability to change underlying implementation to mock dealing with real file system.
27 | public struct FileStore<T> {
| `- note: consider making generic struct 'FileStore' conform to the 'Sendable' protocol
28 | private let read: (URL, T?) throws -> T
29 | private let write: (T, URL, Bool) throws -> Void
:
48 | extension FileStore where T == Data {
49 | @available(*, deprecated, renamed: "standard(writingOptions:)")
50 | public static let standard: FileStore = .standard()
| |- warning: static property 'standard' is not concurrency-safe because non-'Sendable' type 'FileStore<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'standard' 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
51 |
52 | public static func standard(writingOptions: Data.WritingOptions = .atomic) -> FileStore {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/TemporaryDirectory.swift:63:23: warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// A convenient interface to deal with temporary directories.
26 | public struct TemporaryDirectory {
| `- note: consider making struct 'TemporaryDirectory' conform to the 'Sendable' protocol
27 | public let location: URL
28 |
:
61 | extension TemporaryDirectory {
62 | /// Temporarty directory named as the main app bundle inside current user temporary directory.
63 | public static let bundle = TemporaryDirectory(
| |- warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'bundle' 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
64 | name: Bundle.main.bundleIdentifier ?? Bundle.main.bundlePath.lastPathComponent
65 | )
[44/66] Compiling SpellbookFoundation Boxing.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Types & PropertyWrappers/Closure.swift:54:40: warning: capture of 'self' with non-sendable type 'Closure<T, ()>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
25 | /// Wrapper around the closure that allows extending.
26 | /// Design follows 'Decorator' pattern.
27 | public struct Closure<T, R> {
| `- note: consider making generic struct 'Closure' conform to the 'Sendable' protocol
28 | public let body: (T) -> R
29 |
:
52 |
53 | public func async(on queue: DispatchQueue) -> Self where R == Void {
54 | Self { result in queue.async { self(result) } }
| `- warning: capture of 'self' with non-sendable type 'Closure<T, ()>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Types & PropertyWrappers/Closure.swift:54:45: warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
25 | /// Wrapper around the closure that allows extending.
26 | /// Design follows 'Decorator' pattern.
27 | public struct Closure<T, R> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
28 | public let body: (T) -> R
29 |
:
52 |
53 | public func async(on queue: DispatchQueue) -> Self where R == Void {
54 | Self { result in queue.async { self(result) } }
| `- warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/TemporaryDirectory.swift:63:23: warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// A convenient interface to deal with temporary directories.
26 | public struct TemporaryDirectory {
| `- note: consider making struct 'TemporaryDirectory' conform to the 'Sendable' protocol
27 | public let location: URL
28 |
:
61 | extension TemporaryDirectory {
62 | /// Temporarty directory named as the main app bundle inside current user temporary directory.
63 | public static let bundle = TemporaryDirectory(
| |- warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'bundle' 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
64 | name: Bundle.main.bundleIdentifier ?? Bundle.main.bundlePath.lastPathComponent
65 | )
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
24 | import Foundation
25 |
26 | private let log = SpellbookLogger.internal(category: "EventAsk")
| |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'log' 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 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:25:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
23 | import Foundation
24 |
25 | public protocol SpellbookLog {
| `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
26 | func _custom(
27 | level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 | if let timeout {
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
| `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:70:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
68 | }
69 |
70 | public final class AtomicFlag {
| `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
71 | private let pointer: UnsafeMutablePointer<atomic_flag>
72 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
171 |
172 | extension EventAskEx {
173 | private class Values {
| `- note: class 'Values' does not conform to the 'Sendable' protocol
174 | private var values: [Transformed?]
175 | private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
150 |
151 | extension EventAskEx {
152 | public struct Timeout {
| `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 | public var interval: TimeInterval
154 | public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
30 |
31 | public class EventAskEx<Input, Transformed, Output> {
| `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
32 | private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
33 | private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
:
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
60 | public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
61 | await withCheckedContinuation { continuation in
62 | askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
63 | }
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 | public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 | subscribe(on: nil) { input, reply in
144 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 | reply(await transform(input))
| `- note: closure captures 'transform' which is accessible to code in the current task
146 | }
147 | }
[45/66] Compiling SpellbookFoundation Closure.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Types & PropertyWrappers/Closure.swift:54:40: warning: capture of 'self' with non-sendable type 'Closure<T, ()>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
25 | /// Wrapper around the closure that allows extending.
26 | /// Design follows 'Decorator' pattern.
27 | public struct Closure<T, R> {
| `- note: consider making generic struct 'Closure' conform to the 'Sendable' protocol
28 | public let body: (T) -> R
29 |
:
52 |
53 | public func async(on queue: DispatchQueue) -> Self where R == Void {
54 | Self { result in queue.async { self(result) } }
| `- warning: capture of 'self' with non-sendable type 'Closure<T, ()>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Types & PropertyWrappers/Closure.swift:54:45: warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
25 | /// Wrapper around the closure that allows extending.
26 | /// Design follows 'Decorator' pattern.
27 | public struct Closure<T, R> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
28 | public let body: (T) -> R
29 |
:
52 |
53 | public func async(on queue: DispatchQueue) -> Self where R == Void {
54 | Self { result in queue.async { self(result) } }
| `- warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/TemporaryDirectory.swift:63:23: warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// A convenient interface to deal with temporary directories.
26 | public struct TemporaryDirectory {
| `- note: consider making struct 'TemporaryDirectory' conform to the 'Sendable' protocol
27 | public let location: URL
28 |
:
61 | extension TemporaryDirectory {
62 | /// Temporarty directory named as the main app bundle inside current user temporary directory.
63 | public static let bundle = TemporaryDirectory(
| |- warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'bundle' 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
64 | name: Bundle.main.bundleIdentifier ?? Bundle.main.bundlePath.lastPathComponent
65 | )
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
24 | import Foundation
25 |
26 | private let log = SpellbookLogger.internal(category: "EventAsk")
| |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'log' 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 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:25:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
23 | import Foundation
24 |
25 | public protocol SpellbookLog {
| `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
26 | func _custom(
27 | level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 | if let timeout {
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
| `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:70:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
68 | }
69 |
70 | public final class AtomicFlag {
| `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
71 | private let pointer: UnsafeMutablePointer<atomic_flag>
72 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
171 |
172 | extension EventAskEx {
173 | private class Values {
| `- note: class 'Values' does not conform to the 'Sendable' protocol
174 | private var values: [Transformed?]
175 | private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
150 |
151 | extension EventAskEx {
152 | public struct Timeout {
| `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 | public var interval: TimeInterval
154 | public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
30 |
31 | public class EventAskEx<Input, Transformed, Output> {
| `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
32 | private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
33 | private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
:
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
60 | public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
61 | await withCheckedContinuation { continuation in
62 | askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
63 | }
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 | public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 | subscribe(on: nil) { input, reply in
144 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 | reply(await transform(input))
| `- note: closure captures 'transform' which is accessible to code in the current task
146 | }
147 | }
[46/66] Compiling SpellbookFoundation Refreshable.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Types & PropertyWrappers/Closure.swift:54:40: warning: capture of 'self' with non-sendable type 'Closure<T, ()>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
25 | /// Wrapper around the closure that allows extending.
26 | /// Design follows 'Decorator' pattern.
27 | public struct Closure<T, R> {
| `- note: consider making generic struct 'Closure' conform to the 'Sendable' protocol
28 | public let body: (T) -> R
29 |
:
52 |
53 | public func async(on queue: DispatchQueue) -> Self where R == Void {
54 | Self { result in queue.async { self(result) } }
| `- warning: capture of 'self' with non-sendable type 'Closure<T, ()>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Types & PropertyWrappers/Closure.swift:54:45: warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
25 | /// Wrapper around the closure that allows extending.
26 | /// Design follows 'Decorator' pattern.
27 | public struct Closure<T, R> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
28 | public let body: (T) -> R
29 |
:
52 |
53 | public func async(on queue: DispatchQueue) -> Self where R == Void {
54 | Self { result in queue.async { self(result) } }
| `- warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/TemporaryDirectory.swift:63:23: warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// A convenient interface to deal with temporary directories.
26 | public struct TemporaryDirectory {
| `- note: consider making struct 'TemporaryDirectory' conform to the 'Sendable' protocol
27 | public let location: URL
28 |
:
61 | extension TemporaryDirectory {
62 | /// Temporarty directory named as the main app bundle inside current user temporary directory.
63 | public static let bundle = TemporaryDirectory(
| |- warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'bundle' 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
64 | name: Bundle.main.bundleIdentifier ?? Bundle.main.bundlePath.lastPathComponent
65 | )
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
24 | import Foundation
25 |
26 | private let log = SpellbookLogger.internal(category: "EventAsk")
| |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'log' 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 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:25:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
23 | import Foundation
24 |
25 | public protocol SpellbookLog {
| `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
26 | func _custom(
27 | level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 | if let timeout {
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
| `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:70:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
68 | }
69 |
70 | public final class AtomicFlag {
| `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
71 | private let pointer: UnsafeMutablePointer<atomic_flag>
72 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
171 |
172 | extension EventAskEx {
173 | private class Values {
| `- note: class 'Values' does not conform to the 'Sendable' protocol
174 | private var values: [Transformed?]
175 | private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
150 |
151 | extension EventAskEx {
152 | public struct Timeout {
| `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 | public var interval: TimeInterval
154 | public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
30 |
31 | public class EventAskEx<Input, Transformed, Output> {
| `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
32 | private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
33 | private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
:
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
60 | public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
61 | await withCheckedContinuation { continuation in
62 | askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
63 | }
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 | public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 | subscribe(on: nil) { input, reply in
144 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 | reply(await transform(input))
| `- note: closure captures 'transform' which is accessible to code in the current task
146 | }
147 | }
[47/66] Compiling SpellbookFoundation Resource (RAII).swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Types & PropertyWrappers/Closure.swift:54:40: warning: capture of 'self' with non-sendable type 'Closure<T, ()>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
25 | /// Wrapper around the closure that allows extending.
26 | /// Design follows 'Decorator' pattern.
27 | public struct Closure<T, R> {
| `- note: consider making generic struct 'Closure' conform to the 'Sendable' protocol
28 | public let body: (T) -> R
29 |
:
52 |
53 | public func async(on queue: DispatchQueue) -> Self where R == Void {
54 | Self { result in queue.async { self(result) } }
| `- warning: capture of 'self' with non-sendable type 'Closure<T, ()>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Types & PropertyWrappers/Closure.swift:54:45: warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
25 | /// Wrapper around the closure that allows extending.
26 | /// Design follows 'Decorator' pattern.
27 | public struct Closure<T, R> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
28 | public let body: (T) -> R
29 |
:
52 |
53 | public func async(on queue: DispatchQueue) -> Self where R == Void {
54 | Self { result in queue.async { self(result) } }
| `- warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/TemporaryDirectory.swift:63:23: warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// A convenient interface to deal with temporary directories.
26 | public struct TemporaryDirectory {
| `- note: consider making struct 'TemporaryDirectory' conform to the 'Sendable' protocol
27 | public let location: URL
28 |
:
61 | extension TemporaryDirectory {
62 | /// Temporarty directory named as the main app bundle inside current user temporary directory.
63 | public static let bundle = TemporaryDirectory(
| |- warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'bundle' 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
64 | name: Bundle.main.bundleIdentifier ?? Bundle.main.bundlePath.lastPathComponent
65 | )
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
24 | import Foundation
25 |
26 | private let log = SpellbookLogger.internal(category: "EventAsk")
| |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'log' 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 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:25:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
23 | import Foundation
24 |
25 | public protocol SpellbookLog {
| `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
26 | func _custom(
27 | level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 | if let timeout {
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
| `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:70:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
68 | }
69 |
70 | public final class AtomicFlag {
| `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
71 | private let pointer: UnsafeMutablePointer<atomic_flag>
72 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
171 |
172 | extension EventAskEx {
173 | private class Values {
| `- note: class 'Values' does not conform to the 'Sendable' protocol
174 | private var values: [Transformed?]
175 | private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
150 |
151 | extension EventAskEx {
152 | public struct Timeout {
| `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 | public var interval: TimeInterval
154 | public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
30 |
31 | public class EventAskEx<Input, Transformed, Output> {
| `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
32 | private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
33 | private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
:
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
60 | public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
61 | await withCheckedContinuation { continuation in
62 | askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
63 | }
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 | public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 | subscribe(on: nil) { input, reply in
144 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 | reply(await transform(input))
| `- note: closure captures 'transform' which is accessible to code in the current task
146 | }
147 | }
[48/66] Compiling SpellbookFoundation Types.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Types & PropertyWrappers/Closure.swift:54:40: warning: capture of 'self' with non-sendable type 'Closure<T, ()>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
25 | /// Wrapper around the closure that allows extending.
26 | /// Design follows 'Decorator' pattern.
27 | public struct Closure<T, R> {
| `- note: consider making generic struct 'Closure' conform to the 'Sendable' protocol
28 | public let body: (T) -> R
29 |
:
52 |
53 | public func async(on queue: DispatchQueue) -> Self where R == Void {
54 | Self { result in queue.async { self(result) } }
| `- warning: capture of 'self' with non-sendable type 'Closure<T, ()>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Types & PropertyWrappers/Closure.swift:54:45: warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
25 | /// Wrapper around the closure that allows extending.
26 | /// Design follows 'Decorator' pattern.
27 | public struct Closure<T, R> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
28 | public let body: (T) -> R
29 |
:
52 |
53 | public func async(on queue: DispatchQueue) -> Self where R == Void {
54 | Self { result in queue.async { self(result) } }
| `- warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/TemporaryDirectory.swift:63:23: warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// A convenient interface to deal with temporary directories.
26 | public struct TemporaryDirectory {
| `- note: consider making struct 'TemporaryDirectory' conform to the 'Sendable' protocol
27 | public let location: URL
28 |
:
61 | extension TemporaryDirectory {
62 | /// Temporarty directory named as the main app bundle inside current user temporary directory.
63 | public static let bundle = TemporaryDirectory(
| |- warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'bundle' 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
64 | name: Bundle.main.bundleIdentifier ?? Bundle.main.bundlePath.lastPathComponent
65 | )
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
24 | import Foundation
25 |
26 | private let log = SpellbookLogger.internal(category: "EventAsk")
| |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'log' 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 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:25:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
23 | import Foundation
24 |
25 | public protocol SpellbookLog {
| `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
26 | func _custom(
27 | level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 | if let timeout {
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
| `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:70:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
68 | }
69 |
70 | public final class AtomicFlag {
| `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
71 | private let pointer: UnsafeMutablePointer<atomic_flag>
72 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
171 |
172 | extension EventAskEx {
173 | private class Values {
| `- note: class 'Values' does not conform to the 'Sendable' protocol
174 | private var values: [Transformed?]
175 | private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
150 |
151 | extension EventAskEx {
152 | public struct Timeout {
| `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 | public var interval: TimeInterval
154 | public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
30 |
31 | public class EventAskEx<Input, Transformed, Output> {
| `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
32 | private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
33 | private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
:
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
60 | public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
61 | await withCheckedContinuation { continuation in
62 | askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
63 | }
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 | public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 | subscribe(on: nil) { input, reply in
144 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 | reply(await transform(input))
| `- note: closure captures 'transform' which is accessible to code in the current task
146 | }
147 | }
[49/66] Compiling SpellbookFoundation EventAsk.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Types & PropertyWrappers/Closure.swift:54:40: warning: capture of 'self' with non-sendable type 'Closure<T, ()>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
25 | /// Wrapper around the closure that allows extending.
26 | /// Design follows 'Decorator' pattern.
27 | public struct Closure<T, R> {
| `- note: consider making generic struct 'Closure' conform to the 'Sendable' protocol
28 | public let body: (T) -> R
29 |
:
52 |
53 | public func async(on queue: DispatchQueue) -> Self where R == Void {
54 | Self { result in queue.async { self(result) } }
| `- warning: capture of 'self' with non-sendable type 'Closure<T, ()>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Types & PropertyWrappers/Closure.swift:54:45: warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
25 | /// Wrapper around the closure that allows extending.
26 | /// Design follows 'Decorator' pattern.
27 | public struct Closure<T, R> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
28 | public let body: (T) -> R
29 |
:
52 |
53 | public func async(on queue: DispatchQueue) -> Self where R == Void {
54 | Self { result in queue.async { self(result) } }
| `- warning: capture of 'result' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
55 | }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Filesystem & Bundle/TemporaryDirectory.swift:63:23: warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | /// A convenient interface to deal with temporary directories.
26 | public struct TemporaryDirectory {
| `- note: consider making struct 'TemporaryDirectory' conform to the 'Sendable' protocol
27 | public let location: URL
28 |
:
61 | extension TemporaryDirectory {
62 | /// Temporarty directory named as the main app bundle inside current user temporary directory.
63 | public static let bundle = TemporaryDirectory(
| |- warning: static property 'bundle' is not concurrency-safe because non-'Sendable' type 'TemporaryDirectory' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'bundle' 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
64 | name: Bundle.main.bundleIdentifier ?? Bundle.main.bundlePath.lastPathComponent
65 | )
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:26:13: warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
24 | import Foundation
25 |
26 | private let log = SpellbookLogger.internal(category: "EventAsk")
| |- warning: let 'log' is not concurrency-safe because non-'Sendable' type 'any SpellbookLog' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'log' 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 | public typealias EventAskCombined<Input, Output> = EventAskEx<Input, Output, Output>
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Common/SpellbookLog.swift:25:17: note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
23 | import Foundation
24 |
25 | public protocol SpellbookLog {
| `- note: protocol 'SpellbookLog' does not conform to the 'Sendable' protocol
26 | func _custom(
27 | level: SpellbookLogLevel,
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:110:24: warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
108 | if let timeout {
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
| `- warning: capture of 'once' with non-sendable type 'AtomicFlag' in a `@Sendable` closure; this is an error in the Swift 6 language mode
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
112 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Atomic.swift:70:20: note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
68 | }
69 |
70 | public final class AtomicFlag {
| `- note: class 'AtomicFlag' does not conform to the 'Sendable' protocol
71 | private let pointer: UnsafeMutablePointer<atomic_flag>
72 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:17: warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| |- warning: capture of 'completion' with non-sendable type '(Output) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:28: warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'values' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Values' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
171 |
172 | extension EventAskEx {
173 | private class Values {
| `- note: class 'Values' does not conform to the 'Sendable' protocol
174 | private var values: [Transformed?]
175 | private var lock = UnfairLock()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:49: warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'timeout' with non-sendable type 'EventAskEx<Input, Transformed, Output>.Timeout' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
:
150 |
151 | extension EventAskEx {
152 | public struct Timeout {
| `- note: consider making struct 'Timeout' conform to the 'Sendable' protocol
153 | public var interval: TimeInterval
154 | public var onTimeout: () -> Fallback? = { nil }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:111:79: warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
29 | public typealias EventAsk<Input, Output> = EventAskEx<Input, Output, [Output]>
30 |
31 | public class EventAskEx<Input, Transformed, Output> {
| `- note: generic class 'EventAskEx' does not conform to the 'Sendable' protocol
32 | private typealias Entry<T> = (transform: AsyncTransform, queue: DispatchQueue?)
33 | private let transforms = Synchronized<[UUID: Entry<AsyncTransform>]>(.concurrent)
:
109 | queue.asyncAfter(delay: timeout.interval) {
110 | guard !once.testAndSet() else { return }
111 | completion(values.get(fallback: timeout.onTimeout(), combine: self.combine))
| `- warning: capture of 'self' with non-sendable type 'EventAskEx<Input, Transformed, Output>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
112 | }
113 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:62:62: warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
60 | public func ask(_ value: Input, timeout: Timeout? = nil) async -> Output {
61 | await withCheckedContinuation { continuation in
62 | askAsync(value, timeout: timeout) { continuation.resume(returning: $0) }
| |- warning: sending '$0' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated '$0' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
63 | }
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventAsk.swift:144:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
142 | public func subscribe(transform: @escaping ConcurrentTransform) -> SubscriptionToken {
143 | subscribe(on: nil) { input, reply in
144 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
145 | reply(await transform(input))
| `- note: closure captures 'transform' which is accessible to code in the current task
146 | }
147 | }
[50/66] Compiling SpellbookFoundation Extensions - Locks.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:208:13: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
205 | @available(macOS 13.0, iOS 16.0, tvOS 16.0, watchOS 9.0, *)
206 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
207 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
208 | try withLock { try body() }
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
209 | }
210 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:208:28: warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
206 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
207 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
208 | try withLock { try body() }
| |- warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
209 | }
210 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:224:41: warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
221 | }
222 |
223 | func withAsyncWriteLock(_ body: @escaping () -> Void) {
| `- note: parameter 'body' is implicitly non-sendable
224 | async(flags: .barrier, execute: body)
| `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
225 | }
226 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:31:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
29 | completion: @escaping (Result<R, Error>) -> Void
30 | ) where Success == Void, Failure == Never {
31 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
32 | do {
33 | let result = try await body()
34 | completion(.success(result))
| `- note: closure captures 'completion' which is accessible to code in the current task
35 | } catch {
36 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:45:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
43 | completion: @escaping (R) -> Void
44 | ) where Success == Void, Failure == Never {
45 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
46 | completion(await body())
| `- note: closure captures 'completion' which is accessible to code in the current task
47 | }
48 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:54:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
52 | completion: @escaping (Error?) -> Void
53 | ) where Success == Void, Failure == Never {
54 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
55 | do {
56 | try await body()
57 | completion(nil)
| `- note: closure captures 'completion' which is accessible to code in the current task
58 | } catch {
59 | completion(error)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/SynchronousExecutor.swift:73:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
71 | public func sync<R>(_ action: @escaping () async throws -> R) throws -> R {
72 | try sync { completion in
73 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
74 | do {
75 | let success = try await action()
| `- note: closure captures 'action' which is accessible to code in the current task
76 | completion(.success(success))
77 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/SynchronousExecutor.swift:113:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
111 | public static func sync<R>(_ action: @escaping () async -> R) -> R {
112 | sync { completion in
113 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
114 | let result = await action()
| `- note: closure captures 'action' which is accessible to code in the current task
115 | completion(result)
116 | }
[51/66] Compiling SpellbookFoundation Extensions - Task.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:208:13: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
205 | @available(macOS 13.0, iOS 16.0, tvOS 16.0, watchOS 9.0, *)
206 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
207 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
208 | try withLock { try body() }
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
209 | }
210 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:208:28: warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
206 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
207 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
208 | try withLock { try body() }
| |- warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
209 | }
210 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:224:41: warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
221 | }
222 |
223 | func withAsyncWriteLock(_ body: @escaping () -> Void) {
| `- note: parameter 'body' is implicitly non-sendable
224 | async(flags: .barrier, execute: body)
| `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
225 | }
226 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:31:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
29 | completion: @escaping (Result<R, Error>) -> Void
30 | ) where Success == Void, Failure == Never {
31 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
32 | do {
33 | let result = try await body()
34 | completion(.success(result))
| `- note: closure captures 'completion' which is accessible to code in the current task
35 | } catch {
36 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:45:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
43 | completion: @escaping (R) -> Void
44 | ) where Success == Void, Failure == Never {
45 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
46 | completion(await body())
| `- note: closure captures 'completion' which is accessible to code in the current task
47 | }
48 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:54:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
52 | completion: @escaping (Error?) -> Void
53 | ) where Success == Void, Failure == Never {
54 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
55 | do {
56 | try await body()
57 | completion(nil)
| `- note: closure captures 'completion' which is accessible to code in the current task
58 | } catch {
59 | completion(error)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/SynchronousExecutor.swift:73:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
71 | public func sync<R>(_ action: @escaping () async throws -> R) throws -> R {
72 | try sync { completion in
73 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
74 | do {
75 | let success = try await action()
| `- note: closure captures 'action' which is accessible to code in the current task
76 | completion(.success(success))
77 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/SynchronousExecutor.swift:113:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
111 | public static func sync<R>(_ action: @escaping () async -> R) -> R {
112 | sync { completion in
113 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
114 | let result = await action()
| `- note: closure captures 'action' which is accessible to code in the current task
115 | completion(result)
116 | }
[52/66] Compiling SpellbookFoundation PosixLocks.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:208:13: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
205 | @available(macOS 13.0, iOS 16.0, tvOS 16.0, watchOS 9.0, *)
206 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
207 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
208 | try withLock { try body() }
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
209 | }
210 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:208:28: warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
206 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
207 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
208 | try withLock { try body() }
| |- warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
209 | }
210 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:224:41: warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
221 | }
222 |
223 | func withAsyncWriteLock(_ body: @escaping () -> Void) {
| `- note: parameter 'body' is implicitly non-sendable
224 | async(flags: .barrier, execute: body)
| `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
225 | }
226 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:31:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
29 | completion: @escaping (Result<R, Error>) -> Void
30 | ) where Success == Void, Failure == Never {
31 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
32 | do {
33 | let result = try await body()
34 | completion(.success(result))
| `- note: closure captures 'completion' which is accessible to code in the current task
35 | } catch {
36 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:45:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
43 | completion: @escaping (R) -> Void
44 | ) where Success == Void, Failure == Never {
45 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
46 | completion(await body())
| `- note: closure captures 'completion' which is accessible to code in the current task
47 | }
48 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:54:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
52 | completion: @escaping (Error?) -> Void
53 | ) where Success == Void, Failure == Never {
54 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
55 | do {
56 | try await body()
57 | completion(nil)
| `- note: closure captures 'completion' which is accessible to code in the current task
58 | } catch {
59 | completion(error)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/SynchronousExecutor.swift:73:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
71 | public func sync<R>(_ action: @escaping () async throws -> R) throws -> R {
72 | try sync { completion in
73 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
74 | do {
75 | let success = try await action()
| `- note: closure captures 'action' which is accessible to code in the current task
76 | completion(.success(success))
77 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/SynchronousExecutor.swift:113:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
111 | public static func sync<R>(_ action: @escaping () async -> R) -> R {
112 | sync { completion in
113 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
114 | let result = await action()
| `- note: closure captures 'action' which is accessible to code in the current task
115 | completion(result)
116 | }
[53/66] Compiling SpellbookFoundation Synchronized.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:208:13: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
205 | @available(macOS 13.0, iOS 16.0, tvOS 16.0, watchOS 9.0, *)
206 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
207 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
208 | try withLock { try body() }
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
209 | }
210 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:208:28: warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
206 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
207 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
208 | try withLock { try body() }
| |- warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
209 | }
210 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:224:41: warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
221 | }
222 |
223 | func withAsyncWriteLock(_ body: @escaping () -> Void) {
| `- note: parameter 'body' is implicitly non-sendable
224 | async(flags: .barrier, execute: body)
| `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
225 | }
226 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:31:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
29 | completion: @escaping (Result<R, Error>) -> Void
30 | ) where Success == Void, Failure == Never {
31 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
32 | do {
33 | let result = try await body()
34 | completion(.success(result))
| `- note: closure captures 'completion' which is accessible to code in the current task
35 | } catch {
36 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:45:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
43 | completion: @escaping (R) -> Void
44 | ) where Success == Void, Failure == Never {
45 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
46 | completion(await body())
| `- note: closure captures 'completion' which is accessible to code in the current task
47 | }
48 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:54:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
52 | completion: @escaping (Error?) -> Void
53 | ) where Success == Void, Failure == Never {
54 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
55 | do {
56 | try await body()
57 | completion(nil)
| `- note: closure captures 'completion' which is accessible to code in the current task
58 | } catch {
59 | completion(error)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/SynchronousExecutor.swift:73:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
71 | public func sync<R>(_ action: @escaping () async throws -> R) throws -> R {
72 | try sync { completion in
73 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
74 | do {
75 | let success = try await action()
| `- note: closure captures 'action' which is accessible to code in the current task
76 | completion(.success(success))
77 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/SynchronousExecutor.swift:113:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
111 | public static func sync<R>(_ action: @escaping () async -> R) -> R {
112 | sync { completion in
113 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
114 | let result = await action()
| `- note: closure captures 'action' which is accessible to code in the current task
115 | completion(result)
116 | }
[54/66] Compiling SpellbookFoundation SynchronizedObjC.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:208:13: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
205 | @available(macOS 13.0, iOS 16.0, tvOS 16.0, watchOS 9.0, *)
206 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
207 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
208 | try withLock { try body() }
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
209 | }
210 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:208:28: warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
206 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
207 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
208 | try withLock { try body() }
| |- warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
209 | }
210 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:224:41: warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
221 | }
222 |
223 | func withAsyncWriteLock(_ body: @escaping () -> Void) {
| `- note: parameter 'body' is implicitly non-sendable
224 | async(flags: .barrier, execute: body)
| `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
225 | }
226 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:31:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
29 | completion: @escaping (Result<R, Error>) -> Void
30 | ) where Success == Void, Failure == Never {
31 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
32 | do {
33 | let result = try await body()
34 | completion(.success(result))
| `- note: closure captures 'completion' which is accessible to code in the current task
35 | } catch {
36 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:45:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
43 | completion: @escaping (R) -> Void
44 | ) where Success == Void, Failure == Never {
45 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
46 | completion(await body())
| `- note: closure captures 'completion' which is accessible to code in the current task
47 | }
48 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:54:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
52 | completion: @escaping (Error?) -> Void
53 | ) where Success == Void, Failure == Never {
54 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
55 | do {
56 | try await body()
57 | completion(nil)
| `- note: closure captures 'completion' which is accessible to code in the current task
58 | } catch {
59 | completion(error)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/SynchronousExecutor.swift:73:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
71 | public func sync<R>(_ action: @escaping () async throws -> R) throws -> R {
72 | try sync { completion in
73 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
74 | do {
75 | let success = try await action()
| `- note: closure captures 'action' which is accessible to code in the current task
76 | completion(.success(success))
77 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/SynchronousExecutor.swift:113:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
111 | public static func sync<R>(_ action: @escaping () async -> R) -> R {
112 | sync { completion in
113 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
114 | let result = await action()
| `- note: closure captures 'action' which is accessible to code in the current task
115 | completion(result)
116 | }
[55/66] Compiling SpellbookFoundation SynchronousExecutor.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:208:13: warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
205 | @available(macOS 13.0, iOS 16.0, tvOS 16.0, watchOS 9.0, *)
206 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
207 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
| `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
208 | try withLock { try body() }
| `- warning: type 'R' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
209 | }
210 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:208:28: warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
206 | extension OSAllocatedUnfairLock: SynchronizedLocking where State == Void {
207 | func withWriteLock<R>(_ body: () throws -> R) rethrows -> R {
208 | try withLock { try body() }
| |- warning: capture of 'body' with non-sendable type '() throws -> R' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
209 | }
210 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Synchronized.swift:224:41: warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
221 | }
222 |
223 | func withAsyncWriteLock(_ body: @escaping () -> Void) {
| `- note: parameter 'body' is implicitly non-sendable
224 | async(flags: .barrier, execute: body)
| `- warning: passing non-sendable parameter 'body' to function expecting a @Sendable closure
225 | }
226 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:31:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
29 | completion: @escaping (Result<R, Error>) -> Void
30 | ) where Success == Void, Failure == Never {
31 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
32 | do {
33 | let result = try await body()
34 | completion(.success(result))
| `- note: closure captures 'completion' which is accessible to code in the current task
35 | } catch {
36 | completion(.failure(error))
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:45:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
43 | completion: @escaping (R) -> Void
44 | ) where Success == Void, Failure == Never {
45 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
46 | completion(await body())
| `- note: closure captures 'completion' which is accessible to code in the current task
47 | }
48 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/Extensions - Task.swift:54:27: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
52 | completion: @escaping (Error?) -> Void
53 | ) where Success == Void, Failure == Never {
54 | Task<Void, Never> {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
55 | do {
56 | try await body()
57 | completion(nil)
| `- note: closure captures 'completion' which is accessible to code in the current task
58 | } catch {
59 | completion(error)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/SynchronousExecutor.swift:73:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
71 | public func sync<R>(_ action: @escaping () async throws -> R) throws -> R {
72 | try sync { completion in
73 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
74 | do {
75 | let success = try await action()
| `- note: closure captures 'action' which is accessible to code in the current task
76 | completion(.success(success))
77 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Threading & Concurrency/SynchronousExecutor.swift:113:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
111 | public static func sync<R>(_ action: @escaping () async -> R) -> R {
112 | sync { completion in
113 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
114 | let result = await action()
| `- note: closure captures 'action' which is accessible to code in the current task
115 | completion(result)
116 | }
[56/66] Compiling SpellbookFoundation Internal.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Internal.swift:29:47: warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
25 | extension Optional where Wrapped == DispatchQueue {
26 | @inline(__always)
27 | package func async(flags: DispatchWorkItemFlags = [], execute work: @escaping () -> Void) {
| `- note: parameter 'work' is implicitly non-sendable
28 | if let self {
29 | self.async(flags: flags, execute: work)
| `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
30 | } else {
31 | work()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:31:33: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
29 | /// Returns current task audit token.
30 | public static func current() throws -> audit_token_t {
31 | try audit_token_t(task: mach_task_self_)
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
32 | }
33 |
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:36:65: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
34 | /// Returns task for pid.
35 | public init(pid: pid_t) throws {
36 | let taskName = try NSError.mach.try { task_name_for_pid(mach_task_self_, pid, $0) }
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
37 | try self.init(task: taskName)
38 | }
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
[57/66] Compiling SpellbookFoundation AuditToken.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Internal.swift:29:47: warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
25 | extension Optional where Wrapped == DispatchQueue {
26 | @inline(__always)
27 | package func async(flags: DispatchWorkItemFlags = [], execute work: @escaping () -> Void) {
| `- note: parameter 'work' is implicitly non-sendable
28 | if let self {
29 | self.async(flags: flags, execute: work)
| `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
30 | } else {
31 | work()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:31:33: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
29 | /// Returns current task audit token.
30 | public static func current() throws -> audit_token_t {
31 | try audit_token_t(task: mach_task_self_)
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
32 | }
33 |
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:36:65: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
34 | /// Returns task for pid.
35 | public init(pid: pid_t) throws {
36 | let taskName = try NSError.mach.try { task_name_for_pid(mach_task_self_, pid, $0) }
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
37 | try self.init(task: taskName)
38 | }
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
[58/66] Compiling SpellbookFoundation BridgedCEnum.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Internal.swift:29:47: warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
25 | extension Optional where Wrapped == DispatchQueue {
26 | @inline(__always)
27 | package func async(flags: DispatchWorkItemFlags = [], execute work: @escaping () -> Void) {
| `- note: parameter 'work' is implicitly non-sendable
28 | if let self {
29 | self.async(flags: flags, execute: work)
| `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
30 | } else {
31 | work()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:31:33: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
29 | /// Returns current task audit token.
30 | public static func current() throws -> audit_token_t {
31 | try audit_token_t(task: mach_task_self_)
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
32 | }
33 |
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:36:65: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
34 | /// Returns task for pid.
35 | public init(pid: pid_t) throws {
36 | let taskName = try NSError.mach.try { task_name_for_pid(mach_task_self_, pid, $0) }
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
37 | try self.init(task: taskName)
38 | }
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
[59/66] Compiling SpellbookFoundation MachTime.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Internal.swift:29:47: warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
25 | extension Optional where Wrapped == DispatchQueue {
26 | @inline(__always)
27 | package func async(flags: DispatchWorkItemFlags = [], execute work: @escaping () -> Void) {
| `- note: parameter 'work' is implicitly non-sendable
28 | if let self {
29 | self.async(flags: flags, execute: work)
| `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
30 | } else {
31 | work()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:31:33: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
29 | /// Returns current task audit token.
30 | public static func current() throws -> audit_token_t {
31 | try audit_token_t(task: mach_task_self_)
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
32 | }
33 |
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:36:65: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
34 | /// Returns task for pid.
35 | public init(pid: pid_t) throws {
36 | let taskName = try NSError.mach.try { task_name_for_pid(mach_task_self_, pid, $0) }
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
37 | try self.init(task: taskName)
38 | }
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
[60/66] Compiling SpellbookFoundation POD+Swift.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Internal.swift:29:47: warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
25 | extension Optional where Wrapped == DispatchQueue {
26 | @inline(__always)
27 | package func async(flags: DispatchWorkItemFlags = [], execute work: @escaping () -> Void) {
| `- note: parameter 'work' is implicitly non-sendable
28 | if let self {
29 | self.async(flags: flags, execute: work)
| `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
30 | } else {
31 | work()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:31:33: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
29 | /// Returns current task audit token.
30 | public static func current() throws -> audit_token_t {
31 | try audit_token_t(task: mach_task_self_)
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
32 | }
33 |
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:36:65: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
34 | /// Returns task for pid.
35 | public init(pid: pid_t) throws {
36 | let taskName = try NSError.mach.try { task_name_for_pid(mach_task_self_, pid, $0) }
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
37 | try self.init(task: taskName)
38 | }
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
[61/66] Compiling SpellbookFoundation Unsafe.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Internal.swift:29:47: warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
25 | extension Optional where Wrapped == DispatchQueue {
26 | @inline(__always)
27 | package func async(flags: DispatchWorkItemFlags = [], execute work: @escaping () -> Void) {
| `- note: parameter 'work' is implicitly non-sendable
28 | if let self {
29 | self.async(flags: flags, execute: work)
| `- warning: passing non-sendable parameter 'work' to function expecting a @Sendable closure
30 | } else {
31 | work()
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:31:33: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
29 | /// Returns current task audit token.
30 | public static func current() throws -> audit_token_t {
31 | try audit_token_t(task: mach_task_self_)
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
32 | }
33 |
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/Low Level/AuditToken.swift:36:65: warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
34 | /// Returns task for pid.
35 | public init(pid: pid_t) throws {
36 | let taskName = try NSError.mach.try { task_name_for_pid(mach_task_self_, pid, $0) }
| `- warning: reference to var 'mach_task_self_' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
37 | try self.init(task: taskName)
38 | }
Darwin.mach_task_self_:1:12: note: var declared here
1 | public var mach_task_self_: mach_port_t
| `- note: var declared here
[62/66] Compiling SpellbookFoundation EventNotify.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:33: warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| |- warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:40: warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 | import Foundation
24 |
25 | public final class EventNotify<T>: ValueObserving {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 | private typealias Handler = (T, Any?) -> Void
27 |
:
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:47: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:31: warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| |- warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:44: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:51: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 | }
77 | }
[63/66] Compiling SpellbookFoundation ValueObservable.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:33: warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| |- warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:40: warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 | import Foundation
24 |
25 | public final class EventNotify<T>: ValueObserving {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 | private typealias Handler = (T, Any?) -> Void
27 |
:
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:47: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:31: warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| |- warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:44: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:51: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 | }
77 | }
[64/66] Compiling SpellbookFoundation ValueObserving.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:33: warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| |- warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:40: warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 | import Foundation
24 |
25 | public final class EventNotify<T>: ValueObserving {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 | private typealias Handler = (T, Any?) -> Void
27 |
:
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:47: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:31: warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| |- warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:44: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:51: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 | }
77 | }
[65/66] Compiling SpellbookFoundation ValueStore.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:33: warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| |- warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:40: warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 | import Foundation
24 |
25 | public final class EventNotify<T>: ValueObserving {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 | private typealias Handler = (T, Any?) -> Void
27 |
:
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:47: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:31: warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| |- warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:44: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:51: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 | }
77 | }
[66/66] Compiling SpellbookFoundation ValueView.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:33: warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| |- warning: capture of 'action' with non-sendable type '(T, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:40: warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 | import Foundation
24 |
25 | public final class EventNotify<T>: ValueObserving {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
26 | private typealias Handler = (T, Any?) -> Void
27 |
:
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'value' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/EventNotify.swift:76:47: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 | private func notifyOne(_ value: T, _ context: Any?, action: @escaping (T, Any?) -> Void) {
75 | if let notifyQueue = notifyQueue {
76 | notifyQueue.async { action(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
77 | } else {
78 | action(value, context)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:31: warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| |- warning: capture of 'receiveValue' with non-sendable type '(Self.Value, Any?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:44: warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'value' with non-sendable type 'Self.Value' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 | }
77 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookFoundation/ValueObserving/ValueObserving.swift:75:51: warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
73 | AnyValueObserving { suppressInitialNotify, receiveValue in
74 | self.subscribe(suppressInitialNotify: suppressInitialNotify) { value, context in
75 | queue.async { receiveValue(value, context) }
| `- warning: capture of 'context' with non-sendable type 'Any?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
76 | }
77 | }
[67/80] Compiling SpellbookHTTP HTTPResult.swift
[68/80] Compiling SpellbookBinaryParsing BinaryWriterOutput.swift
[69/80] Compiling SpellbookBinaryParsing BinaryReaderInput.swift
[70/80] Compiling SpellbookBinaryParsing BinaryWriter.swift
[71/80] Compiling SpellbookBinaryParsing BinaryReader.swift
[72/80] Emitting module SpellbookBinaryParsing
[73/80] Compiling SpellbookBinaryParsing BinaryParsingError.swift
[74/80] Emitting module SpellbookHTTP
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPRequest.swift:55:23: warning: static property 'get' is not concurrency-safe because non-'Sendable' type 'HTTPRequest.Method' may have shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | extension HTTPRequest {
48 | public struct Method: RawRepresentable, Hashable {
| `- note: consider making struct 'Method' conform to the 'Sendable' protocol
49 | public var rawValue: String
50 | public init(rawValue: String) { self.rawValue = rawValue }
:
53 |
54 | extension HTTPRequest.Method {
55 | public static let get = Self(rawValue: "GET")
| |- warning: static property 'get' is not concurrency-safe because non-'Sendable' type 'HTTPRequest.Method' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'get' 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
56 | public static let post = Self(rawValue: "POST")
57 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPRequest.swift:56:23: warning: static property 'post' is not concurrency-safe because non-'Sendable' type 'HTTPRequest.Method' may have shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | extension HTTPRequest {
48 | public struct Method: RawRepresentable, Hashable {
| `- note: consider making struct 'Method' conform to the 'Sendable' protocol
49 | public var rawValue: String
50 | public init(rawValue: String) { self.rawValue = rawValue }
:
54 | extension HTTPRequest.Method {
55 | public static let get = Self(rawValue: "GET")
56 | public static let post = Self(rawValue: "POST")
| |- warning: static property 'post' is not concurrency-safe because non-'Sendable' type 'HTTPRequest.Method' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'post' 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
57 | }
58 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPRequest.swift:75:23: warning: static property 'userAgent' is not concurrency-safe because non-'Sendable' type 'HTTPRequest.Header' may have shared mutable state; this is an error in the Swift 6 language mode
66 |
67 | extension HTTPRequest {
68 | public struct Header: RawRepresentable, Hashable {
| `- note: consider making struct 'Header' conform to the 'Sendable' protocol
69 | public var rawValue: String
70 | public init(rawValue: String) { self.rawValue = rawValue }
:
73 |
74 | extension HTTPRequest.Header {
75 | public static let userAgent = Self(rawValue: "user-agent")
| |- warning: static property 'userAgent' is not concurrency-safe because non-'Sendable' type 'HTTPRequest.Header' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'userAgent' 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 | }
77 |
[75/80] Compiling SpellbookHTTP HTTPClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPClient.swift:51:17: warning: capture of 'completion' with non-sendable type '(Result<HTTPResult<Data>, any Error>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
49 | session.dataTask(with: urlRequest) { data, response, error in
50 | if let error {
51 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<HTTPResult<Data>, any Error>) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
52 | return
53 | }
[76/80] Compiling SpellbookHTTP HTTPRequest.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPRequest.swift:55:23: warning: static property 'get' is not concurrency-safe because non-'Sendable' type 'HTTPRequest.Method' may have shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | extension HTTPRequest {
48 | public struct Method: RawRepresentable, Hashable {
| `- note: consider making struct 'Method' conform to the 'Sendable' protocol
49 | public var rawValue: String
50 | public init(rawValue: String) { self.rawValue = rawValue }
:
53 |
54 | extension HTTPRequest.Method {
55 | public static let get = Self(rawValue: "GET")
| |- warning: static property 'get' is not concurrency-safe because non-'Sendable' type 'HTTPRequest.Method' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'get' 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
56 | public static let post = Self(rawValue: "POST")
57 | }
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPRequest.swift:56:23: warning: static property 'post' is not concurrency-safe because non-'Sendable' type 'HTTPRequest.Method' may have shared mutable state; this is an error in the Swift 6 language mode
46 |
47 | extension HTTPRequest {
48 | public struct Method: RawRepresentable, Hashable {
| `- note: consider making struct 'Method' conform to the 'Sendable' protocol
49 | public var rawValue: String
50 | public init(rawValue: String) { self.rawValue = rawValue }
:
54 | extension HTTPRequest.Method {
55 | public static let get = Self(rawValue: "GET")
56 | public static let post = Self(rawValue: "POST")
| |- warning: static property 'post' is not concurrency-safe because non-'Sendable' type 'HTTPRequest.Method' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'post' 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
57 | }
58 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookHTTP/HTTPRequest.swift:75:23: warning: static property 'userAgent' is not concurrency-safe because non-'Sendable' type 'HTTPRequest.Header' may have shared mutable state; this is an error in the Swift 6 language mode
66 |
67 | extension HTTPRequest {
68 | public struct Header: RawRepresentable, Hashable {
| `- note: consider making struct 'Header' conform to the 'Sendable' protocol
69 | public var rawValue: String
70 | public init(rawValue: String) { self.rawValue = rawValue }
:
73 |
74 | extension HTTPRequest.Header {
75 | public static let userAgent = Self(rawValue: "user-agent")
| |- warning: static property 'userAgent' is not concurrency-safe because non-'Sendable' type 'HTTPRequest.Header' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: annotate 'userAgent' 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 | }
77 |
[77/80] Compiling SpellbookTestUtils Extensions - XCTestCase.swift
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:37:23: warning: static property 'waitRate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
35 | public static var waitRate = 100.0
36 | #else
37 | public static var waitRate = 1.0
| |- warning: static property 'waitRate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'waitRate' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'waitRate' 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
38 | #endif
39 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:40:23: warning: static property 'waitTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
38 | #endif
39 |
40 | public static var waitTimeout: TimeInterval = 0.5
| |- warning: static property 'waitTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'waitTimeout' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'waitTimeout' 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 | public static var testBundle: Bundle {
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:58:9: warning: call to main actor-isolated instance method 'waitForExpectations(timeout:handler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
54 |
55 | @discardableResult
56 | public func waitForExpectations(timeout: TimeInterval = XCTestCase.waitTimeout, ignoreWaitRate: Bool) -> Error? {
| `- note: add '@MainActor' to make instance method 'waitForExpectations(timeout:ignoreWaitRate:)' part of global actor 'MainActor'
57 | var error: Error?
58 | waitForExpectations(timeout: timeout * Self.waitRate) {
| `- warning: call to main actor-isolated instance method 'waitForExpectations(timeout:handler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
59 | error = $0
60 | }
XCTest.XCTestCase:5:26: note: calls to instance method 'waitForExpectations(timeout:handler:)' from outside of its actor context are implicitly asynchronous
3 | @available(swift, obsoleted: 3, renamed: "expectation(description:)")
4 | open func expectationWithDescription(_ description: String) -> XCTestExpectation
5 | @MainActor open func waitForExpectations(timeout: TimeInterval, handler: (@Sendable ((any Error)?) -> Void)? = nil)
| `- note: calls to instance method 'waitForExpectations(timeout:handler:)' from outside of its actor context are implicitly asynchronous
6 | @available(swift, obsoleted: 3, renamed: "waitForExpectations(timeout:handler:)")
7 | @MainActor open func waitForExpectationsWithTimeout(_ timeout: TimeInterval, handler: (@Sendable ((any Error)?) -> Void)? = nil)
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:59:13: warning: mutation of captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode
57 | var error: Error?
58 | waitForExpectations(timeout: timeout * Self.waitRate) {
59 | error = $0
| `- warning: mutation of captured var 'error' in concurrently-executing code; this is an error in the Swift 6 language mode
60 | }
61 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:58:9: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
56 | public func waitForExpectations(timeout: TimeInterval = XCTestCase.waitTimeout, ignoreWaitRate: Bool) -> Error? {
57 | var error: Error?
58 | waitForExpectations(timeout: timeout * Self.waitRate) {
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated 'self' to main actor-isolated instance method 'waitForExpectations(timeout:handler:)' risks causing data races between main actor-isolated and task-isolated uses
59 | error = $0
60 | }
[78/80] Emitting module SpellbookTestUtils
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:37:23: warning: static property 'waitRate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
35 | public static var waitRate = 100.0
36 | #else
37 | public static var waitRate = 1.0
| |- warning: static property 'waitRate' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'waitRate' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'waitRate' 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
38 | #endif
39 |
/Users/admin/builder/spi-builder-workspace/Sources/SpellbookTestUtils/Extensions - XCTestCase.swift:40:23: warning: static property 'waitTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
38 | #endif
39 |
40 | public static var waitTimeout: TimeInterval = 0.5
| |- warning: static property 'waitTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'waitTimeout' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: annotate 'waitTimeout' 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 | public static var testBundle: Bundle {
[79/80] Compiling SpellbookTestUtils Testing.swift
[80/80] Compiling SpellbookTestUtils TestError.swift
Build complete! (26.66s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "SwiftSpellbook",
"name" : "SwiftSpellbook",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
},
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "tvos",
"version" : "13.0"
},
{
"name" : "watchos",
"version" : "6.0"
}
],
"products" : [
{
"name" : "SpellbookFoundation",
"targets" : [
"SpellbookFoundation"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SpellbookHTTP",
"targets" : [
"SpellbookHTTP"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SpellbookBinaryParsing",
"targets" : [
"SpellbookBinaryParsing"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SpellbookTestUtils",
"targets" : [
"SpellbookTestUtils"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SpellbookTests",
"module_type" : "SwiftTarget",
"name" : "SpellbookTests",
"path" : "Tests/SpellbookTests",
"sources" : [
"BinaryParsing/BinaryParsingTests.swift",
"Common/BlockingQueueTests.swift",
"Common/CancellationTokenTests.swift",
"Common/ObjectBuilderTests.swift",
"Common/OtherCommonTests.swift",
"Common/SBLogTests.swift",
"Common/SBUnitTests.swift",
"Common/UtilsTests.swift",
"Common/WildcardExpressionTests.swift",
"DictionaryParsing/DictionaryParsingTests.swift",
"Errors/CommonErrorTests.swift",
"Errors/ErrorExtensionsTests.swift",
"Errors/NSErrorTests.swift",
"Extensions Tests/CodableTests.swift",
"Extensions Tests/CollectionsTests.swift",
"Extensions Tests/FileManagerTests.swift",
"Extensions Tests/StandardTypesTests.swift",
"Filesystem & Bundle/FileEnumeratorTests.swift",
"Filesystem & Bundle/FileStoreTests.swift",
"Filesystem & Bundle/TemporaryDirectoryTests.swift",
"GUITests/GUITests.swift",
"LowLevel/AuditTokenTests.swift",
"LowLevel/MachTests.swift",
"LowLevel/UnsafeTests.swift",
"Observing/EventAskTests.swift",
"Observing/EventNotifyTests.swift",
"Observing/ObservableTests.swift",
"Observing/ValueObservingTests.swift",
"Observing/ValueStoreTests.swift",
"Other/ObjCTests.swift",
"Threading & Concurrency/ConcurrentBlockOperationTests.swift",
"Threading & Concurrency/DispatchQueueExtensionsTests.swift",
"Threading & Concurrency/SynchronousExecutorTests.swift",
"Types & PropertyWrappers/PropertyWrapperTests.swift",
"Types & PropertyWrappers/RefreshableTests.swift",
"Types & PropertyWrappers/ResourceTests.swift",
"Types & PropertyWrappers/TypesTests.swift"
],
"target_dependencies" : [
"SpellbookFoundation",
"SpellbookBinaryParsing",
"SpellbookTestUtils"
],
"type" : "test"
},
{
"c99name" : "SpellbookTestUtilsTests",
"module_type" : "SwiftTarget",
"name" : "SpellbookTestUtilsTests",
"path" : "Tests/SpellbookTestUtilsTests",
"sources" : [
"TestingTests.swift"
],
"target_dependencies" : [
"SpellbookFoundation",
"SpellbookTestUtils"
],
"type" : "test"
},
{
"c99name" : "SpellbookTestUtils",
"module_type" : "SwiftTarget",
"name" : "SpellbookTestUtils",
"path" : "Sources/SpellbookTestUtils",
"product_memberships" : [
"SpellbookTestUtils"
],
"sources" : [
"Extensions - XCTestCase.swift",
"TestError.swift",
"Testing.swift"
],
"target_dependencies" : [
"SpellbookFoundation"
],
"type" : "library"
},
{
"c99name" : "SpellbookHTTP",
"module_type" : "SwiftTarget",
"name" : "SpellbookHTTP",
"path" : "Sources/SpellbookHTTP",
"product_memberships" : [
"SpellbookHTTP"
],
"sources" : [
"HTTPClient.swift",
"HTTPRequest.swift",
"HTTPResult.swift"
],
"target_dependencies" : [
"SpellbookFoundation"
],
"type" : "library"
},
{
"c99name" : "SpellbookFoundationObjC",
"module_type" : "ClangTarget",
"name" : "SpellbookFoundationObjC",
"path" : "Sources/SpellbookFoundationObjC",
"product_memberships" : [
"SpellbookFoundation",
"SpellbookHTTP",
"SpellbookBinaryParsing",
"SpellbookTestUtils"
],
"sources" : [
"SpellbookObjC.mm"
],
"type" : "library"
},
{
"c99name" : "SpellbookFoundation",
"module_type" : "SwiftTarget",
"name" : "SpellbookFoundation",
"path" : "Sources/SpellbookFoundation",
"product_memberships" : [
"SpellbookFoundation",
"SpellbookHTTP",
"SpellbookBinaryParsing",
"SpellbookTestUtils"
],
"sources" : [
"Combine/Extensions - Combine.swift",
"Combine/Proxies - Combine.swift",
"Common/Benchmark.swift",
"Common/CancellationToken.swift",
"Common/Environment.swift",
"Common/Exceptions.swift",
"Common/Extensions - Codable.swift",
"Common/Extensions - Collections.swift",
"Common/Extensions - Comparable.swift",
"Common/Extensions - Formatters.swift",
"Common/Extensions - StandardTypes.swift",
"Common/SBUnit.swift",
"Common/SpellbookLog.swift",
"Common/Utils.swift",
"Common/ValueBuilder.swift",
"Common/WildcardExpression.swift",
"DictionaryParsing/DictionaryCodingKey.swift",
"DictionaryParsing/DictionaryReader.swift",
"DictionaryParsing/DictionaryWriter.swift",
"Errors/CommonError.swift",
"Errors/CustomErrorUpdating.swift",
"Errors/Extensions - Error.swift",
"Errors/Extensions - NSError.swift",
"Errors/IOKitError.swift",
"Filesystem & Bundle/Extensions - Bundle.swift",
"Filesystem & Bundle/Extensions - FileManager.swift",
"Filesystem & Bundle/FileEnumerator.swift",
"Filesystem & Bundle/FileStore.swift",
"Filesystem & Bundle/TemporaryDirectory.swift",
"GUI/Extensions - CoreGraphics.swift",
"Internal.swift",
"Low Level/AuditToken.swift",
"Low Level/BridgedCEnum.swift",
"Low Level/MachTime.swift",
"Low Level/POD+Swift.swift",
"Low Level/Unsafe.swift",
"System & Hardware/DeviceInfo.swift",
"System & Hardware/Extensions - ProcessInfo.swift",
"Threading & Concurrency/Atomic.swift",
"Threading & Concurrency/BlockingQueue.swift",
"Threading & Concurrency/ConcurrentBlockOperation.swift",
"Threading & Concurrency/Extensions - DispatchQueue.swift",
"Threading & Concurrency/Extensions - Locks.swift",
"Threading & Concurrency/Extensions - Task.swift",
"Threading & Concurrency/PosixLocks.swift",
"Threading & Concurrency/Synchronized.swift",
"Threading & Concurrency/SynchronizedObjC.swift",
"Threading & Concurrency/SynchronousExecutor.swift",
"Types & PropertyWrappers/Boxing.swift",
"Types & PropertyWrappers/Closure.swift",
"Types & PropertyWrappers/Refreshable.swift",
"Types & PropertyWrappers/Resource (RAII).swift",
"Types & PropertyWrappers/Types.swift",
"ValueObserving/EventAsk.swift",
"ValueObserving/EventNotify.swift",
"ValueObserving/ValueObservable.swift",
"ValueObserving/ValueObserving.swift",
"ValueObserving/ValueStore.swift",
"ValueObserving/ValueView.swift"
],
"target_dependencies" : [
"SpellbookFoundationObjC"
],
"type" : "library"
},
{
"c99name" : "SpellbookBinaryParsing",
"module_type" : "SwiftTarget",
"name" : "SpellbookBinaryParsing",
"path" : "Sources/SpellbookBinaryParsing",
"product_memberships" : [
"SpellbookBinaryParsing"
],
"sources" : [
"BinaryParsingError.swift",
"BinaryReader.swift",
"BinaryReaderInput.swift",
"BinaryWriter.swift",
"BinaryWriterOutput.swift"
],
"target_dependencies" : [
"SpellbookFoundation"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.