Build Information
Failed to build TabularCenter, reference 0.3.0 (30327f), with Swift 6.1 for Android on 9 Oct 2026 11:18:14 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-53886768-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 2>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/tabula-center/tabular-center-swift.git
Reference: 0.3.0
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/tabula-center/tabular-center-swift
* tag 0.3.0 -> FETCH_HEAD
HEAD is now at 30327f1 fix swift context
Cloned https://github.com/tabula-center/tabular-center-swift.git
Revision (git rev-parse @):
30327f13fea5506a42c3fc37f9b2d996082806cd
SUCCESS checkout https://github.com/tabula-center/tabular-center-swift.git at 0.3.0
========================================
Build
========================================
Selected platform: android
Swift version: 6.1
Building package at path: $PWD
https://github.com/tabula-center/tabular-center-swift.git
https://github.com/tabula-center/tabular-center-swift.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-53886768-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1
android-6.1-latest: Pulling from saguaro1/spi-images
Digest: sha256:396310cef4466ceb116ed5462b0b92d4deb353c0dad749b406b7fd226f6db9af
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.1-latest
Building for debugging...
[0/19] Write sources
[6/19] Write swift-version-24593BA9C3E375BF.txt
[8/31] Compiling TabularCenter Table.swift
[9/31] Compiling TabularCenter Lint.swift
[10/31] Compiling TabularCenter Export.swift
[11/31] Compiling TabularCenter Store.swift
/host/spi-builder-workspace/Sources/TabularCenter/Store.swift:98:26: warning: non-sendable result type 'Progress' cannot be sent from nonisolated context in call to instance method 'dispatch(_:step:perform:)'; this is an error in the Swift 6 language mode
96 | @discardableResult
97 | public func send(_ action: A) async throws -> Progress {
98 | try await driver.dispatch(action, step: stepFn, perform: performFn)
| `- warning: non-sendable result type 'Progress' cannot be sent from nonisolated context in call to instance method 'dispatch(_:step:perform:)'; this is an error in the Swift 6 language mode
99 | }
100 |
/host/spi-builder-workspace/Sources/TabularCenter/Driver.swift:11:15: note: consider making struct 'Progress' conform to the 'Sendable' protocol
9 |
10 | /// What one drain accomplished.
11 | public struct Progress: Equatable {
| `- note: consider making struct 'Progress' conform to the 'Sendable' protocol
12 | public var steps = 0
13 | public var effects = 0
/host/spi-builder-workspace/Sources/TabularCenter/Store.swift:107:26: warning: non-sendable result type 'Progress' cannot be sent from nonisolated context in call to instance method 'run(step:perform:)'; this is an error in the Swift 6 language mode
105 | @discardableResult
106 | public func drain() async throws -> Progress {
107 | try await driver.run(step: stepFn, perform: performFn)
| `- warning: non-sendable result type 'Progress' cannot be sent from nonisolated context in call to instance method 'run(step:perform:)'; this is an error in the Swift 6 language mode
108 | }
109 | }
/host/spi-builder-workspace/Sources/TabularCenter/Driver.swift:11:15: note: consider making struct 'Progress' conform to the 'Sendable' protocol
9 |
10 | /// What one drain accomplished.
11 | public struct Progress: Equatable {
| `- note: consider making struct 'Progress' conform to the 'Sendable' protocol
12 | public var steps = 0
13 | public var effects = 0
/host/spi-builder-workspace/Sources/TabularCenter/Store.swift:98:26: warning: sending 'action' risks causing data races; this is an error in the Swift 6 language mode
96 | @discardableResult
97 | public func send(_ action: A) async throws -> Progress {
98 | try await driver.dispatch(action, step: stepFn, perform: performFn)
| |- warning: sending 'action' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'action' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
99 | }
100 |
/host/spi-builder-workspace/Sources/TabularCenter/Store.swift:98:26: warning: sending 'self.stepFn' risks causing data races; this is an error in the Swift 6 language mode
96 | @discardableResult
97 | public func send(_ action: A) async throws -> Progress {
98 | try await driver.dispatch(action, step: stepFn, perform: performFn)
| |- warning: sending 'self.stepFn' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.stepFn' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
99 | }
100 |
/host/spi-builder-workspace/Sources/TabularCenter/Store.swift:98:26: warning: sending 'self.performFn' risks causing data races; this is an error in the Swift 6 language mode
96 | @discardableResult
97 | public func send(_ action: A) async throws -> Progress {
98 | try await driver.dispatch(action, step: stepFn, perform: performFn)
| |- warning: sending 'self.performFn' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.performFn' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
99 | }
100 |
/host/spi-builder-workspace/Sources/TabularCenter/Store.swift:98:26: warning: sending 'self.driver' risks causing data races; this is an error in the Swift 6 language mode
96 | @discardableResult
97 | public func send(_ action: A) async throws -> Progress {
98 | try await driver.dispatch(action, step: stepFn, perform: performFn)
| |- warning: sending 'self.driver' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.driver' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
99 | }
100 |
/host/spi-builder-workspace/Sources/TabularCenter/Store.swift:107:26: warning: sending 'self.stepFn' risks causing data races; this is an error in the Swift 6 language mode
105 | @discardableResult
106 | public func drain() async throws -> Progress {
107 | try await driver.run(step: stepFn, perform: performFn)
| |- warning: sending 'self.stepFn' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.stepFn' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
108 | }
109 | }
/host/spi-builder-workspace/Sources/TabularCenter/Store.swift:107:26: warning: sending 'self.performFn' risks causing data races; this is an error in the Swift 6 language mode
105 | @discardableResult
106 | public func drain() async throws -> Progress {
107 | try await driver.run(step: stepFn, perform: performFn)
| |- warning: sending 'self.performFn' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.performFn' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
108 | }
109 | }
/host/spi-builder-workspace/Sources/TabularCenter/Store.swift:107:26: warning: sending 'self.driver' risks causing data races; this is an error in the Swift 6 language mode
105 | @discardableResult
106 | public func drain() async throws -> Progress {
107 | try await driver.run(step: stepFn, perform: performFn)
| |- warning: sending 'self.driver' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'self'-isolated 'self.driver' to nonisolated callee risks causing data races between nonisolated and 'self'-isolated uses
108 | }
109 | }
[12/31] Compiling TabularCenter Step.swift
[13/31] Compiling TabularCenterCodegen Emit.swift
[14/31] Compiling TabularCenterCodegen Model.swift
[15/31] Compiling TabularCenterCodegen Raw.swift
[16/31] Emitting module TabularCenterCodegen
[17/32] Emitting module TabularCenter
[18/32] Compiling TabularCenter Driver.swift
[19/32] Compiling TabularCenter Cell.swift
[21/33] Wrapping AST for TabularCenterCodegen for debugging
[22/33] Wrapping AST for TabularCenter for debugging
[24/42] Compiling TabularCenterCheck main.swift
/host/spi-builder-workspace/Sources/TabularCenterCheck/main.swift:394:5: error: cannot find 'exit' in scope
392 | let failures = Assert.report("swift reference")
393 | if failures > 0 {
394 | exit(1)
| `- error: cannot find 'exit' in scope
395 | }
396 |
/host/spi-builder-workspace/Sources/TabularCenterCheck/main.swift:305:33: warning: non-sendable result type 'Progress' cannot be sent from actor-isolated context in call to instance method 'send'; this is an error in the Swift 6 language mode
303 |
304 | do {
305 | let p = try await store.send(.start)
| `- warning: non-sendable result type 'Progress' cannot be sent from actor-isolated context in call to instance method 'send'; this is an error in the Swift 6 language mode
306 | Assert.eq(p.steps, 2, "async store: the start, then the queued tick")
307 | Assert.eq(p.followUps, 1, "async store: one follow-up, through the mailbox")
/host/spi-builder-workspace/Sources/TabularCenter/Driver.swift:11:15: note: struct 'Progress' does not conform to the 'Sendable' protocol
9 |
10 | /// What one drain accomplished.
11 | public struct Progress: Equatable {
| `- note: struct 'Progress' does not conform to the 'Sendable' protocol
12 | public var steps = 0
13 | public var effects = 0
/host/spi-builder-workspace/Sources/TabularCenterCheck/main.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'TabularCenter'
1 | import TabularCenter
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'TabularCenter'
2 |
3 | #if canImport(Glibc)
/host/spi-builder-workspace/Sources/TabularCenterCheck/main.swift:331:11: warning: non-sendable result type 'Progress' cannot be sent from actor-isolated context in call to instance method 'send'; this is an error in the Swift 6 language mode
329 | return nil
330 | }
331 | ).send(.start)
| `- warning: non-sendable result type 'Progress' cannot be sent from actor-isolated context in call to instance method 'send'; this is an error in the Swift 6 language mode
332 | Assert.eq(a, b, "the two colors of the loop report the same progress")
333 | } catch {
/host/spi-builder-workspace/Sources/TabularCenter/Driver.swift:11:15: note: struct 'Progress' does not conform to the 'Sendable' protocol
9 |
10 | /// What one drain accomplished.
11 | public struct Progress: Equatable {
| `- note: struct 'Progress' does not conform to the 'Sendable' protocol
12 | public var steps = 0
13 | public var effects = 0
error: emit-module command failed with exit code 1 (use -v to see invocation)
[25/42] Compiling TabularCenterCheck Assert.swift
/host/spi-builder-workspace/Sources/TabularCenterCheck/Assert.swift:8:16: warning: static property 'failures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
6 | /// same reason.
7 | enum Assert {
8 | static var failures = 0
| |- warning: static property 'failures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'failures' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'failures' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
9 | static var checks = 0
10 |
/host/spi-builder-workspace/Sources/TabularCenterCheck/Assert.swift:9:16: warning: static property 'checks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
7 | enum Assert {
8 | static var failures = 0
9 | static var checks = 0
| |- warning: static property 'checks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'checks' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'checks' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 |
11 | static func eq<T: Equatable>(_ actual: T, _ expected: T, _ what: String) {
[26/42] Compiling TabularCenterCheck ReferenceTimer.swift
/host/spi-builder-workspace/Sources/TabularCenterCheck/ReferenceTimer.swift:112:5: warning: let 'TIMER_TABLE' is not concurrency-safe because non-'Sendable' type 'Table' may have shared mutable state; this is an error in the Swift 6 language mode
110 | }
111 |
112 | let TIMER_TABLE = Table(
| `- warning: let 'TIMER_TABLE' is not concurrency-safe because non-'Sendable' type 'Table' may have shared mutable state; this is an error in the Swift 6 language mode
113 | machine: "Timer",
114 | states: ["Idle", "Running", "Done"],
/host/spi-builder-workspace/Sources/TabularCenter/Table.swift:13:15: note: struct 'Table' does not conform to the 'Sendable' protocol
11 | /// - `staticallyUnreached`: States no cell can statically transition into, excluding the initial one.
12 | /// - `isFullyStatic`: Whether every cell is static, i.e.
13 | public struct Table: Equatable {
| `- note: struct 'Table' does not conform to the 'Sendable' protocol
14 | public let machine: String
15 | public let states: [String]
/host/spi-builder-workspace/Sources/TabularCenterCheck/ReferenceTimer.swift:28:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'TabularCenter'
26 | // Done [ GO(Running, StartClock) IGNORE, IGNORE ]
27 | // ```
28 | import TabularCenter
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'TabularCenter'
29 |
30 | enum S: Equatable {
:
110 | }
111 |
112 | let TIMER_TABLE = Table(
| |- note: add '@MainActor' to make let 'TIMER_TABLE' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
113 | machine: "Timer",
114 | states: ["Idle", "Running", "Done"],
[27/42] Compiling TabularCenterCheck StepAlgebra.swift
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/TabularCenterCheck/StepAlgebra.swift:20:5: warning: let 'algebraContinuations' is not concurrency-safe because non-'Sendable' type '[(Int) -> AlgebraStep]' (aka 'Array<(Int) -> Step<Int, Character>>') may have shared mutable state; this is an error in the Swift 6 language mode
18 | }
19 |
20 | let algebraContinuations: [(Int) -> AlgebraStep] = [
| |- warning: let 'algebraContinuations' is not concurrency-safe because non-'Sendable' type '[(Int) -> AlgebraStep]' (aka 'Array<(Int) -> Step<Int, Character>>') may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'algebraContinuations' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 | { n in .go(n + 1, effects: []) },
22 | { n in .go(n, effects: ["x"]) },
[28/42] Emitting module TabularCenterCheck
/host/spi-builder-workspace/Sources/TabularCenterCheck/main.swift:394:5: error: cannot find 'exit' in scope
392 | let failures = Assert.report("swift reference")
393 | if failures > 0 {
394 | exit(1)
| `- error: cannot find 'exit' in scope
395 | }
396 |
/host/spi-builder-workspace/Sources/TabularCenterCheck/Assert.swift:8:16: warning: static property 'failures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
6 | /// same reason.
7 | enum Assert {
8 | static var failures = 0
| |- warning: static property 'failures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'failures' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'failures' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
9 | static var checks = 0
10 |
/host/spi-builder-workspace/Sources/TabularCenterCheck/Assert.swift:9:16: warning: static property 'checks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
7 | enum Assert {
8 | static var failures = 0
9 | static var checks = 0
| |- warning: static property 'checks' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'checks' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'checks' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
10 |
11 | static func eq<T: Equatable>(_ actual: T, _ expected: T, _ what: String) {
/host/spi-builder-workspace/Sources/TabularCenterCheck/ReferenceTimer.swift:112:5: warning: let 'TIMER_TABLE' is not concurrency-safe because non-'Sendable' type 'Table' may have shared mutable state; this is an error in the Swift 6 language mode
110 | }
111 |
112 | let TIMER_TABLE = Table(
| `- warning: let 'TIMER_TABLE' is not concurrency-safe because non-'Sendable' type 'Table' may have shared mutable state; this is an error in the Swift 6 language mode
113 | machine: "Timer",
114 | states: ["Idle", "Running", "Done"],
/host/spi-builder-workspace/Sources/TabularCenter/Table.swift:13:15: note: struct 'Table' does not conform to the 'Sendable' protocol
11 | /// - `staticallyUnreached`: States no cell can statically transition into, excluding the initial one.
12 | /// - `isFullyStatic`: Whether every cell is static, i.e.
13 | public struct Table: Equatable {
| `- note: struct 'Table' does not conform to the 'Sendable' protocol
14 | public let machine: String
15 | public let states: [String]
/host/spi-builder-workspace/Sources/TabularCenterCheck/ReferenceTimer.swift:28:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'TabularCenter'
26 | // Done [ GO(Running, StartClock) IGNORE, IGNORE ]
27 | // ```
28 | import TabularCenter
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'TabularCenter'
29 |
30 | enum S: Equatable {
:
110 | }
111 |
112 | let TIMER_TABLE = Table(
| |- note: add '@MainActor' to make let 'TIMER_TABLE' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
113 | machine: "Timer",
114 | states: ["Idle", "Running", "Done"],
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/TabularCenterCheck/StepAlgebra.swift:20:5: warning: let 'algebraContinuations' is not concurrency-safe because non-'Sendable' type '[(Int) -> AlgebraStep]' (aka 'Array<(Int) -> Step<Int, Character>>') may have shared mutable state; this is an error in the Swift 6 language mode
18 | }
19 |
20 | let algebraContinuations: [(Int) -> AlgebraStep] = [
| |- warning: let 'algebraContinuations' is not concurrency-safe because non-'Sendable' type '[(Int) -> AlgebraStep]' (aka 'Array<(Int) -> Step<Int, Character>>') may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'algebraContinuations' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 | { n in .go(n + 1, effects: []) },
22 | { n in .go(n, effects: ["x"]) },
[29/42] Emitting module TabularCenterTesting
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-53886768-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 2>&1
android-6.1-latest: Pulling from saguaro1/spi-images
Digest: sha256:396310cef4466ceb116ed5462b0b92d4deb353c0dad749b406b7fd226f6db9af
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.1-latest
[0/1] Planning build
Building for debugging...
[0/13] Write swift-version-24593BA9C3E375BF.txt
[2/25] Emitting module TabularCenter
[3/25] Compiling TabularCenter Lint.swift
[4/25] Compiling TabularCenter Step.swift
[5/25] Compiling TabularCenter Store.swift
[6/25] Compiling TabularCenter Table.swift
[7/25] Compiling TabularCenter Driver.swift
[8/25] Compiling TabularCenter Cell.swift
[9/25] Compiling TabularCenter Export.swift
[11/25] Compiling TabularCenterCodegen Model.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[12/32] Emitting module TabularCenterCheck
/host/spi-builder-workspace/Sources/TabularCenterCheck/main.swift:394:5: error: cannot find 'exit' in scope
392 | let failures = Assert.report("swift reference")
393 | if failures > 0 {
394 | exit(1)
| `- error: cannot find 'exit' in scope
395 | }
396 |
[13/32] Compiling TabularCenterCodegen Raw.swift
[14/32] Compiling TabularCenterCodegen Emit.swift
[15/32] Emitting module TabularCenterCodegen
[16/33] Compiling TabularCenterCheck Assert.swift
[17/33] Compiling TabularCenterCheck StepAlgebra.swift
[18/33] Compiling TabularCenterCheck ReferenceTimer.swift
[19/33] Compiling TabularCenterCheck main.swift
/host/spi-builder-workspace/Sources/TabularCenterCheck/main.swift:394:5: error: cannot find 'exit' in scope
392 | let failures = Assert.report("swift reference")
393 | if failures > 0 {
394 | exit(1)
| `- error: cannot find 'exit' in scope
395 | }
396 |
[20/33] Emitting module TabularCenterTesting
BUILD FAILURE 6.1 android