The Swift Package Index logo.Swift Package Index

Build Information

Failed to build TUIkit, reference main (d259fb), with Swift 6.2 for Wasm on 4 Oct 2026 09:47:23 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-54344843-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:wasm-6.2-latest swift build --swift-sdk swift-6.2-RELEASE_wasm 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/wadetregaskis/TUIkit.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/wadetregaskis/TUIkit
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at d259fb3 The slow-frame tap test lets the press act with a yield, not a 5 ms sleep that can outlast the 40 ms delay
Cloned https://github.com/wadetregaskis/TUIkit.git
Revision (git rev-parse @):
d259fb30885ab8c53b8d7087a68fdb53c2ae707d
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/wadetregaskis/TUIkit.git at main
========================================
Build
========================================
Selected platform:         wasm
Swift version:             6.2
Building package at path:  $PWD
https://github.com/wadetregaskis/TUIkit.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344843-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:wasm-6.2-latest swift build --swift-sdk swift-6.2-RELEASE_wasm 2>&1
wasm-6.2-latest: Pulling from saguaro1/spi-images
Digest: sha256:ff44196b45f83e5a0a99a627b185f548850d9bc1242e3dee2178fb1570812fe8
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:wasm-6.2-latest
Fetching https://github.com/swiftlang/swift-docc-plugin
Fetching https://github.com/apple/swift-collections.git
[1/2345] Fetching swift-docc-plugin
[2346/30883] Fetching swift-docc-plugin, swift-collections
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.30s)
Fetched https://github.com/apple/swift-collections.git from cache (1.31s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.7.1 (1.58s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (1.05s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3833] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.65s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (0.91s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.5.0
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.7.1
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/56] Write sources
[13/56] Copying VERSION
[13/56] Write sources
[19/56] Copying Resources
[19/56] Copying translations
[21/56] Compiling CTestSupport CTestSupport.c
[22/56] Write swift-version-24593BA9C3E375BF.txt
[23/168] Compiling CSTBImage stb_image_impl.c
[25/168] Compiling TUIkitCore CombiningMarkRanges.generated.swift
[26/168] Compiling TUIkitCore KittyGraphics+Placeholders.swift
[27/168] Compiling TUIkitCore KittyGraphics.swift
[28/168] Compiling TUIkitCore SGRState.swift
[29/168] Emitting module InternalCollectionsUtilities
[30/168] Compiling InternalCollectionsUtilities BorrowingIteratorProtocol+Equality.swift
[31/168] Compiling InternalCollectionsUtilities BorrowingIteratorProtocol+Extras.swift
[32/168] Compiling InternalCollectionsUtilities Debugging.swift
[33/168] Compiling TUIkitCore String+CellSpanDiff.swift
[34/171] Compiling TUIkitCore PreferenceKey.swift
[35/171] Compiling TUIkitCore VolatileReadTracker.swift
[36/171] Compiling TUIkitCore Character+CursorAdvance.swift
[37/171] Compiling TUIkitCore StackGuard.swift
[38/171] Compiling TUIkitCore DiagnosticChannel.swift
[39/171] Compiling TUIkitCore SoftTrap.swift
[40/171] Compiling TUIkitCore EnvironmentKey.swift
[41/171] Compiling TUIkitCore ChromeOverhang.swift
[42/171] Compiling TUIkitCore String+CursorCompensation.swift
[43/171] Compiling TUIkitCore String+FieldLeftToPainter.swift
[44/171] Compiling TUIkitCore String+GroundStyle.swift
[45/171] Compiling InternalCollectionsUtilities UnsafeRawBufferPointer+Extras.swift
[46/171] Compiling InternalCollectionsUtilities _SortedCollection.swift
[47/171] Compiling InternalCollectionsUtilities _UniqueCollection.swift
[48/171] Compiling TUIkitCore VectorArithmetic.swift
[49/171] Compiling InternalCollectionsUtilities OutputSpan+Extras.swift
[50/171] Compiling TUIkitCore Lock.swift
[51/171] Compiling TUIkitCore MonotonicClock.swift
[52/171] Compiling TUIkitCore Animatable.swift
[53/171] Compiling TUIkitCore Animation.swift
[54/171] Compiling TUIkitCore AnimationCurve.swift
[55/171] Compiling TUIkitCore Transaction.swift
[56/173] Wrapping AST for InternalCollectionsUtilities for debugging
[58/175] Emitting module SpanPreview
[59/176] Compiling SpanPreview OutputSpan+InputSpanHelpers.swift
[60/176] Compiling SpanPreview MutableSpan+InputSpanHelpers.swift
[61/176] Compiling SpanPreview InputSpan.swift
[62/177] Compiling TUIkitCore AnimatedRunAlpha.swift
[63/177] Compiling TUIkitCore AnimationInstant.swift
[64/177] Compiling TUIkitCore FieldsUnderOverlay.swift
[65/177] Compiling TUIkitCore FrameBuffer+AnimatedRunSplice.swift
[66/177] Compiling TUIkitCore FrameBuffer+Punching.swift
[67/177] Compiling TUIkitCore FrameBuffer+RevealTarget.swift
[68/177] Compiling TUIkitCore FrameBuffer.swift
[69/184] Compiling TUIkitCore HitTestRegion.swift
[70/184] Compiling TUIkitCore KeyEvent.swift
[71/184] Compiling TUIkitCore MouseEvent.swift
[72/184] Compiling TUIkitCore TerminalInput.swift
[73/184] Compiling TUIkitCore AllBytesDefined.swift
[74/184] Compiling TUIkitCore AnimatedCellRun+Ground.swift
[75/184] Compiling TUIkitCore AnimatedCellRun.swift
[76/184] Wrapping AST for SpanPreview for debugging
[78/226] Compiling DequeModule Deque+Codable.swift
[79/226] Compiling DequeModule Deque+Collection.swift
[80/226] Compiling DequeModule Deque+CustomReflectable.swift
[81/226] Compiling DequeModule Deque+Descriptions.swift
[82/226] Compiling DequeModule Deque+Equatable.swift
[83/226] Compiling DequeModule Deque+ExpressibleByArrayLiteral.swift
[84/226] Compiling DequeModule _DequeBuffer.swift
[85/226] Compiling DequeModule _DequeBufferHeader.swift
[86/226] Compiling DequeModule UniqueDeque+Consumption.swift
[87/226] Compiling DequeModule UniqueDeque+ContainerOperations.swift
[88/226] Compiling DequeModule UniqueDeque+Deprecations.swift
[89/226] Compiling DequeModule UniqueDeque+Descriptions.swift
[90/226] Compiling DequeModule UniqueDeque+Equatable.swift
[91/226] Compiling DequeModule UniqueDeque+Hashable.swift
[92/226] Compiling DequeModule UniqueDeque+Initializers.swift
[93/226] Compiling DequeModule UniqueDeque+Insertions.swift
[94/226] Compiling DequeModule UniqueDeque+Iterable.swift
[95/226] Compiling DequeModule UniqueDeque+Prepend.swift
[96/226] Compiling DequeModule UniqueDeque+Removals.swift
[97/231] Compiling DequeModule RigidDeque+Descriptions.swift
[98/231] Compiling DequeModule RigidDeque+Equatable.swift
[99/231] Compiling DequeModule RigidDeque+Hashable.swift
[100/231] Compiling DequeModule RigidDeque+Initializers.swift
[101/231] Compiling DequeModule RigidDeque+Insertions.swift
[102/231] Compiling DequeModule RigidDeque+Iterable.swift
[105/231] Compiling DequeModule RigidDeque+Append.swift
[106/231] Compiling DequeModule RigidDeque+Consumption.swift
[107/231] Compiling DequeModule RigidDeque+ContainerOperations.swift
[108/231] Compiling DequeModule RigidDeque+Deprecations.swift
[109/231] Compiling DequeModule RigidDeque+Prepend.swift
[110/231] Compiling DequeModule RigidDeque+Removals.swift
[111/231] Compiling DequeModule RigidDeque+Replacements.swift
[112/231] Compiling DequeModule RigidDeque+Testing.swift
[113/231] Compiling DequeModule RigidDeque.swift
[114/231] Compiling DequeModule UniqueDeque+Append.swift
[120/235] Compiling DequeModule Deque._UnsafeHandle.swift
[121/235] Compiling DequeModule Deque.swift
[128/235] Compiling TUIkitCore GradientFrame.swift
[129/235] Compiling TUIkitCore IdentityKey.swift
[130/235] Compiling TUIkitCore LayoutTypes.swift
[131/235] Compiling TUIkitCore OpacityRegion.swift
[132/235] Compiling TUIkitCore OverlayLayer.swift
[133/235] Compiling TUIkitCore TerminalSymbols.swift
[134/235] Compiling TUIkitCore ViewIdentity.swift
[135/235] Emitting module TUIkitCore
[138/235] Compiling DequeModule Deque+Extras.swift
[139/235] Compiling DequeModule Deque+Hashable.swift
[140/235] Compiling DequeModule Deque+Testing.swift
[141/235] Compiling DequeModule Deque._Storage.swift
[157/235] Emitting module TUIkitStyling
[170/235] Compiling TUIkitStyling RowFills.swift
[171/235] Compiling TUIkitStyling Theme.swift
[172/235] Compiling TUIkitStyling ThemeManager.swift
[183/235] Compiling TUIkitStyling RowFills+Sixteen.swift
[184/236] Wrapping AST for TUIkitCore for debugging
[186/240] Emitting module EmojiBenchmark
[187/240] Compiling EmojiBenchmark main.swift
[188/241] Wrapping AST for EmojiBenchmark for debugging
[189/241] Write Objects.LinkFileList
error: emit-module command failed with exit code 1 (use -v to see invocation)
[191/241] Emitting module EmojiBugScanner
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:31:19: error: cannot find type 'termios' in scope
 29 |
 30 | struct RawMode {
 31 |     var original: termios
    |                   `- error: cannot find type 'termios' in scope
 32 |
 33 |     static func enable() -> RawMode {
[192/241] Compiling EmojiBugScanner main.swift
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:31:19: error: cannot find type 'termios' in scope
 29 |
 30 | struct RawMode {
 31 |     var original: termios
    |                   `- error: cannot find type 'termios' in scope
 32 |
 33 |     static func enable() -> RawMode {
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:34:24: error: cannot find 'termios' in scope
 32 |
 33 |     static func enable() -> RawMode {
 34 |         var original = termios()
    |                        `- error: cannot find 'termios' in scope
 35 |         tcgetattr(STDIN_FILENO, &original)
 36 |         var raw = original
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:35:9: error: cannot find 'tcgetattr' in scope
 33 |     static func enable() -> RawMode {
 34 |         var original = termios()
 35 |         tcgetattr(STDIN_FILENO, &original)
    |         `- error: cannot find 'tcgetattr' in scope
 36 |         var raw = original
 37 |         let lflagOff: UInt = UInt(ECHO | ICANON | ISIG | IEXTEN)
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:37:35: error: cannot find 'ECHO' in scope
 35 |         tcgetattr(STDIN_FILENO, &original)
 36 |         var raw = original
 37 |         let lflagOff: UInt = UInt(ECHO | ICANON | ISIG | IEXTEN)
    |                                   `- error: cannot find 'ECHO' in scope
 38 |         let iflagOff: UInt = UInt(IXON | ICRNL | BRKINT | INPCK | ISTRIP)
 39 |         let oflagOff: UInt = UInt(OPOST)
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:37:42: error: cannot find 'ICANON' in scope
 35 |         tcgetattr(STDIN_FILENO, &original)
 36 |         var raw = original
 37 |         let lflagOff: UInt = UInt(ECHO | ICANON | ISIG | IEXTEN)
    |                                          `- error: cannot find 'ICANON' in scope
 38 |         let iflagOff: UInt = UInt(IXON | ICRNL | BRKINT | INPCK | ISTRIP)
 39 |         let oflagOff: UInt = UInt(OPOST)
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:37:51: error: cannot find 'ISIG' in scope
 35 |         tcgetattr(STDIN_FILENO, &original)
 36 |         var raw = original
 37 |         let lflagOff: UInt = UInt(ECHO | ICANON | ISIG | IEXTEN)
    |                                                   `- error: cannot find 'ISIG' in scope
 38 |         let iflagOff: UInt = UInt(IXON | ICRNL | BRKINT | INPCK | ISTRIP)
 39 |         let oflagOff: UInt = UInt(OPOST)
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:37:58: error: cannot find 'IEXTEN' in scope
 35 |         tcgetattr(STDIN_FILENO, &original)
 36 |         var raw = original
 37 |         let lflagOff: UInt = UInt(ECHO | ICANON | ISIG | IEXTEN)
    |                                                          `- error: cannot find 'IEXTEN' in scope
 38 |         let iflagOff: UInt = UInt(IXON | ICRNL | BRKINT | INPCK | ISTRIP)
 39 |         let oflagOff: UInt = UInt(OPOST)
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:38:35: error: cannot find 'IXON' in scope
 36 |         var raw = original
 37 |         let lflagOff: UInt = UInt(ECHO | ICANON | ISIG | IEXTEN)
 38 |         let iflagOff: UInt = UInt(IXON | ICRNL | BRKINT | INPCK | ISTRIP)
    |                                   `- error: cannot find 'IXON' in scope
 39 |         let oflagOff: UInt = UInt(OPOST)
 40 |         raw.c_lflag &= ~tcflag_t(lflagOff)
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:38:42: error: cannot find 'ICRNL' in scope
 36 |         var raw = original
 37 |         let lflagOff: UInt = UInt(ECHO | ICANON | ISIG | IEXTEN)
 38 |         let iflagOff: UInt = UInt(IXON | ICRNL | BRKINT | INPCK | ISTRIP)
    |                                          `- error: cannot find 'ICRNL' in scope
 39 |         let oflagOff: UInt = UInt(OPOST)
 40 |         raw.c_lflag &= ~tcflag_t(lflagOff)
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:38:50: error: cannot find 'BRKINT' in scope
 36 |         var raw = original
 37 |         let lflagOff: UInt = UInt(ECHO | ICANON | ISIG | IEXTEN)
 38 |         let iflagOff: UInt = UInt(IXON | ICRNL | BRKINT | INPCK | ISTRIP)
    |                                                  `- error: cannot find 'BRKINT' in scope
 39 |         let oflagOff: UInt = UInt(OPOST)
 40 |         raw.c_lflag &= ~tcflag_t(lflagOff)
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:38:59: error: cannot find 'INPCK' in scope
 36 |         var raw = original
 37 |         let lflagOff: UInt = UInt(ECHO | ICANON | ISIG | IEXTEN)
 38 |         let iflagOff: UInt = UInt(IXON | ICRNL | BRKINT | INPCK | ISTRIP)
    |                                                           `- error: cannot find 'INPCK' in scope
 39 |         let oflagOff: UInt = UInt(OPOST)
 40 |         raw.c_lflag &= ~tcflag_t(lflagOff)
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:38:67: error: cannot find 'ISTRIP' in scope
 36 |         var raw = original
 37 |         let lflagOff: UInt = UInt(ECHO | ICANON | ISIG | IEXTEN)
 38 |         let iflagOff: UInt = UInt(IXON | ICRNL | BRKINT | INPCK | ISTRIP)
    |                                                                   `- error: cannot find 'ISTRIP' in scope
 39 |         let oflagOff: UInt = UInt(OPOST)
 40 |         raw.c_lflag &= ~tcflag_t(lflagOff)
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:39:35: error: cannot find 'OPOST' in scope
 37 |         let lflagOff: UInt = UInt(ECHO | ICANON | ISIG | IEXTEN)
 38 |         let iflagOff: UInt = UInt(IXON | ICRNL | BRKINT | INPCK | ISTRIP)
 39 |         let oflagOff: UInt = UInt(OPOST)
    |                                   `- error: cannot find 'OPOST' in scope
 40 |         raw.c_lflag &= ~tcflag_t(lflagOff)
 41 |         raw.c_iflag &= ~tcflag_t(iflagOff)
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:40:25: error: cannot find 'tcflag_t' in scope
 38 |         let iflagOff: UInt = UInt(IXON | ICRNL | BRKINT | INPCK | ISTRIP)
 39 |         let oflagOff: UInt = UInt(OPOST)
 40 |         raw.c_lflag &= ~tcflag_t(lflagOff)
    |                         `- error: cannot find 'tcflag_t' in scope
 41 |         raw.c_iflag &= ~tcflag_t(iflagOff)
 42 |         raw.c_oflag &= ~tcflag_t(oflagOff)
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:41:25: error: cannot find 'tcflag_t' in scope
 39 |         let oflagOff: UInt = UInt(OPOST)
 40 |         raw.c_lflag &= ~tcflag_t(lflagOff)
 41 |         raw.c_iflag &= ~tcflag_t(iflagOff)
    |                         `- error: cannot find 'tcflag_t' in scope
 42 |         raw.c_oflag &= ~tcflag_t(oflagOff)
 43 |         raw.c_cflag |= tcflag_t(CS8)
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:42:25: error: cannot find 'tcflag_t' in scope
 40 |         raw.c_lflag &= ~tcflag_t(lflagOff)
 41 |         raw.c_iflag &= ~tcflag_t(iflagOff)
 42 |         raw.c_oflag &= ~tcflag_t(oflagOff)
    |                         `- error: cannot find 'tcflag_t' in scope
 43 |         raw.c_cflag |= tcflag_t(CS8)
 44 |         withUnsafeMutablePointer(to: &raw.c_cc) { p in
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:43:24: error: cannot find 'tcflag_t' in scope
 41 |         raw.c_iflag &= ~tcflag_t(iflagOff)
 42 |         raw.c_oflag &= ~tcflag_t(oflagOff)
 43 |         raw.c_cflag |= tcflag_t(CS8)
    |                        `- error: cannot find 'tcflag_t' in scope
 44 |         withUnsafeMutablePointer(to: &raw.c_cc) { p in
 45 |             p.withMemoryRebound(to: cc_t.self, capacity: Int(NCCS)) { cc in
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:43:33: error: cannot find 'CS8' in scope
 41 |         raw.c_iflag &= ~tcflag_t(iflagOff)
 42 |         raw.c_oflag &= ~tcflag_t(oflagOff)
 43 |         raw.c_cflag |= tcflag_t(CS8)
    |                                 `- error: cannot find 'CS8' in scope
 44 |         withUnsafeMutablePointer(to: &raw.c_cc) { p in
 45 |             p.withMemoryRebound(to: cc_t.self, capacity: Int(NCCS)) { cc in
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:45:37: error: cannot find 'cc_t' in scope
 43 |         raw.c_cflag |= tcflag_t(CS8)
 44 |         withUnsafeMutablePointer(to: &raw.c_cc) { p in
 45 |             p.withMemoryRebound(to: cc_t.self, capacity: Int(NCCS)) { cc in
    |                                     `- error: cannot find 'cc_t' in scope
 46 |                 cc[Int(VMIN)]  = 1   // block until at least 1 byte available
 47 |                 cc[Int(VTIME)] = 1   // 100ms timeout between bytes once started
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:45:62: error: cannot find 'NCCS' in scope
 43 |         raw.c_cflag |= tcflag_t(CS8)
 44 |         withUnsafeMutablePointer(to: &raw.c_cc) { p in
 45 |             p.withMemoryRebound(to: cc_t.self, capacity: Int(NCCS)) { cc in
    |                                                              `- error: cannot find 'NCCS' in scope
 46 |                 cc[Int(VMIN)]  = 1   // block until at least 1 byte available
 47 |                 cc[Int(VTIME)] = 1   // 100ms timeout between bytes once started
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:46:24: error: cannot find 'VMIN' in scope
 44 |         withUnsafeMutablePointer(to: &raw.c_cc) { p in
 45 |             p.withMemoryRebound(to: cc_t.self, capacity: Int(NCCS)) { cc in
 46 |                 cc[Int(VMIN)]  = 1   // block until at least 1 byte available
    |                        `- error: cannot find 'VMIN' in scope
 47 |                 cc[Int(VTIME)] = 1   // 100ms timeout between bytes once started
 48 |             }
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:47:24: error: cannot find 'VTIME' in scope
 45 |             p.withMemoryRebound(to: cc_t.self, capacity: Int(NCCS)) { cc in
 46 |                 cc[Int(VMIN)]  = 1   // block until at least 1 byte available
 47 |                 cc[Int(VTIME)] = 1   // 100ms timeout between bytes once started
    |                        `- error: cannot find 'VTIME' in scope
 48 |             }
 49 |         }
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:50:9: error: cannot find 'tcsetattr' in scope
 48 |             }
 49 |         }
 50 |         tcsetattr(STDIN_FILENO, TCSAFLUSH, &raw)
    |         `- error: cannot find 'tcsetattr' in scope
 51 |         return RawMode(original: original)
 52 |     }
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:50:33: error: cannot find 'TCSAFLUSH' in scope
 48 |             }
 49 |         }
 50 |         tcsetattr(STDIN_FILENO, TCSAFLUSH, &raw)
    |                                 `- error: cannot find 'TCSAFLUSH' in scope
 51 |         return RawMode(original: original)
 52 |     }
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:56:9: error: cannot find 'tcsetattr' in scope
 54 |     func restore() {
 55 |         var orig = original
 56 |         tcsetattr(STDIN_FILENO, TCSAFLUSH, &orig)
    |         `- error: cannot find 'tcsetattr' in scope
 57 |     }
 58 | }
/host/spi-builder-workspace/Tools/EmojiBugScanner/main.swift:56:33: error: cannot find 'TCSAFLUSH' in scope
 54 |     func restore() {
 55 |         var orig = original
 56 |         tcsetattr(STDIN_FILENO, TCSAFLUSH, &orig)
    |                                 `- error: cannot find 'TCSAFLUSH' in scope
 57 |     }
 58 | }
[192/241] Linking EmojiBenchmark.wasm
BUILD FAILURE 6.2 wasm