The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of pingx, reference main (66c254), with Swift 6.1 for macOS (SPM) on 30 Apr 2025 06:44:45 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.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/shineRR/pingx.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/shineRR/pingx
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 66c2541 [IMP-1] Transitioning to Swift Testing - Part 2 (#7)
Cloned https://github.com/shineRR/pingx.git
Revision (git rev-parse @):
66c2541918d2a329458e8acd365ef5beb2947851
SUCCESS checkout https://github.com/shineRR/pingx.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/shineRR/pingx.git
https://github.com/shineRR/pingx.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "pingx",
  "name" : "pingx",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "pingx",
      "targets" : [
        "pingx"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "pingxTests",
      "module_type" : "SwiftTarget",
      "name" : "pingxTests",
      "path" : "Tests/pingxTests",
      "sources" : [
        "Converter/IPv4AddressConverterTests.swift",
        "Extenstions/ICMPResponseValidationError+Equatable.swift",
        "Extenstions/XCTestCase+Extensions.swift",
        "ICMPChecksum/ICMPChecksumTests.swift",
        "Mocks/Generated/PacketFactory+AutoMockable.generated.swift",
        "Mocks/Generated/PacketSender+AutoMockable.generated.swift",
        "Mocks/Generated/PingxSocket+AutoMockable.generated.swift",
        "Mocks/Generated/PingxTimer+AutoMockable.generated.swift",
        "Mocks/Generated/SocketFactory+AutoMockable.generated.swift",
        "Mocks/Generated/TimerFactory+AutoMockable.generated.swift",
        "Mocks/Packet/PacketMock.swift",
        "Mocks/PacketSenderDelegate/PacketSenderDelegateMock.swift",
        "Mocks/PingerDelegate/PingerDelegateMock.swift",
        "PacketSender/PacketSenderTests.swift",
        "Pinger/PingerTests.swift",
        "Request/DemandTests.swift",
        "Samples/ICMPHeader+Sample.swift"
      ],
      "target_dependencies" : [
        "pingx"
      ],
      "type" : "test"
    },
    {
      "c99name" : "pingx",
      "module_type" : "SwiftTarget",
      "name" : "pingx",
      "path" : "Sources/pingx",
      "product_memberships" : [
        "pingx"
      ],
      "sources" : [
        "Checksum/Impl/ICMPChecksum.swift",
        "Converter/Api/IPv4AddressConverterApi.swift",
        "Converter/Error/IPv4AddressConverterError.swift",
        "Converter/Impl/IPv4AddressConverter.swift",
        "Extensions/DispatchQueue+Extensions.swift",
        "Extensions/String+Extensions.swift",
        "Factory/PacketFactory/Api/PacketFactory.swift",
        "Factory/PacketFactory/Impl/PacketFactoryImpl.swift",
        "Factory/SocketFactory/Api/SocketFactory.swift",
        "Factory/SocketFactory/Impl/SocketFactoryImpl.swift",
        "Factory/TimerFactory/Api/TimerFactory.swift",
        "Factory/TimerFactory/Impl/TimerFactoryImpl.swift",
        "Model/Atomic/Atomic.swift",
        "Model/CommandBlock/CommandBlock.swift",
        "Model/FatalError/FatalError.swift",
        "Model/IP/IPv4/IPv4Address.swift",
        "Model/IPHeader/IPHeader.swift",
        "Model/PacketType/PacketType.swift",
        "Model/Packets/ICMP/ICMPHeader.swift",
        "Model/Packets/ICMP/ICMPPacket.swift",
        "Model/Packets/ICMP/ICMPType.swift",
        "Model/Packets/Packet/Packet.swift",
        "Model/Payload/Payload.swift",
        "Model/Request/Request.swift",
        "Model/Response/Response.swift",
        "Model/Socket/Api/PingxSocket.swift",
        "Model/Socket/Impl/PingxSocketImpl.swift",
        "Model/Timer/Api/PingxTimer.swift",
        "Model/Timer/Impl/PingxDispatchSourceTimer.swift",
        "PacketSender/Api/PacketSender.swift",
        "PacketSender/Delegate/PacketSenderDelegate.swift",
        "PacketSender/Error/PacketSenderError.swift",
        "PacketSender/Impl/PacketSenderImpl.swift",
        "Pinger/Api/Pinger.swift",
        "Pinger/Configuration/PingerConfiguration.swift",
        "Pinger/Delegate/PingerDelegate.swift",
        "Pinger/Error/ICMPResponseValidationError.swift",
        "Pinger/Error/PingerError.swift",
        "Pinger/Impl/ContinuousPinger.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
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/39] Emitting module pingx
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/FatalError/FatalError.swift:26:16: warning: static property 'trigger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | enum FatalError {
26 |     static var trigger = Swift.fatalError
   |                |- warning: static property 'trigger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'trigger' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'trigger' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | }
28 |
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/Request/Request.swift:103:27: warning: static property 'unlimited' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
 85 |
 86 | public extension Request {
 87 |     struct Demand: Equatable, Hashable {
    |            `- note: consider making struct 'Demand' conform to the 'Sendable' protocol
 88 |
 89 |         // MARK: Properties
    :
101 |
102 |         /// A request for as many values as the pinger can produce.
103 |         public static let unlimited = Request.Demand(max: nil)
    |                           |- warning: static property 'unlimited' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'unlimited' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
104 |
105 |         /// A request for no elements from the pinger.
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/Request/Request.swift:108:27: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
 85 |
 86 | public extension Request {
 87 |     struct Demand: Equatable, Hashable {
    |            `- note: consider making struct 'Demand' conform to the 'Sendable' protocol
 88 |
 89 |         // MARK: Properties
    :
106 |         ///
107 |         /// This is equivalent to `Demand.max(0)`.
108 |         public static let none = Request.Demand(max: .zero)
    |                           |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
109 |
110 |         /// Creates a demand for the given maximum number of elements.
[4/42] Compiling pingx ICMPResponseValidationError.swift
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Pinger/Impl/ContinuousPinger.swift:105:13: warning: capture of 'self' with non-sendable type 'ContinuousPinger?' in a '@Sendable' closure
 25 | import Foundation
 26 |
 27 | public final class ContinuousPinger: Pinger {
    |                    `- note: class 'ContinuousPinger' does not conform to the 'Sendable' protocol
 28 |
 29 |     // MARK: Delegate
    :
103 |     public func stop(request: Request) {
104 |         pingerQueue.async { [weak self] in
105 |             self?.outgoingRequests.removeValue(forKey: request.id)
    |             `- warning: capture of 'self' with non-sendable type 'ContinuousPinger?' in a '@Sendable' closure
106 |         }
107 |     }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Pinger/Impl/ContinuousPinger.swift:105:56: warning: capture of 'request' with non-sendable type 'Request' in a '@Sendable' closure
103 |     public func stop(request: Request) {
104 |         pingerQueue.async { [weak self] in
105 |             self?.outgoingRequests.removeValue(forKey: request.id)
    |                                                        `- warning: capture of 'request' with non-sendable type 'Request' in a '@Sendable' closure
106 |         }
107 |     }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/Request/Request.swift:27:20: note: class 'Request' does not conform to the 'Sendable' protocol
 25 | import Foundation
 26 |
 27 | public final class Request: Identifiable, Equatable {
    |                    `- note: class 'Request' does not conform to the 'Sendable' protocol
 28 |
 29 |     // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Pinger/Impl/ContinuousPinger.swift:111:13: warning: capture of 'self' with non-sendable type 'ContinuousPinger?' in a '@Sendable' closure
 25 | import Foundation
 26 |
 27 | public final class ContinuousPinger: Pinger {
    |                    `- note: class 'ContinuousPinger' does not conform to the 'Sendable' protocol
 28 |
 29 |     // MARK: Delegate
    :
109 |     public func stop(requestId: Request.ID) {
110 |         pingerQueue.async { [weak self] in
111 |             self?.outgoingRequests.removeValue(forKey: requestId)
    |             `- warning: capture of 'self' with non-sendable type 'ContinuousPinger?' in a '@Sendable' closure
112 |         }
113 |     }
[5/42] Compiling pingx PingerError.swift
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Pinger/Impl/ContinuousPinger.swift:105:13: warning: capture of 'self' with non-sendable type 'ContinuousPinger?' in a '@Sendable' closure
 25 | import Foundation
 26 |
 27 | public final class ContinuousPinger: Pinger {
    |                    `- note: class 'ContinuousPinger' does not conform to the 'Sendable' protocol
 28 |
 29 |     // MARK: Delegate
    :
103 |     public func stop(request: Request) {
104 |         pingerQueue.async { [weak self] in
105 |             self?.outgoingRequests.removeValue(forKey: request.id)
    |             `- warning: capture of 'self' with non-sendable type 'ContinuousPinger?' in a '@Sendable' closure
106 |         }
107 |     }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Pinger/Impl/ContinuousPinger.swift:105:56: warning: capture of 'request' with non-sendable type 'Request' in a '@Sendable' closure
103 |     public func stop(request: Request) {
104 |         pingerQueue.async { [weak self] in
105 |             self?.outgoingRequests.removeValue(forKey: request.id)
    |                                                        `- warning: capture of 'request' with non-sendable type 'Request' in a '@Sendable' closure
106 |         }
107 |     }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/Request/Request.swift:27:20: note: class 'Request' does not conform to the 'Sendable' protocol
 25 | import Foundation
 26 |
 27 | public final class Request: Identifiable, Equatable {
    |                    `- note: class 'Request' does not conform to the 'Sendable' protocol
 28 |
 29 |     // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Pinger/Impl/ContinuousPinger.swift:111:13: warning: capture of 'self' with non-sendable type 'ContinuousPinger?' in a '@Sendable' closure
 25 | import Foundation
 26 |
 27 | public final class ContinuousPinger: Pinger {
    |                    `- note: class 'ContinuousPinger' does not conform to the 'Sendable' protocol
 28 |
 29 |     // MARK: Delegate
    :
109 |     public func stop(requestId: Request.ID) {
110 |         pingerQueue.async { [weak self] in
111 |             self?.outgoingRequests.removeValue(forKey: requestId)
    |             `- warning: capture of 'self' with non-sendable type 'ContinuousPinger?' in a '@Sendable' closure
112 |         }
113 |     }
[6/42] Compiling pingx ContinuousPinger.swift
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Pinger/Impl/ContinuousPinger.swift:105:13: warning: capture of 'self' with non-sendable type 'ContinuousPinger?' in a '@Sendable' closure
 25 | import Foundation
 26 |
 27 | public final class ContinuousPinger: Pinger {
    |                    `- note: class 'ContinuousPinger' does not conform to the 'Sendable' protocol
 28 |
 29 |     // MARK: Delegate
    :
103 |     public func stop(request: Request) {
104 |         pingerQueue.async { [weak self] in
105 |             self?.outgoingRequests.removeValue(forKey: request.id)
    |             `- warning: capture of 'self' with non-sendable type 'ContinuousPinger?' in a '@Sendable' closure
106 |         }
107 |     }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Pinger/Impl/ContinuousPinger.swift:105:56: warning: capture of 'request' with non-sendable type 'Request' in a '@Sendable' closure
103 |     public func stop(request: Request) {
104 |         pingerQueue.async { [weak self] in
105 |             self?.outgoingRequests.removeValue(forKey: request.id)
    |                                                        `- warning: capture of 'request' with non-sendable type 'Request' in a '@Sendable' closure
106 |         }
107 |     }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/Request/Request.swift:27:20: note: class 'Request' does not conform to the 'Sendable' protocol
 25 | import Foundation
 26 |
 27 | public final class Request: Identifiable, Equatable {
    |                    `- note: class 'Request' does not conform to the 'Sendable' protocol
 28 |
 29 |     // MARK: Properties
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Pinger/Impl/ContinuousPinger.swift:111:13: warning: capture of 'self' with non-sendable type 'ContinuousPinger?' in a '@Sendable' closure
 25 | import Foundation
 26 |
 27 | public final class ContinuousPinger: Pinger {
    |                    `- note: class 'ContinuousPinger' does not conform to the 'Sendable' protocol
 28 |
 29 |     // MARK: Delegate
    :
109 |     public func stop(requestId: Request.ID) {
110 |         pingerQueue.async { [weak self] in
111 |             self?.outgoingRequests.removeValue(forKey: requestId)
    |             `- warning: capture of 'self' with non-sendable type 'ContinuousPinger?' in a '@Sendable' closure
112 |         }
113 |     }
[7/42] Compiling pingx Atomic.swift
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/FatalError/FatalError.swift:26:16: warning: static property 'trigger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | enum FatalError {
26 |     static var trigger = Swift.fatalError
   |                |- warning: static property 'trigger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'trigger' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'trigger' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | }
28 |
[8/42] Compiling pingx CommandBlock.swift
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/FatalError/FatalError.swift:26:16: warning: static property 'trigger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | enum FatalError {
26 |     static var trigger = Swift.fatalError
   |                |- warning: static property 'trigger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'trigger' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'trigger' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | }
28 |
[9/42] Compiling pingx FatalError.swift
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/FatalError/FatalError.swift:26:16: warning: static property 'trigger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | enum FatalError {
26 |     static var trigger = Swift.fatalError
   |                |- warning: static property 'trigger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'trigger' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'trigger' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | }
28 |
[10/42] Compiling pingx IPv4Address.swift
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/FatalError/FatalError.swift:26:16: warning: static property 'trigger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 |
25 | enum FatalError {
26 |     static var trigger = Swift.fatalError
   |                |- warning: static property 'trigger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'trigger' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'trigger' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | }
28 |
[11/42] Compiling pingx ICMPType.swift
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/Request/Request.swift:103:27: warning: static property 'unlimited' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
 85 |
 86 | public extension Request {
 87 |     struct Demand: Equatable, Hashable {
    |            `- note: consider making struct 'Demand' conform to the 'Sendable' protocol
 88 |
 89 |         // MARK: Properties
    :
101 |
102 |         /// A request for as many values as the pinger can produce.
103 |         public static let unlimited = Request.Demand(max: nil)
    |                           |- warning: static property 'unlimited' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'unlimited' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
104 |
105 |         /// A request for no elements from the pinger.
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/Request/Request.swift:108:27: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
 85 |
 86 | public extension Request {
 87 |     struct Demand: Equatable, Hashable {
    |            `- note: consider making struct 'Demand' conform to the 'Sendable' protocol
 88 |
 89 |         // MARK: Properties
    :
106 |         ///
107 |         /// This is equivalent to `Demand.max(0)`.
108 |         public static let none = Request.Demand(max: .zero)
    |                           |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
109 |
110 |         /// Creates a demand for the given maximum number of elements.
[12/42] Compiling pingx Packet.swift
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/Request/Request.swift:103:27: warning: static property 'unlimited' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
 85 |
 86 | public extension Request {
 87 |     struct Demand: Equatable, Hashable {
    |            `- note: consider making struct 'Demand' conform to the 'Sendable' protocol
 88 |
 89 |         // MARK: Properties
    :
101 |
102 |         /// A request for as many values as the pinger can produce.
103 |         public static let unlimited = Request.Demand(max: nil)
    |                           |- warning: static property 'unlimited' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'unlimited' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
104 |
105 |         /// A request for no elements from the pinger.
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/Request/Request.swift:108:27: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
 85 |
 86 | public extension Request {
 87 |     struct Demand: Equatable, Hashable {
    |            `- note: consider making struct 'Demand' conform to the 'Sendable' protocol
 88 |
 89 |         // MARK: Properties
    :
106 |         ///
107 |         /// This is equivalent to `Demand.max(0)`.
108 |         public static let none = Request.Demand(max: .zero)
    |                           |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
109 |
110 |         /// Creates a demand for the given maximum number of elements.
[13/42] Compiling pingx Payload.swift
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/Request/Request.swift:103:27: warning: static property 'unlimited' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
 85 |
 86 | public extension Request {
 87 |     struct Demand: Equatable, Hashable {
    |            `- note: consider making struct 'Demand' conform to the 'Sendable' protocol
 88 |
 89 |         // MARK: Properties
    :
101 |
102 |         /// A request for as many values as the pinger can produce.
103 |         public static let unlimited = Request.Demand(max: nil)
    |                           |- warning: static property 'unlimited' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'unlimited' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
104 |
105 |         /// A request for no elements from the pinger.
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/Request/Request.swift:108:27: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
 85 |
 86 | public extension Request {
 87 |     struct Demand: Equatable, Hashable {
    |            `- note: consider making struct 'Demand' conform to the 'Sendable' protocol
 88 |
 89 |         // MARK: Properties
    :
106 |         ///
107 |         /// This is equivalent to `Demand.max(0)`.
108 |         public static let none = Request.Demand(max: .zero)
    |                           |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
109 |
110 |         /// Creates a demand for the given maximum number of elements.
[14/42] Compiling pingx Request.swift
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/Request/Request.swift:103:27: warning: static property 'unlimited' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
 85 |
 86 | public extension Request {
 87 |     struct Demand: Equatable, Hashable {
    |            `- note: consider making struct 'Demand' conform to the 'Sendable' protocol
 88 |
 89 |         // MARK: Properties
    :
101 |
102 |         /// A request for as many values as the pinger can produce.
103 |         public static let unlimited = Request.Demand(max: nil)
    |                           |- warning: static property 'unlimited' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'unlimited' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
104 |
105 |         /// A request for no elements from the pinger.
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Model/Request/Request.swift:108:27: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
 85 |
 86 | public extension Request {
 87 |     struct Demand: Equatable, Hashable {
    |            `- note: consider making struct 'Demand' conform to the 'Sendable' protocol
 88 |
 89 |         // MARK: Properties
    :
106 |         ///
107 |         /// This is equivalent to `Demand.max(0)`.
108 |         public static let none = Request.Demand(max: .zero)
    |                           |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Request.Demand' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
109 |
110 |         /// Creates a demand for the given maximum number of elements.
[15/42] Compiling pingx Response.swift
[16/42] Compiling pingx PingxSocket.swift
[17/42] Compiling pingx PingxSocketImpl.swift
[18/42] Compiling pingx PingxTimer.swift
[19/42] Compiling pingx SocketFactory.swift
[20/42] Compiling pingx SocketFactoryImpl.swift
[21/42] Compiling pingx TimerFactory.swift
[22/42] Compiling pingx TimerFactoryImpl.swift
[23/42] Compiling pingx IPHeader.swift
[24/42] Compiling pingx PacketType.swift
[25/42] Compiling pingx ICMPHeader.swift
[26/42] Compiling pingx ICMPPacket.swift
[27/42] Compiling pingx DispatchQueue+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:34:9: warning: capture of 'function' with non-sendable type '(T) -> Void' in a '@Sendable' closure
32 | ) {
33 |     queue.asyncAfter(deadline: deadline) {
34 |         function(value)
   |         |- warning: capture of 'function' with non-sendable type '(T) -> Void' in a '@Sendable' closure
   |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |     }
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:34:18: warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
25 | import Foundation
26 |
27 | func performAfter<T>(
   |                   `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
28 |     deadline: DispatchTime,
29 |     _ function: @escaping (T) -> Void,
   :
32 | ) {
33 |     queue.asyncAfter(deadline: deadline) {
34 |         function(value)
   |                  `- warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
35 |     }
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:40:9: warning: capture of 'function' with non-sendable type '(T) -> Void' in a '@Sendable' closure
38 | func perform<T>(_ function: @escaping (T) -> Void, value: T, on queue: DispatchQueue) {
39 |     queue.async {
40 |         function(value)
   |         |- warning: capture of 'function' with non-sendable type '(T) -> Void' in a '@Sendable' closure
   |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
41 |     }
42 | }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:40:18: warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
36 | }
37 |
38 | func perform<T>(_ function: @escaping (T) -> Void, value: T, on queue: DispatchQueue) {
   |              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
39 |     queue.async {
40 |         function(value)
   |                  `- warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
41 |     }
42 | }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:45:26: warning: passing non-sendable parameter 'function' to function expecting a @Sendable closure
42 | }
43 |
44 | func perform(_ function: @escaping () -> Void, on queue: DispatchQueue) {
   |                `- note: parameter 'function' is implicitly non-sendable
45 |     queue.async(execute: function)
   |                          `- warning: passing non-sendable parameter 'function' to function expecting a @Sendable closure
46 | }
47 |
[28/42] Compiling pingx String+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:34:9: warning: capture of 'function' with non-sendable type '(T) -> Void' in a '@Sendable' closure
32 | ) {
33 |     queue.asyncAfter(deadline: deadline) {
34 |         function(value)
   |         |- warning: capture of 'function' with non-sendable type '(T) -> Void' in a '@Sendable' closure
   |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |     }
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:34:18: warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
25 | import Foundation
26 |
27 | func performAfter<T>(
   |                   `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
28 |     deadline: DispatchTime,
29 |     _ function: @escaping (T) -> Void,
   :
32 | ) {
33 |     queue.asyncAfter(deadline: deadline) {
34 |         function(value)
   |                  `- warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
35 |     }
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:40:9: warning: capture of 'function' with non-sendable type '(T) -> Void' in a '@Sendable' closure
38 | func perform<T>(_ function: @escaping (T) -> Void, value: T, on queue: DispatchQueue) {
39 |     queue.async {
40 |         function(value)
   |         |- warning: capture of 'function' with non-sendable type '(T) -> Void' in a '@Sendable' closure
   |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
41 |     }
42 | }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:40:18: warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
36 | }
37 |
38 | func perform<T>(_ function: @escaping (T) -> Void, value: T, on queue: DispatchQueue) {
   |              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
39 |     queue.async {
40 |         function(value)
   |                  `- warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
41 |     }
42 | }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:45:26: warning: passing non-sendable parameter 'function' to function expecting a @Sendable closure
42 | }
43 |
44 | func perform(_ function: @escaping () -> Void, on queue: DispatchQueue) {
   |                `- note: parameter 'function' is implicitly non-sendable
45 |     queue.async(execute: function)
   |                          `- warning: passing non-sendable parameter 'function' to function expecting a @Sendable closure
46 | }
47 |
[29/42] Compiling pingx PacketFactory.swift
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:34:9: warning: capture of 'function' with non-sendable type '(T) -> Void' in a '@Sendable' closure
32 | ) {
33 |     queue.asyncAfter(deadline: deadline) {
34 |         function(value)
   |         |- warning: capture of 'function' with non-sendable type '(T) -> Void' in a '@Sendable' closure
   |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |     }
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:34:18: warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
25 | import Foundation
26 |
27 | func performAfter<T>(
   |                   `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
28 |     deadline: DispatchTime,
29 |     _ function: @escaping (T) -> Void,
   :
32 | ) {
33 |     queue.asyncAfter(deadline: deadline) {
34 |         function(value)
   |                  `- warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
35 |     }
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:40:9: warning: capture of 'function' with non-sendable type '(T) -> Void' in a '@Sendable' closure
38 | func perform<T>(_ function: @escaping (T) -> Void, value: T, on queue: DispatchQueue) {
39 |     queue.async {
40 |         function(value)
   |         |- warning: capture of 'function' with non-sendable type '(T) -> Void' in a '@Sendable' closure
   |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
41 |     }
42 | }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:40:18: warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
36 | }
37 |
38 | func perform<T>(_ function: @escaping (T) -> Void, value: T, on queue: DispatchQueue) {
   |              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
39 |     queue.async {
40 |         function(value)
   |                  `- warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
41 |     }
42 | }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:45:26: warning: passing non-sendable parameter 'function' to function expecting a @Sendable closure
42 | }
43 |
44 | func perform(_ function: @escaping () -> Void, on queue: DispatchQueue) {
   |                `- note: parameter 'function' is implicitly non-sendable
45 |     queue.async(execute: function)
   |                          `- warning: passing non-sendable parameter 'function' to function expecting a @Sendable closure
46 | }
47 |
[30/42] Compiling pingx PacketFactoryImpl.swift
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:34:9: warning: capture of 'function' with non-sendable type '(T) -> Void' in a '@Sendable' closure
32 | ) {
33 |     queue.asyncAfter(deadline: deadline) {
34 |         function(value)
   |         |- warning: capture of 'function' with non-sendable type '(T) -> Void' in a '@Sendable' closure
   |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
35 |     }
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:34:18: warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
25 | import Foundation
26 |
27 | func performAfter<T>(
   |                   `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
28 |     deadline: DispatchTime,
29 |     _ function: @escaping (T) -> Void,
   :
32 | ) {
33 |     queue.asyncAfter(deadline: deadline) {
34 |         function(value)
   |                  `- warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
35 |     }
36 | }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:40:9: warning: capture of 'function' with non-sendable type '(T) -> Void' in a '@Sendable' closure
38 | func perform<T>(_ function: @escaping (T) -> Void, value: T, on queue: DispatchQueue) {
39 |     queue.async {
40 |         function(value)
   |         |- warning: capture of 'function' with non-sendable type '(T) -> Void' in a '@Sendable' closure
   |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
41 |     }
42 | }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:40:18: warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
36 | }
37 |
38 | func perform<T>(_ function: @escaping (T) -> Void, value: T, on queue: DispatchQueue) {
   |              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
39 |     queue.async {
40 |         function(value)
   |                  `- warning: capture of 'value' with non-sendable type 'T' in a '@Sendable' closure
41 |     }
42 | }
/Users/admin/builder/spi-builder-workspace/Sources/pingx/Extensions/DispatchQueue+Extensions.swift:45:26: warning: passing non-sendable parameter 'function' to function expecting a @Sendable closure
42 | }
43 |
44 | func perform(_ function: @escaping () -> Void, on queue: DispatchQueue) {
   |                `- note: parameter 'function' is implicitly non-sendable
45 |     queue.async(execute: function)
   |                          `- warning: passing non-sendable parameter 'function' to function expecting a @Sendable closure
46 | }
47 |
[31/42] Compiling pingx PacketSenderImpl.swift
[32/42] Compiling pingx Pinger.swift
[33/42] Compiling pingx PingerConfiguration.swift
[34/42] Compiling pingx PingerDelegate.swift
[35/42] Compiling pingx PingxDispatchSourceTimer.swift
[36/42] Compiling pingx PacketSender.swift
[37/42] Compiling pingx PacketSenderDelegate.swift
[38/42] Compiling pingx PacketSenderError.swift
[39/42] Compiling pingx ICMPChecksum.swift
[40/42] Compiling pingx IPv4AddressConverterApi.swift
[41/42] Compiling pingx IPv4AddressConverterError.swift
[42/42] Compiling pingx IPv4AddressConverter.swift
Build complete! (6.01s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "pingx",
  "name" : "pingx",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "pingx",
      "targets" : [
        "pingx"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "pingxTests",
      "module_type" : "SwiftTarget",
      "name" : "pingxTests",
      "path" : "Tests/pingxTests",
      "sources" : [
        "Converter/IPv4AddressConverterTests.swift",
        "Extenstions/ICMPResponseValidationError+Equatable.swift",
        "Extenstions/XCTestCase+Extensions.swift",
        "ICMPChecksum/ICMPChecksumTests.swift",
        "Mocks/Generated/PacketFactory+AutoMockable.generated.swift",
        "Mocks/Generated/PacketSender+AutoMockable.generated.swift",
        "Mocks/Generated/PingxSocket+AutoMockable.generated.swift",
        "Mocks/Generated/PingxTimer+AutoMockable.generated.swift",
        "Mocks/Generated/SocketFactory+AutoMockable.generated.swift",
        "Mocks/Generated/TimerFactory+AutoMockable.generated.swift",
        "Mocks/Packet/PacketMock.swift",
        "Mocks/PacketSenderDelegate/PacketSenderDelegateMock.swift",
        "Mocks/PingerDelegate/PingerDelegateMock.swift",
        "PacketSender/PacketSenderTests.swift",
        "Pinger/PingerTests.swift",
        "Request/DemandTests.swift",
        "Samples/ICMPHeader+Sample.swift"
      ],
      "target_dependencies" : [
        "pingx"
      ],
      "type" : "test"
    },
    {
      "c99name" : "pingx",
      "module_type" : "SwiftTarget",
      "name" : "pingx",
      "path" : "Sources/pingx",
      "product_memberships" : [
        "pingx"
      ],
      "sources" : [
        "Checksum/Impl/ICMPChecksum.swift",
        "Converter/Api/IPv4AddressConverterApi.swift",
        "Converter/Error/IPv4AddressConverterError.swift",
        "Converter/Impl/IPv4AddressConverter.swift",
        "Extensions/DispatchQueue+Extensions.swift",
        "Extensions/String+Extensions.swift",
        "Factory/PacketFactory/Api/PacketFactory.swift",
        "Factory/PacketFactory/Impl/PacketFactoryImpl.swift",
        "Factory/SocketFactory/Api/SocketFactory.swift",
        "Factory/SocketFactory/Impl/SocketFactoryImpl.swift",
        "Factory/TimerFactory/Api/TimerFactory.swift",
        "Factory/TimerFactory/Impl/TimerFactoryImpl.swift",
        "Model/Atomic/Atomic.swift",
        "Model/CommandBlock/CommandBlock.swift",
        "Model/FatalError/FatalError.swift",
        "Model/IP/IPv4/IPv4Address.swift",
        "Model/IPHeader/IPHeader.swift",
        "Model/PacketType/PacketType.swift",
        "Model/Packets/ICMP/ICMPHeader.swift",
        "Model/Packets/ICMP/ICMPPacket.swift",
        "Model/Packets/ICMP/ICMPType.swift",
        "Model/Packets/Packet/Packet.swift",
        "Model/Payload/Payload.swift",
        "Model/Request/Request.swift",
        "Model/Response/Response.swift",
        "Model/Socket/Api/PingxSocket.swift",
        "Model/Socket/Impl/PingxSocketImpl.swift",
        "Model/Timer/Api/PingxTimer.swift",
        "Model/Timer/Impl/PingxDispatchSourceTimer.swift",
        "PacketSender/Api/PacketSender.swift",
        "PacketSender/Delegate/PacketSenderDelegate.swift",
        "PacketSender/Error/PacketSenderError.swift",
        "PacketSender/Impl/PacketSenderImpl.swift",
        "Pinger/Api/Pinger.swift",
        "Pinger/Configuration/PingerConfiguration.swift",
        "Pinger/Delegate/PingerDelegate.swift",
        "Pinger/Error/ICMPResponseValidationError.swift",
        "Pinger/Error/PingerError.swift",
        "Pinger/Impl/ContinuousPinger.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.