Build Information
Failed to build SwiftLI, reference main (760d49), with Swift 6.2 for Wasm on 26 Aug 2026 07:31:50 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344847-0":/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>&1Build Log
95 | signal(s, SIG_DFL)
96 | raise(s)
| `- error: cannot find 'raise' in scope
97 | }
98 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'tcsetattr' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'TCSANOW' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 | // Save and switch to raw mode (no echo, no canonical line editing,
208 | // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 | tcgetattr(STDIN_FILENO, &originalTermios)
| `- error: cannot find 'tcgetattr' in scope
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 | tcgetattr(STDIN_FILENO, &originalTermios)
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
| `- error: cannot find 'cfmakeraw' in scope
212 |
213 | // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 | // (e.g. a full-viewport scroll diff) with a short write when the tty
219 | // buffer is momentarily full. A timed read avoids touching those flags.
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
| `- error: cannot find type 'cc_t' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
| `- error: cannot find 'cc_t' in scope
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
| `- error: cannot find 'VMIN' in scope
224 | cc[Int(VTIME)] = 1
225 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
| `- error: cannot find 'VTIME' in scope
225 | }
226 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 | isActive = true
237 | running = true
238 | let t = Thread { [weak self] in self?.loop() }
| `- error: cannot find 'Thread' in scope
239 | t.stackSize = 1 << 20
240 | thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'tcsetattr' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'TCSANOW' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 | // the kernel queues multiple reports together (fast scroll
282 | // or trackpad bursts), reducing dispatch overhead and lag.
283 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
284 | for event in events { cb(event) }
285 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 | } else if n < 0 {
288 | // Read error; yield briefly and retry.
289 | Thread.sleep(forTimeInterval: 0.005)
| `- error: cannot find 'Thread' in scope
290 | }
291 | // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
93 |
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
| `- error: cannot find 'Thread' in scope
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
| `- error: cannot find 'Thread' in scope
97 | }
98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 | if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 | let perform = self.perform
250 | DispatchQueue.main.async { [value] in perform(value) }
| `- error: cannot find 'DispatchQueue' in scope
251 | }
252 | return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
60 | // (`scheduleRender()` above already dispatches internally.)
61 | self.notificationScheduled()
62 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
63 | StateObserverRegistry.shared.notifyChange()
64 | self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
75 | private var savedStdout: Int32 = -1
76 | private var readEnd: Int32 = -1
77 | private var drained: DispatchSemaphore?
| `- error: cannot find type 'DispatchSemaphore' in scope
78 | private var active = false
79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
96 | let saved = _dup(STDOUT_FILENO)
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
| `- error: cannot find 'pipe' in scope
99 | let saved = dup(STDOUT_FILENO)
100 | #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
99 | let saved = dup(STDOUT_FILENO)
| `- error: cannot find 'dup' in scope
100 | #endif
101 | guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 | _close(fds[1])
116 | #else
117 | guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
| `- error: cannot find 'dup2' in scope
118 | close(fds[0]); close(fds[1]); close(saved)
119 | return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 | let readFD = fds[0]
135 | let done = DispatchSemaphore(value: 0)
| `- error: cannot find 'DispatchSemaphore' in scope
136 | drained = done
137 | Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 | let done = DispatchSemaphore(value: 0)
136 | drained = done
137 | Thread.detachNewThread {
| `- error: cannot find 'Thread' in scope
138 | var pending: [UInt8] = []
139 | var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 | _dup2(saved, STDOUT_FILENO) // the pipe loses its last writer → EOF
184 | #else
185 | dup2(saved, STDOUT_FILENO)
| `- error: cannot find 'dup2' in scope
186 | #endif
187 | #if !os(Windows)
[105/168] Compiling SwiftLI KeyEvent.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
70 | /// fatal-signal handlers.
71 | private enum TerminalRestoreGuard {
72 | nonisolated(unsafe) private static var saved = termios()
| `- error: cannot find 'termios' in scope
73 | nonisolated(unsafe) private static var hasSaved = false
74 | nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
79 |
80 | /// Records the pre-raw settings and installs the exit hooks (once).
81 | static func arm(original: termios, mouseEnabled: Bool) {
| `- error: cannot find type 'termios' in scope
82 | saved = original
83 | hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 | private var originalConsoleMode: DWORD = 0
154 | #else
155 | private var originalTermios = termios()
| `- error: cannot find 'termios' in scope
156 | #endif
157 | private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 | private var isActive = false
158 | private var running = false
159 | private var thread: Thread?
| `- error: cannot find type 'Thread' in scope
160 |
161 | /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGTERM' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGHUP' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGQUIT' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
93 | signal(sig) { s in
| `- error: cannot find 'signal' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'signal' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'SIG_DFL' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
96 | raise(s)
| `- error: cannot find 'raise' in scope
97 | }
98 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'tcsetattr' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'TCSANOW' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 | // Save and switch to raw mode (no echo, no canonical line editing,
208 | // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 | tcgetattr(STDIN_FILENO, &originalTermios)
| `- error: cannot find 'tcgetattr' in scope
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 | tcgetattr(STDIN_FILENO, &originalTermios)
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
| `- error: cannot find 'cfmakeraw' in scope
212 |
213 | // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 | // (e.g. a full-viewport scroll diff) with a short write when the tty
219 | // buffer is momentarily full. A timed read avoids touching those flags.
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
| `- error: cannot find type 'cc_t' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
| `- error: cannot find 'cc_t' in scope
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
| `- error: cannot find 'VMIN' in scope
224 | cc[Int(VTIME)] = 1
225 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
| `- error: cannot find 'VTIME' in scope
225 | }
226 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 | isActive = true
237 | running = true
238 | let t = Thread { [weak self] in self?.loop() }
| `- error: cannot find 'Thread' in scope
239 | t.stackSize = 1 << 20
240 | thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'tcsetattr' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'TCSANOW' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 | // the kernel queues multiple reports together (fast scroll
282 | // or trackpad bursts), reducing dispatch overhead and lag.
283 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
284 | for event in events { cb(event) }
285 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 | } else if n < 0 {
288 | // Read error; yield briefly and retry.
289 | Thread.sleep(forTimeInterval: 0.005)
| `- error: cannot find 'Thread' in scope
290 | }
291 | // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
93 |
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
| `- error: cannot find 'Thread' in scope
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
| `- error: cannot find 'Thread' in scope
97 | }
98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 | if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 | let perform = self.perform
250 | DispatchQueue.main.async { [value] in perform(value) }
| `- error: cannot find 'DispatchQueue' in scope
251 | }
252 | return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
60 | // (`scheduleRender()` above already dispatches internally.)
61 | self.notificationScheduled()
62 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
63 | StateObserverRegistry.shared.notifyChange()
64 | self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
75 | private var savedStdout: Int32 = -1
76 | private var readEnd: Int32 = -1
77 | private var drained: DispatchSemaphore?
| `- error: cannot find type 'DispatchSemaphore' in scope
78 | private var active = false
79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
96 | let saved = _dup(STDOUT_FILENO)
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
| `- error: cannot find 'pipe' in scope
99 | let saved = dup(STDOUT_FILENO)
100 | #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
99 | let saved = dup(STDOUT_FILENO)
| `- error: cannot find 'dup' in scope
100 | #endif
101 | guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 | _close(fds[1])
116 | #else
117 | guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
| `- error: cannot find 'dup2' in scope
118 | close(fds[0]); close(fds[1]); close(saved)
119 | return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 | let readFD = fds[0]
135 | let done = DispatchSemaphore(value: 0)
| `- error: cannot find 'DispatchSemaphore' in scope
136 | drained = done
137 | Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 | let done = DispatchSemaphore(value: 0)
136 | drained = done
137 | Thread.detachNewThread {
| `- error: cannot find 'Thread' in scope
138 | var pending: [UInt8] = []
139 | var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 | _dup2(saved, STDOUT_FILENO) // the pipe loses its last writer → EOF
184 | #else
185 | dup2(saved, STDOUT_FILENO)
| `- error: cannot find 'dup2' in scope
186 | #endif
187 | #if !os(Windows)
[106/168] Compiling SwiftLI KeyInputRouter.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
70 | /// fatal-signal handlers.
71 | private enum TerminalRestoreGuard {
72 | nonisolated(unsafe) private static var saved = termios()
| `- error: cannot find 'termios' in scope
73 | nonisolated(unsafe) private static var hasSaved = false
74 | nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
79 |
80 | /// Records the pre-raw settings and installs the exit hooks (once).
81 | static func arm(original: termios, mouseEnabled: Bool) {
| `- error: cannot find type 'termios' in scope
82 | saved = original
83 | hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 | private var originalConsoleMode: DWORD = 0
154 | #else
155 | private var originalTermios = termios()
| `- error: cannot find 'termios' in scope
156 | #endif
157 | private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 | private var isActive = false
158 | private var running = false
159 | private var thread: Thread?
| `- error: cannot find type 'Thread' in scope
160 |
161 | /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGTERM' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGHUP' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGQUIT' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
93 | signal(sig) { s in
| `- error: cannot find 'signal' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'signal' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'SIG_DFL' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
96 | raise(s)
| `- error: cannot find 'raise' in scope
97 | }
98 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'tcsetattr' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'TCSANOW' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 | // Save and switch to raw mode (no echo, no canonical line editing,
208 | // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 | tcgetattr(STDIN_FILENO, &originalTermios)
| `- error: cannot find 'tcgetattr' in scope
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 | tcgetattr(STDIN_FILENO, &originalTermios)
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
| `- error: cannot find 'cfmakeraw' in scope
212 |
213 | // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 | // (e.g. a full-viewport scroll diff) with a short write when the tty
219 | // buffer is momentarily full. A timed read avoids touching those flags.
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
| `- error: cannot find type 'cc_t' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
| `- error: cannot find 'cc_t' in scope
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
| `- error: cannot find 'VMIN' in scope
224 | cc[Int(VTIME)] = 1
225 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
| `- error: cannot find 'VTIME' in scope
225 | }
226 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 | isActive = true
237 | running = true
238 | let t = Thread { [weak self] in self?.loop() }
| `- error: cannot find 'Thread' in scope
239 | t.stackSize = 1 << 20
240 | thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'tcsetattr' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'TCSANOW' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 | // the kernel queues multiple reports together (fast scroll
282 | // or trackpad bursts), reducing dispatch overhead and lag.
283 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
284 | for event in events { cb(event) }
285 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 | } else if n < 0 {
288 | // Read error; yield briefly and retry.
289 | Thread.sleep(forTimeInterval: 0.005)
| `- error: cannot find 'Thread' in scope
290 | }
291 | // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
93 |
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
| `- error: cannot find 'Thread' in scope
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
| `- error: cannot find 'Thread' in scope
97 | }
98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 | if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 | let perform = self.perform
250 | DispatchQueue.main.async { [value] in perform(value) }
| `- error: cannot find 'DispatchQueue' in scope
251 | }
252 | return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
60 | // (`scheduleRender()` above already dispatches internally.)
61 | self.notificationScheduled()
62 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
63 | StateObserverRegistry.shared.notifyChange()
64 | self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
75 | private var savedStdout: Int32 = -1
76 | private var readEnd: Int32 = -1
77 | private var drained: DispatchSemaphore?
| `- error: cannot find type 'DispatchSemaphore' in scope
78 | private var active = false
79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
96 | let saved = _dup(STDOUT_FILENO)
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
| `- error: cannot find 'pipe' in scope
99 | let saved = dup(STDOUT_FILENO)
100 | #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
99 | let saved = dup(STDOUT_FILENO)
| `- error: cannot find 'dup' in scope
100 | #endif
101 | guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 | _close(fds[1])
116 | #else
117 | guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
| `- error: cannot find 'dup2' in scope
118 | close(fds[0]); close(fds[1]); close(saved)
119 | return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 | let readFD = fds[0]
135 | let done = DispatchSemaphore(value: 0)
| `- error: cannot find 'DispatchSemaphore' in scope
136 | drained = done
137 | Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 | let done = DispatchSemaphore(value: 0)
136 | drained = done
137 | Thread.detachNewThread {
| `- error: cannot find 'Thread' in scope
138 | var pending: [UInt8] = []
139 | var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 | _dup2(saved, STDOUT_FILENO) // the pipe loses its last writer → EOF
184 | #else
185 | dup2(saved, STDOUT_FILENO)
| `- error: cannot find 'dup2' in scope
186 | #endif
187 | #if !os(Windows)
[107/168] Compiling SwiftLI KeyboardReader.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
70 | /// fatal-signal handlers.
71 | private enum TerminalRestoreGuard {
72 | nonisolated(unsafe) private static var saved = termios()
| `- error: cannot find 'termios' in scope
73 | nonisolated(unsafe) private static var hasSaved = false
74 | nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
79 |
80 | /// Records the pre-raw settings and installs the exit hooks (once).
81 | static func arm(original: termios, mouseEnabled: Bool) {
| `- error: cannot find type 'termios' in scope
82 | saved = original
83 | hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 | private var originalConsoleMode: DWORD = 0
154 | #else
155 | private var originalTermios = termios()
| `- error: cannot find 'termios' in scope
156 | #endif
157 | private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 | private var isActive = false
158 | private var running = false
159 | private var thread: Thread?
| `- error: cannot find type 'Thread' in scope
160 |
161 | /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGTERM' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGHUP' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGQUIT' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
93 | signal(sig) { s in
| `- error: cannot find 'signal' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'signal' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'SIG_DFL' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
96 | raise(s)
| `- error: cannot find 'raise' in scope
97 | }
98 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'tcsetattr' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'TCSANOW' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 | // Save and switch to raw mode (no echo, no canonical line editing,
208 | // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 | tcgetattr(STDIN_FILENO, &originalTermios)
| `- error: cannot find 'tcgetattr' in scope
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 | tcgetattr(STDIN_FILENO, &originalTermios)
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
| `- error: cannot find 'cfmakeraw' in scope
212 |
213 | // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 | // (e.g. a full-viewport scroll diff) with a short write when the tty
219 | // buffer is momentarily full. A timed read avoids touching those flags.
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
| `- error: cannot find type 'cc_t' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
| `- error: cannot find 'cc_t' in scope
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
| `- error: cannot find 'VMIN' in scope
224 | cc[Int(VTIME)] = 1
225 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
| `- error: cannot find 'VTIME' in scope
225 | }
226 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 | isActive = true
237 | running = true
238 | let t = Thread { [weak self] in self?.loop() }
| `- error: cannot find 'Thread' in scope
239 | t.stackSize = 1 << 20
240 | thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'tcsetattr' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'TCSANOW' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 | // the kernel queues multiple reports together (fast scroll
282 | // or trackpad bursts), reducing dispatch overhead and lag.
283 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
284 | for event in events { cb(event) }
285 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 | } else if n < 0 {
288 | // Read error; yield briefly and retry.
289 | Thread.sleep(forTimeInterval: 0.005)
| `- error: cannot find 'Thread' in scope
290 | }
291 | // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
93 |
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
| `- error: cannot find 'Thread' in scope
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
| `- error: cannot find 'Thread' in scope
97 | }
98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 | if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 | let perform = self.perform
250 | DispatchQueue.main.async { [value] in perform(value) }
| `- error: cannot find 'DispatchQueue' in scope
251 | }
252 | return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
60 | // (`scheduleRender()` above already dispatches internally.)
61 | self.notificationScheduled()
62 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
63 | StateObserverRegistry.shared.notifyChange()
64 | self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
75 | private var savedStdout: Int32 = -1
76 | private var readEnd: Int32 = -1
77 | private var drained: DispatchSemaphore?
| `- error: cannot find type 'DispatchSemaphore' in scope
78 | private var active = false
79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
96 | let saved = _dup(STDOUT_FILENO)
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
| `- error: cannot find 'pipe' in scope
99 | let saved = dup(STDOUT_FILENO)
100 | #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
99 | let saved = dup(STDOUT_FILENO)
| `- error: cannot find 'dup' in scope
100 | #endif
101 | guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 | _close(fds[1])
116 | #else
117 | guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
| `- error: cannot find 'dup2' in scope
118 | close(fds[0]); close(fds[1]); close(saved)
119 | return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 | let readFD = fds[0]
135 | let done = DispatchSemaphore(value: 0)
| `- error: cannot find 'DispatchSemaphore' in scope
136 | drained = done
137 | Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 | let done = DispatchSemaphore(value: 0)
136 | drained = done
137 | Thread.detachNewThread {
| `- error: cannot find 'Thread' in scope
138 | var pending: [UInt8] = []
139 | var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 | _dup2(saved, STDOUT_FILENO) // the pipe loses its last writer → EOF
184 | #else
185 | dup2(saved, STDOUT_FILENO)
| `- error: cannot find 'dup2' in scope
186 | #endif
187 | #if !os(Windows)
[108/168] Compiling SwiftLI LifecycleModifier.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
70 | /// fatal-signal handlers.
71 | private enum TerminalRestoreGuard {
72 | nonisolated(unsafe) private static var saved = termios()
| `- error: cannot find 'termios' in scope
73 | nonisolated(unsafe) private static var hasSaved = false
74 | nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
79 |
80 | /// Records the pre-raw settings and installs the exit hooks (once).
81 | static func arm(original: termios, mouseEnabled: Bool) {
| `- error: cannot find type 'termios' in scope
82 | saved = original
83 | hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 | private var originalConsoleMode: DWORD = 0
154 | #else
155 | private var originalTermios = termios()
| `- error: cannot find 'termios' in scope
156 | #endif
157 | private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 | private var isActive = false
158 | private var running = false
159 | private var thread: Thread?
| `- error: cannot find type 'Thread' in scope
160 |
161 | /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGTERM' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGHUP' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGQUIT' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
93 | signal(sig) { s in
| `- error: cannot find 'signal' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'signal' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'SIG_DFL' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
96 | raise(s)
| `- error: cannot find 'raise' in scope
97 | }
98 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'tcsetattr' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'TCSANOW' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 | // Save and switch to raw mode (no echo, no canonical line editing,
208 | // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 | tcgetattr(STDIN_FILENO, &originalTermios)
| `- error: cannot find 'tcgetattr' in scope
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 | tcgetattr(STDIN_FILENO, &originalTermios)
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
| `- error: cannot find 'cfmakeraw' in scope
212 |
213 | // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 | // (e.g. a full-viewport scroll diff) with a short write when the tty
219 | // buffer is momentarily full. A timed read avoids touching those flags.
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
| `- error: cannot find type 'cc_t' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
| `- error: cannot find 'cc_t' in scope
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
| `- error: cannot find 'VMIN' in scope
224 | cc[Int(VTIME)] = 1
225 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
| `- error: cannot find 'VTIME' in scope
225 | }
226 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 | isActive = true
237 | running = true
238 | let t = Thread { [weak self] in self?.loop() }
| `- error: cannot find 'Thread' in scope
239 | t.stackSize = 1 << 20
240 | thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'tcsetattr' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'TCSANOW' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 | // the kernel queues multiple reports together (fast scroll
282 | // or trackpad bursts), reducing dispatch overhead and lag.
283 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
284 | for event in events { cb(event) }
285 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 | } else if n < 0 {
288 | // Read error; yield briefly and retry.
289 | Thread.sleep(forTimeInterval: 0.005)
| `- error: cannot find 'Thread' in scope
290 | }
291 | // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
93 |
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
| `- error: cannot find 'Thread' in scope
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
| `- error: cannot find 'Thread' in scope
97 | }
98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 | if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 | let perform = self.perform
250 | DispatchQueue.main.async { [value] in perform(value) }
| `- error: cannot find 'DispatchQueue' in scope
251 | }
252 | return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
60 | // (`scheduleRender()` above already dispatches internally.)
61 | self.notificationScheduled()
62 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
63 | StateObserverRegistry.shared.notifyChange()
64 | self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
75 | private var savedStdout: Int32 = -1
76 | private var readEnd: Int32 = -1
77 | private var drained: DispatchSemaphore?
| `- error: cannot find type 'DispatchSemaphore' in scope
78 | private var active = false
79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
96 | let saved = _dup(STDOUT_FILENO)
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
| `- error: cannot find 'pipe' in scope
99 | let saved = dup(STDOUT_FILENO)
100 | #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
99 | let saved = dup(STDOUT_FILENO)
| `- error: cannot find 'dup' in scope
100 | #endif
101 | guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 | _close(fds[1])
116 | #else
117 | guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
| `- error: cannot find 'dup2' in scope
118 | close(fds[0]); close(fds[1]); close(saved)
119 | return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 | let readFD = fds[0]
135 | let done = DispatchSemaphore(value: 0)
| `- error: cannot find 'DispatchSemaphore' in scope
136 | drained = done
137 | Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 | let done = DispatchSemaphore(value: 0)
136 | drained = done
137 | Thread.detachNewThread {
| `- error: cannot find 'Thread' in scope
138 | var pending: [UInt8] = []
139 | var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 | _dup2(saved, STDOUT_FILENO) // the pipe loses its last writer → EOF
184 | #else
185 | dup2(saved, STDOUT_FILENO)
| `- error: cannot find 'dup2' in scope
186 | #endif
187 | #if !os(Windows)
[109/168] Compiling SwiftLI MouseEvent.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
70 | /// fatal-signal handlers.
71 | private enum TerminalRestoreGuard {
72 | nonisolated(unsafe) private static var saved = termios()
| `- error: cannot find 'termios' in scope
73 | nonisolated(unsafe) private static var hasSaved = false
74 | nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
79 |
80 | /// Records the pre-raw settings and installs the exit hooks (once).
81 | static func arm(original: termios, mouseEnabled: Bool) {
| `- error: cannot find type 'termios' in scope
82 | saved = original
83 | hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 | private var originalConsoleMode: DWORD = 0
154 | #else
155 | private var originalTermios = termios()
| `- error: cannot find 'termios' in scope
156 | #endif
157 | private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 | private var isActive = false
158 | private var running = false
159 | private var thread: Thread?
| `- error: cannot find type 'Thread' in scope
160 |
161 | /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGTERM' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGHUP' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGQUIT' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
93 | signal(sig) { s in
| `- error: cannot find 'signal' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'signal' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'SIG_DFL' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
96 | raise(s)
| `- error: cannot find 'raise' in scope
97 | }
98 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'tcsetattr' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'TCSANOW' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 | // Save and switch to raw mode (no echo, no canonical line editing,
208 | // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 | tcgetattr(STDIN_FILENO, &originalTermios)
| `- error: cannot find 'tcgetattr' in scope
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 | tcgetattr(STDIN_FILENO, &originalTermios)
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
| `- error: cannot find 'cfmakeraw' in scope
212 |
213 | // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 | // (e.g. a full-viewport scroll diff) with a short write when the tty
219 | // buffer is momentarily full. A timed read avoids touching those flags.
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
| `- error: cannot find type 'cc_t' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
| `- error: cannot find 'cc_t' in scope
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
| `- error: cannot find 'VMIN' in scope
224 | cc[Int(VTIME)] = 1
225 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
| `- error: cannot find 'VTIME' in scope
225 | }
226 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 | isActive = true
237 | running = true
238 | let t = Thread { [weak self] in self?.loop() }
| `- error: cannot find 'Thread' in scope
239 | t.stackSize = 1 << 20
240 | thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'tcsetattr' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'TCSANOW' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 | // the kernel queues multiple reports together (fast scroll
282 | // or trackpad bursts), reducing dispatch overhead and lag.
283 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
284 | for event in events { cb(event) }
285 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 | } else if n < 0 {
288 | // Read error; yield briefly and retry.
289 | Thread.sleep(forTimeInterval: 0.005)
| `- error: cannot find 'Thread' in scope
290 | }
291 | // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
93 |
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
| `- error: cannot find 'Thread' in scope
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
| `- error: cannot find 'Thread' in scope
97 | }
98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 | if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 | let perform = self.perform
250 | DispatchQueue.main.async { [value] in perform(value) }
| `- error: cannot find 'DispatchQueue' in scope
251 | }
252 | return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
60 | // (`scheduleRender()` above already dispatches internally.)
61 | self.notificationScheduled()
62 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
63 | StateObserverRegistry.shared.notifyChange()
64 | self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
75 | private var savedStdout: Int32 = -1
76 | private var readEnd: Int32 = -1
77 | private var drained: DispatchSemaphore?
| `- error: cannot find type 'DispatchSemaphore' in scope
78 | private var active = false
79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
96 | let saved = _dup(STDOUT_FILENO)
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
| `- error: cannot find 'pipe' in scope
99 | let saved = dup(STDOUT_FILENO)
100 | #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
99 | let saved = dup(STDOUT_FILENO)
| `- error: cannot find 'dup' in scope
100 | #endif
101 | guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 | _close(fds[1])
116 | #else
117 | guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
| `- error: cannot find 'dup2' in scope
118 | close(fds[0]); close(fds[1]); close(saved)
119 | return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 | let readFD = fds[0]
135 | let done = DispatchSemaphore(value: 0)
| `- error: cannot find 'DispatchSemaphore' in scope
136 | drained = done
137 | Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 | let done = DispatchSemaphore(value: 0)
136 | drained = done
137 | Thread.detachNewThread {
| `- error: cannot find 'Thread' in scope
138 | var pending: [UInt8] = []
139 | var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 | _dup2(saved, STDOUT_FILENO) // the pipe loses its last writer → EOF
184 | #else
185 | dup2(saved, STDOUT_FILENO)
| `- error: cannot find 'dup2' in scope
186 | #endif
187 | #if !os(Windows)
[110/168] Compiling SwiftLI MouseTargetRegistry.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
70 | /// fatal-signal handlers.
71 | private enum TerminalRestoreGuard {
72 | nonisolated(unsafe) private static var saved = termios()
| `- error: cannot find 'termios' in scope
73 | nonisolated(unsafe) private static var hasSaved = false
74 | nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
79 |
80 | /// Records the pre-raw settings and installs the exit hooks (once).
81 | static func arm(original: termios, mouseEnabled: Bool) {
| `- error: cannot find type 'termios' in scope
82 | saved = original
83 | hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 | private var originalConsoleMode: DWORD = 0
154 | #else
155 | private var originalTermios = termios()
| `- error: cannot find 'termios' in scope
156 | #endif
157 | private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 | private var isActive = false
158 | private var running = false
159 | private var thread: Thread?
| `- error: cannot find type 'Thread' in scope
160 |
161 | /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGTERM' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGHUP' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGQUIT' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
93 | signal(sig) { s in
| `- error: cannot find 'signal' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'signal' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'SIG_DFL' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
96 | raise(s)
| `- error: cannot find 'raise' in scope
97 | }
98 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'tcsetattr' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'TCSANOW' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 | // Save and switch to raw mode (no echo, no canonical line editing,
208 | // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 | tcgetattr(STDIN_FILENO, &originalTermios)
| `- error: cannot find 'tcgetattr' in scope
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 | tcgetattr(STDIN_FILENO, &originalTermios)
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
| `- error: cannot find 'cfmakeraw' in scope
212 |
213 | // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 | // (e.g. a full-viewport scroll diff) with a short write when the tty
219 | // buffer is momentarily full. A timed read avoids touching those flags.
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
| `- error: cannot find type 'cc_t' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
| `- error: cannot find 'cc_t' in scope
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
| `- error: cannot find 'VMIN' in scope
224 | cc[Int(VTIME)] = 1
225 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
| `- error: cannot find 'VTIME' in scope
225 | }
226 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 | isActive = true
237 | running = true
238 | let t = Thread { [weak self] in self?.loop() }
| `- error: cannot find 'Thread' in scope
239 | t.stackSize = 1 << 20
240 | thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'tcsetattr' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'TCSANOW' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 | // the kernel queues multiple reports together (fast scroll
282 | // or trackpad bursts), reducing dispatch overhead and lag.
283 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
284 | for event in events { cb(event) }
285 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 | } else if n < 0 {
288 | // Read error; yield briefly and retry.
289 | Thread.sleep(forTimeInterval: 0.005)
| `- error: cannot find 'Thread' in scope
290 | }
291 | // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
93 |
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
| `- error: cannot find 'Thread' in scope
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
| `- error: cannot find 'Thread' in scope
97 | }
98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 | if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 | let perform = self.perform
250 | DispatchQueue.main.async { [value] in perform(value) }
| `- error: cannot find 'DispatchQueue' in scope
251 | }
252 | return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
60 | // (`scheduleRender()` above already dispatches internally.)
61 | self.notificationScheduled()
62 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
63 | StateObserverRegistry.shared.notifyChange()
64 | self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
75 | private var savedStdout: Int32 = -1
76 | private var readEnd: Int32 = -1
77 | private var drained: DispatchSemaphore?
| `- error: cannot find type 'DispatchSemaphore' in scope
78 | private var active = false
79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
96 | let saved = _dup(STDOUT_FILENO)
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
| `- error: cannot find 'pipe' in scope
99 | let saved = dup(STDOUT_FILENO)
100 | #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
99 | let saved = dup(STDOUT_FILENO)
| `- error: cannot find 'dup' in scope
100 | #endif
101 | guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 | _close(fds[1])
116 | #else
117 | guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
| `- error: cannot find 'dup2' in scope
118 | close(fds[0]); close(fds[1]); close(saved)
119 | return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 | let readFD = fds[0]
135 | let done = DispatchSemaphore(value: 0)
| `- error: cannot find 'DispatchSemaphore' in scope
136 | drained = done
137 | Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 | let done = DispatchSemaphore(value: 0)
136 | drained = done
137 | Thread.detachNewThread {
| `- error: cannot find 'Thread' in scope
138 | var pending: [UInt8] = []
139 | var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 | _dup2(saved, STDOUT_FILENO) // the pipe loses its last writer → EOF
184 | #else
185 | dup2(saved, STDOUT_FILENO)
| `- error: cannot find 'dup2' in scope
186 | #endif
187 | #if !os(Windows)
[111/168] Compiling SwiftLI PreferenceKey.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
70 | /// fatal-signal handlers.
71 | private enum TerminalRestoreGuard {
72 | nonisolated(unsafe) private static var saved = termios()
| `- error: cannot find 'termios' in scope
73 | nonisolated(unsafe) private static var hasSaved = false
74 | nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
79 |
80 | /// Records the pre-raw settings and installs the exit hooks (once).
81 | static func arm(original: termios, mouseEnabled: Bool) {
| `- error: cannot find type 'termios' in scope
82 | saved = original
83 | hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 | private var originalConsoleMode: DWORD = 0
154 | #else
155 | private var originalTermios = termios()
| `- error: cannot find 'termios' in scope
156 | #endif
157 | private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 | private var isActive = false
158 | private var running = false
159 | private var thread: Thread?
| `- error: cannot find type 'Thread' in scope
160 |
161 | /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGTERM' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGHUP' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGQUIT' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
93 | signal(sig) { s in
| `- error: cannot find 'signal' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'signal' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'SIG_DFL' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
96 | raise(s)
| `- error: cannot find 'raise' in scope
97 | }
98 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'tcsetattr' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'TCSANOW' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 | // Save and switch to raw mode (no echo, no canonical line editing,
208 | // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 | tcgetattr(STDIN_FILENO, &originalTermios)
| `- error: cannot find 'tcgetattr' in scope
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 | tcgetattr(STDIN_FILENO, &originalTermios)
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
| `- error: cannot find 'cfmakeraw' in scope
212 |
213 | // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 | // (e.g. a full-viewport scroll diff) with a short write when the tty
219 | // buffer is momentarily full. A timed read avoids touching those flags.
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
| `- error: cannot find type 'cc_t' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
| `- error: cannot find 'cc_t' in scope
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
| `- error: cannot find 'VMIN' in scope
224 | cc[Int(VTIME)] = 1
225 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
| `- error: cannot find 'VTIME' in scope
225 | }
226 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 | isActive = true
237 | running = true
238 | let t = Thread { [weak self] in self?.loop() }
| `- error: cannot find 'Thread' in scope
239 | t.stackSize = 1 << 20
240 | thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'tcsetattr' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'TCSANOW' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 | // the kernel queues multiple reports together (fast scroll
282 | // or trackpad bursts), reducing dispatch overhead and lag.
283 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
284 | for event in events { cb(event) }
285 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 | } else if n < 0 {
288 | // Read error; yield briefly and retry.
289 | Thread.sleep(forTimeInterval: 0.005)
| `- error: cannot find 'Thread' in scope
290 | }
291 | // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
93 |
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
| `- error: cannot find 'Thread' in scope
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
| `- error: cannot find 'Thread' in scope
97 | }
98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 | if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 | let perform = self.perform
250 | DispatchQueue.main.async { [value] in perform(value) }
| `- error: cannot find 'DispatchQueue' in scope
251 | }
252 | return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
60 | // (`scheduleRender()` above already dispatches internally.)
61 | self.notificationScheduled()
62 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
63 | StateObserverRegistry.shared.notifyChange()
64 | self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
75 | private var savedStdout: Int32 = -1
76 | private var readEnd: Int32 = -1
77 | private var drained: DispatchSemaphore?
| `- error: cannot find type 'DispatchSemaphore' in scope
78 | private var active = false
79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
96 | let saved = _dup(STDOUT_FILENO)
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
| `- error: cannot find 'pipe' in scope
99 | let saved = dup(STDOUT_FILENO)
100 | #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
99 | let saved = dup(STDOUT_FILENO)
| `- error: cannot find 'dup' in scope
100 | #endif
101 | guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 | _close(fds[1])
116 | #else
117 | guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
| `- error: cannot find 'dup2' in scope
118 | close(fds[0]); close(fds[1]); close(saved)
119 | return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 | let readFD = fds[0]
135 | let done = DispatchSemaphore(value: 0)
| `- error: cannot find 'DispatchSemaphore' in scope
136 | drained = done
137 | Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 | let done = DispatchSemaphore(value: 0)
136 | drained = done
137 | Thread.detachNewThread {
| `- error: cannot find 'Thread' in scope
138 | var pending: [UInt8] = []
139 | var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 | _dup2(saved, STDOUT_FILENO) // the pipe loses its last writer → EOF
184 | #else
185 | dup2(saved, STDOUT_FILENO)
| `- error: cannot find 'dup2' in scope
186 | #endif
187 | #if !os(Windows)
[112/168] Compiling SwiftLI RenderObservation.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
70 | /// fatal-signal handlers.
71 | private enum TerminalRestoreGuard {
72 | nonisolated(unsafe) private static var saved = termios()
| `- error: cannot find 'termios' in scope
73 | nonisolated(unsafe) private static var hasSaved = false
74 | nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
79 |
80 | /// Records the pre-raw settings and installs the exit hooks (once).
81 | static func arm(original: termios, mouseEnabled: Bool) {
| `- error: cannot find type 'termios' in scope
82 | saved = original
83 | hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 | private var originalConsoleMode: DWORD = 0
154 | #else
155 | private var originalTermios = termios()
| `- error: cannot find 'termios' in scope
156 | #endif
157 | private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 | private var isActive = false
158 | private var running = false
159 | private var thread: Thread?
| `- error: cannot find type 'Thread' in scope
160 |
161 | /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGTERM' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGHUP' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGQUIT' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
93 | signal(sig) { s in
| `- error: cannot find 'signal' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'signal' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'SIG_DFL' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
96 | raise(s)
| `- error: cannot find 'raise' in scope
97 | }
98 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'tcsetattr' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'TCSANOW' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 | // Save and switch to raw mode (no echo, no canonical line editing,
208 | // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 | tcgetattr(STDIN_FILENO, &originalTermios)
| `- error: cannot find 'tcgetattr' in scope
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 | tcgetattr(STDIN_FILENO, &originalTermios)
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
| `- error: cannot find 'cfmakeraw' in scope
212 |
213 | // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 | // (e.g. a full-viewport scroll diff) with a short write when the tty
219 | // buffer is momentarily full. A timed read avoids touching those flags.
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
| `- error: cannot find type 'cc_t' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
| `- error: cannot find 'cc_t' in scope
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
| `- error: cannot find 'VMIN' in scope
224 | cc[Int(VTIME)] = 1
225 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
| `- error: cannot find 'VTIME' in scope
225 | }
226 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 | isActive = true
237 | running = true
238 | let t = Thread { [weak self] in self?.loop() }
| `- error: cannot find 'Thread' in scope
239 | t.stackSize = 1 << 20
240 | thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'tcsetattr' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'TCSANOW' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 | // the kernel queues multiple reports together (fast scroll
282 | // or trackpad bursts), reducing dispatch overhead and lag.
283 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
284 | for event in events { cb(event) }
285 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 | } else if n < 0 {
288 | // Read error; yield briefly and retry.
289 | Thread.sleep(forTimeInterval: 0.005)
| `- error: cannot find 'Thread' in scope
290 | }
291 | // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
93 |
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
| `- error: cannot find 'Thread' in scope
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
| `- error: cannot find 'Thread' in scope
97 | }
98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 | if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 | let perform = self.perform
250 | DispatchQueue.main.async { [value] in perform(value) }
| `- error: cannot find 'DispatchQueue' in scope
251 | }
252 | return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
60 | // (`scheduleRender()` above already dispatches internally.)
61 | self.notificationScheduled()
62 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
63 | StateObserverRegistry.shared.notifyChange()
64 | self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
75 | private var savedStdout: Int32 = -1
76 | private var readEnd: Int32 = -1
77 | private var drained: DispatchSemaphore?
| `- error: cannot find type 'DispatchSemaphore' in scope
78 | private var active = false
79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
96 | let saved = _dup(STDOUT_FILENO)
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
| `- error: cannot find 'pipe' in scope
99 | let saved = dup(STDOUT_FILENO)
100 | #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
99 | let saved = dup(STDOUT_FILENO)
| `- error: cannot find 'dup' in scope
100 | #endif
101 | guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 | _close(fds[1])
116 | #else
117 | guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
| `- error: cannot find 'dup2' in scope
118 | close(fds[0]); close(fds[1]); close(saved)
119 | return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 | let readFD = fds[0]
135 | let done = DispatchSemaphore(value: 0)
| `- error: cannot find 'DispatchSemaphore' in scope
136 | drained = done
137 | Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 | let done = DispatchSemaphore(value: 0)
136 | drained = done
137 | Thread.detachNewThread {
| `- error: cannot find 'Thread' in scope
138 | var pending: [UInt8] = []
139 | var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 | _dup2(saved, STDOUT_FILENO) // the pipe loses its last writer → EOF
184 | #else
185 | dup2(saved, STDOUT_FILENO)
| `- error: cannot find 'dup2' in scope
186 | #endif
187 | #if !os(Windows)
[113/168] Compiling SwiftLI SessionPrintCapture.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
70 | /// fatal-signal handlers.
71 | private enum TerminalRestoreGuard {
72 | nonisolated(unsafe) private static var saved = termios()
| `- error: cannot find 'termios' in scope
73 | nonisolated(unsafe) private static var hasSaved = false
74 | nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
79 |
80 | /// Records the pre-raw settings and installs the exit hooks (once).
81 | static func arm(original: termios, mouseEnabled: Bool) {
| `- error: cannot find type 'termios' in scope
82 | saved = original
83 | hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 | private var originalConsoleMode: DWORD = 0
154 | #else
155 | private var originalTermios = termios()
| `- error: cannot find 'termios' in scope
156 | #endif
157 | private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 | private var isActive = false
158 | private var running = false
159 | private var thread: Thread?
| `- error: cannot find type 'Thread' in scope
160 |
161 | /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGTERM' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGHUP' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGQUIT' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
93 | signal(sig) { s in
| `- error: cannot find 'signal' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'signal' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'SIG_DFL' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
96 | raise(s)
| `- error: cannot find 'raise' in scope
97 | }
98 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'tcsetattr' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'TCSANOW' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 | // Save and switch to raw mode (no echo, no canonical line editing,
208 | // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 | tcgetattr(STDIN_FILENO, &originalTermios)
| `- error: cannot find 'tcgetattr' in scope
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 | tcgetattr(STDIN_FILENO, &originalTermios)
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
| `- error: cannot find 'cfmakeraw' in scope
212 |
213 | // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 | // (e.g. a full-viewport scroll diff) with a short write when the tty
219 | // buffer is momentarily full. A timed read avoids touching those flags.
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
| `- error: cannot find type 'cc_t' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
| `- error: cannot find 'cc_t' in scope
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
| `- error: cannot find 'VMIN' in scope
224 | cc[Int(VTIME)] = 1
225 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
| `- error: cannot find 'VTIME' in scope
225 | }
226 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 | isActive = true
237 | running = true
238 | let t = Thread { [weak self] in self?.loop() }
| `- error: cannot find 'Thread' in scope
239 | t.stackSize = 1 << 20
240 | thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'tcsetattr' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'TCSANOW' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 | // the kernel queues multiple reports together (fast scroll
282 | // or trackpad bursts), reducing dispatch overhead and lag.
283 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
284 | for event in events { cb(event) }
285 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 | } else if n < 0 {
288 | // Read error; yield briefly and retry.
289 | Thread.sleep(forTimeInterval: 0.005)
| `- error: cannot find 'Thread' in scope
290 | }
291 | // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
93 |
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
| `- error: cannot find 'Thread' in scope
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
| `- error: cannot find 'Thread' in scope
97 | }
98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 | if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 | let perform = self.perform
250 | DispatchQueue.main.async { [value] in perform(value) }
| `- error: cannot find 'DispatchQueue' in scope
251 | }
252 | return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
60 | // (`scheduleRender()` above already dispatches internally.)
61 | self.notificationScheduled()
62 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
63 | StateObserverRegistry.shared.notifyChange()
64 | self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
75 | private var savedStdout: Int32 = -1
76 | private var readEnd: Int32 = -1
77 | private var drained: DispatchSemaphore?
| `- error: cannot find type 'DispatchSemaphore' in scope
78 | private var active = false
79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
96 | let saved = _dup(STDOUT_FILENO)
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
| `- error: cannot find 'pipe' in scope
99 | let saved = dup(STDOUT_FILENO)
100 | #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
99 | let saved = dup(STDOUT_FILENO)
| `- error: cannot find 'dup' in scope
100 | #endif
101 | guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 | _close(fds[1])
116 | #else
117 | guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
| `- error: cannot find 'dup2' in scope
118 | close(fds[0]); close(fds[1]); close(saved)
119 | return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 | let readFD = fds[0]
135 | let done = DispatchSemaphore(value: 0)
| `- error: cannot find 'DispatchSemaphore' in scope
136 | drained = done
137 | Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 | let done = DispatchSemaphore(value: 0)
136 | drained = done
137 | Thread.detachNewThread {
| `- error: cannot find 'Thread' in scope
138 | var pending: [UInt8] = []
139 | var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 | _dup2(saved, STDOUT_FILENO) // the pipe loses its last writer → EOF
184 | #else
185 | dup2(saved, STDOUT_FILENO)
| `- error: cannot find 'dup2' in scope
186 | #endif
187 | #if !os(Windows)
[114/168] Compiling SwiftLI State.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
70 | /// fatal-signal handlers.
71 | private enum TerminalRestoreGuard {
72 | nonisolated(unsafe) private static var saved = termios()
| `- error: cannot find 'termios' in scope
73 | nonisolated(unsafe) private static var hasSaved = false
74 | nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
79 |
80 | /// Records the pre-raw settings and installs the exit hooks (once).
81 | static func arm(original: termios, mouseEnabled: Bool) {
| `- error: cannot find type 'termios' in scope
82 | saved = original
83 | hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 | private var originalConsoleMode: DWORD = 0
154 | #else
155 | private var originalTermios = termios()
| `- error: cannot find 'termios' in scope
156 | #endif
157 | private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 | private var isActive = false
158 | private var running = false
159 | private var thread: Thread?
| `- error: cannot find type 'Thread' in scope
160 |
161 | /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGTERM' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGHUP' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGQUIT' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
93 | signal(sig) { s in
| `- error: cannot find 'signal' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'signal' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'SIG_DFL' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
96 | raise(s)
| `- error: cannot find 'raise' in scope
97 | }
98 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'tcsetattr' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'TCSANOW' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 | // Save and switch to raw mode (no echo, no canonical line editing,
208 | // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 | tcgetattr(STDIN_FILENO, &originalTermios)
| `- error: cannot find 'tcgetattr' in scope
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 | tcgetattr(STDIN_FILENO, &originalTermios)
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
| `- error: cannot find 'cfmakeraw' in scope
212 |
213 | // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 | // (e.g. a full-viewport scroll diff) with a short write when the tty
219 | // buffer is momentarily full. A timed read avoids touching those flags.
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
| `- error: cannot find type 'cc_t' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
| `- error: cannot find 'cc_t' in scope
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
| `- error: cannot find 'VMIN' in scope
224 | cc[Int(VTIME)] = 1
225 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
| `- error: cannot find 'VTIME' in scope
225 | }
226 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 | isActive = true
237 | running = true
238 | let t = Thread { [weak self] in self?.loop() }
| `- error: cannot find 'Thread' in scope
239 | t.stackSize = 1 << 20
240 | thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'tcsetattr' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'TCSANOW' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 | // the kernel queues multiple reports together (fast scroll
282 | // or trackpad bursts), reducing dispatch overhead and lag.
283 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
284 | for event in events { cb(event) }
285 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 | } else if n < 0 {
288 | // Read error; yield briefly and retry.
289 | Thread.sleep(forTimeInterval: 0.005)
| `- error: cannot find 'Thread' in scope
290 | }
291 | // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
93 |
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
| `- error: cannot find 'Thread' in scope
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
| `- error: cannot find 'Thread' in scope
97 | }
98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 | if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 | let perform = self.perform
250 | DispatchQueue.main.async { [value] in perform(value) }
| `- error: cannot find 'DispatchQueue' in scope
251 | }
252 | return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
60 | // (`scheduleRender()` above already dispatches internally.)
61 | self.notificationScheduled()
62 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
63 | StateObserverRegistry.shared.notifyChange()
64 | self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
75 | private var savedStdout: Int32 = -1
76 | private var readEnd: Int32 = -1
77 | private var drained: DispatchSemaphore?
| `- error: cannot find type 'DispatchSemaphore' in scope
78 | private var active = false
79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
96 | let saved = _dup(STDOUT_FILENO)
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
| `- error: cannot find 'pipe' in scope
99 | let saved = dup(STDOUT_FILENO)
100 | #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
99 | let saved = dup(STDOUT_FILENO)
| `- error: cannot find 'dup' in scope
100 | #endif
101 | guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 | _close(fds[1])
116 | #else
117 | guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
| `- error: cannot find 'dup2' in scope
118 | close(fds[0]); close(fds[1]); close(saved)
119 | return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 | let readFD = fds[0]
135 | let done = DispatchSemaphore(value: 0)
| `- error: cannot find 'DispatchSemaphore' in scope
136 | drained = done
137 | Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 | let done = DispatchSemaphore(value: 0)
136 | drained = done
137 | Thread.detachNewThread {
| `- error: cannot find 'Thread' in scope
138 | var pending: [UInt8] = []
139 | var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 | _dup2(saved, STDOUT_FILENO) // the pipe loses its last writer → EOF
184 | #else
185 | dup2(saved, STDOUT_FILENO)
| `- error: cannot find 'dup2' in scope
186 | #endif
187 | #if !os(Windows)
[115/168] Compiling SwiftLI TerminalRenderer.swift
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:72:52: error: cannot find 'termios' in scope
70 | /// fatal-signal handlers.
71 | private enum TerminalRestoreGuard {
72 | nonisolated(unsafe) private static var saved = termios()
| `- error: cannot find 'termios' in scope
73 | nonisolated(unsafe) private static var hasSaved = false
74 | nonisolated(unsafe) private static var installed = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:81:31: error: cannot find type 'termios' in scope
79 |
80 | /// Records the pre-raw settings and installs the exit hooks (once).
81 | static func arm(original: termios, mouseEnabled: Bool) {
| `- error: cannot find type 'termios' in scope
82 | saved = original
83 | hasSaved = true
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:155:35: error: cannot find 'termios' in scope
153 | private var originalConsoleMode: DWORD = 0
154 | #else
155 | private var originalTermios = termios()
| `- error: cannot find 'termios' in scope
156 | #endif
157 | private var isActive = false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:159:25: error: cannot find type 'Thread' in scope
157 | private var isActive = false
158 | private var running = false
159 | private var thread: Thread?
| `- error: cannot find type 'Thread' in scope
160 |
161 | /// Whether the terminal is currently reporting mouse events for this
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:21: error: cannot find 'SIGTERM' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGTERM' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:30: error: cannot find 'SIGHUP' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGHUP' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:92:38: error: cannot find 'SIGQUIT' in scope
90 | // with the terminal still raw. Restore, then re-raise the default
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
| `- error: cannot find 'SIGQUIT' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:93:13: error: cannot find 'signal' in scope
91 | // action so the process still dies with the correct status.
92 | for sig in [SIGTERM, SIGHUP, SIGQUIT] {
93 | signal(sig) { s in
| `- error: cannot find 'signal' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:17: error: cannot find 'signal' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'signal' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:95:27: error: cannot find 'SIG_DFL' in scope
93 | signal(sig) { s in
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
| `- error: cannot find 'SIG_DFL' in scope
96 | raise(s)
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:96:17: error: cannot find 'raise' in scope
94 | TerminalRestoreGuard.restore()
95 | signal(s, SIG_DFL)
96 | raise(s)
| `- error: cannot find 'raise' in scope
97 | }
98 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:9: error: cannot find 'tcsetattr' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'tcsetattr' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:120:33: error: cannot find 'TCSANOW' in scope
118 | }
119 | }
120 | tcsetattr(STDIN_FILENO, TCSANOW, &saved)
| `- error: cannot find 'TCSANOW' in scope
121 | }
122 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:209:9: error: cannot find 'tcgetattr' in scope
207 | // Save and switch to raw mode (no echo, no canonical line editing,
208 | // no signal generation — Ctrl-C arrives as a byte we handle ourselves).
209 | tcgetattr(STDIN_FILENO, &originalTermios)
| `- error: cannot find 'tcgetattr' in scope
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:211:9: error: cannot find 'cfmakeraw' in scope
209 | tcgetattr(STDIN_FILENO, &originalTermios)
210 | var raw = originalTermios
211 | cfmakeraw(&raw)
| `- error: cannot find 'cfmakeraw' in scope
212 |
213 | // Use a *timed* blocking read (VMIN=0, VTIME=1 → up to ~0.1s) so the loop
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:220:75: error: cannot find type 'cc_t' in scope
218 | // (e.g. a full-viewport scroll diff) with a short write when the tty
219 | // buffer is momentarily full. A timed read avoids touching those flags.
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
| `- error: cannot find type 'cc_t' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:222:41: error: cannot find 'cc_t' in scope
220 | let ccCount = MemoryLayout.size(ofValue: raw.c_cc) / MemoryLayout<cc_t>.stride
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
| `- error: cannot find 'cc_t' in scope
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:223:24: error: cannot find 'VMIN' in scope
221 | withUnsafeMutablePointer(to: &raw.c_cc) { tuple in
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
| `- error: cannot find 'VMIN' in scope
224 | cc[Int(VTIME)] = 1
225 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:224:24: error: cannot find 'VTIME' in scope
222 | tuple.withMemoryRebound(to: cc_t.self, capacity: ccCount) { cc in
223 | cc[Int(VMIN)] = 0
224 | cc[Int(VTIME)] = 1
| `- error: cannot find 'VTIME' in scope
225 | }
226 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:9: error: cannot find 'tcsetattr' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:227:33: error: cannot find 'TCSANOW' in scope
225 | }
226 | }
227 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
228 | if enableMouse {
229 | TerminalOutput.write(MouseReporting.enableSequence)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:238:17: error: cannot find 'Thread' in scope
236 | isActive = true
237 | running = true
238 | let t = Thread { [weak self] in self?.loop() }
| `- error: cannot find 'Thread' in scope
239 | t.stackSize = 1 << 20
240 | thread = t
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:9: error: cannot find 'tcsetattr' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'tcsetattr' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:254:33: error: cannot find 'TCSANOW' in scope
252 | SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), originalConsoleMode)
253 | #else
254 | tcsetattr(STDIN_FILENO, TCSANOW, &originalTermios)
| `- error: cannot find 'TCSANOW' in scope
255 | #endif
256 | TerminalRestoreGuard.disarm()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:283:21: error: cannot find 'DispatchQueue' in scope
281 | // the kernel queues multiple reports together (fast scroll
282 | // or trackpad bursts), reducing dispatch overhead and lag.
283 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
284 | for event in events { cb(event) }
285 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/KeyboardReader.swift:289:17: error: cannot find 'Thread' in scope
287 | } else if n < 0 {
288 | // Read error; yield briefly and retry.
289 | Thread.sleep(forTimeInterval: 0.005)
| `- error: cannot find 'Thread' in scope
290 | }
291 | // n == 0: the timed read returned no data (VTIME elapsed on Unix,
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:95:15: error: cannot find 'Thread' in scope
93 |
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
| `- error: cannot find 'Thread' in scope
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
97 | }
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:96:15: error: cannot find 'Thread' in scope
94 | private static var stack: [[ObjectIdentifier: Any]] {
95 | get { Thread.current.threadDictionary[stackKey] as? [[ObjectIdentifier: Any]] ?? [] }
96 | set { Thread.current.threadDictionary[stackKey] = newValue }
| `- error: cannot find 'Thread' in scope
97 | }
98 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/PreferenceKey.swift:250:13: error: cannot find 'DispatchQueue' in scope
248 | if PreferenceObserverRegistry.shared.hasChanged(observerID, to: value) {
249 | let perform = self.perform
250 | DispatchQueue.main.async { [value] in perform(value) }
| `- error: cannot find 'DispatchQueue' in scope
251 | }
252 | return node
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/RenderObservation.swift:62:13: error: cannot find 'DispatchQueue' in scope
60 | // (`scheduleRender()` above already dispatches internally.)
61 | self.notificationScheduled()
62 | DispatchQueue.main.async {
| `- error: cannot find 'DispatchQueue' in scope
63 | StateObserverRegistry.shared.notifyChange()
64 | self.notificationDelivered()
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:77:26: error: cannot find type 'DispatchSemaphore' in scope
75 | private var savedStdout: Int32 = -1
76 | private var readEnd: Int32 = -1
77 | private var drained: DispatchSemaphore?
| `- error: cannot find type 'DispatchSemaphore' in scope
78 | private var active = false
79 |
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:98:15: error: cannot find 'pipe' in scope
96 | let saved = _dup(STDOUT_FILENO)
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
| `- error: cannot find 'pipe' in scope
99 | let saved = dup(STDOUT_FILENO)
100 | #endif
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:99:21: error: cannot find 'dup' in scope
97 | #else
98 | guard pipe(&fds) == 0 else { return false }
99 | let saved = dup(STDOUT_FILENO)
| `- error: cannot find 'dup' in scope
100 | #endif
101 | guard saved >= 0 else {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:117:15: error: cannot find 'dup2' in scope
115 | _close(fds[1])
116 | #else
117 | guard dup2(fds[1], STDOUT_FILENO) >= 0 else {
| `- error: cannot find 'dup2' in scope
118 | close(fds[0]); close(fds[1]); close(saved)
119 | return false
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:135:20: error: cannot find 'DispatchSemaphore' in scope
133 |
134 | let readFD = fds[0]
135 | let done = DispatchSemaphore(value: 0)
| `- error: cannot find 'DispatchSemaphore' in scope
136 | drained = done
137 | Thread.detachNewThread {
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:137:9: error: cannot find 'Thread' in scope
135 | let done = DispatchSemaphore(value: 0)
136 | drained = done
137 | Thread.detachNewThread {
| `- error: cannot find 'Thread' in scope
138 | var pending: [UInt8] = []
139 | var buffer = [UInt8](repeating: 0, count: 4096)
/host/spi-builder-workspace/Sources/SwiftLI/Reactive/SessionPrintCapture.swift:185:9: error: cannot find 'dup2' in scope
183 | _dup2(saved, STDOUT_FILENO) // the pipe loses its last writer → EOF
184 | #else
185 | dup2(saved, STDOUT_FILENO)
| `- error: cannot find 'dup2' in scope
186 | #endif
187 | #if !os(Windows)
[116/168] Compiling SwiftLI AnyView.swift
[117/168] Compiling SwiftLI Button.swift
[118/168] Compiling SwiftLI ContentUnavailableView.swift
[119/168] Compiling SwiftLI Divider.swift
[120/168] Compiling SwiftLI EmptyView.swift
[121/168] Compiling SwiftLI ForEach.swift
[122/168] Compiling SwiftLI Form.swift
[123/168] Compiling SwiftLI Gauge.swift
[124/168] Compiling SwiftLI Grid.swift
[125/168] Compiling SwiftLI Group.swift
[126/168] Compiling SwiftLI GroupBox.swift
[127/168] Compiling SwiftLI HStack.swift
[128/168] Compiling SwiftLI Label.swift
[129/168] Compiling SwiftLI VStack.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
| `- error: cannot find 'Thread' in scope
289 | set { Thread.current.threadDictionary[key] = newValue }
290 | }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 | set { Thread.current.threadDictionary[key] = newValue }
| `- error: cannot find 'Thread' in scope
290 | }
291 |
[130/168] Compiling SwiftLI ViewThatFits.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
| `- error: cannot find 'Thread' in scope
289 | set { Thread.current.threadDictionary[key] = newValue }
290 | }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 | set { Thread.current.threadDictionary[key] = newValue }
| `- error: cannot find 'Thread' in scope
290 | }
291 |
[131/168] Compiling SwiftLI Emoticon.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
| `- error: cannot find 'Thread' in scope
289 | set { Thread.current.threadDictionary[key] = newValue }
290 | }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 | set { Thread.current.threadDictionary[key] = newValue }
| `- error: cannot find 'Thread' in scope
290 | }
291 |
[132/168] Compiling SwiftLI SwiftLogo.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
| `- error: cannot find 'Thread' in scope
289 | set { Thread.current.threadDictionary[key] = newValue }
290 | }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 | set { Thread.current.threadDictionary[key] = newValue }
| `- error: cannot find 'Thread' in scope
290 | }
291 |
[133/168] Compiling SwiftLI Commands.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
| `- error: cannot find 'Thread' in scope
289 | set { Thread.current.threadDictionary[key] = newValue }
290 | }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 | set { Thread.current.threadDictionary[key] = newValue }
| `- error: cannot find 'Thread' in scope
290 | }
291 |
[134/168] Compiling SwiftLI Environment.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
| `- error: cannot find 'Thread' in scope
289 | set { Thread.current.threadDictionary[key] = newValue }
290 | }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 | set { Thread.current.threadDictionary[key] = newValue }
| `- error: cannot find 'Thread' in scope
290 | }
291 |
[135/168] Compiling SwiftLI Border.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
| `- error: cannot find 'Thread' in scope
289 | set { Thread.current.threadDictionary[key] = newValue }
290 | }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 | set { Thread.current.threadDictionary[key] = newValue }
| `- error: cannot find 'Thread' in scope
290 | }
291 |
[136/168] Compiling SwiftLI FrameModifier.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
| `- error: cannot find 'Thread' in scope
289 | set { Thread.current.threadDictionary[key] = newValue }
290 | }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 | set { Thread.current.threadDictionary[key] = newValue }
| `- error: cannot find 'Thread' in scope
290 | }
291 |
[137/168] Compiling SwiftLI Inspector.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
| `- error: cannot find 'Thread' in scope
289 | set { Thread.current.threadDictionary[key] = newValue }
290 | }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 | set { Thread.current.threadDictionary[key] = newValue }
| `- error: cannot find 'Thread' in scope
290 | }
291 |
[138/168] Compiling SwiftLI LineLimit.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
| `- error: cannot find 'Thread' in scope
289 | set { Thread.current.threadDictionary[key] = newValue }
290 | }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 | set { Thread.current.threadDictionary[key] = newValue }
| `- error: cannot find 'Thread' in scope
290 | }
291 |
[139/168] Compiling SwiftLI Padding.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
| `- error: cannot find 'Thread' in scope
289 | set { Thread.current.threadDictionary[key] = newValue }
290 | }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 | set { Thread.current.threadDictionary[key] = newValue }
| `- error: cannot find 'Thread' in scope
290 | }
291 |
[140/168] Compiling SwiftLI Shadow.swift
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:288:15: error: cannot find 'Thread' in scope
286 |
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
| `- error: cannot find 'Thread' in scope
289 | set { Thread.current.threadDictionary[key] = newValue }
290 | }
/host/spi-builder-workspace/Sources/SwiftLI/Environment.swift:289:15: error: cannot find 'Thread' in scope
287 | private static var stack: [EnvironmentValues] {
288 | get { Thread.current.threadDictionary[key] as? [EnvironmentValues] ?? [] }
289 | set { Thread.current.threadDictionary[key] = newValue }
| `- error: cannot find 'Thread' in scope
290 | }
291 |
[141/168] Compiling SwiftLI LabelStyle.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 | /// Uses `open` on macOS and `xdg-open` on Linux.
111 | nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 | let process = Process()
| `- error: cannot find 'Process' in scope
113 | #if os(macOS)
114 | process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[142/168] Compiling SwiftLI Link.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 | /// Uses `open` on macOS and `xdg-open` on Linux.
111 | nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 | let process = Process()
| `- error: cannot find 'Process' in scope
113 | #if os(macOS)
114 | process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[143/168] Compiling SwiftLI List.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 | /// Uses `open` on macOS and `xdg-open` on Linux.
111 | nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 | let process = Process()
| `- error: cannot find 'Process' in scope
113 | #if os(macOS)
114 | process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[144/168] Compiling SwiftLI Menu.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 | /// Uses `open` on macOS and `xdg-open` on Linux.
111 | nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 | let process = Process()
| `- error: cannot find 'Process' in scope
113 | #if os(macOS)
114 | process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[145/168] Compiling SwiftLI Navigation.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 | /// Uses `open` on macOS and `xdg-open` on Linux.
111 | nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 | let process = Process()
| `- error: cannot find 'Process' in scope
113 | #if os(macOS)
114 | process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[146/168] Compiling SwiftLI NavigationLink.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 | /// Uses `open` on macOS and `xdg-open` on Linux.
111 | nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 | let process = Process()
| `- error: cannot find 'Process' in scope
113 | #if os(macOS)
114 | process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[147/168] Compiling SwiftLI NavigationSplitView.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 | /// Uses `open` on macOS and `xdg-open` on Linux.
111 | nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 | let process = Process()
| `- error: cannot find 'Process' in scope
113 | #if os(macOS)
114 | process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[148/168] Compiling SwiftLI NavigationStack.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 | /// Uses `open` on macOS and `xdg-open` on Linux.
111 | nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 | let process = Process()
| `- error: cannot find 'Process' in scope
113 | #if os(macOS)
114 | process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[149/168] Compiling SwiftLI Picker.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 | /// Uses `open` on macOS and `xdg-open` on Linux.
111 | nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 | let process = Process()
| `- error: cannot find 'Process' in scope
113 | #if os(macOS)
114 | process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[150/168] Compiling SwiftLI ProgressView.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 | /// Uses `open` on macOS and `xdg-open` on Linux.
111 | nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 | let process = Process()
| `- error: cannot find 'Process' in scope
113 | #if os(macOS)
114 | process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[151/168] Compiling SwiftLI ScrollView.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 | /// Uses `open` on macOS and `xdg-open` on Linux.
111 | nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 | let process = Process()
| `- error: cannot find 'Process' in scope
113 | #if os(macOS)
114 | process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[152/168] Compiling SwiftLI Section.swift
/host/spi-builder-workspace/Sources/SwiftLI/CLI Basic Components/Link.swift:112:23: error: cannot find 'Process' in scope
110 | /// Uses `open` on macOS and `xdg-open` on Linux.
111 | nonisolated(unsafe) static var handler: (String) -> Void = { destination in
112 | let process = Process()
| `- error: cannot find 'Process' in scope
113 | #if os(macOS)
114 | process.executableURL = URL(fileURLWithPath: "/usr/bin/open")
[153/168] Compiling SwiftLI BlinkStyle.swift
[154/168] Compiling SwiftLI BorderStyle.swift
[155/168] Compiling SwiftLI Color.swift
[156/168] Compiling SwiftLI ColorScheme.swift
[157/168] Compiling SwiftLI Edge.swift
[158/168] Compiling SwiftLI EdgeInsets.swift
[159/168] Compiling SwiftLI LineStyle.swift
[160/168] Compiling SwiftLI LocalizedStringKey.swift
[161/168] Compiling SwiftLI Weight.swift
[162/168] Compiling SwiftLI View.swift
[163/168] Compiling SwiftLI ViewBuilder.swift
[164/168] Compiling SwiftLI ViewModifier.swift
BUILD FAILURE 6.2 wasm