Build Information
Failed to build Promises, reference master (2949f5), with Swift 6.4 for Wasm on 16 Sep 2026 03:31:04 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344843-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:wasm-6.4-latest swift build --swift-sdk swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm 2>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/khanlou/Promise.git
Reference: master
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/khanlou/Promise
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 2949f58 Add promise async getter (#79)
Cloned https://github.com/khanlou/Promise.git
Revision (git rev-parse @):
2949f58f2ca81964447a1435f6e162d5cb4bb092
SUCCESS checkout https://github.com/khanlou/Promise.git at master
========================================
Build
========================================
Selected platform: wasm
Swift version: 6.4
Building package at path: $PWD
https://github.com/khanlou/Promise.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344843-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:wasm-6.4-latest swift build --swift-sdk swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm 2>&1
wasm-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:4328fdb43c680d205c1d6761b1e3267aa38277eefdda9ddfb17b6a0f1a77857a
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:wasm-6.4-latest
Building for debugging...
[Planning deferred tasks]
error: SwiftCompile normal wasm32 failed with a nonzero exit code. Command line: cd /host
/host/spi-builder-workspace/Promise/Promise+Extras.swift:209:53: [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m207 |[0;0m /// - Returns: A discardable instance of this promise that can be used for further chaining.
[0;36m208 |[0;0m @discardableResult
[0;36m209 |[0;0m public func always(on queue: ExecutionContext = [4;39mDispatchQueue[0;0m.main, _ onComplete: @escaping () -> Void) -> Promise<Value> {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m210 |[0;0m return then(on: queue, { _ in
[0;36m211 |[0;0m onComplete()
/host/spi-builder-workspace/Promise/Promise+Extras.swift:223:54: [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m221 |[0;0m /// - recovery: Recovery routine to perform; this returns a new `Promise`
[0;36m222 |[0;0m /// - Returns: A discardable instance of this promise that can be used for further chaining.
[0;36m223 |[0;0m public func recover(on queue: ExecutionContext = [4;39mDispatchQueue[0;0m.main, _ recovery: @escaping (Error) throws -> Promise<Value>) -> Promise<Value> {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m224 |[0;0m return recover(type: Error.self, on: queue, recovery)
[0;36m225 |[0;0m }
/host/spi-builder-workspace/Promise/Promise+Extras.swift:234:88: [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m232 |[0;0m /// - recovery: Routine to run to recover from the error; returns a new `Promise`.
[0;36m233 |[0;0m /// - Returns: A discardable instance of this promise that can be used for further chaining.
[0;36m234 |[0;0m public func recover<E: Error>(type errorType: E.Type, on queue: ExecutionContext = [4;39mDispatchQueue[0;0m.main, _ recovery: @escaping (E) throws -> Promise<Value>) -> Promise<Value> {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m235 |[0;0m return Promise(work: { fulfill, reject in
[0;36m236 |[0;0m self.then(on: queue, fulfill).catch(on: queue, { anyError in
/host/spi-builder-workspace/Promise/Promise+Extras.swift:283:55: [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m281 |[0;0m /// - transformError: Transformer to convert the erorr into a new error.
[0;36m282 |[0;0m /// - Returns: A discardable instance of this promise that can be used for further chaining.
[0;36m283 |[0;0m public func mapError(on queue: ExecutionContext = [4;39mDispatchQueue[0;0m.main, _ transformError: @escaping (Error) -> Error) -> Promise {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m284 |[0;0m return self.mapError(type: Error.self, on: queue, transformError)
[0;36m285 |[0;0m }
/host/spi-builder-workspace/Promise/Promise+Extras.swift:294:89: [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m292 |[0;0m /// - transformError: Transformer to convert an error of type `errorType` into a new error.
[0;36m293 |[0;0m /// - Returns: A discardable instance of this promise that can be used for further chaining.
[0;36m294 |[0;0m public func mapError<E: Error>(type errorType: E.Type, on queue: ExecutionContext = [4;39mDispatchQueue[0;0m.main, _ transformError: @escaping (E) -> Error) -> Promise {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m295 |[0;0m return self.recover(type: errorType, on: queue, { (error) -> Promise<Value> in
[0;36m296 |[0;0m return Promise(error: transformError(error))
/host/spi-builder-workspace/Promise/Promise+Extras.swift:308:25: [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m306 |[0;0m /// Defaults to the main queue.
[0;36m307 |[0;0m /// - Returns: The promise's value or an error.
[0;36m308 |[0;0m func wait(on queue: [4;39mDispatchQueue[0;0m = DispatchQueue.main) async throws -> Value {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m309 |[0;0m try await withCheckedThrowingContinuation { continuation in
[0;36m310 |[0;0m self.then(on: queue) { value in
/host/spi-builder-workspace/Promise/Promise.swift:18:11: [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m16 |[0;0m }
[0;36m17 |[0;0m
[0;36m18 |[0;0m extension [4;39mDispatchQueue[0;0m: ExecutionContext {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m19 |[0;0m
[0;36m20 |[0;0m public func execute(_ work: @escaping () -> Void) {
/host/spi-builder-workspace/Promise/Promise.swift:29:24: [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m27 |[0;0m private var valid = true
[0;36m28 |[0;0m
[0;36m29 |[0;0m private var queue: [4;39mDispatchQueue[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m30 |[0;0m
[0;36m31 |[0;0m public init(queue: DispatchQueue = .main) {
/host/spi-builder-workspace/Promise/Promise.swift:31:24: [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m29 |[0;0m private var queue: DispatchQueue
[0;36m30 |[0;0m
[0;36m31 |[0;0m public init(queue: [4;39mDispatchQueue[0;0m = .main) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m32 |[0;0m self.queue = queue
[0;36m33 |[0;0m }
/host/spi-builder-workspace/Promise/Promise.swift:136:29: [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m134 |[0;0m
[0;36m135 |[0;0m private var state: State<Value>
[0;36m136 |[0;0m private let lockQueue = [4;39mDispatchQueue[0;0m(label: "promise_lock_queue", qos: .userInitiated)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m137 |[0;0m
[0;36m138 |[0;0m /// Creates a Promise in the pending state which can be fulfilled or rejected.
/host/spi-builder-workspace/Promise/Promise.swift:173:36: [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m171 |[0;0m /// Promises are *rejected* if they fail, and thus, generate an `Error`.
[0;36m172 |[0;0m /// With this library, any Promise can produce any `Error`
[0;36m173 |[0;0m public convenience init(queue: [4;39mDispatchQueue[0;0m = DispatchQueue.global(qos: .userInitiated), work: @escaping (_ fulfill: @escaping (Value) -> Void, _ reject: @escaping (Error) -> Void) throws -> Void) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m174 |[0;0m self.init()
[0;36m175 |[0;0m queue.async(execute: {
/host/spi-builder-workspace/Promise/Promise.swift:194:61: [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m192 |[0;0m /// This is roughly the equivalent of a traditional `flatMap()`.
[0;36m193 |[0;0m @discardableResult
[0;36m194 |[0;0m public func then<NewValue>(on queue: ExecutionContext = [4;39mDispatchQueue[0;0m.main, _ onFulfilled: @escaping (Value) throws -> Promise<NewValue>) -> Promise<NewValue> {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m195 |[0;0m return Promise<NewValue>(work: { fulfill, reject in
[0;36m196 |[0;0m self.addCallbacks(
/host/spi-builder-workspace/Promise/Promise.swift:221:61: [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m219 |[0;0m /// This is roughly the equivalent of a traditional `map()`.
[0;36m220 |[0;0m @discardableResult
[0;36m221 |[0;0m public func then<NewValue>(on queue: ExecutionContext = [4;39mDispatchQueue[0;0m.main, _ onFulfilled: @escaping (Value) throws -> NewValue) -> Promise<NewValue> {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m222 |[0;0m return then(on: queue, { (value) -> Promise<NewValue> in
[0;36m223 |[0;0m do {
/host/spi-builder-workspace/Promise/Promise.swift:239:51: [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m237 |[0;0m /// - Returns: A discardable instance of this promise that can be used for further chaining.
[0;36m238 |[0;0m @discardableResult
[0;36m239 |[0;0m public func then(on queue: ExecutionContext = [4;39mDispatchQueue[0;0m.main, _ onFulfilled: @escaping (Value) -> Void, _ onRejected: @escaping (Error) -> Void = { _ in }) -> Promise<Value> {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m240 |[0;0m addCallbacks(on: queue, onFulfilled: onFulfilled, onRejected: onRejected)
[0;36m241 |[0;0m return self
/host/spi-builder-workspace/Promise/Promise.swift:251:54: [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m249 |[0;0m /// - Returns: A discardable instance of this promise that can be used for further chaining.
[0;36m250 |[0;0m @discardableResult
[0;36m251 |[0;0m public func `catch`(on queue: ExecutionContext = [4;39mDispatchQueue[0;0m.main, _ onRejected: @escaping (Error) -> Void) -> Promise<Value> {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m252 |[0;0m return then(on: queue, { _ in }, onRejected)
[0;36m253 |[0;0m }
/host/spi-builder-workspace/Promise/Promise.swift:304:60: [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m302 |[0;0m }
[0;36m303 |[0;0m
[0;36m304 |[0;0m private func addCallbacks(on queue: ExecutionContext = [4;39mDispatchQueue[0;0m.main, onFulfilled: @escaping (Value) -> Void, onRejected: @escaping (Error) -> Void) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m305 |[0;0m let callback = Callback(onFulfilled: onFulfilled, onRejected: onRejected, executionContext: queue)
[0;36m306 |[0;0m lockQueue.async(flags: .barrier, execute: {
Failed frontend command:
/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /host/spi-builder-workspace/Promise/Promise+Extras.swift /host/spi-builder-workspace/Promise/Promise.swift -target wasm32-unknown-wasip1 -disable-objc-interop -sdk /root/.swiftpm/swift-sdks/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm.artifactbundle/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm/wasm32-unknown-wasip1/WASI.sdk -sysroot /root/.swiftpm/swift-sdks/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm.artifactbundle/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm/wasm32-unknown-wasip1/WASI.sdk -I /host/spi-builder-workspace/.build/out/Products/Debug-webassembly-wasm32 -module-cache-path /host/spi-builder-workspace/.build/out/ModuleCache.noindex -color-diagnostics -Xcc -fcolor-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -swift-version 4 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -external-plugin-path /usr/lib/swift/host/plugins/testing\#/usr/bin/swift-plugin-server -validate-clang-modules-once -clang-build-session-file /host/spi-builder-workspace/.build/out/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /host -resource-dir /root/.swiftpm/swift-sdks/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm.artifactbundle/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static -use-static-resource-dir -enable-anonymous-context-mangled-names -file-compilation-dir /host -Xcc -resource-dir -Xcc /root/.swiftpm/swift-sdks/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm.artifactbundle/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/host/spi-builder-workspace/.build/out/Products/Debug-webassembly-wasm32/include -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/Promises.build/Debug-webassembly-wasm32/Promise-t.build/DerivedSources-normal/wasm32 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/Promises.build/Debug-webassembly-wasm32/Promise-t.build/DerivedSources/wasm32 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/Promises.build/Debug-webassembly-wasm32/Promise-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name Promise -const-gather-protocols-file /host/spi-builder-workspace/.build/out/Intermediates.noindex/Promises.build/Debug-webassembly-wasm32/Promise-t.build/Objects-normal/wasm32/Promise_const_extract_protocols.json -in-process-plugin-server-path /usr/lib/swift/host/libSwiftInProcPluginServer.so -plugin-path /usr/lib/swift/host/plugins -plugin-path /usr/local/lib/swift/host/plugins -emit-module-doc-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Promises.build/Debug-webassembly-wasm32/Promise-t.build/Objects-normal/wasm32/Modules/Promise.swiftdoc -emit-module-source-info-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Promises.build/Debug-webassembly-wasm32/Promise-t.build/Objects-normal/wasm32/Modules/Promise.swiftsourceinfo -emit-objc-header-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Promises.build/Debug-webassembly-wasm32/Promise-t.build/Objects-normal/wasm32/Promise-Swift.h -serialize-diagnostics-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Promises.build/Debug-webassembly-wasm32/Promise-t.build/Objects-normal/wasm32/Promise-primary-emit-module.dia -emit-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Promises.build/Debug-webassembly-wasm32/Promise-t.build/Objects-normal/wasm32/Promise-primary-emit-module.d -parse-as-library -o /host/spi-builder-workspace/.build/out/Intermediates.noindex/Promises.build/Debug-webassembly-wasm32/Promise-t.build/Objects-normal/wasm32/Modules/Promise.swiftmodule
error: Build failed
BUILD FAILURE 6.4 wasm