Build Information
Successful build of GeoProjector, reference main (41587f
), with Swift 6.1 for macOS (SPM) on 28 Apr 2025 02:19:59 UTC.
Swift 6 data race errors: 3
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 InferSendableFromCaptures
Build Log
========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/maparoni/GeoProjector.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/maparoni/GeoProjector
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 41587f7 Fix regression in GHA by building for iOS simulator instead
Cloned https://github.com/maparoni/GeoProjector.git
Revision (git rev-parse @):
41587f7cd1b00b0a8930495ab8eb9bce28073c1a
SUCCESS checkout https://github.com/maparoni/GeoProjector.git at main
Fetching https://github.com/maparoni/geojsonkit-turf
Fetching https://github.com/maparoni/geojsonkit.git
Fetching https://github.com/apple/swift-numerics.git from cache
Fetching https://github.com/apple/swift-algorithms.git from cache
Fetching https://github.com/apple/swift-argument-parser from cache
[1/3084] Fetching geojsonkit-turf
[2/3446] Fetching geojsonkit-turf, geojsonkit
Fetched https://github.com/maparoni/geojsonkit.git from cache (1.20s)
Fetched https://github.com/maparoni/geojsonkit-turf from cache (1.20s)
Fetched https://github.com/apple/swift-numerics.git from cache (1.20s)
Fetched https://github.com/apple/swift-algorithms.git from cache (1.20s)
Computing version for https://github.com/apple/swift-algorithms.git
Fetched https://github.com/apple/swift-argument-parser from cache (1.20s)
Computed https://github.com/apple/swift-algorithms.git at 1.2.0 (1.87s)
Computing version for https://github.com/maparoni/geojsonkit-turf
Computed https://github.com/maparoni/geojsonkit-turf at 0.4.1 (0.64s)
Computing version for https://github.com/maparoni/geojsonkit.git
Computed https://github.com/maparoni/geojsonkit.git at 0.6.0 (0.63s)
Computing version for https://github.com/apple/swift-numerics.git
Computed https://github.com/apple/swift-numerics.git at 1.0.2 (0.64s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.5.0 (0.57s)
Creating working copy for https://github.com/apple/swift-numerics.git
Working copy of https://github.com/apple/swift-numerics.git resolved at 1.0.2
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.5.0
Creating working copy for https://github.com/maparoni/geojsonkit.git
Working copy of https://github.com/maparoni/geojsonkit.git resolved at 0.6.0
Creating working copy for https://github.com/apple/swift-algorithms.git
Working copy of https://github.com/apple/swift-algorithms.git resolved at 1.2.0
Creating working copy for https://github.com/maparoni/geojsonkit-turf
Working copy of https://github.com/maparoni/geojsonkit-turf resolved at 0.4.1
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"dependencies": [
{
"identity": "geoprojector",
"name": "GeoProjector",
"url": "https://github.com/maparoni/GeoProjector.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/GeoProjector",
"dependencies": [
{
"identity": "geojsonkit",
"name": "GeoJSONKit",
"url": "https://github.com/maparoni/geojsonkit.git",
"version": "0.6.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/geojsonkit",
"dependencies": [
]
},
{
"identity": "geojsonkit-turf",
"name": "GeoJSONKitTurf",
"url": "https://github.com/maparoni/geojsonkit-turf",
"version": "0.4.3",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/geojsonkit-turf",
"dependencies": [
{
"identity": "geojsonkit",
"name": "GeoJSONKit",
"url": "https://github.com/maparoni/geojsonkit.git",
"version": "0.6.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/geojsonkit",
"dependencies": [
]
},
{
"identity": "swift-argument-parser",
"name": "swift-argument-parser",
"url": "https://github.com/apple/swift-argument-parser",
"version": "1.5.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-argument-parser",
"dependencies": [
]
}
]
},
{
"identity": "swift-algorithms",
"name": "swift-algorithms",
"url": "https://github.com/apple/swift-algorithms.git",
"version": "1.2.1",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-algorithms",
"dependencies": [
{
"identity": "swift-numerics",
"name": "swift-numerics",
"url": "https://github.com/apple/swift-numerics.git",
"version": "1.0.3",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-numerics",
"dependencies": [
]
}
]
}
]
}
]
}
Fetching https://github.com/maparoni/GeoProjector.git
[1/780] Fetching geoprojector
Fetched https://github.com/maparoni/GeoProjector.git from cache (1.01s)
Fetching https://github.com/apple/swift-algorithms.git from cache
Fetching https://github.com/maparoni/geojsonkit.git from cache
Fetching https://github.com/maparoni/geojsonkit-turf from cache
Fetched https://github.com/maparoni/geojsonkit.git from cache (0.45s)
Fetched https://github.com/apple/swift-algorithms.git from cache (0.45s)
Fetched https://github.com/maparoni/geojsonkit-turf from cache (0.45s)
Computing version for https://github.com/apple/swift-algorithms.git
Computed https://github.com/apple/swift-algorithms.git at 1.2.1 (1.04s)
Fetching https://github.com/apple/swift-numerics.git from cache
Fetched https://github.com/apple/swift-numerics.git from cache (0.45s)
Computing version for https://github.com/apple/swift-numerics.git
Computed https://github.com/apple/swift-numerics.git at 1.0.3 (1.07s)
Computing version for https://github.com/maparoni/geojsonkit.git
Computed https://github.com/maparoni/geojsonkit.git at 0.6.0 (0.03s)
Computing version for https://github.com/maparoni/geojsonkit-turf
Computed https://github.com/maparoni/geojsonkit-turf at 0.4.3 (0.03s)
Fetching https://github.com/apple/swift-argument-parser from cache
Fetched https://github.com/apple/swift-argument-parser from cache (0.59s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.5.0 (0.65s)
Creating working copy for https://github.com/apple/swift-algorithms.git
Working copy of https://github.com/apple/swift-algorithms.git resolved at 1.2.1
Creating working copy for https://github.com/maparoni/geojsonkit.git
Working copy of https://github.com/maparoni/geojsonkit.git resolved at 0.6.0
Creating working copy for https://github.com/maparoni/geojsonkit-turf
Working copy of https://github.com/maparoni/geojsonkit-turf resolved at 0.4.3
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.5.0
Creating working copy for https://github.com/maparoni/GeoProjector.git
Working copy of https://github.com/maparoni/GeoProjector.git resolved at main (41587f7)
Creating working copy for https://github.com/apple/swift-numerics.git
Working copy of https://github.com/apple/swift-numerics.git resolved at 1.0.3
warning: '.resolve-product-dependencies': dependency 'geoprojector' is not used by any target
Found 3 product dependencies
- GeoJSONKit
- GeoJSONKitTurf
- swift-algorithms
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/maparoni/GeoProjector.git
https://github.com/maparoni/GeoProjector.git
{
"dependencies" : [
{
"identity" : "geojsonkit",
"requirement" : {
"range" : [
{
"lower_bound" : "0.5.0",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/maparoni/geojsonkit.git"
},
{
"identity" : "geojsonkit-turf",
"requirement" : {
"range" : [
{
"lower_bound" : "0.1.0",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/maparoni/geojsonkit-turf"
},
{
"identity" : "swift-algorithms",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-algorithms.git"
}
],
"manifest_display_name" : "GeoProjector",
"name" : "GeoProjector",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "watchos",
"version" : "8.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "xros",
"version" : "1.0"
}
],
"products" : [
{
"name" : "GeoProjector",
"targets" : [
"GeoProjector"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "GeoDrawer",
"targets" : [
"GeoDrawer"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "GeoProjectorTests",
"module_type" : "SwiftTarget",
"name" : "GeoProjectorTests",
"path" : "Tests/GeoProjectorTests",
"sources" : [
"MapBoundsTests.swift",
"ProjectionTests.swift",
"TranslationTests.swift"
],
"target_dependencies" : [
"GeoProjector"
],
"type" : "test"
},
{
"c99name" : "GeoProjector",
"module_type" : "SwiftTarget",
"name" : "GeoProjector",
"path" : "Sources/GeoProjector",
"product_dependencies" : [
"GeoJSONKit",
"GeoJSONKitTurf"
],
"product_memberships" : [
"GeoProjector",
"GeoDrawer"
],
"sources" : [
"Interpolator.swift",
"Projection.swift",
"ProjectionMode.swift",
"Projections+Azimuthal.swift",
"Projections+Cylindrical.swift",
"Projections+Orthographic.swift",
"Projections+Pseudocylindrical.swift",
"Projections.swift",
"Structs.swift"
],
"type" : "library"
},
{
"c99name" : "GeoDrawer",
"module_type" : "SwiftTarget",
"name" : "GeoDrawer",
"path" : "Sources/GeoDrawer",
"product_dependencies" : [
"Algorithms"
],
"product_memberships" : [
"GeoDrawer"
],
"sources" : [
"GeoDrawer+CoreGraphics.swift",
"GeoDrawer+Image.swift",
"GeoDrawer.swift",
"GeoJSON+Continents.swift",
"GeoMap+AppKit.swift",
"GeoMap+UIKit.swift",
"styling/GeoDrawerContent+Style.swift"
],
"target_dependencies" : [
"GeoProjector"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
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 GenerateManual
Building for debugging...
[1/9] Write sources
[7/9] Compiling _NumericsShims _NumericsShims.c
[8/9] Write swift-version-2F0A5646E1D333AE.txt
[10/22] Compiling RealModule Float80+Real.swift
[11/22] Compiling RealModule Real.swift
[12/23] Compiling RealModule Float16+Real.swift
[13/23] Compiling RealModule ApproximateEquality.swift
[14/23] Compiling RealModule AlgebraicField.swift
[15/23] Emitting module RealModule
[16/23] Compiling RealModule ElementaryFunctions.swift
[17/23] Compiling RealModule AugmentedArithmetic.swift
[18/23] Compiling RealModule Float+Real.swift
[19/23] Compiling RealModule Double+Real.swift
[20/23] Compiling RealModule RealFunctions.swift
[21/49] Compiling Algorithms Split.swift
[22/49] Compiling Algorithms Stride.swift
[23/51] Compiling Algorithms Combinations.swift
[24/51] Compiling Algorithms Compacted.swift
[25/51] Compiling Algorithms Cycle.swift
[26/51] Compiling Algorithms Grouped.swift
[27/51] Compiling Algorithms Indexed.swift
[28/51] Compiling Algorithms Intersperse.swift
[29/51] Compiling Algorithms Joined.swift
[30/51] Compiling Algorithms Keyed.swift
[31/51] Compiling Algorithms MinMax.swift
[32/51] Compiling Algorithms RandomSample.swift
[33/51] Compiling Algorithms Reductions.swift
[34/51] Compiling Algorithms Rotate.swift
[35/51] Compiling Algorithms EitherSequence.swift
[36/51] Compiling Algorithms FirstNonNil.swift
[37/51] Compiling Algorithms FlattenCollection.swift
[38/51] Compiling Algorithms Suffix.swift
[39/51] Compiling Algorithms Trim.swift
[40/51] Compiling Algorithms Partition.swift
[41/51] Compiling Algorithms Permutations.swift
[42/51] Compiling Algorithms Product.swift
[43/51] Compiling Algorithms Unique.swift
[44/51] Compiling Algorithms Windows.swift
[45/51] Compiling Algorithms AdjacentPairs.swift
[46/51] Compiling Algorithms Chain.swift
[47/51] Compiling Algorithms Chunked.swift
[48/51] Emitting module Algorithms
[49/51] Compiling GeoJSONKit GeoJSON+Codable.swift
[50/51] Compiling GeoJSONKit GeoJSON.swift
[51/51] Emitting module GeoJSONKit
[52/68] Compiling GeoJSONKitTurf CoreLocation.swift
[53/68] Compiling GeoJSONKitTurf GeoJSON+Helpers.swift
[54/69] Compiling GeoJSONKitTurf Spline.swift
[55/69] Compiling GeoJSONKitTurf MonotoneChain.swift
[56/69] Compiling GeoJSONKitTurf Turf+LinearRing.swift
[57/69] Compiling GeoJSONKitTurf Turf+Polygon.swift
[58/69] Compiling GeoJSONKitTurf Turf.swift
[59/69] Compiling GeoJSONKitTurf DouglasPeucker.swift
[60/69] Compiling GeoJSONKitTurf Simplify.swift
[61/69] Compiling GeoJSONKitTurf Turf+BoundingBox.swift
[62/69] Emitting module GeoJSONKitTurf
[63/69] Compiling GeoJSONKitTurf Position+Helpers.swift
[64/69] Compiling GeoJSONKitTurf RadianCoordinate2D.swift
[65/69] Compiling GeoJSONKitTurf ClosestCoordinate.swift
[66/69] Compiling GeoJSONKitTurf ConvexHull.swift
[67/69] Compiling GeoJSONKitTurf Turf+GeometryObject.swift
[68/69] Compiling GeoJSONKitTurf Turf+LineString.swift
[69/69] Compiling GeoJSONKitTurf SutherlandHodgeman.swift
[70/79] Compiling GeoProjector Projections+Pseudocylindrical.swift
[71/79] Compiling GeoProjector Projections.swift
[72/79] Compiling GeoProjector Projections+Orthographic.swift
[73/79] Compiling GeoProjector Projections+Cylindrical.swift
[74/79] Compiling GeoProjector Projection.swift
[75/79] Compiling GeoProjector Projections+Azimuthal.swift
[76/79] Compiling GeoProjector Interpolator.swift
[77/79] Emitting module GeoProjector
/Users/admin/builder/spi-builder-workspace/Sources/GeoProjector/Structs.swift:13:21: warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | public struct Point: Hashable {
13 | public static var zero = Point(x: 0, y: 0)
| |- warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'zero' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'zero' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 | public init(x: Double, y: Double) {
/Users/admin/builder/spi-builder-workspace/Sources/GeoProjector/Structs.swift:30:21: warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
28 |
29 | public struct Size: Hashable {
30 | public static var zero = Size(width: 0, height: 0)
| |- warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'zero' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'zero' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |
32 | public init(width: Double, height: Double) {
/Users/admin/builder/spi-builder-workspace/Sources/GeoProjector/Structs.swift:85:21: warning: static property 'zero' is not concurrency-safe because non-'Sendable' type 'EdgeInsets' may have shared mutable state; this is an error in the Swift 6 language mode
82 | }
83 |
84 | public struct EdgeInsets: Hashable {
| `- note: consider making struct 'EdgeInsets' conform to the 'Sendable' protocol
85 | public static let zero = EdgeInsets()
| |- warning: static property 'zero' is not concurrency-safe because non-'Sendable' type 'EdgeInsets' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'zero' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
86 |
87 | public init(top: Double = 0, left: Double = 0, bottom: Double = 0, right: Double = 0) {
[78/79] Compiling GeoProjector ProjectionMode.swift
[79/79] Compiling GeoProjector Structs.swift
/Users/admin/builder/spi-builder-workspace/Sources/GeoProjector/Structs.swift:13:21: warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
11 |
12 | public struct Point: Hashable {
13 | public static var zero = Point(x: 0, y: 0)
| |- warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'zero' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'zero' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 | public init(x: Double, y: Double) {
/Users/admin/builder/spi-builder-workspace/Sources/GeoProjector/Structs.swift:30:21: warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
28 |
29 | public struct Size: Hashable {
30 | public static var zero = Size(width: 0, height: 0)
| |- warning: static property 'zero' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'zero' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'zero' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
31 |
32 | public init(width: Double, height: Double) {
/Users/admin/builder/spi-builder-workspace/Sources/GeoProjector/Structs.swift:85:21: warning: static property 'zero' is not concurrency-safe because non-'Sendable' type 'EdgeInsets' may have shared mutable state; this is an error in the Swift 6 language mode
82 | }
83 |
84 | public struct EdgeInsets: Hashable {
| `- note: consider making struct 'EdgeInsets' conform to the 'Sendable' protocol
85 | public static let zero = EdgeInsets()
| |- warning: static property 'zero' is not concurrency-safe because non-'Sendable' type 'EdgeInsets' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'zero' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
86 |
87 | public init(top: Double = 0, left: Double = 0, bottom: Double = 0, right: Double = 0) {
[80/87] Compiling GeoDrawer GeoDrawerContent+Style.swift
[81/87] Compiling GeoDrawer GeoJSON+Continents.swift
[82/87] Compiling GeoDrawer GeoDrawer.swift
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:88:49: warning: reference to static property 'zero' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
86 | return acc
87 | } else if let first = points.first {
88 | var rect = Rect(origin: first, size: .zero)
| `- warning: reference to static property 'zero' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
89 | for point in points.dropFirst() {
90 | rect.absorb(point)
/Users/admin/builder/spi-builder-workspace/Sources/GeoProjector/Structs.swift:30:21: note: static property declared here
28 |
29 | public struct Size: Hashable {
30 | public static var zero = Size(width: 0, height: 0)
| `- note: static property declared here
31 |
32 | public init(width: Double, height: Double) {
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:246:15: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 | }
231 |
232 | struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
| `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 | let offset: Int
234 | let element: Element
:
244 |
245 | func projectInParallel(_ contents: [Content]) async throws -> [ProjectedContent] {
246 | try await withThrowingTaskGroup(of: [OffsettedElement<ProjectedContent>].self) { group in
| `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
247 | let chunks = Array(contents.enumerated()).chunks(ofCount: 25)
248 | for chunk in chunks {
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:246:84: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 | }
231 |
232 | struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
| `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 | let offset: Int
234 | let element: Element
:
244 |
245 | func projectInParallel(_ contents: [Content]) async throws -> [ProjectedContent] {
246 | try await withThrowingTaskGroup(of: [OffsettedElement<ProjectedContent>].self) { group in
| `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
247 | let chunks = Array(contents.enumerated()).chunks(ofCount: 25)
248 | for chunk in chunks {
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:249:27: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 | }
231 |
232 | struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
| `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 | let offset: Int
234 | let element: Element
:
247 | let chunks = Array(contents.enumerated()).chunks(ofCount: 25)
248 | for chunk in chunks {
249 | let added = group.addTaskUnlessCancelled {
| `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
250 | await Task {
251 | return chunk.compactMap { input in
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:250:17: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 | }
231 |
232 | struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
| `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 | let offset: Int
234 | let element: Element
:
248 | for chunk in chunks {
249 | let added = group.addTaskUnlessCancelled {
250 | await Task {
| `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
251 | return chunk.compactMap { input in
252 | guard !Task.isCancelled, let projected = project(input.element) else { return nil }
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:250:17: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 | }
231 |
232 | struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
| `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 | let offset: Int
234 | let element: Element
:
248 | for chunk in chunks {
249 | let added = group.addTaskUnlessCancelled {
250 | await Task {
| `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
251 | return chunk.compactMap { input in
252 | guard !Task.isCancelled, let projected = project(input.element) else { return nil }
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:255:13: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 | }
231 |
232 | struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
| `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 | let offset: Int
234 | let element: Element
:
253 | return OffsettedElement(offset: input.offset, element: projected)
254 | }
255 | }.value
| `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
256 | }
257 | if !added {
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:262:38: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 | }
231 |
232 | struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
| `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 | let offset: Int
234 | let element: Element
:
260 | }
261 |
262 | let unsorted = try await group.reduce(into: []) { $0.append(contentsOf: $1) }
| `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
263 | return unsorted.sorted(by: <).map(\.element)
264 | }
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:262:55: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 | }
231 |
232 | struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
| `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 | let offset: Int
234 | let element: Element
:
260 | }
261 |
262 | let unsorted = try await group.reduce(into: []) { $0.append(contentsOf: $1) }
| `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
263 | return unsorted.sorted(by: <).map(\.element)
264 | }
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:262:55: warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
230 | }
231 |
232 | struct OffsettedElement<Element: Equatable>: Comparable, Equatable {
| `- note: consider making generic struct 'OffsettedElement' conform to the 'Sendable' protocol
233 | let offset: Int
234 | let element: Element
:
260 | }
261 |
262 | let unsorted = try await group.reduce(into: []) { $0.append(contentsOf: $1) }
| `- warning: type 'GeoDrawer.OffsettedElement<GeoDrawer.ProjectedContent>' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
263 | return unsorted.sorted(by: <).map(\.element)
264 | }
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:249:50: 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
247 | let chunks = Array(contents.enumerated()).chunks(ofCount: 25)
248 | for chunk in chunks {
249 | let added = group.addTaskUnlessCancelled {
| `- 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
250 | await Task {
251 | return chunk.compactMap { input in
| `- note: closure captures non-Sendable 'chunk'
252 | guard !Task.isCancelled, let projected = project(input.element) else { return nil }
| `- note: closure captures non-Sendable 'self'
253 | return OffsettedElement(offset: input.offset, element: projected)
254 | }
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:250:22: 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
248 | for chunk in chunks {
249 | let added = group.addTaskUnlessCancelled {
250 | await 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
251 | return chunk.compactMap { input in
| `- note: closure captures non-Sendable 'chunk'
252 | guard !Task.isCancelled, let projected = project(input.element) else { return nil }
| `- note: closure captures non-Sendable 'self'
253 | return OffsettedElement(offset: input.offset, element: projected)
254 | }
[83/87] Compiling GeoDrawer GeoDrawer+CoreGraphics.swift
[84/87] Compiling GeoDrawer GeoMap+UIKit.swift
[85/87] Compiling GeoDrawer GeoMap+AppKit.swift
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoMap+AppKit.swift:143:42: warning: non-sendable result type '[GeoDrawer.ProjectedContent]' cannot be sent from nonisolated context in call to instance method 'projectInParallel'; this is an error in the Swift 6 language mode
141 | guard let self else { return }
142 | do {
143 | let projected = try await drawer.projectInParallel(contents)
| `- warning: non-sendable result type '[GeoDrawer.ProjectedContent]' cannot be sent from nonisolated context in call to instance method 'projectInParallel'; this is an error in the Swift 6 language mode
144 | await MainActor.run {
145 | self.projectProgress = .finished(projected)
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoDrawer.swift:199:8: note: consider making enum 'ProjectedContent' conform to the 'Sendable' protocol
197 | }
198 |
199 | enum ProjectedContent: Hashable {
| `- note: consider making enum 'ProjectedContent' conform to the 'Sendable' protocol
200 | case line([ProjectedLineString], stroke: Color, strokeWidth: Double)
201 | case polygon([ProjectedPolygon], fill: Color, stroke: Color?, strokeWidth: Double)
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoMap+AppKit.swift:143:42: warning: sending 'self.contents' risks causing data races; this is an error in the Swift 6 language mode
141 | guard let self else { return }
142 | do {
143 | let projected = try await drawer.projectInParallel(contents)
| |- warning: sending 'self.contents' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.contents' to nonisolated callee risks causing data races between nonisolated and main actor-isolated uses
144 | await MainActor.run {
145 | self.projectProgress = .finished(projected)
/Users/admin/builder/spi-builder-workspace/Sources/GeoDrawer/GeoMap+AppKit.swift:143:42: warning: sending value of non-Sendable type 'GeoDrawer' risks causing data races; this is an error in the Swift 6 language mode
141 | guard let self else { return }
142 | do {
143 | let projected = try await drawer.projectInParallel(contents)
| |- warning: sending value of non-Sendable type 'GeoDrawer' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated value of non-Sendable type 'GeoDrawer' to nonisolated callee risks causing races in between main actor-isolated and nonisolated uses
144 | await MainActor.run {
145 | self.projectProgress = .finished(projected)
[86/87] Compiling GeoDrawer GeoDrawer+Image.swift
[87/87] Emitting module GeoDrawer
Build complete! (16.43s)
warning: 'swift-algorithms': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/Users/admin/builder/spi-builder-workspace/.build/checkouts/swift-algorithms/Sources/Algorithms/Documentation.docc
Build complete.
{
"dependencies" : [
{
"identity" : "geojsonkit",
"requirement" : {
"range" : [
{
"lower_bound" : "0.5.0",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/maparoni/geojsonkit.git"
},
{
"identity" : "geojsonkit-turf",
"requirement" : {
"range" : [
{
"lower_bound" : "0.1.0",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/maparoni/geojsonkit-turf"
},
{
"identity" : "swift-algorithms",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-algorithms.git"
}
],
"manifest_display_name" : "GeoProjector",
"name" : "GeoProjector",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "watchos",
"version" : "8.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "xros",
"version" : "1.0"
}
],
"products" : [
{
"name" : "GeoProjector",
"targets" : [
"GeoProjector"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "GeoDrawer",
"targets" : [
"GeoDrawer"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "GeoProjectorTests",
"module_type" : "SwiftTarget",
"name" : "GeoProjectorTests",
"path" : "Tests/GeoProjectorTests",
"sources" : [
"MapBoundsTests.swift",
"ProjectionTests.swift",
"TranslationTests.swift"
],
"target_dependencies" : [
"GeoProjector"
],
"type" : "test"
},
{
"c99name" : "GeoProjector",
"module_type" : "SwiftTarget",
"name" : "GeoProjector",
"path" : "Sources/GeoProjector",
"product_dependencies" : [
"GeoJSONKit",
"GeoJSONKitTurf"
],
"product_memberships" : [
"GeoProjector",
"GeoDrawer"
],
"sources" : [
"Interpolator.swift",
"Projection.swift",
"ProjectionMode.swift",
"Projections+Azimuthal.swift",
"Projections+Cylindrical.swift",
"Projections+Orthographic.swift",
"Projections+Pseudocylindrical.swift",
"Projections.swift",
"Structs.swift"
],
"type" : "library"
},
{
"c99name" : "GeoDrawer",
"module_type" : "SwiftTarget",
"name" : "GeoDrawer",
"path" : "Sources/GeoDrawer",
"product_dependencies" : [
"Algorithms"
],
"product_memberships" : [
"GeoDrawer"
],
"sources" : [
"GeoDrawer+CoreGraphics.swift",
"GeoDrawer+Image.swift",
"GeoDrawer.swift",
"GeoJSON+Continents.swift",
"GeoMap+AppKit.swift",
"GeoMap+UIKit.swift",
"styling/GeoDrawerContent+Style.swift"
],
"target_dependencies" : [
"GeoProjector"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
Done.