Build Information
Successful build of ThinPath, reference main (e35dc2), with Swift 6.1 for macOS (SPM) on 5 Oct 2026 06:24:04 UTC.
Swift 6 data race errors: 9
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCapturesBuild Log
========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/sohandotgit/ThinPath.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/sohandotgit/ThinPath
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at e35dc25 Re-structure files
Cloned https://github.com/sohandotgit/ThinPath.git
Revision (git rev-parse @):
e35dc25df17b2a4a0f2dc59c17f8b15a44969211
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/sohandotgit/ThinPath.git at main
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/sohandotgit/ThinPath.git
https://github.com/sohandotgit/ThinPath.git
{
"dependencies" : [
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.5.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/swiftlang/swift-docc-plugin"
}
],
"manifest_display_name" : "ThinPath",
"name" : "ThinPath",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "macos",
"version" : "11.0"
},
{
"name" : "watchos",
"version" : "7.0"
}
],
"products" : [
{
"name" : "ThinPath",
"targets" : [
"ThinPath"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "ThinPathTests",
"module_type" : "SwiftTarget",
"name" : "ThinPathTests",
"path" : "Tests/ThinPathTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ThinPathTests/SampleSVGs",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"ArcGeometryTests.swift",
"BlendModeLayerTests.swift",
"CSSMemoryTests.swift",
"CSSSelectorTests.swift",
"ParsingTests.swift",
"PathDataTests.swift",
"PatternImageMemoryTests.swift",
"ReferenceResolverTests.swift",
"RenderTests.swift",
"SVGModelTests.swift",
"SnapshotSupport.swift",
"StyleResolverTests.swift",
"SwiftUIWrapperTests.swift",
"TransformsTests.swift"
],
"target_dependencies" : [
"ThinPath"
],
"type" : "test"
},
{
"c99name" : "ThinPath",
"module_type" : "SwiftTarget",
"name" : "ThinPath",
"path" : "Sources/ThinPath",
"product_memberships" : [
"ThinPath"
],
"sources" : [
"APISurface.swift",
"Effects/ClipRenderer.swift",
"Effects/MaskRenderer.swift",
"Images/ImageCache.swift",
"Images/ImageDecoder.swift",
"Images/ImageRenderer.swift",
"Model/SVGModel.swift",
"Model/Transforms.swift",
"Paint/GradientRenderer.swift",
"Paint/PaintServer.swift",
"Paint/PatternRenderer.swift",
"Parsing/PathDataParser.swift",
"Parsing/ReferenceResolver.swift",
"Parsing/SVGParser.swift",
"Parsing/StyleResolver.swift",
"Rendering/PathBuilder.swift",
"Rendering/RenderContext.swift",
"Rendering/ShapeRenderer.swift",
"Rendering/TextRenderer.swift",
"Rendering/UseSymbolRenderer.swift",
"SwiftUI/SwiftUIWrapper.swift",
"ThinPath.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/4] Write sources
[3/4] Write swift-version-2F0A5646E1D333AE.txt
[5/25] Emitting module ThinPath
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Images/ImageDecoder.swift:110:24: warning: static property 'sourceOptions' is not concurrency-safe because non-'Sendable' type 'CFDictionary' may have shared mutable state; this is an error in the Swift 6 language mode
108 | /// caching in `ImageCache`; letting ImageIO cache too would double the
109 | /// resident cost of every image invisibly.
110 | private static let sourceOptions =
| `- warning: static property 'sourceOptions' is not concurrency-safe because non-'Sendable' type 'CFDictionary' may have shared mutable state; this is an error in the Swift 6 language mode
111 | [kCGImageSourceShouldCache: false] as CFDictionary
112 |
CoreFoundation.CFDictionary:1:14: note: class 'CFDictionary' does not conform to the 'Sendable' protocol
1 | public class CFDictionary : _CFObject {
| `- note: class 'CFDictionary' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Images/ImageDecoder.swift:26:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
24 | //
25 |
26 | import CoreGraphics
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
27 | import Foundation
28 | import ImageIO
:
108 | /// caching in `ImageCache`; letting ImageIO cache too would double the
109 | /// resident cost of every image invisibly.
110 | private static let sourceOptions =
| |- note: add '@MainActor' to make static property 'sourceOptions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
111 | [kCGImageSourceShouldCache: false] as CFDictionary
112 |
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:172:23: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ArenaRange' may have shared mutable state; this is an error in the Swift 6 language mode
163 | /// A (start, count) window into a side arena. Stored instead of an owned array
164 | /// so payload-bearing nodes remain fixed-size value types.
165 | public struct ArenaRange: Equatable {
| `- note: consider making struct 'ArenaRange' conform to the 'Sendable' protocol
166 | public var start: Int32
167 | public var count: Int32
:
170 | self.count = count
171 | }
172 | public static let empty = ArenaRange(start: 0, count: 0)
| |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ArenaRange' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
173 | public var isEmpty: Bool { count == 0 }
174 | public var range: Range<Int> { Int(start) ..< Int(start + count) }
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:377:23: warning: static property 'unresolved' is not concurrency-safe because non-'Sendable' type 'PaintServer' may have shared mutable state; this is an error in the Swift 6 language mode
365 | /// A reference to a paint-server element, stored by id and (if known) index.
366 | /// Never embeds the server node itself (invariant: paint servers are shared).
367 | public struct PaintServer: Equatable {
| `- note: consider making struct 'PaintServer' conform to the 'Sendable' protocol
368 | /// Interned id of the referenced `<linearGradient>`/`<radialGradient>`/`<pattern>`.
369 | public var id: StringRef
:
375 | }
376 | /// The reference could not be resolved to any element.
377 | public static let unresolved = PaintServer(id: .none, node: .none)
| |- warning: static property 'unresolved' is not concurrency-safe because non-'Sendable' type 'PaintServer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'unresolved' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
378 | }
379 |
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:394:23: warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'RGBA' may have shared mutable state; this is an error in the Swift 6 language mode
387 | /// `CGFloat`s. Wide-gamut / ICC color is a later concern (PROFILE-CHECK in
388 | /// MemoryModel.md).
389 | public struct RGBA: Equatable, Hashable {
| `- note: consider making struct 'RGBA' conform to the 'Sendable' protocol
390 | public var r: UInt8, g: UInt8, b: UInt8, a: UInt8
391 | public init(r: UInt8, g: UInt8, b: UInt8, a: UInt8 = 255) {
392 | self.r = r; self.g = g; self.b = b; self.a = a
393 | }
394 | public static let black = RGBA(r: 0, g: 0, b: 0)
| |- warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'RGBA' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'black' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
395 | public static let transparent = RGBA(r: 0, g: 0, b: 0, a: 0)
396 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:395:23: warning: static property 'transparent' is not concurrency-safe because non-'Sendable' type 'RGBA' may have shared mutable state; this is an error in the Swift 6 language mode
387 | /// `CGFloat`s. Wide-gamut / ICC color is a later concern (PROFILE-CHECK in
388 | /// MemoryModel.md).
389 | public struct RGBA: Equatable, Hashable {
| `- note: consider making struct 'RGBA' conform to the 'Sendable' protocol
390 | public var r: UInt8, g: UInt8, b: UInt8, a: UInt8
391 | public init(r: UInt8, g: UInt8, b: UInt8, a: UInt8 = 255) {
:
393 | }
394 | public static let black = RGBA(r: 0, g: 0, b: 0)
395 | public static let transparent = RGBA(r: 0, g: 0, b: 0, a: 0)
| |- warning: static property 'transparent' is not concurrency-safe because non-'Sendable' type 'RGBA' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'transparent' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
396 | }
397 |
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:565:23: warning: static property 'normal' is not concurrency-safe because non-'Sendable' type 'FontWeight' may have shared mutable state; this is an error in the Swift 6 language mode
560 | public enum Isolation { case auto, isolate }
561 |
562 | public struct FontWeight: Equatable {
| `- note: consider making struct 'FontWeight' conform to the 'Sendable' protocol
563 | public var value: Int // 100...900; normal=400, bold=700
564 | public init(_ value: Int) { self.value = value }
565 | public static let normal = FontWeight(400)
| |- warning: static property 'normal' is not concurrency-safe because non-'Sendable' type 'FontWeight' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'normal' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
566 | public static let bold = FontWeight(700)
567 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:566:23: warning: static property 'bold' is not concurrency-safe because non-'Sendable' type 'FontWeight' may have shared mutable state; this is an error in the Swift 6 language mode
560 | public enum Isolation { case auto, isolate }
561 |
562 | public struct FontWeight: Equatable {
| `- note: consider making struct 'FontWeight' conform to the 'Sendable' protocol
563 | public var value: Int // 100...900; normal=400, bold=700
564 | public init(_ value: Int) { self.value = value }
565 | public static let normal = FontWeight(400)
566 | public static let bold = FontWeight(700)
| |- warning: static property 'bold' is not concurrency-safe because non-'Sendable' type 'FontWeight' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'bold' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
567 | }
568 |
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/Transforms.swift:42:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PreserveAspectRatio' may have shared mutable state; this is an error in the Swift 6 language mode
20 |
21 | /// `preserveAspectRatio="[defer] <align> [<meetOrSlice>]"`.
22 | public struct PreserveAspectRatio: Equatable {
| `- note: consider making struct 'PreserveAspectRatio' conform to the 'Sendable' protocol
23 | public enum Align: Equatable {
24 | case none // "none" — non-uniform scale, fill the viewport
:
40 |
41 | /// The SVG default: `xMidYMid meet`.
42 | public static let `default` = PreserveAspectRatio()
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PreserveAspectRatio' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 | }
44 |
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Parsing/StyleResolver.swift:84:23: warning: static property 'initial' is not concurrency-safe because non-'Sendable' type 'ComputedStyle' may have shared mutable state; this is an error in the Swift 6 language mode
40 | /// Collapsing these loses correct results whenever fill and stroke overlap, so
41 | /// they are kept distinct here and combined only at paint time.
42 | public struct ComputedStyle: Equatable {
| `- note: consider making struct 'ComputedStyle' conform to the 'Sendable' protocol
43 | // Paint
44 | public var fill: Paint
:
82 | /// are the values an element gets when a property is neither specified nor
83 | /// inherited.
84 | public static let initial = ComputedStyle(
| |- warning: static property 'initial' is not concurrency-safe because non-'Sendable' type 'ComputedStyle' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'initial' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
85 | fill: .color(.black), // initial fill is black
86 | stroke: .none, // initial stroke is none
[6/27] Compiling ThinPath APISurface.swift
[7/27] Compiling ThinPath ClipRenderer.swift
[8/27] Compiling ThinPath MaskRenderer.swift
[9/27] Compiling ThinPath StyleResolver.swift
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Parsing/StyleResolver.swift:84:23: warning: static property 'initial' is not concurrency-safe because non-'Sendable' type 'ComputedStyle' may have shared mutable state; this is an error in the Swift 6 language mode
40 | /// Collapsing these loses correct results whenever fill and stroke overlap, so
41 | /// they are kept distinct here and combined only at paint time.
42 | public struct ComputedStyle: Equatable {
| `- note: consider making struct 'ComputedStyle' conform to the 'Sendable' protocol
43 | // Paint
44 | public var fill: Paint
:
82 | /// are the values an element gets when a property is neither specified nor
83 | /// inherited.
84 | public static let initial = ComputedStyle(
| |- warning: static property 'initial' is not concurrency-safe because non-'Sendable' type 'ComputedStyle' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'initial' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
85 | fill: .color(.black), // initial fill is black
86 | stroke: .none, // initial stroke is none
[10/27] Compiling ThinPath PathBuilder.swift
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Parsing/StyleResolver.swift:84:23: warning: static property 'initial' is not concurrency-safe because non-'Sendable' type 'ComputedStyle' may have shared mutable state; this is an error in the Swift 6 language mode
40 | /// Collapsing these loses correct results whenever fill and stroke overlap, so
41 | /// they are kept distinct here and combined only at paint time.
42 | public struct ComputedStyle: Equatable {
| `- note: consider making struct 'ComputedStyle' conform to the 'Sendable' protocol
43 | // Paint
44 | public var fill: Paint
:
82 | /// are the values an element gets when a property is neither specified nor
83 | /// inherited.
84 | public static let initial = ComputedStyle(
| |- warning: static property 'initial' is not concurrency-safe because non-'Sendable' type 'ComputedStyle' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'initial' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
85 | fill: .color(.black), // initial fill is black
86 | stroke: .none, // initial stroke is none
[11/27] Compiling ThinPath PatternRenderer.swift
[12/27] Compiling ThinPath PathDataParser.swift
[13/27] Compiling ThinPath SVGModel.swift
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:172:23: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ArenaRange' may have shared mutable state; this is an error in the Swift 6 language mode
163 | /// A (start, count) window into a side arena. Stored instead of an owned array
164 | /// so payload-bearing nodes remain fixed-size value types.
165 | public struct ArenaRange: Equatable {
| `- note: consider making struct 'ArenaRange' conform to the 'Sendable' protocol
166 | public var start: Int32
167 | public var count: Int32
:
170 | self.count = count
171 | }
172 | public static let empty = ArenaRange(start: 0, count: 0)
| |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ArenaRange' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
173 | public var isEmpty: Bool { count == 0 }
174 | public var range: Range<Int> { Int(start) ..< Int(start + count) }
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:377:23: warning: static property 'unresolved' is not concurrency-safe because non-'Sendable' type 'PaintServer' may have shared mutable state; this is an error in the Swift 6 language mode
365 | /// A reference to a paint-server element, stored by id and (if known) index.
366 | /// Never embeds the server node itself (invariant: paint servers are shared).
367 | public struct PaintServer: Equatable {
| `- note: consider making struct 'PaintServer' conform to the 'Sendable' protocol
368 | /// Interned id of the referenced `<linearGradient>`/`<radialGradient>`/`<pattern>`.
369 | public var id: StringRef
:
375 | }
376 | /// The reference could not be resolved to any element.
377 | public static let unresolved = PaintServer(id: .none, node: .none)
| |- warning: static property 'unresolved' is not concurrency-safe because non-'Sendable' type 'PaintServer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'unresolved' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
378 | }
379 |
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:394:23: warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'RGBA' may have shared mutable state; this is an error in the Swift 6 language mode
387 | /// `CGFloat`s. Wide-gamut / ICC color is a later concern (PROFILE-CHECK in
388 | /// MemoryModel.md).
389 | public struct RGBA: Equatable, Hashable {
| `- note: consider making struct 'RGBA' conform to the 'Sendable' protocol
390 | public var r: UInt8, g: UInt8, b: UInt8, a: UInt8
391 | public init(r: UInt8, g: UInt8, b: UInt8, a: UInt8 = 255) {
392 | self.r = r; self.g = g; self.b = b; self.a = a
393 | }
394 | public static let black = RGBA(r: 0, g: 0, b: 0)
| |- warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'RGBA' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'black' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
395 | public static let transparent = RGBA(r: 0, g: 0, b: 0, a: 0)
396 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:395:23: warning: static property 'transparent' is not concurrency-safe because non-'Sendable' type 'RGBA' may have shared mutable state; this is an error in the Swift 6 language mode
387 | /// `CGFloat`s. Wide-gamut / ICC color is a later concern (PROFILE-CHECK in
388 | /// MemoryModel.md).
389 | public struct RGBA: Equatable, Hashable {
| `- note: consider making struct 'RGBA' conform to the 'Sendable' protocol
390 | public var r: UInt8, g: UInt8, b: UInt8, a: UInt8
391 | public init(r: UInt8, g: UInt8, b: UInt8, a: UInt8 = 255) {
:
393 | }
394 | public static let black = RGBA(r: 0, g: 0, b: 0)
395 | public static let transparent = RGBA(r: 0, g: 0, b: 0, a: 0)
| |- warning: static property 'transparent' is not concurrency-safe because non-'Sendable' type 'RGBA' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'transparent' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
396 | }
397 |
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:565:23: warning: static property 'normal' is not concurrency-safe because non-'Sendable' type 'FontWeight' may have shared mutable state; this is an error in the Swift 6 language mode
560 | public enum Isolation { case auto, isolate }
561 |
562 | public struct FontWeight: Equatable {
| `- note: consider making struct 'FontWeight' conform to the 'Sendable' protocol
563 | public var value: Int // 100...900; normal=400, bold=700
564 | public init(_ value: Int) { self.value = value }
565 | public static let normal = FontWeight(400)
| |- warning: static property 'normal' is not concurrency-safe because non-'Sendable' type 'FontWeight' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'normal' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
566 | public static let bold = FontWeight(700)
567 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:566:23: warning: static property 'bold' is not concurrency-safe because non-'Sendable' type 'FontWeight' may have shared mutable state; this is an error in the Swift 6 language mode
560 | public enum Isolation { case auto, isolate }
561 |
562 | public struct FontWeight: Equatable {
| `- note: consider making struct 'FontWeight' conform to the 'Sendable' protocol
563 | public var value: Int // 100...900; normal=400, bold=700
564 | public init(_ value: Int) { self.value = value }
565 | public static let normal = FontWeight(400)
566 | public static let bold = FontWeight(700)
| |- warning: static property 'bold' is not concurrency-safe because non-'Sendable' type 'FontWeight' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'bold' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
567 | }
568 |
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/Transforms.swift:42:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PreserveAspectRatio' may have shared mutable state; this is an error in the Swift 6 language mode
20 |
21 | /// `preserveAspectRatio="[defer] <align> [<meetOrSlice>]"`.
22 | public struct PreserveAspectRatio: Equatable {
| `- note: consider making struct 'PreserveAspectRatio' conform to the 'Sendable' protocol
23 | public enum Align: Equatable {
24 | case none // "none" — non-uniform scale, fill the viewport
:
40 |
41 | /// The SVG default: `xMidYMid meet`.
42 | public static let `default` = PreserveAspectRatio()
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PreserveAspectRatio' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 | }
44 |
[14/27] Compiling ThinPath Transforms.swift
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:172:23: warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ArenaRange' may have shared mutable state; this is an error in the Swift 6 language mode
163 | /// A (start, count) window into a side arena. Stored instead of an owned array
164 | /// so payload-bearing nodes remain fixed-size value types.
165 | public struct ArenaRange: Equatable {
| `- note: consider making struct 'ArenaRange' conform to the 'Sendable' protocol
166 | public var start: Int32
167 | public var count: Int32
:
170 | self.count = count
171 | }
172 | public static let empty = ArenaRange(start: 0, count: 0)
| |- warning: static property 'empty' is not concurrency-safe because non-'Sendable' type 'ArenaRange' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'empty' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
173 | public var isEmpty: Bool { count == 0 }
174 | public var range: Range<Int> { Int(start) ..< Int(start + count) }
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:377:23: warning: static property 'unresolved' is not concurrency-safe because non-'Sendable' type 'PaintServer' may have shared mutable state; this is an error in the Swift 6 language mode
365 | /// A reference to a paint-server element, stored by id and (if known) index.
366 | /// Never embeds the server node itself (invariant: paint servers are shared).
367 | public struct PaintServer: Equatable {
| `- note: consider making struct 'PaintServer' conform to the 'Sendable' protocol
368 | /// Interned id of the referenced `<linearGradient>`/`<radialGradient>`/`<pattern>`.
369 | public var id: StringRef
:
375 | }
376 | /// The reference could not be resolved to any element.
377 | public static let unresolved = PaintServer(id: .none, node: .none)
| |- warning: static property 'unresolved' is not concurrency-safe because non-'Sendable' type 'PaintServer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'unresolved' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
378 | }
379 |
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:394:23: warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'RGBA' may have shared mutable state; this is an error in the Swift 6 language mode
387 | /// `CGFloat`s. Wide-gamut / ICC color is a later concern (PROFILE-CHECK in
388 | /// MemoryModel.md).
389 | public struct RGBA: Equatable, Hashable {
| `- note: consider making struct 'RGBA' conform to the 'Sendable' protocol
390 | public var r: UInt8, g: UInt8, b: UInt8, a: UInt8
391 | public init(r: UInt8, g: UInt8, b: UInt8, a: UInt8 = 255) {
392 | self.r = r; self.g = g; self.b = b; self.a = a
393 | }
394 | public static let black = RGBA(r: 0, g: 0, b: 0)
| |- warning: static property 'black' is not concurrency-safe because non-'Sendable' type 'RGBA' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'black' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
395 | public static let transparent = RGBA(r: 0, g: 0, b: 0, a: 0)
396 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:395:23: warning: static property 'transparent' is not concurrency-safe because non-'Sendable' type 'RGBA' may have shared mutable state; this is an error in the Swift 6 language mode
387 | /// `CGFloat`s. Wide-gamut / ICC color is a later concern (PROFILE-CHECK in
388 | /// MemoryModel.md).
389 | public struct RGBA: Equatable, Hashable {
| `- note: consider making struct 'RGBA' conform to the 'Sendable' protocol
390 | public var r: UInt8, g: UInt8, b: UInt8, a: UInt8
391 | public init(r: UInt8, g: UInt8, b: UInt8, a: UInt8 = 255) {
:
393 | }
394 | public static let black = RGBA(r: 0, g: 0, b: 0)
395 | public static let transparent = RGBA(r: 0, g: 0, b: 0, a: 0)
| |- warning: static property 'transparent' is not concurrency-safe because non-'Sendable' type 'RGBA' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'transparent' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
396 | }
397 |
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:565:23: warning: static property 'normal' is not concurrency-safe because non-'Sendable' type 'FontWeight' may have shared mutable state; this is an error in the Swift 6 language mode
560 | public enum Isolation { case auto, isolate }
561 |
562 | public struct FontWeight: Equatable {
| `- note: consider making struct 'FontWeight' conform to the 'Sendable' protocol
563 | public var value: Int // 100...900; normal=400, bold=700
564 | public init(_ value: Int) { self.value = value }
565 | public static let normal = FontWeight(400)
| |- warning: static property 'normal' is not concurrency-safe because non-'Sendable' type 'FontWeight' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'normal' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
566 | public static let bold = FontWeight(700)
567 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:566:23: warning: static property 'bold' is not concurrency-safe because non-'Sendable' type 'FontWeight' may have shared mutable state; this is an error in the Swift 6 language mode
560 | public enum Isolation { case auto, isolate }
561 |
562 | public struct FontWeight: Equatable {
| `- note: consider making struct 'FontWeight' conform to the 'Sendable' protocol
563 | public var value: Int // 100...900; normal=400, bold=700
564 | public init(_ value: Int) { self.value = value }
565 | public static let normal = FontWeight(400)
566 | public static let bold = FontWeight(700)
| |- warning: static property 'bold' is not concurrency-safe because non-'Sendable' type 'FontWeight' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'bold' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
567 | }
568 |
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/Transforms.swift:42:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PreserveAspectRatio' may have shared mutable state; this is an error in the Swift 6 language mode
20 |
21 | /// `preserveAspectRatio="[defer] <align> [<meetOrSlice>]"`.
22 | public struct PreserveAspectRatio: Equatable {
| `- note: consider making struct 'PreserveAspectRatio' conform to the 'Sendable' protocol
23 | public enum Align: Equatable {
24 | case none // "none" — non-uniform scale, fill the viewport
:
40 |
41 | /// The SVG default: `xMidYMid meet`.
42 | public static let `default` = PreserveAspectRatio()
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'PreserveAspectRatio' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
43 | }
44 |
[15/27] Compiling ThinPath ImageCache.swift
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Images/ImageDecoder.swift:110:24: warning: static property 'sourceOptions' is not concurrency-safe because non-'Sendable' type 'CFDictionary' may have shared mutable state; this is an error in the Swift 6 language mode
108 | /// caching in `ImageCache`; letting ImageIO cache too would double the
109 | /// resident cost of every image invisibly.
110 | private static let sourceOptions =
| `- warning: static property 'sourceOptions' is not concurrency-safe because non-'Sendable' type 'CFDictionary' may have shared mutable state; this is an error in the Swift 6 language mode
111 | [kCGImageSourceShouldCache: false] as CFDictionary
112 |
CoreFoundation.CFDictionary:1:14: note: class 'CFDictionary' does not conform to the 'Sendable' protocol
1 | public class CFDictionary : _CFObject {
| `- note: class 'CFDictionary' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Images/ImageDecoder.swift:26:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
24 | //
25 |
26 | import CoreGraphics
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
27 | import Foundation
28 | import ImageIO
:
108 | /// caching in `ImageCache`; letting ImageIO cache too would double the
109 | /// resident cost of every image invisibly.
110 | private static let sourceOptions =
| |- note: add '@MainActor' to make static property 'sourceOptions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
111 | [kCGImageSourceShouldCache: false] as CFDictionary
112 |
[16/27] Compiling ThinPath ImageDecoder.swift
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Images/ImageDecoder.swift:110:24: warning: static property 'sourceOptions' is not concurrency-safe because non-'Sendable' type 'CFDictionary' may have shared mutable state; this is an error in the Swift 6 language mode
108 | /// caching in `ImageCache`; letting ImageIO cache too would double the
109 | /// resident cost of every image invisibly.
110 | private static let sourceOptions =
| `- warning: static property 'sourceOptions' is not concurrency-safe because non-'Sendable' type 'CFDictionary' may have shared mutable state; this is an error in the Swift 6 language mode
111 | [kCGImageSourceShouldCache: false] as CFDictionary
112 |
CoreFoundation.CFDictionary:1:14: note: class 'CFDictionary' does not conform to the 'Sendable' protocol
1 | public class CFDictionary : _CFObject {
| `- note: class 'CFDictionary' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Images/ImageDecoder.swift:26:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
24 | //
25 |
26 | import CoreGraphics
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
27 | import Foundation
28 | import ImageIO
:
108 | /// caching in `ImageCache`; letting ImageIO cache too would double the
109 | /// resident cost of every image invisibly.
110 | private static let sourceOptions =
| |- note: add '@MainActor' to make static property 'sourceOptions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
111 | [kCGImageSourceShouldCache: false] as CFDictionary
112 |
[17/27] Compiling ThinPath ImageRenderer.swift
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Images/ImageDecoder.swift:110:24: warning: static property 'sourceOptions' is not concurrency-safe because non-'Sendable' type 'CFDictionary' may have shared mutable state; this is an error in the Swift 6 language mode
108 | /// caching in `ImageCache`; letting ImageIO cache too would double the
109 | /// resident cost of every image invisibly.
110 | private static let sourceOptions =
| `- warning: static property 'sourceOptions' is not concurrency-safe because non-'Sendable' type 'CFDictionary' may have shared mutable state; this is an error in the Swift 6 language mode
111 | [kCGImageSourceShouldCache: false] as CFDictionary
112 |
CoreFoundation.CFDictionary:1:14: note: class 'CFDictionary' does not conform to the 'Sendable' protocol
1 | public class CFDictionary : _CFObject {
| `- note: class 'CFDictionary' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Images/ImageDecoder.swift:26:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
24 | //
25 |
26 | import CoreGraphics
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
27 | import Foundation
28 | import ImageIO
:
108 | /// caching in `ImageCache`; letting ImageIO cache too would double the
109 | /// resident cost of every image invisibly.
110 | private static let sourceOptions =
| |- note: add '@MainActor' to make static property 'sourceOptions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
111 | [kCGImageSourceShouldCache: false] as CFDictionary
112 |
[18/27] Compiling ThinPath GradientRenderer.swift
[19/27] Compiling ThinPath PaintServer.swift
[20/27] Compiling ThinPath TextRenderer.swift
[21/27] Compiling ThinPath UseSymbolRenderer.swift
[22/27] Compiling ThinPath ReferenceResolver.swift
[23/27] Compiling ThinPath SVGParser.swift
[24/27] Compiling ThinPath RenderContext.swift
[25/27] Compiling ThinPath ShapeRenderer.swift
[26/27] Compiling ThinPath SwiftUIWrapper.swift
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/SwiftUI/SwiftUIWrapper.swift:207:21: warning: capture of 'document' with non-sendable type 'SVGDocument' in a '@Sendable' closure
205 | ThinPathRasterizer.queue.async {
206 | continuation.resume(returning: ThinPathRasterizer.raster(
207 | document, size: size, scale: scale,
| `- warning: capture of 'document' with non-sendable type 'SVGDocument' in a '@Sendable' closure
208 | preserveAspectRatio: document.rootPreserveAspectRatio))
209 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:83:15: note: consider making struct 'SVGDocument' conform to the 'Sendable' protocol
81 | /// per the SVG rule that a document has at most one element per id (last-wins
82 | /// is a parser policy, documented there).
83 | public struct SVGDocument {
| `- note: consider making struct 'SVGDocument' conform to the 'Sendable' protocol
84 |
85 | /// The flat node arena. Index 0 is not special; `root` names the tree root.
[27/27] Compiling ThinPath ThinPath.swift
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/SwiftUI/SwiftUIWrapper.swift:207:21: warning: capture of 'document' with non-sendable type 'SVGDocument' in a '@Sendable' closure
205 | ThinPathRasterizer.queue.async {
206 | continuation.resume(returning: ThinPathRasterizer.raster(
207 | document, size: size, scale: scale,
| `- warning: capture of 'document' with non-sendable type 'SVGDocument' in a '@Sendable' closure
208 | preserveAspectRatio: document.rootPreserveAspectRatio))
209 | }
/Users/admin/builder/spi-builder-workspace/Sources/ThinPath/Model/SVGModel.swift:83:15: note: consider making struct 'SVGDocument' conform to the 'Sendable' protocol
81 | /// per the SVG rule that a document has at most one element per id (last-wins
82 | /// is a parser policy, documented there).
83 | public struct SVGDocument {
| `- note: consider making struct 'SVGDocument' conform to the 'Sendable' protocol
84 |
85 | /// The flat node arena. Index 0 is not special; `root` names the tree root.
Build complete! (25.95s)
Fetching https://github.com/swiftlang/swift-docc-plugin from cache
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.81s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (4.26s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.01s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.70s)
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.5.0
Build complete.
{
"dependencies" : [
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.5.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/swiftlang/swift-docc-plugin"
}
],
"manifest_display_name" : "ThinPath",
"name" : "ThinPath",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "macos",
"version" : "11.0"
},
{
"name" : "watchos",
"version" : "7.0"
}
],
"products" : [
{
"name" : "ThinPath",
"targets" : [
"ThinPath"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "ThinPathTests",
"module_type" : "SwiftTarget",
"name" : "ThinPathTests",
"path" : "Tests/ThinPathTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/ThinPathTests/SampleSVGs",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"ArcGeometryTests.swift",
"BlendModeLayerTests.swift",
"CSSMemoryTests.swift",
"CSSSelectorTests.swift",
"ParsingTests.swift",
"PathDataTests.swift",
"PatternImageMemoryTests.swift",
"ReferenceResolverTests.swift",
"RenderTests.swift",
"SVGModelTests.swift",
"SnapshotSupport.swift",
"StyleResolverTests.swift",
"SwiftUIWrapperTests.swift",
"TransformsTests.swift"
],
"target_dependencies" : [
"ThinPath"
],
"type" : "test"
},
{
"c99name" : "ThinPath",
"module_type" : "SwiftTarget",
"name" : "ThinPath",
"path" : "Sources/ThinPath",
"product_memberships" : [
"ThinPath"
],
"sources" : [
"APISurface.swift",
"Effects/ClipRenderer.swift",
"Effects/MaskRenderer.swift",
"Images/ImageCache.swift",
"Images/ImageDecoder.swift",
"Images/ImageRenderer.swift",
"Model/SVGModel.swift",
"Model/Transforms.swift",
"Paint/GradientRenderer.swift",
"Paint/PaintServer.swift",
"Paint/PatternRenderer.swift",
"Parsing/PathDataParser.swift",
"Parsing/ReferenceResolver.swift",
"Parsing/SVGParser.swift",
"Parsing/StyleResolver.swift",
"Rendering/PathBuilder.swift",
"Rendering/RenderContext.swift",
"Rendering/ShapeRenderer.swift",
"Rendering/TextRenderer.swift",
"Rendering/UseSymbolRenderer.swift",
"SwiftUI/SwiftUIWrapper.swift",
"ThinPath.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.