The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Failed to build Watchdog, reference master (2df9ac), with Swift 6.1 for Wasm on 28 May 2025 01:08:36 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/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/wojteklu/Watchdog.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/wojteklu/Watchdog
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 2df9acf Add support for SwiftPM (#51)
Cloned https://github.com/wojteklu/Watchdog.git
Revision (git rev-parse @):
2df9acf8472a1f1146fc0f41e37d3f424dba72d6
SUCCESS checkout https://github.com/wojteklu/Watchdog.git at master
========================================
Build
========================================
Selected platform:         wasm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/wojteklu/Watchdog.git
https://github.com/wojteklu/Watchdog.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Watchdog",
  "name" : "Watchdog",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Watchdog",
      "targets" : [
        "Watchdog"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "Watchdog",
      "module_type" : "SwiftTarget",
      "name" : "Watchdog",
      "path" : "Classes",
      "product_memberships" : [
        "Watchdog"
      ],
      "sources" : [
        "Watchdog.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "4.2"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/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 Watchdog
/host/spi-builder-workspace/Classes/Watchdog.swift:7:6: error: Objective-C interoperability is disabled
 5 |     fileprivate let pingThread: PingThread
 6 |
 7 |     @objc public static let defaultThreshold = 0.4
   |      `- error: Objective-C interoperability is disabled
 8 |
 9 |     /// Convenience initializer that allows you to construct a `WatchDog` object with default behavior.
/host/spi-builder-workspace/Classes/Watchdog.swift:12:6: error: Objective-C interoperability is disabled
10 |     /// - parameter threshold: number of seconds that must pass to consider the main thread blocked.
11 |     /// - parameter strictMode: boolean value that stops the execution whenever the threshold is reached.
12 |     @objc public convenience init(threshold: Double = Watchdog.defaultThreshold, strictMode: Bool = false) {
   |      `- error: Objective-C interoperability is disabled
13 |         let message = "👮 Main thread was blocked for " + String(format: "%.2f", threshold) + "s 👮"
14 |
/host/spi-builder-workspace/Classes/Watchdog.swift:27:6: error: Objective-C interoperability is disabled
25 |     /// - parameter threshold: number of seconds that must pass to consider the main thread blocked.
26 |     /// - parameter watchdogFiredCallback: a callback that will be called when the the threshold is reached
27 |     @objc public init(threshold: Double = Watchdog.defaultThreshold, watchdogFiredCallback: @escaping () -> Void) {
   |      `- error: Objective-C interoperability is disabled
28 |         self.pingThread = PingThread(threshold: threshold, handler: watchdogFiredCallback)
29 |
/host/spi-builder-workspace/Classes/Watchdog.swift:39:33: error: cannot find type 'Thread' in scope
37 | }
38 |
39 | private final class PingThread: Thread {
   |                                 `- error: cannot find type 'Thread' in scope
40 |     fileprivate var pingTaskIsRunning: Bool {
41 |         get {
/host/spi-builder-workspace/Classes/Watchdog.swift:55:33: error: cannot find 'DispatchSemaphore' in scope
53 |     private var _pingTaskIsRunning = false
54 |     private let pingTaskIsRunningLock = NSObject()
55 |     fileprivate var semaphore = DispatchSemaphore(value: 0)
   |                                 `- error: cannot find 'DispatchSemaphore' in scope
56 |     fileprivate let threshold: Double
57 |     fileprivate let handler: () -> Void
/host/spi-builder-workspace/Classes/Watchdog.swift:66:19: error: method does not override any method from its superclass
64 |     }
65 |
66 |     override func main() {
   |                   `- error: method does not override any method from its superclass
67 |         while !isCancelled {
68 |             pingTaskIsRunning = true
[4/4] Compiling Watchdog Watchdog.swift
/host/spi-builder-workspace/Classes/Watchdog.swift:7:6: error: Objective-C interoperability is disabled
 5 |     fileprivate let pingThread: PingThread
 6 |
 7 |     @objc public static let defaultThreshold = 0.4
   |      `- error: Objective-C interoperability is disabled
 8 |
 9 |     /// Convenience initializer that allows you to construct a `WatchDog` object with default behavior.
/host/spi-builder-workspace/Classes/Watchdog.swift:12:6: error: Objective-C interoperability is disabled
10 |     /// - parameter threshold: number of seconds that must pass to consider the main thread blocked.
11 |     /// - parameter strictMode: boolean value that stops the execution whenever the threshold is reached.
12 |     @objc public convenience init(threshold: Double = Watchdog.defaultThreshold, strictMode: Bool = false) {
   |      `- error: Objective-C interoperability is disabled
13 |         let message = "👮 Main thread was blocked for " + String(format: "%.2f", threshold) + "s 👮"
14 |
/host/spi-builder-workspace/Classes/Watchdog.swift:27:6: error: Objective-C interoperability is disabled
25 |     /// - parameter threshold: number of seconds that must pass to consider the main thread blocked.
26 |     /// - parameter watchdogFiredCallback: a callback that will be called when the the threshold is reached
27 |     @objc public init(threshold: Double = Watchdog.defaultThreshold, watchdogFiredCallback: @escaping () -> Void) {
   |      `- error: Objective-C interoperability is disabled
28 |         self.pingThread = PingThread(threshold: threshold, handler: watchdogFiredCallback)
29 |
/host/spi-builder-workspace/Classes/Watchdog.swift:39:33: error: cannot find type 'Thread' in scope
37 | }
38 |
39 | private final class PingThread: Thread {
   |                                 `- error: cannot find type 'Thread' in scope
40 |     fileprivate var pingTaskIsRunning: Bool {
41 |         get {
/host/spi-builder-workspace/Classes/Watchdog.swift:55:33: error: cannot find 'DispatchSemaphore' in scope
53 |     private var _pingTaskIsRunning = false
54 |     private let pingTaskIsRunningLock = NSObject()
55 |     fileprivate var semaphore = DispatchSemaphore(value: 0)
   |                                 `- error: cannot find 'DispatchSemaphore' in scope
56 |     fileprivate let threshold: Double
57 |     fileprivate let handler: () -> Void
/host/spi-builder-workspace/Classes/Watchdog.swift:66:19: error: method does not override any method from its superclass
64 |     }
65 |
66 |     override func main() {
   |                   `- error: method does not override any method from its superclass
67 |         while !isCancelled {
68 |             pingTaskIsRunning = true
/host/spi-builder-workspace/Classes/Watchdog.swift:30:25: error: value of type 'PingThread' has no member 'start'
28 |         self.pingThread = PingThread(threshold: threshold, handler: watchdogFiredCallback)
29 |
30 |         self.pingThread.start()
   |                         `- error: value of type 'PingThread' has no member 'start'
31 |         super.init()
32 |     }
/host/spi-builder-workspace/Classes/Watchdog.swift:35:20: error: value of type 'PingThread' has no member 'cancel'
33 |
34 |     deinit {
35 |         pingThread.cancel()
   |                    `- error: value of type 'PingThread' has no member 'cancel'
36 |     }
37 | }
/host/spi-builder-workspace/Classes/Watchdog.swift:42:13: error: cannot find 'objc_sync_enter' in scope
40 |     fileprivate var pingTaskIsRunning: Bool {
41 |         get {
42 |             objc_sync_enter(pingTaskIsRunningLock)
   |             `- error: cannot find 'objc_sync_enter' in scope
43 |             let result = _pingTaskIsRunning;
44 |             objc_sync_exit(pingTaskIsRunningLock)
/host/spi-builder-workspace/Classes/Watchdog.swift:44:13: error: cannot find 'objc_sync_exit' in scope
42 |             objc_sync_enter(pingTaskIsRunningLock)
43 |             let result = _pingTaskIsRunning;
44 |             objc_sync_exit(pingTaskIsRunningLock)
   |             `- error: cannot find 'objc_sync_exit' in scope
45 |             return result
46 |         }
/host/spi-builder-workspace/Classes/Watchdog.swift:48:13: error: cannot find 'objc_sync_enter' in scope
46 |         }
47 |         set {
48 |             objc_sync_enter(pingTaskIsRunningLock)
   |             `- error: cannot find 'objc_sync_enter' in scope
49 |             _pingTaskIsRunning = newValue
50 |             objc_sync_exit(pingTaskIsRunningLock)
/host/spi-builder-workspace/Classes/Watchdog.swift:50:13: error: cannot find 'objc_sync_exit' in scope
48 |             objc_sync_enter(pingTaskIsRunningLock)
49 |             _pingTaskIsRunning = newValue
50 |             objc_sync_exit(pingTaskIsRunningLock)
   |             `- error: cannot find 'objc_sync_exit' in scope
51 |         }
52 |     }
/host/spi-builder-workspace/Classes/Watchdog.swift:62:9: error: 'super' cannot be used in class 'PingThread' because it has no superclass
60 |         self.threshold = threshold
61 |         self.handler = handler
62 |         super.init()
   |         `- error: 'super' cannot be used in class 'PingThread' because it has no superclass
63 |         self.name = "WatchDog"
64 |     }
/host/spi-builder-workspace/Classes/Watchdog.swift:63:14: error: value of type 'PingThread' has no member 'name'
61 |         self.handler = handler
62 |         super.init()
63 |         self.name = "WatchDog"
   |              `- error: value of type 'PingThread' has no member 'name'
64 |     }
65 |
/host/spi-builder-workspace/Classes/Watchdog.swift:67:16: error: cannot find 'isCancelled' in scope
65 |
66 |     override func main() {
67 |         while !isCancelled {
   |                `- error: cannot find 'isCancelled' in scope
68 |             pingTaskIsRunning = true
69 |             DispatchQueue.main.async {
/host/spi-builder-workspace/Classes/Watchdog.swift:69:13: error: cannot find 'DispatchQueue' in scope
67 |         while !isCancelled {
68 |             pingTaskIsRunning = true
69 |             DispatchQueue.main.async {
   |             `- error: cannot find 'DispatchQueue' in scope
70 |                 self.pingTaskIsRunning = false
71 |                 self.semaphore.signal()
/host/spi-builder-workspace/Classes/Watchdog.swift:74:13: error: cannot find 'Thread' in scope
72 |             }
73 |
74 |             Thread.sleep(forTimeInterval: threshold)
   |             `- error: cannot find 'Thread' in scope
75 |             if pingTaskIsRunning {
76 |                 handler()
/host/spi-builder-workspace/Classes/Watchdog.swift:79:41: error: cannot find 'DispatchTime' in scope
77 |             }
78 |
79 |             _ = semaphore.wait(timeout: DispatchTime.distantFuture)
   |                                         `- error: cannot find 'DispatchTime' in scope
80 |         }
81 |     }
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/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 Watchdog
/host/spi-builder-workspace/Classes/Watchdog.swift:7:6: error: Objective-C interoperability is disabled
 5 |     fileprivate let pingThread: PingThread
 6 |
 7 |     @objc public static let defaultThreshold = 0.4
   |      `- error: Objective-C interoperability is disabled
 8 |
 9 |     /// Convenience initializer that allows you to construct a `WatchDog` object with default behavior.
/host/spi-builder-workspace/Classes/Watchdog.swift:12:6: error: Objective-C interoperability is disabled
10 |     /// - parameter threshold: number of seconds that must pass to consider the main thread blocked.
11 |     /// - parameter strictMode: boolean value that stops the execution whenever the threshold is reached.
12 |     @objc public convenience init(threshold: Double = Watchdog.defaultThreshold, strictMode: Bool = false) {
   |      `- error: Objective-C interoperability is disabled
13 |         let message = "👮 Main thread was blocked for " + String(format: "%.2f", threshold) + "s 👮"
14 |
/host/spi-builder-workspace/Classes/Watchdog.swift:27:6: error: Objective-C interoperability is disabled
25 |     /// - parameter threshold: number of seconds that must pass to consider the main thread blocked.
26 |     /// - parameter watchdogFiredCallback: a callback that will be called when the the threshold is reached
27 |     @objc public init(threshold: Double = Watchdog.defaultThreshold, watchdogFiredCallback: @escaping () -> Void) {
   |      `- error: Objective-C interoperability is disabled
28 |         self.pingThread = PingThread(threshold: threshold, handler: watchdogFiredCallback)
29 |
/host/spi-builder-workspace/Classes/Watchdog.swift:39:33: error: cannot find type 'Thread' in scope
37 | }
38 |
39 | private final class PingThread: Thread {
   |                                 `- error: cannot find type 'Thread' in scope
40 |     fileprivate var pingTaskIsRunning: Bool {
41 |         get {
/host/spi-builder-workspace/Classes/Watchdog.swift:55:33: error: cannot find 'DispatchSemaphore' in scope
53 |     private var _pingTaskIsRunning = false
54 |     private let pingTaskIsRunningLock = NSObject()
55 |     fileprivate var semaphore = DispatchSemaphore(value: 0)
   |                                 `- error: cannot find 'DispatchSemaphore' in scope
56 |     fileprivate let threshold: Double
57 |     fileprivate let handler: () -> Void
/host/spi-builder-workspace/Classes/Watchdog.swift:66:19: error: method does not override any method from its superclass
64 |     }
65 |
66 |     override func main() {
   |                   `- error: method does not override any method from its superclass
67 |         while !isCancelled {
68 |             pingTaskIsRunning = true
[3/3] Compiling Watchdog Watchdog.swift
/host/spi-builder-workspace/Classes/Watchdog.swift:7:6: error: Objective-C interoperability is disabled
 5 |     fileprivate let pingThread: PingThread
 6 |
 7 |     @objc public static let defaultThreshold = 0.4
   |      `- error: Objective-C interoperability is disabled
 8 |
 9 |     /// Convenience initializer that allows you to construct a `WatchDog` object with default behavior.
/host/spi-builder-workspace/Classes/Watchdog.swift:12:6: error: Objective-C interoperability is disabled
10 |     /// - parameter threshold: number of seconds that must pass to consider the main thread blocked.
11 |     /// - parameter strictMode: boolean value that stops the execution whenever the threshold is reached.
12 |     @objc public convenience init(threshold: Double = Watchdog.defaultThreshold, strictMode: Bool = false) {
   |      `- error: Objective-C interoperability is disabled
13 |         let message = "👮 Main thread was blocked for " + String(format: "%.2f", threshold) + "s 👮"
14 |
/host/spi-builder-workspace/Classes/Watchdog.swift:27:6: error: Objective-C interoperability is disabled
25 |     /// - parameter threshold: number of seconds that must pass to consider the main thread blocked.
26 |     /// - parameter watchdogFiredCallback: a callback that will be called when the the threshold is reached
27 |     @objc public init(threshold: Double = Watchdog.defaultThreshold, watchdogFiredCallback: @escaping () -> Void) {
   |      `- error: Objective-C interoperability is disabled
28 |         self.pingThread = PingThread(threshold: threshold, handler: watchdogFiredCallback)
29 |
/host/spi-builder-workspace/Classes/Watchdog.swift:39:33: error: cannot find type 'Thread' in scope
37 | }
38 |
39 | private final class PingThread: Thread {
   |                                 `- error: cannot find type 'Thread' in scope
40 |     fileprivate var pingTaskIsRunning: Bool {
41 |         get {
/host/spi-builder-workspace/Classes/Watchdog.swift:55:33: error: cannot find 'DispatchSemaphore' in scope
53 |     private var _pingTaskIsRunning = false
54 |     private let pingTaskIsRunningLock = NSObject()
55 |     fileprivate var semaphore = DispatchSemaphore(value: 0)
   |                                 `- error: cannot find 'DispatchSemaphore' in scope
56 |     fileprivate let threshold: Double
57 |     fileprivate let handler: () -> Void
/host/spi-builder-workspace/Classes/Watchdog.swift:66:19: error: method does not override any method from its superclass
64 |     }
65 |
66 |     override func main() {
   |                   `- error: method does not override any method from its superclass
67 |         while !isCancelled {
68 |             pingTaskIsRunning = true
/host/spi-builder-workspace/Classes/Watchdog.swift:30:25: error: value of type 'PingThread' has no member 'start'
28 |         self.pingThread = PingThread(threshold: threshold, handler: watchdogFiredCallback)
29 |
30 |         self.pingThread.start()
   |                         `- error: value of type 'PingThread' has no member 'start'
31 |         super.init()
32 |     }
/host/spi-builder-workspace/Classes/Watchdog.swift:35:20: error: value of type 'PingThread' has no member 'cancel'
33 |
34 |     deinit {
35 |         pingThread.cancel()
   |                    `- error: value of type 'PingThread' has no member 'cancel'
36 |     }
37 | }
/host/spi-builder-workspace/Classes/Watchdog.swift:42:13: error: cannot find 'objc_sync_enter' in scope
40 |     fileprivate var pingTaskIsRunning: Bool {
41 |         get {
42 |             objc_sync_enter(pingTaskIsRunningLock)
   |             `- error: cannot find 'objc_sync_enter' in scope
43 |             let result = _pingTaskIsRunning;
44 |             objc_sync_exit(pingTaskIsRunningLock)
/host/spi-builder-workspace/Classes/Watchdog.swift:44:13: error: cannot find 'objc_sync_exit' in scope
42 |             objc_sync_enter(pingTaskIsRunningLock)
43 |             let result = _pingTaskIsRunning;
44 |             objc_sync_exit(pingTaskIsRunningLock)
   |             `- error: cannot find 'objc_sync_exit' in scope
45 |             return result
46 |         }
/host/spi-builder-workspace/Classes/Watchdog.swift:48:13: error: cannot find 'objc_sync_enter' in scope
46 |         }
47 |         set {
48 |             objc_sync_enter(pingTaskIsRunningLock)
   |             `- error: cannot find 'objc_sync_enter' in scope
49 |             _pingTaskIsRunning = newValue
50 |             objc_sync_exit(pingTaskIsRunningLock)
/host/spi-builder-workspace/Classes/Watchdog.swift:50:13: error: cannot find 'objc_sync_exit' in scope
48 |             objc_sync_enter(pingTaskIsRunningLock)
49 |             _pingTaskIsRunning = newValue
50 |             objc_sync_exit(pingTaskIsRunningLock)
   |             `- error: cannot find 'objc_sync_exit' in scope
51 |         }
52 |     }
/host/spi-builder-workspace/Classes/Watchdog.swift:62:9: error: 'super' cannot be used in class 'PingThread' because it has no superclass
60 |         self.threshold = threshold
61 |         self.handler = handler
62 |         super.init()
   |         `- error: 'super' cannot be used in class 'PingThread' because it has no superclass
63 |         self.name = "WatchDog"
64 |     }
/host/spi-builder-workspace/Classes/Watchdog.swift:63:14: error: value of type 'PingThread' has no member 'name'
61 |         self.handler = handler
62 |         super.init()
63 |         self.name = "WatchDog"
   |              `- error: value of type 'PingThread' has no member 'name'
64 |     }
65 |
/host/spi-builder-workspace/Classes/Watchdog.swift:67:16: error: cannot find 'isCancelled' in scope
65 |
66 |     override func main() {
67 |         while !isCancelled {
   |                `- error: cannot find 'isCancelled' in scope
68 |             pingTaskIsRunning = true
69 |             DispatchQueue.main.async {
/host/spi-builder-workspace/Classes/Watchdog.swift:69:13: error: cannot find 'DispatchQueue' in scope
67 |         while !isCancelled {
68 |             pingTaskIsRunning = true
69 |             DispatchQueue.main.async {
   |             `- error: cannot find 'DispatchQueue' in scope
70 |                 self.pingTaskIsRunning = false
71 |                 self.semaphore.signal()
/host/spi-builder-workspace/Classes/Watchdog.swift:74:13: error: cannot find 'Thread' in scope
72 |             }
73 |
74 |             Thread.sleep(forTimeInterval: threshold)
   |             `- error: cannot find 'Thread' in scope
75 |             if pingTaskIsRunning {
76 |                 handler()
/host/spi-builder-workspace/Classes/Watchdog.swift:79:41: error: cannot find 'DispatchTime' in scope
77 |             }
78 |
79 |             _ = semaphore.wait(timeout: DispatchTime.distantFuture)
   |                                         `- error: cannot find 'DispatchTime' in scope
80 |         }
81 |     }
BUILD FAILURE 6.1 wasm