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 SenseHat, reference main (f9c93a), with Swift 6.1 for macOS (SPM) on 26 Apr 2025 07:10:52 UTC.

Swift 6 data race errors: 1

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/valeriyvan/RaspberryPiSenseHat.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/valeriyvan/RaspberryPiSenseHat
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at f9c93a6 Merge pull request #85 from valeriyvan/buymeacoffee
Cloned https://github.com/valeriyvan/RaspberryPiSenseHat.git
Revision (git rev-parse @):
f9c93a609e0d53e5a6af5da67574d18269d68f2a
SUCCESS checkout https://github.com/valeriyvan/RaspberryPiSenseHat.git at main
========================================
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": "raspberrypisensehat",
      "name": "SenseHat",
      "url": "https://github.com/valeriyvan/RaspberryPiSenseHat.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/RaspberryPiSenseHat",
      "dependencies": [
      ]
    }
  ]
}
Fetching https://github.com/valeriyvan/RaspberryPiSenseHat.git
[1/1110] Fetching raspberrypisensehat
Fetched https://github.com/valeriyvan/RaspberryPiSenseHat.git from cache (1.27s)
Creating working copy for https://github.com/valeriyvan/RaspberryPiSenseHat.git
Working copy of https://github.com/valeriyvan/RaspberryPiSenseHat.git resolved at main (f9c93a6)
Found 0 product dependencies
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/valeriyvan/RaspberryPiSenseHat.git
https://github.com/valeriyvan/RaspberryPiSenseHat.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "SenseHat",
  "name" : "SenseHat",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "SenseHat",
      "targets" : [
        "SenseHat"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "Font8x8",
      "targets" : [
        "Font8x8"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "Blink",
      "targets" : [
        "Blink"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "Snake",
      "targets" : [
        "Snake"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "Life",
      "targets" : [
        "Life"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "Sensors",
      "targets" : [
        "Sensors"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "Snake",
      "module_type" : "SwiftTarget",
      "name" : "Snake",
      "path" : "Sources/Snake",
      "product_memberships" : [
        "Snake"
      ],
      "sources" : [
        "main.swift"
      ],
      "target_dependencies" : [
        "SenseHat"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "Sensors",
      "module_type" : "SwiftTarget",
      "name" : "Sensors",
      "path" : "Sources/Sensors",
      "product_memberships" : [
        "Sensors"
      ],
      "sources" : [
        "main.swift"
      ],
      "target_dependencies" : [
        "SenseHat"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "SenseHatTests",
      "module_type" : "SwiftTarget",
      "name" : "SenseHatTests",
      "path" : "Tests/SenseHatTests",
      "sources" : [
        "SenseHatTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "SenseHat"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SenseHat",
      "module_type" : "SwiftTarget",
      "name" : "SenseHat",
      "path" : "Sources/SenseHat",
      "product_memberships" : [
        "SenseHat",
        "Blink",
        "Snake",
        "Life",
        "Sensors"
      ],
      "sources" : [
        "SenseHat.swift",
        "Sensors.swift",
        "stderr.swift"
      ],
      "target_dependencies" : [
        "Font8x8"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Life",
      "module_type" : "SwiftTarget",
      "name" : "Life",
      "path" : "Sources/Life",
      "product_memberships" : [
        "Life"
      ],
      "sources" : [
        "main.swift"
      ],
      "target_dependencies" : [
        "SenseHat"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "Font8x8",
      "module_type" : "ClangTarget",
      "name" : "Font8x8",
      "path" : "Sources/Font8x8",
      "product_memberships" : [
        "SenseHat",
        "Font8x8",
        "Blink",
        "Snake",
        "Life",
        "Sensors"
      ],
      "sources" : [
        "Font8x8.c"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Blink",
      "module_type" : "SwiftTarget",
      "name" : "Blink",
      "path" : "Sources/Blink",
      "product_memberships" : [
        "Blink"
      ],
      "sources" : [
        "main.swift"
      ],
      "target_dependencies" : [
        "SenseHat"
      ],
      "type" : "executable"
    }
  ],
  "tools_version" : "5.1"
}
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/23] Write Snake-entitlement.plist
[1/23] Write Sensors-entitlement.plist
[1/23] Write sources
[1/23] Write Life-entitlement.plist
[5/23] Write sources
[5/23] Write Blink-entitlement.plist
[7/23] Write sources
[9/23] Compiling Font8x8 Font8x8.c
[10/23] Write swift-version-2F0A5646E1D333AE.txt
[12/27] Compiling SenseHat stderr.swift
/Users/admin/builder/spi-builder-workspace/Sources/SenseHat/stderr.swift:9:12: warning: var 'standardError' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 7 | import Foundation
 8 |
 9 | public var standardError = FileHandle.standardError
   |            |- warning: var 'standardError' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |            |- note: convert 'standardError' to a 'let' constant to make 'Sendable' shared state immutable
   |            |- note: add '@MainActor' to make var 'standardError' part of global actor 'MainActor'
   |            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 |
11 | extension FileHandle : TextOutputStream {
/Users/admin/builder/spi-builder-workspace/Sources/SenseHat/stderr.swift:11:1: warning: extension declares a conformance of imported type 'FileHandle' to imported protocol 'TextOutputStream'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
 9 | public var standardError = FileHandle.standardError
10 |
11 | extension FileHandle : TextOutputStream {
   | |- warning: extension declares a conformance of imported type 'FileHandle' to imported protocol 'TextOutputStream'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
12 |   public func write(_ string: String) {
13 |     guard let data = string.data(using: .utf8) else { return }
[13/27] Compiling SenseHat Sensors.swift
[14/27] Emitting module SenseHat
/Users/admin/builder/spi-builder-workspace/Sources/SenseHat/stderr.swift:9:12: warning: var 'standardError' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 7 | import Foundation
 8 |
 9 | public var standardError = FileHandle.standardError
   |            |- warning: var 'standardError' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |            |- note: convert 'standardError' to a 'let' constant to make 'Sendable' shared state immutable
   |            |- note: add '@MainActor' to make var 'standardError' part of global actor 'MainActor'
   |            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 |
11 | extension FileHandle : TextOutputStream {
/Users/admin/builder/spi-builder-workspace/Sources/SenseHat/stderr.swift:11:1: warning: extension declares a conformance of imported type 'FileHandle' to imported protocol 'TextOutputStream'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
 9 | public var standardError = FileHandle.standardError
10 |
11 | extension FileHandle : TextOutputStream {
   | |- warning: extension declares a conformance of imported type 'FileHandle' to imported protocol 'TextOutputStream'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
12 |   public func write(_ string: String) {
13 |     guard let data = string.data(using: .utf8) else { return }
[15/27] Compiling SenseHat SenseHat.swift
/Users/admin/builder/spi-builder-workspace/Sources/SenseHat/SenseHat.swift:300:41: warning: reference to var 'font8x8_basic' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
298 |         case 0x0000...0x007F:
299 |             let i = Int(unicodeCodePoint)
300 |             return withUnsafeBytes(of: &font8x8_basic) { charData($0, i, c, b) }
    |                                         `- warning: reference to var 'font8x8_basic' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
301 |         case 0x00A0...0x00FF:
302 |             let i = Int(unicodeCodePoint) - 0x00A0
/Users/admin/builder/spi-builder-workspace/Sources/Font8x8/include/Font8x8.h:1:13: note: var declared here
1 | extern char font8x8_basic[128][8];
  |             `- note: var declared here
2 | extern char font8x8_block[32][8];
3 | extern char font8x8_box[128][8];
/Users/admin/builder/spi-builder-workspace/Sources/SenseHat/SenseHat.swift:303:41: warning: reference to var 'font8x8_ext_latin' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
301 |         case 0x00A0...0x00FF:
302 |             let i = Int(unicodeCodePoint) - 0x00A0
303 |             return withUnsafeBytes(of: &font8x8_ext_latin) { charData($0, i, c, b) }
    |                                         `- warning: reference to var 'font8x8_ext_latin' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
304 |         case 0x2500...0x257F:
305 |             let i = Int(unicodeCodePoint) - 0x2500
/Users/admin/builder/spi-builder-workspace/Sources/Font8x8/include/Font8x8.h:4:13: note: var declared here
2 | extern char font8x8_block[32][8];
3 | extern char font8x8_box[128][8];
4 | extern char font8x8_ext_latin[96][8];
  |             `- note: var declared here
5 | extern char font8x8_greek[58][8];
6 | extern char font8x8_hiragana[96][8];
/Users/admin/builder/spi-builder-workspace/Sources/SenseHat/SenseHat.swift:306:41: warning: reference to var 'font8x8_box' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
304 |         case 0x2500...0x257F:
305 |             let i = Int(unicodeCodePoint) - 0x2500
306 |             return withUnsafeBytes(of: &font8x8_box) { charData($0, i, c, b) }
    |                                         `- warning: reference to var 'font8x8_box' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
307 |         case 0x2580...0x259F:
308 |             let i = Int(unicodeCodePoint) - 0x2580
/Users/admin/builder/spi-builder-workspace/Sources/Font8x8/include/Font8x8.h:3:13: note: var declared here
1 | extern char font8x8_basic[128][8];
2 | extern char font8x8_block[32][8];
3 | extern char font8x8_box[128][8];
  |             `- note: var declared here
4 | extern char font8x8_ext_latin[96][8];
5 | extern char font8x8_greek[58][8];
/Users/admin/builder/spi-builder-workspace/Sources/SenseHat/SenseHat.swift:309:41: warning: reference to var 'font8x8_block' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
307 |         case 0x2580...0x259F:
308 |             let i = Int(unicodeCodePoint) - 0x2580
309 |             return withUnsafeBytes(of: &font8x8_block) { charData($0, i, c, b) }
    |                                         `- warning: reference to var 'font8x8_block' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
310 |         case 0x3040...0x309F:
311 |             let i = Int(unicodeCodePoint) - 0x3040
/Users/admin/builder/spi-builder-workspace/Sources/Font8x8/include/Font8x8.h:2:13: note: var declared here
1 | extern char font8x8_basic[128][8];
2 | extern char font8x8_block[32][8];
  |             `- note: var declared here
3 | extern char font8x8_box[128][8];
4 | extern char font8x8_ext_latin[96][8];
/Users/admin/builder/spi-builder-workspace/Sources/SenseHat/SenseHat.swift:312:41: warning: reference to var 'font8x8_hiragana' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
310 |         case 0x3040...0x309F:
311 |             let i = Int(unicodeCodePoint) - 0x3040
312 |             return withUnsafeBytes(of: &font8x8_hiragana) { charData($0, i, c, b) }
    |                                         `- warning: reference to var 'font8x8_hiragana' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
313 |         case 0x0390...0x03C9:
314 |             let i = Int(unicodeCodePoint) - 0x0390
/Users/admin/builder/spi-builder-workspace/Sources/Font8x8/include/Font8x8.h:6:13: note: var declared here
4 | extern char font8x8_ext_latin[96][8];
5 | extern char font8x8_greek[58][8];
6 | extern char font8x8_hiragana[96][8];
  |             `- note: var declared here
7 | extern char font8x8_sga[26][8];
8 |
/Users/admin/builder/spi-builder-workspace/Sources/SenseHat/SenseHat.swift:315:41: warning: reference to var 'font8x8_greek' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
313 |         case 0x0390...0x03C9:
314 |             let i = Int(unicodeCodePoint) - 0x0390
315 |             return withUnsafeBytes(of: &font8x8_greek) { charData($0, i, c, b) }
    |                                         `- warning: reference to var 'font8x8_greek' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
316 |         case 0xE541...0xE55A:
317 |             let i = Int(unicodeCodePoint) - 0xE541
/Users/admin/builder/spi-builder-workspace/Sources/Font8x8/include/Font8x8.h:5:13: note: var declared here
3 | extern char font8x8_box[128][8];
4 | extern char font8x8_ext_latin[96][8];
5 | extern char font8x8_greek[58][8];
  |             `- note: var declared here
6 | extern char font8x8_hiragana[96][8];
7 | extern char font8x8_sga[26][8];
/Users/admin/builder/spi-builder-workspace/Sources/SenseHat/SenseHat.swift:318:41: warning: reference to var 'font8x8_sga' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
316 |         case 0xE541...0xE55A:
317 |             let i = Int(unicodeCodePoint) - 0xE541
318 |             return withUnsafeBytes(of: &font8x8_sga) { charData($0, i, c, b) }
    |                                         `- warning: reference to var 'font8x8_sga' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
319 |         default:
320 |             let background =
/Users/admin/builder/spi-builder-workspace/Sources/Font8x8/include/Font8x8.h:7:13: note: var declared here
5 | extern char font8x8_greek[58][8];
6 | extern char font8x8_hiragana[96][8];
7 | extern char font8x8_sga[26][8];
  |             `- note: var declared here
8 |
/Users/admin/builder/spi-builder-workspace/Sources/SenseHat/SenseHat.swift:497:13: warning: capture of 'self' with non-sendable type 'SenseHat?' in a '@Sendable' closure
 19 | // MARK: SenseHat
 20 |
 21 | public class SenseHat {
    |              `- note: class 'SenseHat' does not conform to the 'Sendable' protocol
 22 |
 23 |     private var fileDescriptor: Int32
    :
495 |         }
496 |         joystickCallbackDispatchQueue?.async { [weak self] in
497 |             self?.joystickCallback?(button, action)
    |             `- warning: capture of 'self' with non-sendable type 'SenseHat?' in a '@Sendable' closure
498 |         }
499 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SenseHat/SenseHat.swift:497:37: warning: capture of 'button' with non-sendable type 'SenseHat.JoystickButton' in a '@Sendable' closure
411 |     }
412 |
413 |     public enum JoystickButton: UInt16 {
    |                 `- note: consider making enum 'JoystickButton' conform to the 'Sendable' protocol
414 |         case up = 103, right = 106, down = 108, left = 105, enter = 28
415 |     }
    :
495 |         }
496 |         joystickCallbackDispatchQueue?.async { [weak self] in
497 |             self?.joystickCallback?(button, action)
    |                                     `- warning: capture of 'button' with non-sendable type 'SenseHat.JoystickButton' in a '@Sendable' closure
498 |         }
499 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SenseHat/SenseHat.swift:497:45: warning: capture of 'action' with non-sendable type 'SenseHat.JoystickButtonAction' in a '@Sendable' closure
407 |
408 | extension SenseHat {
409 |     public enum JoystickButtonAction: Int32 {
    |                 `- note: consider making enum 'JoystickButtonAction' conform to the 'Sendable' protocol
410 |         case press = 1, release = 0, `repeat` = 2
411 |     }
    :
495 |         }
496 |         joystickCallbackDispatchQueue?.async { [weak self] in
497 |             self?.joystickCallback?(button, action)
    |                                             `- warning: capture of 'action' with non-sendable type 'SenseHat.JoystickButtonAction' in a '@Sendable' closure
498 |         }
499 |     }
[16/35] Emitting module Life
[17/35] Compiling Life main.swift
/Users/admin/builder/spi-builder-workspace/Sources/Life/main.swift:28:14: error: main actor-isolated var 'cells' can not be referenced from a nonisolated context
22 | }
23 |
24 | var cells = [[Bool]](repeating: [Bool](repeating: true, count: 8), count: 8)
   |     `- note: var declared here
25 |
26 | func restart() -> Void {
   |      `- note: add '@MainActor' to make global function 'restart()' part of global actor 'MainActor'
27 |     print("Restarting.")
28 |     for x in cells.indices {
   |              `- error: main actor-isolated var 'cells' can not be referenced from a nonisolated context
29 |         for y in cells[x].indices {
30 |             cells[x][y] = Bool.random()
/Users/admin/builder/spi-builder-workspace/Sources/Life/main.swift:29:18: error: main actor-isolated var 'cells' can not be referenced from a nonisolated context
22 | }
23 |
24 | var cells = [[Bool]](repeating: [Bool](repeating: true, count: 8), count: 8)
   |     `- note: var declared here
25 |
26 | func restart() -> Void {
   |      `- note: add '@MainActor' to make global function 'restart()' part of global actor 'MainActor'
27 |     print("Restarting.")
28 |     for x in cells.indices {
29 |         for y in cells[x].indices {
   |                  `- error: main actor-isolated var 'cells' can not be referenced from a nonisolated context
30 |             cells[x][y] = Bool.random()
31 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Life/main.swift:30:13: error: main actor-isolated var 'cells' can not be mutated from a nonisolated context
22 | }
23 |
24 | var cells = [[Bool]](repeating: [Bool](repeating: true, count: 8), count: 8)
   |     `- note: mutation of this var is only permitted within the actor
25 |
26 | func restart() -> Void {
   |      `- note: add '@MainActor' to make global function 'restart()' part of global actor 'MainActor'
27 |     print("Restarting.")
28 |     for x in cells.indices {
29 |         for y in cells[x].indices {
30 |             cells[x][y] = Bool.random()
   |             `- error: main actor-isolated var 'cells' can not be mutated from a nonisolated context
31 |         }
32 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Life/main.swift:34:14: error: main actor-isolated var 'cells' can not be referenced from a nonisolated context
22 | }
23 |
24 | var cells = [[Bool]](repeating: [Bool](repeating: true, count: 8), count: 8)
   |     `- note: var declared here
25 |
26 | func restart() -> Void {
   |      `- note: add '@MainActor' to make global function 'restart()' part of global actor 'MainActor'
27 |     print("Restarting.")
28 |     for x in cells.indices {
   :
32 |     }
33 |
34 |     for x in cells.indices {
   |              `- error: main actor-isolated var 'cells' can not be referenced from a nonisolated context
35 |         for y in cells[x].indices {
36 |             senseHat[x, y] = cells[x][y] ? .red : .black
/Users/admin/builder/spi-builder-workspace/Sources/Life/main.swift:35:18: error: main actor-isolated var 'cells' can not be referenced from a nonisolated context
22 | }
23 |
24 | var cells = [[Bool]](repeating: [Bool](repeating: true, count: 8), count: 8)
   |     `- note: var declared here
25 |
26 | func restart() -> Void {
   |      `- note: add '@MainActor' to make global function 'restart()' part of global actor 'MainActor'
27 |     print("Restarting.")
28 |     for x in cells.indices {
   :
33 |
34 |     for x in cells.indices {
35 |         for y in cells[x].indices {
   |                  `- error: main actor-isolated var 'cells' can not be referenced from a nonisolated context
36 |             senseHat[x, y] = cells[x][y] ? .red : .black
37 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Life/main.swift:36:30: error: main actor-isolated var 'cells' can not be referenced from a nonisolated context
22 | }
23 |
24 | var cells = [[Bool]](repeating: [Bool](repeating: true, count: 8), count: 8)
   |     `- note: var declared here
25 |
26 | func restart() -> Void {
   |      `- note: add '@MainActor' to make global function 'restart()' part of global actor 'MainActor'
27 |     print("Restarting.")
28 |     for x in cells.indices {
   :
34 |     for x in cells.indices {
35 |         for y in cells[x].indices {
36 |             senseHat[x, y] = cells[x][y] ? .red : .black
   |                              `- error: main actor-isolated var 'cells' can not be referenced from a nonisolated context
37 |         }
38 |     }
[18/35] Emitting module Snake
[19/35] Emitting module Blink
/Users/admin/builder/spi-builder-workspace/Sources/Blink/main.swift:60:14: warning: 'assign(repeating:count:)' is deprecated: renamed to 'update(repeating:count:)'
 58 |             .advanced(by: x * senseHat.indices.count * 2)
 59 |             .assumingMemoryBound(to: SenseHat.Rgb565.self)
 60 |             .assign(repeating: sequence[x], count: senseHat.indices.count)
    |              |- warning: 'assign(repeating:count:)' is deprecated: renamed to 'update(repeating:count:)'
    |              `- note: use 'update(repeating:count:)' instead
 61 |     }
 62 | }
[20/35] Emitting module Sensors
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
[0/1] Planning build
Building for debugging...
[0/13] Write swift-version-2F0A5646E1D333AE.txt
[2/17] Compiling SenseHat stderr.swift
/Users/admin/builder/spi-builder-workspace/Sources/SenseHat/stderr.swift:11:1: warning: extension declares a conformance of imported type 'FileHandle' to imported protocol 'TextOutputStream'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
 9 | public var standardError = FileHandle.standardError
10 |
11 | extension FileHandle : TextOutputStream {
   | |- warning: extension declares a conformance of imported type 'FileHandle' to imported protocol 'TextOutputStream'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
12 |   public func write(_ string: String) {
13 |     guard let data = string.data(using: .utf8) else { return }
[3/17] Compiling SenseHat Sensors.swift
[4/17] Emitting module SenseHat
/Users/admin/builder/spi-builder-workspace/Sources/SenseHat/stderr.swift:11:1: warning: extension declares a conformance of imported type 'FileHandle' to imported protocol 'TextOutputStream'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
 9 | public var standardError = FileHandle.standardError
10 |
11 | extension FileHandle : TextOutputStream {
   | |- warning: extension declares a conformance of imported type 'FileHandle' to imported protocol 'TextOutputStream'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
12 |   public func write(_ string: String) {
13 |     guard let data = string.data(using: .utf8) else { return }
[5/17] Compiling SenseHat SenseHat.swift
[6/25] Compiling Blink main.swift
/Users/admin/builder/spi-builder-workspace/Sources/Blink/main.swift:60:14: warning: 'assign(repeating:count:)' is deprecated: renamed to 'update(repeating:count:)'
 58 |             .advanced(by: x * senseHat.indices.count * 2)
 59 |             .assumingMemoryBound(to: SenseHat.Rgb565.self)
 60 |             .assign(repeating: sequence[x], count: senseHat.indices.count)
    |              |- warning: 'assign(repeating:count:)' is deprecated: renamed to 'update(repeating:count:)'
    |              `- note: use 'update(repeating:count:)' instead
 61 |     }
 62 | }
[7/25] Emitting module Blink
/Users/admin/builder/spi-builder-workspace/Sources/Blink/main.swift:60:14: warning: 'assign(repeating:count:)' is deprecated: renamed to 'update(repeating:count:)'
 58 |             .advanced(by: x * senseHat.indices.count * 2)
 59 |             .assumingMemoryBound(to: SenseHat.Rgb565.self)
 60 |             .assign(repeating: sequence[x], count: senseHat.indices.count)
    |              |- warning: 'assign(repeating:count:)' is deprecated: renamed to 'update(repeating:count:)'
    |              `- note: use 'update(repeating:count:)' instead
 61 |     }
 62 | }
[8/25] Emitting module Sensors
[9/25] Compiling Sensors main.swift
[9/25] Write Objects.LinkFileList
[12/25] Emitting module Life
[13/25] Compiling Life main.swift
[13/25] Write Objects.LinkFileList
[15/25] Emitting module Snake
[16/25] Compiling Snake main.swift
[16/25] Write Objects.LinkFileList
[17/25] Linking Blink
[17/25] Linking Life
[19/25] Linking Sensors
[19/25] Linking Snake
[21/25] Applying Life
[21/25] Applying Snake
[21/25] Applying Sensors
[21/25] Applying Blink
Build complete! (1.92s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "SenseHat",
  "name" : "SenseHat",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "SenseHat",
      "targets" : [
        "SenseHat"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "Font8x8",
      "targets" : [
        "Font8x8"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "Blink",
      "targets" : [
        "Blink"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "Snake",
      "targets" : [
        "Snake"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "Life",
      "targets" : [
        "Life"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "Sensors",
      "targets" : [
        "Sensors"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "Snake",
      "module_type" : "SwiftTarget",
      "name" : "Snake",
      "path" : "Sources/Snake",
      "product_memberships" : [
        "Snake"
      ],
      "sources" : [
        "main.swift"
      ],
      "target_dependencies" : [
        "SenseHat"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "Sensors",
      "module_type" : "SwiftTarget",
      "name" : "Sensors",
      "path" : "Sources/Sensors",
      "product_memberships" : [
        "Sensors"
      ],
      "sources" : [
        "main.swift"
      ],
      "target_dependencies" : [
        "SenseHat"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "SenseHatTests",
      "module_type" : "SwiftTarget",
      "name" : "SenseHatTests",
      "path" : "Tests/SenseHatTests",
      "sources" : [
        "SenseHatTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "SenseHat"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SenseHat",
      "module_type" : "SwiftTarget",
      "name" : "SenseHat",
      "path" : "Sources/SenseHat",
      "product_memberships" : [
        "SenseHat",
        "Blink",
        "Snake",
        "Life",
        "Sensors"
      ],
      "sources" : [
        "SenseHat.swift",
        "Sensors.swift",
        "stderr.swift"
      ],
      "target_dependencies" : [
        "Font8x8"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Life",
      "module_type" : "SwiftTarget",
      "name" : "Life",
      "path" : "Sources/Life",
      "product_memberships" : [
        "Life"
      ],
      "sources" : [
        "main.swift"
      ],
      "target_dependencies" : [
        "SenseHat"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "Font8x8",
      "module_type" : "ClangTarget",
      "name" : "Font8x8",
      "path" : "Sources/Font8x8",
      "product_memberships" : [
        "SenseHat",
        "Font8x8",
        "Blink",
        "Snake",
        "Life",
        "Sensors"
      ],
      "sources" : [
        "Font8x8.c"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Blink",
      "module_type" : "SwiftTarget",
      "name" : "Blink",
      "path" : "Sources/Blink",
      "product_memberships" : [
        "Blink"
      ],
      "sources" : [
        "main.swift"
      ],
      "target_dependencies" : [
        "SenseHat"
      ],
      "type" : "executable"
    }
  ],
  "tools_version" : "5.1"
}
Done.