Build Information
Failed to build Repeat, reference 0.6.0 (9df757), with Swift 6.4 for Wasm on 19 Sep 2026 14:43:26 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344844-2":/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/malcommac/Repeat.git
Reference: 0.6.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/malcommac/Repeat
* tag 0.6.0 -> FETCH_HEAD
HEAD is now at 9df757d Merge branch 'release/0.6.0'
Cloned https://github.com/malcommac/Repeat.git
Revision (git rev-parse @):
9df757d0936c15dfd9d01067766fab87e927f838
SUCCESS checkout https://github.com/malcommac/Repeat.git at 0.6.0
========================================
Build
========================================
Selected platform: wasm
Swift version: 6.4
Building package at path: $PWD
https://github.com/malcommac/Repeat.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344844-2":/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...
[Pre-planning 1 / 66]
[17 / 25] Repeat
error: SwiftCompile normal wasm32 failed with a nonzero exit code. Command line: cd /host
[22 / 30] Repeat
/host/spi-builder-workspace/Sources/Repeat/Debouncer.swift:40:9: [1;33mwarning: [1;39mextraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode[0;0m
[0;36m38 |[0;0m
[0;36m39 |[0;0m /// Delay interval
[0;36m40 |[0;0m private (set) public var delay: Repeater.Interval
[0;36m|[0;0m `- [1;33mwarning: [1;39mextraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode[0;0m
[0;36m41 |[0;0m
[0;36m42 |[0;0m /// Callback to activate
/host/spi-builder-workspace/Sources/Repeat/Repeater.swift:101:23: [1;31merror: [1;39mcannot find type 'DispatchTimeInterval' in scope[0;0m
[0;36m99 |[0;0m case days(_: Int)
[0;36m100 |[0;0m
[0;36m101 |[0;0m internal var value: [4;39mDispatchTimeInterval[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchTimeInterval' in scope[0;0m
[0;36m102 |[0;0m switch self {
[0;36m103 |[0;0m case .nanoseconds(let value): return .nanoseconds(value)
/host/spi-builder-workspace/Sources/Repeat/Repeater.swift:173:21: [1;31merror: [1;39mcannot find type 'DispatchSourceTimer' in scope[0;0m
[0;36m171 |[0;0m
[0;36m172 |[0;0m /// Internal GCD Timer
[0;36m173 |[0;0m private var timer: [4;39mDispatchSourceTimer[0;0m?
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchSourceTimer' in scope[0;0m
[0;36m174 |[0;0m
[0;36m175 |[0;0m /// Is timer a repeat timer
/host/spi-builder-workspace/Sources/Repeat/Repeater.swift:185:25: [1;31merror: [1;39mcannot find type 'DispatchTimeInterval' in scope[0;0m
[0;36m183 |[0;0m
[0;36m184 |[0;0m /// Accuracy of the timer
[0;36m185 |[0;0m private var tolerance: [4;39mDispatchTimeInterval[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchTimeInterval' in scope[0;0m
[0;36m186 |[0;0m
[0;36m187 |[0;0m /// Dispatch queue parent of the timer
/host/spi-builder-workspace/Sources/Repeat/Repeater.swift:188:21: [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m186 |[0;0m
[0;36m187 |[0;0m /// Dispatch queue parent of the timer
[0;36m188 |[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;36m189 |[0;0m
[0;36m190 |[0;0m /// Initialize a new timer.
/host/spi-builder-workspace/Sources/Repeat/Repeater.swift:198:69: [1;31merror: [1;39mcannot find type 'DispatchTimeInterval' in scope[0;0m
[0;36m196 |[0;0m /// - queue: queue in which the timer should be executed; if `nil` a new queue is created automatically.
[0;36m197 |[0;0m /// - observer: observer
[0;36m198 |[0;0m public init(interval: Interval, mode: Mode = .infinite, tolerance: [4;39mDispatchTimeInterval[0;0m = .nanoseconds(0), queue: DispatchQueue? = nil, observer: @escaping Observer) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchTimeInterval' in scope[0;0m
[0;36m199 |[0;0m self.mode = mode
[0;36m200 |[0;0m self.interval = interval
/host/spi-builder-workspace/Sources/Repeat/Repeater.swift:198:116: [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m196 |[0;0m /// - queue: queue in which the timer should be executed; if `nil` a new queue is created automatically.
[0;36m197 |[0;0m /// - observer: observer
[0;36m198 |[0;0m public init(interval: Interval, mode: Mode = .infinite, tolerance: DispatchTimeInterval = .nanoseconds(0), queue: [4;39mDispatchQueue[0;0m? = nil, observer: @escaping Observer) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m199 |[0;0m self.mode = mode
[0;36m200 |[0;0m self.interval = interval
/host/spi-builder-workspace/Sources/Repeat/Repeater.swift:245:35: [1;31merror: [1;39mcannot find type 'DispatchSourceTimer' in scope[0;0m
[0;36m243 |[0;0m ///
[0;36m244 |[0;0m /// - Returns: dispatch timer
[0;36m245 |[0;0m private func configureTimer() -> [4;39mDispatchSourceTimer[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchSourceTimer' in scope[0;0m
[0;36m246 |[0;0m let associatedQueue = (queue ?? DispatchQueue(label: "com.repeat.\(NSUUID().uuidString)"))
[0;36m247 |[0;0m let timer = DispatchSource.makeTimerSource(queue: associatedQueue)
/host/spi-builder-workspace/Sources/Repeat/Repeater.swift:282:62: [1;31merror: [1;39mcannot find type 'DispatchTimeInterval' in scope[0;0m
[0;36m280 |[0;0m /// - Returns: timer instance
[0;36m281 |[0;0m @discardableResult
[0;36m282 |[0;0m public class func once(after interval: Interval, tolerance: [4;39mDispatchTimeInterval[0;0m = .nanoseconds(0), queue: DispatchQueue? = nil, _ observer: @escaping Observer) -> Repeater {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchTimeInterval' in scope[0;0m
[0;36m283 |[0;0m let timer = Repeater(interval: interval, mode: .once, tolerance: tolerance, queue: queue, observer: observer)
[0;36m284 |[0;0m timer.start()
/host/spi-builder-workspace/Sources/Repeat/Repeater.swift:282:109: [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m280 |[0;0m /// - Returns: timer instance
[0;36m281 |[0;0m @discardableResult
[0;36m282 |[0;0m public class func once(after interval: Interval, tolerance: DispatchTimeInterval = .nanoseconds(0), queue: [4;39mDispatchQueue[0;0m? = nil, _ observer: @escaping Observer) -> Repeater {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m283 |[0;0m let timer = Repeater(interval: interval, mode: .once, tolerance: tolerance, queue: queue, observer: observer)
[0;36m284 |[0;0m timer.start()
/host/spi-builder-workspace/Sources/Repeat/Repeater.swift:297:78: [1;31merror: [1;39mcannot find type 'DispatchTimeInterval' in scope[0;0m
[0;36m295 |[0;0m /// - Returns: timer
[0;36m296 |[0;0m @discardableResult
[0;36m297 |[0;0m public class func every(_ interval: Interval, count: Int? = nil, tolerance: [4;39mDispatchTimeInterval[0;0m = .nanoseconds(0), queue: DispatchQueue? = nil, _ handler: @escaping Observer) -> Repeater {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchTimeInterval' in scope[0;0m
[0;36m298 |[0;0m let mode: Mode = (count != nil ? .finite(count!) : .infinite)
[0;36m299 |[0;0m let timer = Repeater(interval: interval, mode: mode, tolerance: tolerance, queue: queue, observer: handler)
/host/spi-builder-workspace/Sources/Repeat/Repeater.swift:297:125: [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m295 |[0;0m /// - Returns: timer
[0;36m296 |[0;0m @discardableResult
[0;36m297 |[0;0m public class func every(_ interval: Interval, count: Int? = nil, tolerance: DispatchTimeInterval = .nanoseconds(0), queue: [4;39mDispatchQueue[0;0m? = nil, _ handler: @escaping Observer) -> Repeater {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m298 |[0;0m let mode: Mode = (count != nil ? .finite(count!) : .infinite)
[0;36m299 |[0;0m let timer = Repeater(interval: interval, mode: mode, tolerance: tolerance, queue: queue, observer: handler)
/host/spi-builder-workspace/Sources/Repeat/Throttler.swift:53:21: [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m51 |[0;0m
[0;36m52 |[0;0m /// Queue in which the throotle will work.
[0;36m53 |[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;36m54 |[0;0m
[0;36m55 |[0;0m /// Callback to call
/host/spi-builder-workspace/Sources/Repeat/Throttler.swift:59:28: [1;31merror: [1;39mcannot find 'DispatchWorkItem' in scope[0;0m
[0;36m57 |[0;0m
[0;36m58 |[0;0m /// Last scheduled callback job
[0;36m59 |[0;0m private var callbackJob = [4;39mDispatchWorkItem[0;0m(block: {})
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'DispatchWorkItem' in scope[0;0m
[0;36m60 |[0;0m
[0;36m61 |[0;0m /// Previous scheduled time
/host/spi-builder-workspace/Sources/Repeat/Throttler.swift:62:33: [1;31merror: [1;39mcannot find type 'DispatchTime' in scope[0;0m
[0;36m60 |[0;0m
[0;36m61 |[0;0m /// Previous scheduled time
[0;36m62 |[0;0m private var previousScheduled: [4;39mDispatchTime[0;0m?
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchTime' in scope[0;0m
[0;36m63 |[0;0m
[0;36m64 |[0;0m /// Last executed time
/host/spi-builder-workspace/Sources/Repeat/Throttler.swift:65:33: [1;31merror: [1;39mcannot find type 'DispatchTime' in scope[0;0m
[0;36m63 |[0;0m
[0;36m64 |[0;0m /// Last executed time
[0;36m65 |[0;0m private var lastExecutionTime: [4;39mDispatchTime[0;0m?
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchTime' in scope[0;0m
[0;36m66 |[0;0m
[0;36m67 |[0;0m /// Need to delay before perform
/host/spi-builder-workspace/Sources/Repeat/Throttler.swift:71:36: [1;31merror: [1;39mcannot find type 'DispatchTimeInterval' in scope[0;0m
[0;36m69 |[0;0m
[0;36m70 |[0;0m /// Throotle interval
[0;36m71 |[0;0m public private(set) var throttle: [4;39mDispatchTimeInterval[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchTimeInterval' in scope[0;0m
[0;36m72 |[0;0m
[0;36m73 |[0;0m /// Initialize a new throttler with given time interval.
/host/spi-builder-workspace/Sources/Repeat/Throttler.swift:81:46: [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m79 |[0;0m /// - fireNow: immediate fire first execution of the throttle.
[0;36m80 |[0;0m /// - callback: callback to throttle.
[0;36m81 |[0;0m public init(time: Repeater.Interval, queue: [4;39mDispatchQueue[0;0m? = nil, mode: Mode = .fixed, immediateFire: Bool = false, _ callback: Callback? = nil) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchQueue' in scope[0;0m
[0;36m82 |[0;0m self.throttle = time.value
[0;36m83 |[0;0m self.queue = (queue ?? DispatchQueue.global(qos: .background))
/host/spi-builder-workspace/Sources/Repeat/Throttler.swift:110:47: [1;31merror: [1;39mcannot find type 'DispatchTime' in scope[0;0m
[0;36m108 |[0;0m ///
[0;36m109 |[0;0m /// - Returns: a tuple with now interval and evaluated interval based upon the current mode.
[0;36m110 |[0;0m private func evaluateDispatchTime() -> (now: [4;39mDispatchTime[0;0m, evaluated: DispatchTime) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchTime' in scope[0;0m
[0;36m111 |[0;0m let now: DispatchTime = .now()
[0;36m112 |[0;0m
/host/spi-builder-workspace/Sources/Repeat/Throttler.swift:110:72: [1;31merror: [1;39mcannot find type 'DispatchTime' in scope[0;0m
[0;36m108 |[0;0m ///
[0;36m109 |[0;0m /// - Returns: a tuple with now interval and evaluated interval based upon the current mode.
[0;36m110 |[0;0m private func evaluateDispatchTime() -> (now: DispatchTime, evaluated: [4;39mDispatchTime[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'DispatchTime' in scope[0;0m
[0;36m111 |[0;0m let now: DispatchTime = .now()
[0;36m112 |[0;0m
Failed frontend command:
/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /host/spi-builder-workspace/Sources/Repeat/Debouncer.swift /host/spi-builder-workspace/Sources/Repeat/Repeater.swift /host/spi-builder-workspace/Sources/Repeat/Throttler.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 5 -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/Repeat.build/Debug-webassembly-wasm32/Repeat-t.build/DerivedSources-normal/wasm32 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/Repeat.build/Debug-webassembly-wasm32/Repeat-t.build/DerivedSources/wasm32 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/Repeat.build/Debug-webassembly-wasm32/Repeat-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name Repeat -const-gather-protocols-file /host/spi-builder-workspace/.build/out/Intermediates.noindex/Repeat.build/Debug-webassembly-wasm32/Repeat-t.build/Objects-normal/wasm32/Repeat_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/Repeat.build/Debug-webassembly-wasm32/Repeat-t.build/Objects-normal/wasm32/Modules/Repeat.swiftdoc -emit-module-source-info-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Repeat.build/Debug-webassembly-wasm32/Repeat-t.build/Objects-normal/wasm32/Modules/Repeat.swiftsourceinfo -emit-objc-header-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Repeat.build/Debug-webassembly-wasm32/Repeat-t.build/Objects-normal/wasm32/Repeat-Swift.h -serialize-diagnostics-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Repeat.build/Debug-webassembly-wasm32/Repeat-t.build/Objects-normal/wasm32/Repeat-primary-emit-module.dia -emit-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Repeat.build/Debug-webassembly-wasm32/Repeat-t.build/Objects-normal/wasm32/Repeat-primary-emit-module.d -parse-as-library -o /host/spi-builder-workspace/.build/out/Intermediates.noindex/Repeat.build/Debug-webassembly-wasm32/Repeat-t.build/Objects-normal/wasm32/Modules/Repeat.swiftmodule
error: Build failed
BUILD FAILURE 6.4 wasm