Build Information
Failed to build Threadcrumb, reference 1.0.1 (a5d287
), with Swift 6.1 for Wasm on 29 May 2025 04:56:03 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi 2>&1
Build Log
========================================
RunAll
========================================
Builder version: 4.63.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/naftaly/Threadcrumb.git
Reference: 1.0.1
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/naftaly/Threadcrumb
* tag 1.0.1 -> FETCH_HEAD
HEAD is now at a5d2877 Updated availability, tests and readme.
Cloned https://github.com/naftaly/Threadcrumb.git
Revision (git rev-parse @):
a5d2877d31f9712837e78935be3293fb6be6e545
SUCCESS checkout https://github.com/naftaly/Threadcrumb.git at 1.0.1
========================================
Build
========================================
Selected platform: wasm
Swift version: 6.1
Building package at path: $PWD
https://github.com/naftaly/Threadcrumb.git
https://github.com/naftaly/Threadcrumb.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
"dependencies" : [
],
"manifest_display_name" : "Threadcrumb",
"name" : "Threadcrumb",
"path" : "/host/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Threadcrumb",
"targets" : [
"Threadcrumb"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "ThreadcrumbTests",
"module_type" : "SwiftTarget",
"name" : "ThreadcrumbTests",
"path" : "Tests/ThreadcrumbTests",
"sources" : [
"ThreadcrumbTests.swift"
],
"target_dependencies" : [
"Threadcrumb"
],
"type" : "test"
},
{
"c99name" : "Threadcrumb",
"module_type" : "SwiftTarget",
"name" : "Threadcrumb",
"path" : "Sources/Threadcrumb",
"product_memberships" : [
"Threadcrumb"
],
"sources" : [
"Threadcrumb.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1
wasm-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:7e37457820e5f17452a98118754f345f2619722c485f2db0d8b666940a83afd2
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[3/4] Emitting module Threadcrumb
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:80:26: error: cannot find type 'Thread' in scope
78 | private let _lock: NSLock = NSLock()
79 | private var _log: [String] = []
80 | private var _thread: Thread?
| `- error: cannot find type 'Thread' in scope
81 | }
82 |
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:97:19: error: cannot find type 'Thread' in scope
95 | private let ThreadcrumbDictionaryStackKey = "threadcrumb.stack.key"
96 |
97 | private extension Thread {
| `- error: cannot find type 'Thread' in scope
98 | var tc_Semaphore: DispatchSemaphore? {
99 | get {
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:473:13: warning: let '_lookupTable' is not concurrency-safe because non-'Sendable' type '[String : (inout [String]) -> ()]' may have shared mutable state; this is an error in the Swift 6 language mode
471 | // MARK: - Lookup table
472 |
473 | private let _lookupTable: [String: (inout [String])->()] = [
| |- warning: let '_lookupTable' is not concurrency-safe because non-'Sendable' type '[String : (inout [String]) -> ()]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let '_lookupTable' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
474 | "0": THREAD_CRUMB__0,
475 | "1": THREAD_CRUMB__1,
[4/4] Compiling Threadcrumb Threadcrumb.swift
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:80:26: error: cannot find type 'Thread' in scope
78 | private let _lock: NSLock = NSLock()
79 | private var _log: [String] = []
80 | private var _thread: Thread?
| `- error: cannot find type 'Thread' in scope
81 | }
82 |
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:97:19: error: cannot find type 'Thread' in scope
95 | private let ThreadcrumbDictionaryStackKey = "threadcrumb.stack.key"
96 |
97 | private extension Thread {
| `- error: cannot find type 'Thread' in scope
98 | var tc_Semaphore: DispatchSemaphore? {
99 | get {
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:473:13: warning: let '_lookupTable' is not concurrency-safe because non-'Sendable' type '[String : (inout [String]) -> ()]' may have shared mutable state; this is an error in the Swift 6 language mode
471 | // MARK: - Lookup table
472 |
473 | private let _lookupTable: [String: (inout [String])->()] = [
| |- warning: let '_lookupTable' is not concurrency-safe because non-'Sendable' type '[String : (inout [String]) -> ()]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let '_lookupTable' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
474 | "0": THREAD_CRUMB__0,
475 | "1": THREAD_CRUMB__1,
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:22:24: error: cannot find 'Thread' in scope
20 | self.identifier = identifier
21 |
22 | self._thread = Thread { [weak self] in
| `- error: cannot find 'Thread' in scope
23 | guard let self = self else {
24 | return
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:26:19: error: cannot find 'Thread' in scope
24 | return
25 | }
26 | while(Thread.current.isExecuting) {
| `- error: cannot find 'Thread' in scope
27 | self._lock.lock()
28 | var values: [String] = self._log
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:34:38: error: cannot find 'DispatchSemaphore' in scope
32 | }
33 | self._thread?.name = self.identifier
34 | self._thread?.tc_Semaphore = DispatchSemaphore(value: 0)
| `- error: cannot find 'DispatchSemaphore' in scope
35 | self._thread?.start()
36 | }
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:71:19: error: missing argument label 'arguments:' in call
69 | /// - arguments: The arguments to substitute into `format`.
70 | public func log(_ format: String, _ arguments: CVarArg...) {
71 | log(String(format: format, arguments))
| `- error: missing argument label 'arguments:' in call
72 | }
73 |
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:130:5: error: cannot find 'Thread' in scope
128 | @_silgen_name("THREAD_CRUMB_END") @inline(never) @_optimize(none)
129 | private func THREAD_CRUMB_END() {
130 | Thread.current.tc_Stack = Thread.callStackSymbols
| `- error: cannot find 'Thread' in scope
131 | Thread.current.tc_Semaphore?.wait()
132 | Thread.current.tc_Stack = nil
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:130:31: error: cannot find 'Thread' in scope
128 | @_silgen_name("THREAD_CRUMB_END") @inline(never) @_optimize(none)
129 | private func THREAD_CRUMB_END() {
130 | Thread.current.tc_Stack = Thread.callStackSymbols
| `- error: cannot find 'Thread' in scope
131 | Thread.current.tc_Semaphore?.wait()
132 | Thread.current.tc_Stack = nil
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:131:5: error: cannot find 'Thread' in scope
129 | private func THREAD_CRUMB_END() {
130 | Thread.current.tc_Stack = Thread.callStackSymbols
131 | Thread.current.tc_Semaphore?.wait()
| `- error: cannot find 'Thread' in scope
132 | Thread.current.tc_Stack = nil
133 | }
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:132:5: error: cannot find 'Thread' in scope
130 | Thread.current.tc_Stack = Thread.callStackSymbols
131 | Thread.current.tc_Semaphore?.wait()
132 | Thread.current.tc_Stack = nil
| `- error: cannot find 'Thread' in scope
133 | }
134 |
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:524:9: error: cannot find 'Thread' in scope
522 | // the frame calls. We could/should use something to wait/signal
523 | // here instead but this is simply for testing and will do the trick.
524 | Thread.sleep(forTimeInterval: 1)
| `- error: cannot find 'Thread' in scope
525 |
526 | guard let symbols: [String] = self._thread?.tc_Stack else {
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:98:23: error: cannot find type 'DispatchSemaphore' in scope
96 |
97 | private extension Thread {
98 | var tc_Semaphore: DispatchSemaphore? {
| `- error: cannot find type 'DispatchSemaphore' in scope
99 | get {
100 | return threadDictionary[ThreadcrumbDictionarySemaphoreKey] as? DispatchSemaphore
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi 2>&1
wasm-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:7e37457820e5f17452a98118754f345f2619722c485f2db0d8b666940a83afd2
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[2/3] Emitting module Threadcrumb
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:80:26: error: cannot find type 'Thread' in scope
78 | private let _lock: NSLock = NSLock()
79 | private var _log: [String] = []
80 | private var _thread: Thread?
| `- error: cannot find type 'Thread' in scope
81 | }
82 |
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:97:19: error: cannot find type 'Thread' in scope
95 | private let ThreadcrumbDictionaryStackKey = "threadcrumb.stack.key"
96 |
97 | private extension Thread {
| `- error: cannot find type 'Thread' in scope
98 | var tc_Semaphore: DispatchSemaphore? {
99 | get {
[3/3] Compiling Threadcrumb Threadcrumb.swift
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:80:26: error: cannot find type 'Thread' in scope
78 | private let _lock: NSLock = NSLock()
79 | private var _log: [String] = []
80 | private var _thread: Thread?
| `- error: cannot find type 'Thread' in scope
81 | }
82 |
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:97:19: error: cannot find type 'Thread' in scope
95 | private let ThreadcrumbDictionaryStackKey = "threadcrumb.stack.key"
96 |
97 | private extension Thread {
| `- error: cannot find type 'Thread' in scope
98 | var tc_Semaphore: DispatchSemaphore? {
99 | get {
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:22:24: error: cannot find 'Thread' in scope
20 | self.identifier = identifier
21 |
22 | self._thread = Thread { [weak self] in
| `- error: cannot find 'Thread' in scope
23 | guard let self = self else {
24 | return
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:26:19: error: cannot find 'Thread' in scope
24 | return
25 | }
26 | while(Thread.current.isExecuting) {
| `- error: cannot find 'Thread' in scope
27 | self._lock.lock()
28 | var values: [String] = self._log
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:34:38: error: cannot find 'DispatchSemaphore' in scope
32 | }
33 | self._thread?.name = self.identifier
34 | self._thread?.tc_Semaphore = DispatchSemaphore(value: 0)
| `- error: cannot find 'DispatchSemaphore' in scope
35 | self._thread?.start()
36 | }
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:71:19: error: missing argument label 'arguments:' in call
69 | /// - arguments: The arguments to substitute into `format`.
70 | public func log(_ format: String, _ arguments: CVarArg...) {
71 | log(String(format: format, arguments))
| `- error: missing argument label 'arguments:' in call
72 | }
73 |
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:130:5: error: cannot find 'Thread' in scope
128 | @_silgen_name("THREAD_CRUMB_END") @inline(never) @_optimize(none)
129 | private func THREAD_CRUMB_END() {
130 | Thread.current.tc_Stack = Thread.callStackSymbols
| `- error: cannot find 'Thread' in scope
131 | Thread.current.tc_Semaphore?.wait()
132 | Thread.current.tc_Stack = nil
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:130:31: error: cannot find 'Thread' in scope
128 | @_silgen_name("THREAD_CRUMB_END") @inline(never) @_optimize(none)
129 | private func THREAD_CRUMB_END() {
130 | Thread.current.tc_Stack = Thread.callStackSymbols
| `- error: cannot find 'Thread' in scope
131 | Thread.current.tc_Semaphore?.wait()
132 | Thread.current.tc_Stack = nil
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:131:5: error: cannot find 'Thread' in scope
129 | private func THREAD_CRUMB_END() {
130 | Thread.current.tc_Stack = Thread.callStackSymbols
131 | Thread.current.tc_Semaphore?.wait()
| `- error: cannot find 'Thread' in scope
132 | Thread.current.tc_Stack = nil
133 | }
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:132:5: error: cannot find 'Thread' in scope
130 | Thread.current.tc_Stack = Thread.callStackSymbols
131 | Thread.current.tc_Semaphore?.wait()
132 | Thread.current.tc_Stack = nil
| `- error: cannot find 'Thread' in scope
133 | }
134 |
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:524:9: error: cannot find 'Thread' in scope
522 | // the frame calls. We could/should use something to wait/signal
523 | // here instead but this is simply for testing and will do the trick.
524 | Thread.sleep(forTimeInterval: 1)
| `- error: cannot find 'Thread' in scope
525 |
526 | guard let symbols: [String] = self._thread?.tc_Stack else {
/host/spi-builder-workspace/Sources/Threadcrumb/Threadcrumb.swift:98:23: error: cannot find type 'DispatchSemaphore' in scope
96 |
97 | private extension Thread {
98 | var tc_Semaphore: DispatchSemaphore? {
| `- error: cannot find type 'DispatchSemaphore' in scope
99 | get {
100 | return threadDictionary[ThreadcrumbDictionarySemaphoreKey] as? DispatchSemaphore
BUILD FAILURE 6.1 wasm