The Swift Package Index logo.Swift Package Index

Build Information

Failed to build Terminus, reference main (fd8396), with Swift 6.1 for Wasm on 28 May 2025 12:55:54 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.63.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/jbadger3/Terminus.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/jbadger3/Terminus
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at fd8396f remove redundant example from readme
Cloned https://github.com/jbadger3/Terminus.git
Revision (git rev-parse @):
fd8396f13fc9f4a0600b744ef0f526c3c02565cb
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/jbadger3/Terminus.git at main
========================================
Build
========================================
Selected platform:         wasm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/jbadger3/Terminus.git
https://github.com/jbadger3/Terminus.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
    {
      "identity" : "swift-argument-parser",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-argument-parser.git"
    }
  ],
  "manifest_display_name" : "Terminus",
  "name" : "Terminus",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "Terminus",
      "targets" : [
        "Terminus"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "TerminusTest",
      "targets" : [
        "TerminusTestApp"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "TerminusTests",
      "module_type" : "SwiftTarget",
      "name" : "TerminusTests",
      "path" : "Tests/TerminusTests",
      "sources" : [
        "CursorTests.swift",
        "MockTerminalIO.swift",
        "TerminalTests.swift",
        "TermiosTests.swift"
      ],
      "target_dependencies" : [
        "Terminus"
      ],
      "type" : "test"
    },
    {
      "c99name" : "TerminusTestApp",
      "module_type" : "SwiftTarget",
      "name" : "TerminusTestApp",
      "path" : "Sources/TerminusTestApp",
      "product_dependencies" : [
        "ArgumentParser"
      ],
      "product_memberships" : [
        "TerminusTest"
      ],
      "sources" : [
        "TestAssertions.swift",
        "TestCase.swift",
        "TestLogger.swift",
        "Tests/CursorTests.swift",
        "Tests/MenuTests.swift",
        "Tests/TerminalTests.swift",
        "VisualTest.swift",
        "main.swift"
      ],
      "target_dependencies" : [
        "Terminus"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "Terminus",
      "module_type" : "SwiftTarget",
      "name" : "Terminus",
      "path" : "Sources/Terminus",
      "product_memberships" : [
        "Terminus",
        "TerminusTest"
      ],
      "sources" : [
        "Core/ANSIEscapeCode.swift",
        "Core/Attribute.swift",
        "Core/AttributeScopes+Terminal.swift",
        "Core/Color/Color.swift",
        "Core/Color/ColorPair.swift",
        "Core/Color/ColorPalette.swift",
        "Core/Color/Palettes/BasicColorPalette.swift",
        "Core/Color/Palettes/X11WebPalette.swift",
        "Core/Color/Palettes/XTermPalette.swift",
        "Core/Cursor.swift",
        "Core/Key.swift",
        "Core/KeyTypes.swift",
        "Core/Location.swift",
        "Core/String+strippingCSI.swift",
        "Core/Terminal.swift",
        "Core/Termios.swift",
        "UIControls/LineEditor.swift",
        "UIControls/Menu.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi -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 2>&1
wasm-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:7e37457820e5f17452a98118754f345f2619722c485f2db0d8b666940a83afd2
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest
Fetching https://github.com/apple/swift-argument-parser.git
[1/15351] Fetching swift-argument-parser
Fetched https://github.com/apple/swift-argument-parser.git from cache (1.51s)
Computing version for https://github.com/apple/swift-argument-parser.git
Computed https://github.com/apple/swift-argument-parser.git at 1.5.0 (2.16s)
Creating working copy for https://github.com/apple/swift-argument-parser.git
Working copy of https://github.com/apple/swift-argument-parser.git resolved at 1.5.0
[1/1] Compiling plugin GenerateManual
Building for debugging...
[1/12] Write sources
[5/12] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[7/31] Emitting module Terminus
/host/spi-builder-workspace/Sources/Terminus/Core/Terminal.swift:8:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Terminal' may have shared mutable state; this is an error in the Swift 6 language mode
  4 |  The starting point and primary means of interaction for a command line application.
  5 |  */
  6 | public class Terminal {
    |              `- note: class 'Terminal' does not conform to the 'Sendable' protocol
  7 |     ///The shared singleton Terminal object.
  8 |     public static let shared = Terminal()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Terminal' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  9 |     ///The cursor associated with the terminal
 10 |     public let cursor = Cursor()
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:12:27: error: cannot find 'termios' in scope
10 | struct Termios {
11 |     let fd = FileHandle.standardInput.fileDescriptor
12 |     var originalTermios = termios()
   |                           `- error: cannot find 'termios' in scope
13 |     var currentTermios: termios
14 |
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:13:25: error: cannot find type 'termios' in scope
11 |     let fd = FileHandle.standardInput.fileDescriptor
12 |     var originalTermios = termios()
13 |     var currentTermios: termios
   |                         `- error: cannot find type 'termios' in scope
14 |
15 |     init() {
/host/spi-builder-workspace/Sources/Terminus/UIControls/Menu.swift:24:23: warning: static property 'defaultItemColorPair' is not concurrency-safe because non-'Sendable' type 'ColorPair' may have shared mutable state; this is an error in the Swift 6 language mode
 22 |     public let itemAttributes: [Attribute]
 23 |     public let selectionAttributes: [Attribute]
 24 |     public static let defaultItemColorPair = ColorPair(foreground: XTermPalette().Black, background: XTermPalette().Silver)
    |                       |- warning: static property 'defaultItemColorPair' is not concurrency-safe because non-'Sendable' type 'ColorPair' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'defaultItemColorPair' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 25 |     public static let defaultSelectionColorPair = ColorPair(foreground: XTermPalette().Black, background: XTermPalette().Grey46)
 26 |
/host/spi-builder-workspace/Sources/Terminus/Core/Color/ColorPair.swift:22:15: note: consider making struct 'ColorPair' conform to the 'Sendable' protocol
20 |  ```
21 |  */
22 | public struct ColorPair: Equatable {
   |               `- note: consider making struct 'ColorPair' conform to the 'Sendable' protocol
23 |     public let foreground: Color
24 |     public let background: Color
/host/spi-builder-workspace/Sources/Terminus/UIControls/Menu.swift:25:23: warning: static property 'defaultSelectionColorPair' is not concurrency-safe because non-'Sendable' type 'ColorPair' may have shared mutable state; this is an error in the Swift 6 language mode
 23 |     public let selectionAttributes: [Attribute]
 24 |     public static let defaultItemColorPair = ColorPair(foreground: XTermPalette().Black, background: XTermPalette().Silver)
 25 |     public static let defaultSelectionColorPair = ColorPair(foreground: XTermPalette().Black, background: XTermPalette().Grey46)
    |                       |- warning: static property 'defaultSelectionColorPair' is not concurrency-safe because non-'Sendable' type 'ColorPair' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'defaultSelectionColorPair' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 26 |
 27 |     var hidden: Bool = true
/host/spi-builder-workspace/Sources/Terminus/Core/Color/ColorPair.swift:22:15: note: consider making struct 'ColorPair' conform to the 'Sendable' protocol
20 |  ```
21 |  */
22 | public struct ColorPair: Equatable {
   |               `- note: consider making struct 'ColorPair' conform to the 'Sendable' protocol
23 |     public let foreground: Color
24 |     public let background: Color
[8/33] Emitting module ArgumentParserToolInfo
[9/33] Compiling ArgumentParserToolInfo ToolInfo.swift
[10/34] Wrapping AST for ArgumentParserToolInfo for debugging
[12/72] Compiling ArgumentParser ArgumentHelp.swift
[13/72] Compiling ArgumentParser ArgumentVisibility.swift
[14/72] Compiling ArgumentParser CompletionKind.swift
[15/72] Compiling ArgumentParser BashCompletionsGenerator.swift
[16/72] Compiling ArgumentParser CompletionsGenerator.swift
[17/72] Compiling ArgumentParser FishCompletionsGenerator.swift
[18/72] Compiling ArgumentParser Errors.swift
[19/72] Compiling ArgumentParser Flag.swift
[20/72] Compiling ArgumentParser NameSpecification.swift
[21/72] Compiling ArgumentParser Option.swift
[22/72] Compiling ArgumentParser OptionGroup.swift
[23/72] Compiling ArgumentParser AsyncParsableCommand.swift
[24/72] Compiling ArgumentParser ZshCompletionsGenerator.swift
/host/spi-builder-workspace/Sources/Terminus/Core/Terminal.swift:8:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Terminal' may have shared mutable state; this is an error in the Swift 6 language mode
  4 |  The starting point and primary means of interaction for a command line application.
  5 |  */
  6 | public class Terminal {
    |              `- note: class 'Terminal' does not conform to the 'Sendable' protocol
  7 |     ///The shared singleton Terminal object.
  8 |     public static let shared = Terminal()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Terminal' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  9 |     ///The cursor associated with the terminal
 10 |     public let cursor = Cursor()
/host/spi-builder-workspace/Sources/Terminus/Core/Terminal.swift:124:30: warning: type 'Attribute' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
122 |         for run in attributedString.runs {
123 |             let subString = String(attributedString[run.range].characters)
124 |             let attributes = run.terminalTextAttributes ?? []
    |                              `- warning: type 'Attribute' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 |             write(subString, attributes: attributes)
126 |         }
/host/spi-builder-workspace/Sources/Terminus/Core/Attribute.swift:7:13: note: consider making enum 'Attribute' conform to the 'Sendable' protocol
 5 |
 6 | ///Used to specify the appearance of characters on screen.  Mutliple attributes can be combined for varying effects.
 7 | public enum Attribute: ControlSequenceEmitting {
   |             `- note: consider making enum 'Attribute' conform to the 'Sendable' protocol
 8 |     case resetToDefault //CSI 0m
 9 |     case bold //CSI 1m
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:12:27: error: cannot find 'termios' in scope
10 | struct Termios {
11 |     let fd = FileHandle.standardInput.fileDescriptor
12 |     var originalTermios = termios()
   |                           `- error: cannot find 'termios' in scope
13 |     var currentTermios: termios
14 |
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:13:25: error: cannot find type 'termios' in scope
11 |     let fd = FileHandle.standardInput.fileDescriptor
12 |     var originalTermios = termios()
13 |     var currentTermios: termios
   |                         `- error: cannot find type 'termios' in scope
14 |
15 |     init() {
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:16:9: error: cannot find 'tcgetattr' in scope
14 |
15 |     init() {
16 |         tcgetattr(fd, &originalTermios)
   |         `- error: cannot find 'tcgetattr' in scope
17 |         currentTermios = originalTermios
18 |     }
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:31:9: error: cannot find 'tcsetattr' in scope
29 |
30 |         #endif
31 |         tcsetattr(fd, TCSADRAIN, &currentTermios)
   |         `- error: cannot find 'tcsetattr' in scope
32 |     }
33 |
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:31:23: error: cannot find 'TCSADRAIN' in scope
29 |
30 |         #endif
31 |         tcsetattr(fd, TCSADRAIN, &currentTermios)
   |                       `- error: cannot find 'TCSADRAIN' in scope
32 |     }
33 |
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:36:9: error: cannot find 'tcsetattr' in scope
34 |     ///Restores termios to its original settings
35 |     mutating func restoreOriginalSettings() {
36 |         tcsetattr(fd, TCSAFLUSH, &originalTermios)
   |         `- error: cannot find 'tcsetattr' in scope
37 |     }
38 | }
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:36:23: error: cannot find 'TCSAFLUSH' in scope
34 |     ///Restores termios to its original settings
35 |     mutating func restoreOriginalSettings() {
36 |         tcsetattr(fd, TCSAFLUSH, &originalTermios)
   |                       `- error: cannot find 'TCSAFLUSH' in scope
37 |     }
38 | }
[25/72] Compiling ArgumentParser Argument.swift
/host/spi-builder-workspace/Sources/Terminus/Core/Terminal.swift:8:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Terminal' may have shared mutable state; this is an error in the Swift 6 language mode
  4 |  The starting point and primary means of interaction for a command line application.
  5 |  */
  6 | public class Terminal {
    |              `- note: class 'Terminal' does not conform to the 'Sendable' protocol
  7 |     ///The shared singleton Terminal object.
  8 |     public static let shared = Terminal()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Terminal' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  9 |     ///The cursor associated with the terminal
 10 |     public let cursor = Cursor()
/host/spi-builder-workspace/Sources/Terminus/Core/Terminal.swift:124:30: warning: type 'Attribute' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
122 |         for run in attributedString.runs {
123 |             let subString = String(attributedString[run.range].characters)
124 |             let attributes = run.terminalTextAttributes ?? []
    |                              `- warning: type 'Attribute' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
125 |             write(subString, attributes: attributes)
126 |         }
/host/spi-builder-workspace/Sources/Terminus/Core/Attribute.swift:7:13: note: consider making enum 'Attribute' conform to the 'Sendable' protocol
 5 |
 6 | ///Used to specify the appearance of characters on screen.  Mutliple attributes can be combined for varying effects.
 7 | public enum Attribute: ControlSequenceEmitting {
   |             `- note: consider making enum 'Attribute' conform to the 'Sendable' protocol
 8 |     case resetToDefault //CSI 0m
 9 |     case bold //CSI 1m
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:12:27: error: cannot find 'termios' in scope
10 | struct Termios {
11 |     let fd = FileHandle.standardInput.fileDescriptor
12 |     var originalTermios = termios()
   |                           `- error: cannot find 'termios' in scope
13 |     var currentTermios: termios
14 |
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:13:25: error: cannot find type 'termios' in scope
11 |     let fd = FileHandle.standardInput.fileDescriptor
12 |     var originalTermios = termios()
13 |     var currentTermios: termios
   |                         `- error: cannot find type 'termios' in scope
14 |
15 |     init() {
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:16:9: error: cannot find 'tcgetattr' in scope
14 |
15 |     init() {
16 |         tcgetattr(fd, &originalTermios)
   |         `- error: cannot find 'tcgetattr' in scope
17 |         currentTermios = originalTermios
18 |     }
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:31:9: error: cannot find 'tcsetattr' in scope
29 |
30 |         #endif
31 |         tcsetattr(fd, TCSADRAIN, &currentTermios)
   |         `- error: cannot find 'tcsetattr' in scope
32 |     }
33 |
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:31:23: error: cannot find 'TCSADRAIN' in scope
29 |
30 |         #endif
31 |         tcsetattr(fd, TCSADRAIN, &currentTermios)
   |                       `- error: cannot find 'TCSADRAIN' in scope
32 |     }
33 |
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:36:9: error: cannot find 'tcsetattr' in scope
34 |     ///Restores termios to its original settings
35 |     mutating func restoreOriginalSettings() {
36 |         tcsetattr(fd, TCSAFLUSH, &originalTermios)
   |         `- error: cannot find 'tcsetattr' in scope
37 |     }
38 | }
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:36:23: error: cannot find 'TCSAFLUSH' in scope
34 |     ///Restores termios to its original settings
35 |     mutating func restoreOriginalSettings() {
36 |         tcsetattr(fd, TCSAFLUSH, &originalTermios)
   |                       `- error: cannot find 'TCSAFLUSH' in scope
37 |     }
38 | }
[26/72] Compiling ArgumentParser CommandConfiguration.swift
[27/72] Compiling ArgumentParser CommandGroup.swift
[28/72] Compiling ArgumentParser EnumerableFlag.swift
/host/spi-builder-workspace/Sources/Terminus/UIControls/Menu.swift:24:23: warning: static property 'defaultItemColorPair' is not concurrency-safe because non-'Sendable' type 'ColorPair' may have shared mutable state; this is an error in the Swift 6 language mode
 22 |     public let itemAttributes: [Attribute]
 23 |     public let selectionAttributes: [Attribute]
 24 |     public static let defaultItemColorPair = ColorPair(foreground: XTermPalette().Black, background: XTermPalette().Silver)
    |                       |- warning: static property 'defaultItemColorPair' is not concurrency-safe because non-'Sendable' type 'ColorPair' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'defaultItemColorPair' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 25 |     public static let defaultSelectionColorPair = ColorPair(foreground: XTermPalette().Black, background: XTermPalette().Grey46)
 26 |
/host/spi-builder-workspace/Sources/Terminus/Core/Color/ColorPair.swift:22:15: note: consider making struct 'ColorPair' conform to the 'Sendable' protocol
20 |  ```
21 |  */
22 | public struct ColorPair: Equatable {
   |               `- note: consider making struct 'ColorPair' conform to the 'Sendable' protocol
23 |     public let foreground: Color
24 |     public let background: Color
/host/spi-builder-workspace/Sources/Terminus/UIControls/Menu.swift:25:23: warning: static property 'defaultSelectionColorPair' is not concurrency-safe because non-'Sendable' type 'ColorPair' may have shared mutable state; this is an error in the Swift 6 language mode
 23 |     public let selectionAttributes: [Attribute]
 24 |     public static let defaultItemColorPair = ColorPair(foreground: XTermPalette().Black, background: XTermPalette().Silver)
 25 |     public static let defaultSelectionColorPair = ColorPair(foreground: XTermPalette().Black, background: XTermPalette().Grey46)
    |                       |- warning: static property 'defaultSelectionColorPair' is not concurrency-safe because non-'Sendable' type 'ColorPair' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'defaultSelectionColorPair' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 26 |
 27 |     var hidden: Bool = true
/host/spi-builder-workspace/Sources/Terminus/Core/Color/ColorPair.swift:22:15: note: consider making struct 'ColorPair' conform to the 'Sendable' protocol
20 |  ```
21 |  */
22 | public struct ColorPair: Equatable {
   |               `- note: consider making struct 'ColorPair' conform to the 'Sendable' protocol
23 |     public let foreground: Color
24 |     public let background: Color
[29/72] Compiling ArgumentParser ArgumentDefinition.swift
/host/spi-builder-workspace/Sources/Terminus/UIControls/Menu.swift:24:23: warning: static property 'defaultItemColorPair' is not concurrency-safe because non-'Sendable' type 'ColorPair' may have shared mutable state; this is an error in the Swift 6 language mode
 22 |     public let itemAttributes: [Attribute]
 23 |     public let selectionAttributes: [Attribute]
 24 |     public static let defaultItemColorPair = ColorPair(foreground: XTermPalette().Black, background: XTermPalette().Silver)
    |                       |- warning: static property 'defaultItemColorPair' is not concurrency-safe because non-'Sendable' type 'ColorPair' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'defaultItemColorPair' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 25 |     public static let defaultSelectionColorPair = ColorPair(foreground: XTermPalette().Black, background: XTermPalette().Grey46)
 26 |
/host/spi-builder-workspace/Sources/Terminus/Core/Color/ColorPair.swift:22:15: note: consider making struct 'ColorPair' conform to the 'Sendable' protocol
20 |  ```
21 |  */
22 | public struct ColorPair: Equatable {
   |               `- note: consider making struct 'ColorPair' conform to the 'Sendable' protocol
23 |     public let foreground: Color
24 |     public let background: Color
/host/spi-builder-workspace/Sources/Terminus/UIControls/Menu.swift:25:23: warning: static property 'defaultSelectionColorPair' is not concurrency-safe because non-'Sendable' type 'ColorPair' may have shared mutable state; this is an error in the Swift 6 language mode
 23 |     public let selectionAttributes: [Attribute]
 24 |     public static let defaultItemColorPair = ColorPair(foreground: XTermPalette().Black, background: XTermPalette().Silver)
 25 |     public static let defaultSelectionColorPair = ColorPair(foreground: XTermPalette().Black, background: XTermPalette().Grey46)
    |                       |- warning: static property 'defaultSelectionColorPair' is not concurrency-safe because non-'Sendable' type 'ColorPair' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'defaultSelectionColorPair' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 26 |
 27 |     var hidden: Bool = true
/host/spi-builder-workspace/Sources/Terminus/Core/Color/ColorPair.swift:22:15: note: consider making struct 'ColorPair' conform to the 'Sendable' protocol
20 |  ```
21 |  */
22 | public struct ColorPair: Equatable {
   |               `- note: consider making struct 'ColorPair' conform to the 'Sendable' protocol
23 |     public let foreground: Color
24 |     public let background: Color
[30/72] Emitting module ArgumentParser
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi 2>&1
wasm-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:7e37457820e5f17452a98118754f345f2619722c485f2db0d8b666940a83afd2
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest
[0/1] Planning build
[1/1] Compiling plugin GenerateManual
Building for debugging...
[1/8] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[3/27] Emitting module Terminus
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:12:27: error: cannot find 'termios' in scope
10 | struct Termios {
11 |     let fd = FileHandle.standardInput.fileDescriptor
12 |     var originalTermios = termios()
   |                           `- error: cannot find 'termios' in scope
13 |     var currentTermios: termios
14 |
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:13:25: error: cannot find type 'termios' in scope
11 |     let fd = FileHandle.standardInput.fileDescriptor
12 |     var originalTermios = termios()
13 |     var currentTermios: termios
   |                         `- error: cannot find type 'termios' in scope
14 |
15 |     init() {
[4/29] Compiling Terminus Location.swift
[5/29] Compiling Terminus String+strippingCSI.swift
[6/29] Compiling Terminus BasicColorPalette.swift
[7/29] Compiling Terminus X11WebPalette.swift
[8/29] Compiling Terminus Color.swift
[9/29] Compiling Terminus ColorPair.swift
[10/29] Compiling Terminus ColorPalette.swift
[11/29] Emitting module ArgumentParserToolInfo
[12/29] Compiling ArgumentParserToolInfo ToolInfo.swift
[14/29] Compiling Terminus LineEditor.swift
[15/29] Compiling Terminus Menu.swift
[16/67] Compiling ArgumentParser ParsableArgumentsValidation.swift
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:12:27: error: cannot find 'termios' in scope
10 | struct Termios {
11 |     let fd = FileHandle.standardInput.fileDescriptor
12 |     var originalTermios = termios()
   |                           `- error: cannot find 'termios' in scope
13 |     var currentTermios: termios
14 |
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:13:25: error: cannot find type 'termios' in scope
11 |     let fd = FileHandle.standardInput.fileDescriptor
12 |     var originalTermios = termios()
13 |     var currentTermios: termios
   |                         `- error: cannot find type 'termios' in scope
14 |
15 |     init() {
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:16:9: error: cannot find 'tcgetattr' in scope
14 |
15 |     init() {
16 |         tcgetattr(fd, &originalTermios)
   |         `- error: cannot find 'tcgetattr' in scope
17 |         currentTermios = originalTermios
18 |     }
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:31:9: error: cannot find 'tcsetattr' in scope
29 |
30 |         #endif
31 |         tcsetattr(fd, TCSADRAIN, &currentTermios)
   |         `- error: cannot find 'tcsetattr' in scope
32 |     }
33 |
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:31:23: error: cannot find 'TCSADRAIN' in scope
29 |
30 |         #endif
31 |         tcsetattr(fd, TCSADRAIN, &currentTermios)
   |                       `- error: cannot find 'TCSADRAIN' in scope
32 |     }
33 |
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:36:9: error: cannot find 'tcsetattr' in scope
34 |     ///Restores termios to its original settings
35 |     mutating func restoreOriginalSettings() {
36 |         tcsetattr(fd, TCSAFLUSH, &originalTermios)
   |         `- error: cannot find 'tcsetattr' in scope
37 |     }
38 | }
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:36:23: error: cannot find 'TCSAFLUSH' in scope
34 |     ///Restores termios to its original settings
35 |     mutating func restoreOriginalSettings() {
36 |         tcsetattr(fd, TCSAFLUSH, &originalTermios)
   |                       `- error: cannot find 'TCSAFLUSH' in scope
37 |     }
38 | }
[17/67] Compiling ArgumentParser ParsableCommand.swift
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:12:27: error: cannot find 'termios' in scope
10 | struct Termios {
11 |     let fd = FileHandle.standardInput.fileDescriptor
12 |     var originalTermios = termios()
   |                           `- error: cannot find 'termios' in scope
13 |     var currentTermios: termios
14 |
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:13:25: error: cannot find type 'termios' in scope
11 |     let fd = FileHandle.standardInput.fileDescriptor
12 |     var originalTermios = termios()
13 |     var currentTermios: termios
   |                         `- error: cannot find type 'termios' in scope
14 |
15 |     init() {
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:16:9: error: cannot find 'tcgetattr' in scope
14 |
15 |     init() {
16 |         tcgetattr(fd, &originalTermios)
   |         `- error: cannot find 'tcgetattr' in scope
17 |         currentTermios = originalTermios
18 |     }
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:31:9: error: cannot find 'tcsetattr' in scope
29 |
30 |         #endif
31 |         tcsetattr(fd, TCSADRAIN, &currentTermios)
   |         `- error: cannot find 'tcsetattr' in scope
32 |     }
33 |
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:31:23: error: cannot find 'TCSADRAIN' in scope
29 |
30 |         #endif
31 |         tcsetattr(fd, TCSADRAIN, &currentTermios)
   |                       `- error: cannot find 'TCSADRAIN' in scope
32 |     }
33 |
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:36:9: error: cannot find 'tcsetattr' in scope
34 |     ///Restores termios to its original settings
35 |     mutating func restoreOriginalSettings() {
36 |         tcsetattr(fd, TCSAFLUSH, &originalTermios)
   |         `- error: cannot find 'tcsetattr' in scope
37 |     }
38 | }
/host/spi-builder-workspace/Sources/Terminus/Core/Termios.swift:36:23: error: cannot find 'TCSAFLUSH' in scope
34 |     ///Restores termios to its original settings
35 |     mutating func restoreOriginalSettings() {
36 |         tcsetattr(fd, TCSAFLUSH, &originalTermios)
   |                       `- error: cannot find 'TCSAFLUSH' in scope
37 |     }
38 | }
[18/67] Compiling ArgumentParser Flag.swift
[19/67] Compiling ArgumentParser NameSpecification.swift
[20/67] Compiling ArgumentParser Option.swift
[21/67] Compiling ArgumentParser ArgumentHelp.swift
[22/67] Compiling ArgumentParser ArgumentVisibility.swift
[23/67] Compiling ArgumentParser CompletionKind.swift
[24/67] Compiling ArgumentParser Errors.swift
BUILD FAILURE 6.1 wasm