Build Information
Successful build of Astral, reference v1.2.0 (e9d873), with Swift 6.1 for macOS (SPM) on 13 Oct 2026 00:58:02 UTC.
Swift 6 data race errors: 8
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/xiangyu-sun/Astral.git
Reference: v1.2.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/xiangyu-sun/Astral
* tag v1.2.0 -> FETCH_HEAD
HEAD is now at e9d873f Fix three bugs: moon T factor, midnight rollover, rahukaalam duration
Cloned https://github.com/xiangyu-sun/Astral.git
Revision (git rev-parse @):
e9d873f744021db6f69a06877562ee0ed1091360
SUCCESS checkout https://github.com/xiangyu-sun/Astral.git at v1.2.0
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/xiangyu-sun/Astral.git
https://github.com/xiangyu-sun/Astral.git
{
"dependencies" : [
{
"identity" : "swift",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/airbnb/swift"
},
{
"identity" : "swift-numerics",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-numerics"
}
],
"manifest_display_name" : "Astral",
"name" : "Astral",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.13"
},
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "watchos",
"version" : "5.0"
}
],
"products" : [
{
"name" : "Astral",
"targets" : [
"Astral"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "AstralTests",
"module_type" : "SwiftTarget",
"name" : "AstralTests",
"path" : "Tests/AstralTests",
"sources" : [
"AstralTests.swift",
"AzimuthTests.swift",
"BugFixRegressionTests.swift",
"DMSTests.swift",
"DateCompoenentHelper.swift",
"ExtremeDateTests.swift",
"JulianTests.swift",
"LocationInfoTests.swift",
"Moon2Tests.swift",
"MoonPostionTests.swift",
"MoonTests.swift",
"ObserverTests.swift",
"PolarRegionTests.swift",
"SideRealTests.swift",
"SolarTermDaysTests.swift",
"SolarTermTests.swift",
"SunCalcTests.swift",
"SunElevationAdjustmentTests.swift",
"SunGoldenHourTests.swift",
"SunLocalTests.swift",
"SunUTCTests.swift",
"TestTags.swift",
"XCTAssertEqual.swift"
],
"target_dependencies" : [
"Astral"
],
"type" : "test"
},
{
"c99name" : "Astral",
"module_type" : "SwiftTarget",
"name" : "Astral",
"path" : "Sources/Astral",
"product_dependencies" : [
"Numerics"
],
"product_memberships" : [
"Astral"
],
"sources" : [
"Angle.swift",
"AstralBodyPosition.swift",
"DateComponent.swift",
"DateComponents+Comparable.swift",
"DateToJC.swift",
"DegressMinutesSeconds.swift",
"Depression.swift",
"Int2Double.swift",
"Julian.swift",
"LocationInfo.swift",
"Moon.swift",
"MoonPhase.swift",
"Observer.swift",
"SideReal.swift",
"SolarTerm.swift",
"Sun.swift",
"SunDirection.swift",
"Table4Row.swift",
"Types.swift",
"Zenith.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 FormatSwift
[2/2] Compiling plugin GenerateManual
[3/3] Compiling plugin GenerateDoccReference
Building for debugging...
[3/9] Write sources
[7/9] Compiling _NumericsShims _NumericsShims.c
[8/9] Write swift-version-2F0A5646E1D333AE.txt
[10/20] Compiling RealModule Float80+Real.swift
[11/20] Compiling RealModule Real.swift
[12/21] Compiling RealModule Float16+Real.swift
[13/21] Compiling RealModule AugmentedArithmetic.swift
[14/21] Compiling RealModule AlgebraicField.swift
[15/21] Compiling RealModule ApproximateEquality.swift
[16/21] Emitting module RealModule
[17/21] Compiling RealModule Float+Real.swift
[18/21] Compiling RealModule ElementaryFunctions.swift
[19/21] Compiling RealModule Double+Real.swift
[20/21] Compiling RealModule RealFunctions.swift
[21/21] Compiling RealModule RelaxedArithmetic.swift
[22/32] Compiling ComplexModule Polar.swift
[23/32] Compiling ComplexModule Complex+IntegerLiteral.swift
[24/32] Compiling ComplexModule Complex+Numeric.swift
[25/32] Compiling ComplexModule Complex+StringConvertible.swift
[26/32] Compiling ComplexModule Complex.swift
[27/33] Compiling ComplexModule Scale.swift
[28/33] Compiling ComplexModule Complex+Hashable.swift
[29/33] Compiling ComplexModule Complex+Codable.swift
[30/33] Compiling ComplexModule Complex+ElementaryFunctions.swift
[31/33] Emitting module ComplexModule
[32/33] Compiling ComplexModule Complex+AdditiveArithmetic.swift
[33/33] Compiling ComplexModule Complex+AlgebraicField.swift
[34/35] Compiling Numerics Numerics.swift
[35/35] Emitting module Numerics
[36/54] Compiling Astral SolarTerm.swift
[37/54] Compiling Astral Sun.swift
[38/54] Compiling Astral SunDirection.swift
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Table4Row.swift:37:5: warning: let 'table4_v' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
19 | // MARK: - Table4Row
20 |
21 | struct Table4Row {
| `- note: consider making struct 'Table4Row' conform to the 'Sendable' protocol
22 | init(_ coefficient: Double, _ t: Bool, _ sincos: @escaping (Double) -> Double, _ argument_multiplers: [Int: Int]) {
23 | self.coefficient = coefficient
:
35 | // MARK: - Lunar Series Tables
36 |
37 | let table4_v: [Table4Row] = [
| |- warning: let 'table4_v' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'table4_v' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 | Table4Row(0.39558, false, sin, [Gm: 0, Fm: 1, D: 0, Om: 1, Ls: 0, Gs: 0, L2: 0]),
39 | Table4Row(0.08200, false, sin, [Gm: 0, Fm: 1, D: 0, Om: 0, Ls: 0, Gs: 0, L2: 0]),
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Table4Row.swift:104:5: warning: let 'table4_u' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
19 | // MARK: - Table4Row
20 |
21 | struct Table4Row {
| `- note: consider making struct 'Table4Row' conform to the 'Sendable' protocol
22 | init(_ coefficient: Double, _ t: Bool, _ sincos: @escaping (Double) -> Double, _ argument_multiplers: [Int: Int]) {
23 | self.coefficient = coefficient
:
102 | ]
103 |
104 | let table4_u: [Table4Row] = [
| |- warning: let 'table4_u' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'table4_u' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
105 | Table4Row(1, false, cos, [Gm: 0, Fm: 0, D: 0, Om: 0, Ls: 0, Gs: 0, L2: 0]),
106 | Table4Row(-0.10828, false, cos, [Gm: 1, Fm: 0, D: 0, Om: 0, Ls: 0, Gs: 0, L2: 0]),
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Table4Row.swift:137:5: warning: let 'table4_w' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
19 | // MARK: - Table4Row
20 |
21 | struct Table4Row {
| `- note: consider making struct 'Table4Row' conform to the 'Sendable' protocol
22 | init(_ coefficient: Double, _ t: Bool, _ sincos: @escaping (Double) -> Double, _ argument_multiplers: [Int: Int]) {
23 | self.coefficient = coefficient
:
135 | ]
136 |
137 | let table4_w: [Table4Row] = [
| |- warning: let 'table4_w' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'table4_w' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
138 | Table4Row(0.10478, false, sin, [Gm: 1, Fm: 0, D: 0, Om: 0, Ls: 0, Gs: 0, L2: 0]),
139 | Table4Row(-0.04105, false, sin, [Gm: 0, Fm: 2, D: 0, Om: 2, Ls: 0, Gs: 0, L2: 0]),
[39/54] Compiling Astral Table4Row.swift
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Table4Row.swift:37:5: warning: let 'table4_v' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
19 | // MARK: - Table4Row
20 |
21 | struct Table4Row {
| `- note: consider making struct 'Table4Row' conform to the 'Sendable' protocol
22 | init(_ coefficient: Double, _ t: Bool, _ sincos: @escaping (Double) -> Double, _ argument_multiplers: [Int: Int]) {
23 | self.coefficient = coefficient
:
35 | // MARK: - Lunar Series Tables
36 |
37 | let table4_v: [Table4Row] = [
| |- warning: let 'table4_v' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'table4_v' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 | Table4Row(0.39558, false, sin, [Gm: 0, Fm: 1, D: 0, Om: 1, Ls: 0, Gs: 0, L2: 0]),
39 | Table4Row(0.08200, false, sin, [Gm: 0, Fm: 1, D: 0, Om: 0, Ls: 0, Gs: 0, L2: 0]),
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Table4Row.swift:104:5: warning: let 'table4_u' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
19 | // MARK: - Table4Row
20 |
21 | struct Table4Row {
| `- note: consider making struct 'Table4Row' conform to the 'Sendable' protocol
22 | init(_ coefficient: Double, _ t: Bool, _ sincos: @escaping (Double) -> Double, _ argument_multiplers: [Int: Int]) {
23 | self.coefficient = coefficient
:
102 | ]
103 |
104 | let table4_u: [Table4Row] = [
| |- warning: let 'table4_u' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'table4_u' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
105 | Table4Row(1, false, cos, [Gm: 0, Fm: 0, D: 0, Om: 0, Ls: 0, Gs: 0, L2: 0]),
106 | Table4Row(-0.10828, false, cos, [Gm: 1, Fm: 0, D: 0, Om: 0, Ls: 0, Gs: 0, L2: 0]),
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Table4Row.swift:137:5: warning: let 'table4_w' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
19 | // MARK: - Table4Row
20 |
21 | struct Table4Row {
| `- note: consider making struct 'Table4Row' conform to the 'Sendable' protocol
22 | init(_ coefficient: Double, _ t: Bool, _ sincos: @escaping (Double) -> Double, _ argument_multiplers: [Int: Int]) {
23 | self.coefficient = coefficient
:
135 | ]
136 |
137 | let table4_w: [Table4Row] = [
| |- warning: let 'table4_w' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'table4_w' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
138 | Table4Row(0.10478, false, sin, [Gm: 1, Fm: 0, D: 0, Om: 0, Ls: 0, Gs: 0, L2: 0]),
139 | Table4Row(-0.04105, false, sin, [Gm: 0, Fm: 2, D: 0, Om: 2, Ls: 0, Gs: 0, L2: 0]),
[40/56] Compiling Astral Moon.swift
[41/56] Compiling Astral MoonPhase.swift
[42/56] Compiling Astral Julian.swift
[43/56] Compiling Astral LocationInfo.swift
[44/56] Compiling Astral Depression.swift
[45/56] Compiling Astral Int2Double.swift
[46/56] Compiling Astral DateToJC.swift
[47/56] Compiling Astral DegressMinutesSeconds.swift
[48/56] Compiling Astral DateComponent.swift
/Users/admin/builder/spi-builder-workspace/Sources/Astral/DateComponents+Comparable.swift:13:1: warning: extension declares a conformance of imported type 'DateComponents' to imported protocol 'Comparable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
11 |
12 | /// Allows `DateComponents` values to be compared using their total seconds.
13 | extension DateComponents: Comparable {
| |- warning: extension declares a conformance of imported type 'DateComponents' to imported protocol 'Comparable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
14 |
15 | /// Returns `true` if `lhs` occurs before `rhs` when both are interpreted as durations.
[49/56] Compiling Astral DateComponents+Comparable.swift
/Users/admin/builder/spi-builder-workspace/Sources/Astral/DateComponents+Comparable.swift:13:1: warning: extension declares a conformance of imported type 'DateComponents' to imported protocol 'Comparable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
11 |
12 | /// Allows `DateComponents` values to be compared using their total seconds.
13 | extension DateComponents: Comparable {
| |- warning: extension declares a conformance of imported type 'DateComponents' to imported protocol 'Comparable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
14 |
15 | /// Returns `true` if `lhs` occurs before `rhs` when both are interpreted as durations.
[50/56] Compiling Astral Angle.swift
[51/56] Compiling Astral AstralBodyPosition.swift
[52/56] Compiling Astral Observer.swift
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Observer.swift:47:21: warning: static property 'london' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
24 | /// elevation: Elevation and/or distance to nearest obscuring feature
25 | /// in metres above/below the location.
26 | public struct Observer {
| `- note: consider making struct 'Observer' conform to the 'Sendable' protocol
27 |
28 | // MARK: Lifecycle
:
45 | // MARK: Public
46 |
47 | public static let london = Observer(latitude: 51.4733, longitude: -0.0008333, elevation: .double(0))
| |- warning: static property 'london' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'london' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
48 | public static let newDelhi = Observer(latitude: 28.6139, longitude: 77.2090, elevation: .double(0))
49 | public static let riyadh = Observer(latitude: 25, longitude: 46.7, elevation: .double(620))
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Observer.swift:48:21: warning: static property 'newDelhi' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
24 | /// elevation: Elevation and/or distance to nearest obscuring feature
25 | /// in metres above/below the location.
26 | public struct Observer {
| `- note: consider making struct 'Observer' conform to the 'Sendable' protocol
27 |
28 | // MARK: Lifecycle
:
46 |
47 | public static let london = Observer(latitude: 51.4733, longitude: -0.0008333, elevation: .double(0))
48 | public static let newDelhi = Observer(latitude: 28.6139, longitude: 77.2090, elevation: .double(0))
| |- warning: static property 'newDelhi' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'newDelhi' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 | public static let riyadh = Observer(latitude: 25, longitude: 46.7, elevation: .double(620))
50 | public static let wellington = try! Observer(
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Observer.swift:49:21: warning: static property 'riyadh' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
24 | /// elevation: Elevation and/or distance to nearest obscuring feature
25 | /// in metres above/below the location.
26 | public struct Observer {
| `- note: consider making struct 'Observer' conform to the 'Sendable' protocol
27 |
28 | // MARK: Lifecycle
:
47 | public static let london = Observer(latitude: 51.4733, longitude: -0.0008333, elevation: .double(0))
48 | public static let newDelhi = Observer(latitude: 28.6139, longitude: 77.2090, elevation: .double(0))
49 | public static let riyadh = Observer(latitude: 25, longitude: 46.7, elevation: .double(620))
| |- warning: static property 'riyadh' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'riyadh' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
50 | public static let wellington = try! Observer(
51 | latitude: " 41° 17' 11.256'' S",
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Observer.swift:50:21: warning: static property 'wellington' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
24 | /// elevation: Elevation and/or distance to nearest obscuring feature
25 | /// in metres above/below the location.
26 | public struct Observer {
| `- note: consider making struct 'Observer' conform to the 'Sendable' protocol
27 |
28 | // MARK: Lifecycle
:
48 | public static let newDelhi = Observer(latitude: 28.6139, longitude: 77.2090, elevation: .double(0))
49 | public static let riyadh = Observer(latitude: 25, longitude: 46.7, elevation: .double(620))
50 | public static let wellington = try! Observer(
| |- warning: static property 'wellington' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wellington' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 | latitude: " 41° 17' 11.256'' S",
52 | longitude: "174° 46' 34.4496'' E",
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Observer.swift:54:21: warning: static property 'barcelona' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
24 | /// elevation: Elevation and/or distance to nearest obscuring feature
25 | /// in metres above/below the location.
26 | public struct Observer {
| `- note: consider making struct 'Observer' conform to the 'Sendable' protocol
27 |
28 | // MARK: Lifecycle
:
52 | longitude: "174° 46' 34.4496'' E",
53 | elevation: .double(13.000))
54 | public static let barcelona = try! Observer(
| |- warning: static property 'barcelona' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'barcelona' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 | latitude: "41° 23' 24.7380'' N",
56 | longitude: "2° 9' 14.4252'' E",
[53/56] Compiling Astral SideReal.swift
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Observer.swift:47:21: warning: static property 'london' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
24 | /// elevation: Elevation and/or distance to nearest obscuring feature
25 | /// in metres above/below the location.
26 | public struct Observer {
| `- note: consider making struct 'Observer' conform to the 'Sendable' protocol
27 |
28 | // MARK: Lifecycle
:
45 | // MARK: Public
46 |
47 | public static let london = Observer(latitude: 51.4733, longitude: -0.0008333, elevation: .double(0))
| |- warning: static property 'london' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'london' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
48 | public static let newDelhi = Observer(latitude: 28.6139, longitude: 77.2090, elevation: .double(0))
49 | public static let riyadh = Observer(latitude: 25, longitude: 46.7, elevation: .double(620))
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Observer.swift:48:21: warning: static property 'newDelhi' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
24 | /// elevation: Elevation and/or distance to nearest obscuring feature
25 | /// in metres above/below the location.
26 | public struct Observer {
| `- note: consider making struct 'Observer' conform to the 'Sendable' protocol
27 |
28 | // MARK: Lifecycle
:
46 |
47 | public static let london = Observer(latitude: 51.4733, longitude: -0.0008333, elevation: .double(0))
48 | public static let newDelhi = Observer(latitude: 28.6139, longitude: 77.2090, elevation: .double(0))
| |- warning: static property 'newDelhi' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'newDelhi' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 | public static let riyadh = Observer(latitude: 25, longitude: 46.7, elevation: .double(620))
50 | public static let wellington = try! Observer(
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Observer.swift:49:21: warning: static property 'riyadh' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
24 | /// elevation: Elevation and/or distance to nearest obscuring feature
25 | /// in metres above/below the location.
26 | public struct Observer {
| `- note: consider making struct 'Observer' conform to the 'Sendable' protocol
27 |
28 | // MARK: Lifecycle
:
47 | public static let london = Observer(latitude: 51.4733, longitude: -0.0008333, elevation: .double(0))
48 | public static let newDelhi = Observer(latitude: 28.6139, longitude: 77.2090, elevation: .double(0))
49 | public static let riyadh = Observer(latitude: 25, longitude: 46.7, elevation: .double(620))
| |- warning: static property 'riyadh' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'riyadh' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
50 | public static let wellington = try! Observer(
51 | latitude: " 41° 17' 11.256'' S",
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Observer.swift:50:21: warning: static property 'wellington' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
24 | /// elevation: Elevation and/or distance to nearest obscuring feature
25 | /// in metres above/below the location.
26 | public struct Observer {
| `- note: consider making struct 'Observer' conform to the 'Sendable' protocol
27 |
28 | // MARK: Lifecycle
:
48 | public static let newDelhi = Observer(latitude: 28.6139, longitude: 77.2090, elevation: .double(0))
49 | public static let riyadh = Observer(latitude: 25, longitude: 46.7, elevation: .double(620))
50 | public static let wellington = try! Observer(
| |- warning: static property 'wellington' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wellington' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 | latitude: " 41° 17' 11.256'' S",
52 | longitude: "174° 46' 34.4496'' E",
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Observer.swift:54:21: warning: static property 'barcelona' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
24 | /// elevation: Elevation and/or distance to nearest obscuring feature
25 | /// in metres above/below the location.
26 | public struct Observer {
| `- note: consider making struct 'Observer' conform to the 'Sendable' protocol
27 |
28 | // MARK: Lifecycle
:
52 | longitude: "174° 46' 34.4496'' E",
53 | elevation: .double(13.000))
54 | public static let barcelona = try! Observer(
| |- warning: static property 'barcelona' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'barcelona' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 | latitude: "41° 23' 24.7380'' N",
56 | longitude: "2° 9' 14.4252'' E",
[54/56] Emitting module Astral
/Users/admin/builder/spi-builder-workspace/Sources/Astral/DateComponents+Comparable.swift:13:1: warning: extension declares a conformance of imported type 'DateComponents' to imported protocol 'Comparable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
11 |
12 | /// Allows `DateComponents` values to be compared using their total seconds.
13 | extension DateComponents: Comparable {
| |- warning: extension declares a conformance of imported type 'DateComponents' to imported protocol 'Comparable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
14 |
15 | /// Returns `true` if `lhs` occurs before `rhs` when both are interpreted as durations.
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Observer.swift:47:21: warning: static property 'london' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
24 | /// elevation: Elevation and/or distance to nearest obscuring feature
25 | /// in metres above/below the location.
26 | public struct Observer {
| `- note: consider making struct 'Observer' conform to the 'Sendable' protocol
27 |
28 | // MARK: Lifecycle
:
45 | // MARK: Public
46 |
47 | public static let london = Observer(latitude: 51.4733, longitude: -0.0008333, elevation: .double(0))
| |- warning: static property 'london' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'london' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
48 | public static let newDelhi = Observer(latitude: 28.6139, longitude: 77.2090, elevation: .double(0))
49 | public static let riyadh = Observer(latitude: 25, longitude: 46.7, elevation: .double(620))
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Observer.swift:48:21: warning: static property 'newDelhi' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
24 | /// elevation: Elevation and/or distance to nearest obscuring feature
25 | /// in metres above/below the location.
26 | public struct Observer {
| `- note: consider making struct 'Observer' conform to the 'Sendable' protocol
27 |
28 | // MARK: Lifecycle
:
46 |
47 | public static let london = Observer(latitude: 51.4733, longitude: -0.0008333, elevation: .double(0))
48 | public static let newDelhi = Observer(latitude: 28.6139, longitude: 77.2090, elevation: .double(0))
| |- warning: static property 'newDelhi' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'newDelhi' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 | public static let riyadh = Observer(latitude: 25, longitude: 46.7, elevation: .double(620))
50 | public static let wellington = try! Observer(
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Observer.swift:49:21: warning: static property 'riyadh' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
24 | /// elevation: Elevation and/or distance to nearest obscuring feature
25 | /// in metres above/below the location.
26 | public struct Observer {
| `- note: consider making struct 'Observer' conform to the 'Sendable' protocol
27 |
28 | // MARK: Lifecycle
:
47 | public static let london = Observer(latitude: 51.4733, longitude: -0.0008333, elevation: .double(0))
48 | public static let newDelhi = Observer(latitude: 28.6139, longitude: 77.2090, elevation: .double(0))
49 | public static let riyadh = Observer(latitude: 25, longitude: 46.7, elevation: .double(620))
| |- warning: static property 'riyadh' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'riyadh' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
50 | public static let wellington = try! Observer(
51 | latitude: " 41° 17' 11.256'' S",
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Observer.swift:50:21: warning: static property 'wellington' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
24 | /// elevation: Elevation and/or distance to nearest obscuring feature
25 | /// in metres above/below the location.
26 | public struct Observer {
| `- note: consider making struct 'Observer' conform to the 'Sendable' protocol
27 |
28 | // MARK: Lifecycle
:
48 | public static let newDelhi = Observer(latitude: 28.6139, longitude: 77.2090, elevation: .double(0))
49 | public static let riyadh = Observer(latitude: 25, longitude: 46.7, elevation: .double(620))
50 | public static let wellington = try! Observer(
| |- warning: static property 'wellington' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'wellington' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 | latitude: " 41° 17' 11.256'' S",
52 | longitude: "174° 46' 34.4496'' E",
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Observer.swift:54:21: warning: static property 'barcelona' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
24 | /// elevation: Elevation and/or distance to nearest obscuring feature
25 | /// in metres above/below the location.
26 | public struct Observer {
| `- note: consider making struct 'Observer' conform to the 'Sendable' protocol
27 |
28 | // MARK: Lifecycle
:
52 | longitude: "174° 46' 34.4496'' E",
53 | elevation: .double(13.000))
54 | public static let barcelona = try! Observer(
| |- warning: static property 'barcelona' is not concurrency-safe because non-'Sendable' type 'Observer' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'barcelona' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 | latitude: "41° 23' 24.7380'' N",
56 | longitude: "2° 9' 14.4252'' E",
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Table4Row.swift:37:5: warning: let 'table4_v' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
19 | // MARK: - Table4Row
20 |
21 | struct Table4Row {
| `- note: consider making struct 'Table4Row' conform to the 'Sendable' protocol
22 | init(_ coefficient: Double, _ t: Bool, _ sincos: @escaping (Double) -> Double, _ argument_multiplers: [Int: Int]) {
23 | self.coefficient = coefficient
:
35 | // MARK: - Lunar Series Tables
36 |
37 | let table4_v: [Table4Row] = [
| |- warning: let 'table4_v' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'table4_v' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 | Table4Row(0.39558, false, sin, [Gm: 0, Fm: 1, D: 0, Om: 1, Ls: 0, Gs: 0, L2: 0]),
39 | Table4Row(0.08200, false, sin, [Gm: 0, Fm: 1, D: 0, Om: 0, Ls: 0, Gs: 0, L2: 0]),
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Table4Row.swift:104:5: warning: let 'table4_u' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
19 | // MARK: - Table4Row
20 |
21 | struct Table4Row {
| `- note: consider making struct 'Table4Row' conform to the 'Sendable' protocol
22 | init(_ coefficient: Double, _ t: Bool, _ sincos: @escaping (Double) -> Double, _ argument_multiplers: [Int: Int]) {
23 | self.coefficient = coefficient
:
102 | ]
103 |
104 | let table4_u: [Table4Row] = [
| |- warning: let 'table4_u' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'table4_u' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
105 | Table4Row(1, false, cos, [Gm: 0, Fm: 0, D: 0, Om: 0, Ls: 0, Gs: 0, L2: 0]),
106 | Table4Row(-0.10828, false, cos, [Gm: 1, Fm: 0, D: 0, Om: 0, Ls: 0, Gs: 0, L2: 0]),
/Users/admin/builder/spi-builder-workspace/Sources/Astral/Table4Row.swift:137:5: warning: let 'table4_w' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
19 | // MARK: - Table4Row
20 |
21 | struct Table4Row {
| `- note: consider making struct 'Table4Row' conform to the 'Sendable' protocol
22 | init(_ coefficient: Double, _ t: Bool, _ sincos: @escaping (Double) -> Double, _ argument_multiplers: [Int: Int]) {
23 | self.coefficient = coefficient
:
135 | ]
136 |
137 | let table4_w: [Table4Row] = [
| |- warning: let 'table4_w' is not concurrency-safe because non-'Sendable' type '[Table4Row]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'table4_w' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
138 | Table4Row(0.10478, false, sin, [Gm: 1, Fm: 0, D: 0, Om: 0, Ls: 0, Gs: 0, L2: 0]),
139 | Table4Row(-0.04105, false, sin, [Gm: 0, Fm: 2, D: 0, Om: 2, Ls: 0, Gs: 0, L2: 0]),
[55/56] Compiling Astral Types.swift
[56/56] Compiling Astral Zenith.swift
Build complete! (29.23s)
Fetching https://github.com/apple/swift-numerics from cache
Fetching https://github.com/airbnb/swift
[1/5579] Fetching swift
Fetched https://github.com/airbnb/swift from cache (5.86s)
Fetched https://github.com/apple/swift-numerics from cache (5.88s)
Computing version for https://github.com/apple/swift-numerics
Computed https://github.com/apple/swift-numerics at 1.1.1 (6.35s)
Computing version for https://github.com/airbnb/swift
Computed https://github.com/airbnb/swift at 1.2.0 (3.19s)
Fetching https://github.com/apple/swift-argument-parser from cache
Fetched https://github.com/apple/swift-argument-parser from cache (1.88s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.8.2 (2.43s)
Creating working copy for https://github.com/apple/swift-numerics
Working copy of https://github.com/apple/swift-numerics resolved at 1.1.1
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.8.2
Creating working copy for https://github.com/airbnb/swift
Working copy of https://github.com/airbnb/swift resolved at 1.2.0
Downloading binary artifact https://github.com/calda/SwiftFormat-nightly/releases/download/2025-12-20/SwiftFormat.artifactbundle.zip
Downloading binary artifact https://github.com/realm/SwiftLint/releases/download/0.55.1/SwiftLintBinary-macos.artifactbundle.zip
[32750/46271351] Downloading https://github.com/calda/SwiftFormat-nightly/releases/download/2025-12-20/SwiftFormat.artifactbundle.zip
[31704110/57305396] Downloading https://github.com/calda/SwiftFormat-nightly/releases/download/2025-12-20/SwiftFormat.artifactbundle.zip, https://github.com/realm/SwiftLint/releases/download/0.55.1/SwiftLintBinary-macos.artifactbundle.zip
Downloaded https://github.com/realm/SwiftLint/releases/download/0.55.1/SwiftLintBinary-macos.artifactbundle.zip (1.07s)
Downloaded https://github.com/calda/SwiftFormat-nightly/releases/download/2025-12-20/SwiftFormat.artifactbundle.zip (2.52s)
Build complete.
{
"dependencies" : [
{
"identity" : "swift",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/airbnb/swift"
},
{
"identity" : "swift-numerics",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-numerics"
}
],
"manifest_display_name" : "Astral",
"name" : "Astral",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.13"
},
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "watchos",
"version" : "5.0"
}
],
"products" : [
{
"name" : "Astral",
"targets" : [
"Astral"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "AstralTests",
"module_type" : "SwiftTarget",
"name" : "AstralTests",
"path" : "Tests/AstralTests",
"sources" : [
"AstralTests.swift",
"AzimuthTests.swift",
"BugFixRegressionTests.swift",
"DMSTests.swift",
"DateCompoenentHelper.swift",
"ExtremeDateTests.swift",
"JulianTests.swift",
"LocationInfoTests.swift",
"Moon2Tests.swift",
"MoonPostionTests.swift",
"MoonTests.swift",
"ObserverTests.swift",
"PolarRegionTests.swift",
"SideRealTests.swift",
"SolarTermDaysTests.swift",
"SolarTermTests.swift",
"SunCalcTests.swift",
"SunElevationAdjustmentTests.swift",
"SunGoldenHourTests.swift",
"SunLocalTests.swift",
"SunUTCTests.swift",
"TestTags.swift",
"XCTAssertEqual.swift"
],
"target_dependencies" : [
"Astral"
],
"type" : "test"
},
{
"c99name" : "Astral",
"module_type" : "SwiftTarget",
"name" : "Astral",
"path" : "Sources/Astral",
"product_dependencies" : [
"Numerics"
],
"product_memberships" : [
"Astral"
],
"sources" : [
"Angle.swift",
"AstralBodyPosition.swift",
"DateComponent.swift",
"DateComponents+Comparable.swift",
"DateToJC.swift",
"DegressMinutesSeconds.swift",
"Depression.swift",
"Int2Double.swift",
"Julian.swift",
"LocationInfo.swift",
"Moon.swift",
"MoonPhase.swift",
"Observer.swift",
"SideReal.swift",
"SolarTerm.swift",
"Sun.swift",
"SunDirection.swift",
"Table4Row.swift",
"Types.swift",
"Zenith.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Done.