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 Timers, reference main (d77a85), with Swift 6.1 for Wasm on 28 May 2025 17:34:15 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/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/dreymonde/Timers.git
Reference: main
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/dreymonde/Timers
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at d77a85c update README
Cloned https://github.com/dreymonde/Timers.git
Revision (git rev-parse @):
d77a85ca78b724d8f444fb0d9f6ddb33d0acc06e
SUCCESS checkout https://github.com/dreymonde/Timers.git at main
========================================
Build
========================================
Selected platform:         wasm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/dreymonde/Timers.git
https://github.com/dreymonde/Timers.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Timers",
  "name" : "Timers",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "Timers",
      "targets" : [
        "Timers"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "TimersTests",
      "module_type" : "SwiftTarget",
      "name" : "TimersTests",
      "path" : "Tests/TimersTests",
      "sources" : [
        "TimersTests.swift"
      ],
      "target_dependencies" : [
        "Timers"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Timers",
      "module_type" : "SwiftTarget",
      "name" : "Timers",
      "path" : "Sources/Timers",
      "product_memberships" : [
        "Timers"
      ],
      "sources" : [
        "Timers.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/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 Timers
/host/spi-builder-workspace/Sources/Timers/Timers.swift:25:29: error: 'main' is unavailable: RunLoop is not available on WASI
 23 | extension Timers {
 24 |     public func manuallyAddTimer(
 25 |         runLoop: RunLoop = .main,
    |                             `- error: 'main' is unavailable: RunLoop is not available on WASI
 26 |         runLoopMode: RunLoop.Mode = .common,
 27 |         timer: Timer
Foundation.RunLoop.main:3:18: note: 'main' has been explicitly marked unavailable here
1 | class RunLoop {
2 | @available(*, unavailable, message: "RunLoop is not available on WASI")
3 |   open class var main: RunLoop { get }}
  |                  `- note: 'main' has been explicitly marked unavailable here
4 |
/host/spi-builder-workspace/Sources/Timers/Timers.swift:38:29: error: 'main' is unavailable: RunLoop is not available on WASI
 36 |         withTarget target: TargetType,
 37 |         handler: @escaping (TargetType, Timer) -> Void,
 38 |         runLoop: RunLoop = .main,
    |                             `- error: 'main' is unavailable: RunLoop is not available on WASI
 39 |         runLoopMode: RunLoop.Mode = .common,
 40 |         makeTimer: @escaping (_ timerBlock: @escaping TimerBlock) -> Timer
Foundation.RunLoop.main:3:18: note: 'main' has been explicitly marked unavailable here
1 | class RunLoop {
2 | @available(*, unavailable, message: "RunLoop is not available on WASI")
3 |   open class var main: RunLoop { get }}
  |                  `- note: 'main' has been explicitly marked unavailable here
4 |
[4/4] Compiling Timers Timers.swift
/host/spi-builder-workspace/Sources/Timers/Timers.swift:25:29: error: 'main' is unavailable: RunLoop is not available on WASI
 23 | extension Timers {
 24 |     public func manuallyAddTimer(
 25 |         runLoop: RunLoop = .main,
    |                             `- error: 'main' is unavailable: RunLoop is not available on WASI
 26 |         runLoopMode: RunLoop.Mode = .common,
 27 |         timer: Timer
Foundation.RunLoop.main:3:18: note: 'main' has been explicitly marked unavailable here
1 | class RunLoop {
2 | @available(*, unavailable, message: "RunLoop is not available on WASI")
3 |   open class var main: RunLoop { get }}
  |                  `- note: 'main' has been explicitly marked unavailable here
4 |
/host/spi-builder-workspace/Sources/Timers/Timers.swift:38:29: error: 'main' is unavailable: RunLoop is not available on WASI
 36 |         withTarget target: TargetType,
 37 |         handler: @escaping (TargetType, Timer) -> Void,
 38 |         runLoop: RunLoop = .main,
    |                             `- error: 'main' is unavailable: RunLoop is not available on WASI
 39 |         runLoopMode: RunLoop.Mode = .common,
 40 |         makeTimer: @escaping (_ timerBlock: @escaping TimerBlock) -> Timer
Foundation.RunLoop.main:3:18: note: 'main' has been explicitly marked unavailable here
1 | class RunLoop {
2 | @available(*, unavailable, message: "RunLoop is not available on WASI")
3 |   open class var main: RunLoop { get }}
  |                  `- note: 'main' has been explicitly marked unavailable here
4 |
/host/spi-builder-workspace/Sources/Timers/Timers.swift:29:17: error: value of type 'RunLoop' has no member 'add'
 27 |         timer: Timer
 28 |     ) {
 29 |         runLoop.add(timer, forMode: runLoopMode)
    |                 `- error: value of type 'RunLoop' has no member 'add'
 30 |         timers.append(timer)
 31 |     }
/host/spi-builder-workspace/Sources/Timers/Timers.swift:65:81: warning: passing non-sendable parameter 'timerBlock' to function expecting a @Sendable closure
 62 |         handler: @escaping (TargetType, Timer) -> Void
 63 |     ) {
 64 |         addCustomTimer(withTarget: target, handler: handler) { timerBlock in
    |                                                                `- note: parameter 'timerBlock' is implicitly non-sendable
 65 |             let timer = Timer(timeInterval: timeInterval, repeats: true, block: timerBlock)
    |                                                                                 `- warning: passing non-sendable parameter 'timerBlock' to function expecting a @Sendable closure
 66 |             timer.tolerance = tolerance
 67 |             return timer
/host/spi-builder-workspace/Sources/Timers/Timers.swift:102:28: warning: passing non-sendable parameter 'timerBlock' to function expecting a @Sendable closure
 95 |             withTarget: target,
 96 |             handler: handler,
 97 |             makeTimer: { timerBlock in
    |                          `- note: parameter 'timerBlock' is implicitly non-sendable
 98 |                 let timer = Timer(
 99 |                     fire: fireAt,
100 |                     interval: timeInterval,
101 |                     repeats: true,
102 |                     block: timerBlock
    |                            `- warning: passing non-sendable parameter 'timerBlock' to function expecting a @Sendable closure
103 |                 )
104 |                 timer.tolerance = tolerance
/host/spi-builder-workspace/Sources/Timers/Timers.swift:138:73: warning: passing non-sendable parameter 'timerBlock' to function expecting a @Sendable closure
135 |             withTarget: target,
136 |             handler: { target, _ in handler(target) },
137 |             makeTimer: { timerBlock in
    |                          `- note: parameter 'timerBlock' is implicitly non-sendable
138 |                 Timer(fire: fireAt, interval: 0, repeats: false, block: timerBlock)
    |                                                                         `- warning: passing non-sendable parameter 'timerBlock' to function expecting a @Sendable closure
139 |             }
140 |         )
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/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 Timers
/host/spi-builder-workspace/Sources/Timers/Timers.swift:25:29: error: 'main' is unavailable: RunLoop is not available on WASI
 23 | extension Timers {
 24 |     public func manuallyAddTimer(
 25 |         runLoop: RunLoop = .main,
    |                             `- error: 'main' is unavailable: RunLoop is not available on WASI
 26 |         runLoopMode: RunLoop.Mode = .common,
 27 |         timer: Timer
Foundation.RunLoop.main:3:18: note: 'main' has been explicitly marked unavailable here
1 | class RunLoop {
2 | @available(*, unavailable, message: "RunLoop is not available on WASI")
3 |   open class var main: RunLoop { get }}
  |                  `- note: 'main' has been explicitly marked unavailable here
4 |
/host/spi-builder-workspace/Sources/Timers/Timers.swift:38:29: error: 'main' is unavailable: RunLoop is not available on WASI
 36 |         withTarget target: TargetType,
 37 |         handler: @escaping (TargetType, Timer) -> Void,
 38 |         runLoop: RunLoop = .main,
    |                             `- error: 'main' is unavailable: RunLoop is not available on WASI
 39 |         runLoopMode: RunLoop.Mode = .common,
 40 |         makeTimer: @escaping (_ timerBlock: @escaping TimerBlock) -> Timer
Foundation.RunLoop.main:3:18: note: 'main' has been explicitly marked unavailable here
1 | class RunLoop {
2 | @available(*, unavailable, message: "RunLoop is not available on WASI")
3 |   open class var main: RunLoop { get }}
  |                  `- note: 'main' has been explicitly marked unavailable here
4 |
[3/3] Compiling Timers Timers.swift
/host/spi-builder-workspace/Sources/Timers/Timers.swift:25:29: error: 'main' is unavailable: RunLoop is not available on WASI
 23 | extension Timers {
 24 |     public func manuallyAddTimer(
 25 |         runLoop: RunLoop = .main,
    |                             `- error: 'main' is unavailable: RunLoop is not available on WASI
 26 |         runLoopMode: RunLoop.Mode = .common,
 27 |         timer: Timer
Foundation.RunLoop.main:3:18: note: 'main' has been explicitly marked unavailable here
1 | class RunLoop {
2 | @available(*, unavailable, message: "RunLoop is not available on WASI")
3 |   open class var main: RunLoop { get }}
  |                  `- note: 'main' has been explicitly marked unavailable here
4 |
/host/spi-builder-workspace/Sources/Timers/Timers.swift:38:29: error: 'main' is unavailable: RunLoop is not available on WASI
 36 |         withTarget target: TargetType,
 37 |         handler: @escaping (TargetType, Timer) -> Void,
 38 |         runLoop: RunLoop = .main,
    |                             `- error: 'main' is unavailable: RunLoop is not available on WASI
 39 |         runLoopMode: RunLoop.Mode = .common,
 40 |         makeTimer: @escaping (_ timerBlock: @escaping TimerBlock) -> Timer
Foundation.RunLoop.main:3:18: note: 'main' has been explicitly marked unavailable here
1 | class RunLoop {
2 | @available(*, unavailable, message: "RunLoop is not available on WASI")
3 |   open class var main: RunLoop { get }}
  |                  `- note: 'main' has been explicitly marked unavailable here
4 |
/host/spi-builder-workspace/Sources/Timers/Timers.swift:29:17: error: value of type 'RunLoop' has no member 'add'
 27 |         timer: Timer
 28 |     ) {
 29 |         runLoop.add(timer, forMode: runLoopMode)
    |                 `- error: value of type 'RunLoop' has no member 'add'
 30 |         timers.append(timer)
 31 |     }
/host/spi-builder-workspace/Sources/Timers/Timers.swift:65:81: warning: passing non-sendable parameter 'timerBlock' to function expecting a @Sendable closure
 62 |         handler: @escaping (TargetType, Timer) -> Void
 63 |     ) {
 64 |         addCustomTimer(withTarget: target, handler: handler) { timerBlock in
    |                                                                `- note: parameter 'timerBlock' is implicitly non-sendable
 65 |             let timer = Timer(timeInterval: timeInterval, repeats: true, block: timerBlock)
    |                                                                                 `- warning: passing non-sendable parameter 'timerBlock' to function expecting a @Sendable closure
 66 |             timer.tolerance = tolerance
 67 |             return timer
/host/spi-builder-workspace/Sources/Timers/Timers.swift:102:28: warning: passing non-sendable parameter 'timerBlock' to function expecting a @Sendable closure
 95 |             withTarget: target,
 96 |             handler: handler,
 97 |             makeTimer: { timerBlock in
    |                          `- note: parameter 'timerBlock' is implicitly non-sendable
 98 |                 let timer = Timer(
 99 |                     fire: fireAt,
100 |                     interval: timeInterval,
101 |                     repeats: true,
102 |                     block: timerBlock
    |                            `- warning: passing non-sendable parameter 'timerBlock' to function expecting a @Sendable closure
103 |                 )
104 |                 timer.tolerance = tolerance
/host/spi-builder-workspace/Sources/Timers/Timers.swift:138:73: warning: passing non-sendable parameter 'timerBlock' to function expecting a @Sendable closure
135 |             withTarget: target,
136 |             handler: { target, _ in handler(target) },
137 |             makeTimer: { timerBlock in
    |                          `- note: parameter 'timerBlock' is implicitly non-sendable
138 |                 Timer(fire: fireAt, interval: 0, repeats: false, block: timerBlock)
    |                                                                         `- warning: passing non-sendable parameter 'timerBlock' to function expecting a @Sendable closure
139 |             }
140 |         )
BUILD FAILURE 6.1 wasm