Build Information
Failed to build PerfectLogger, reference 4.0.0 (733b69), with Swift 6.3 for Wasm on 17 Oct 2026 18:08:58 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344843-0":/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.3-latest swift build --swift-sdk swift-6.3.2-RELEASE_wasm 2>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.3
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/perfectlysoft/perfect-logger.git
Reference: 4.0.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/perfectlysoft/perfect-logger
* tag 4.0.0 -> FETCH_HEAD
HEAD is now at 733b69f Merge pull request #10 from PerfectlySoft/release-4.0.0
Cloned https://github.com/perfectlysoft/perfect-logger.git
Revision (git rev-parse @):
733b69f55fb8e30256ff85f2ffd39af60a41e141
SUCCESS checkout https://github.com/perfectlysoft/perfect-logger.git at 4.0.0
========================================
Build
========================================
Selected platform: wasm
Swift version: 6.3
Building package at path: $PWD
https://github.com/perfectlysoft/perfect-logger.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344843-0":/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.3-latest swift build --swift-sdk swift-6.3.2-RELEASE_wasm 2>&1
wasm-6.3-latest: Pulling from saguaro1/spi-images
Digest: sha256:11aa8e4a9dbcd813ae44128d01e945c51d260b4dfda77b6bb7d997d0cc236164
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:wasm-6.3-latest
Fetching https://github.com/apple/swift-log.git
[1/8305] Fetching swift-log
Fetched https://github.com/apple/swift-log.git from cache (0.47s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.16.1 (0.64s)
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.16.1
Building for debugging...
[0/3] Write sources
[2/3] Write swift-version-24593BA9C3E375BF.txt
[4/14] Compiling Logging LoggingSystem.swift
[5/15] Compiling Logging Logger+With.swift
[6/15] Compiling Logging Logger.swift
[7/15] Compiling Logging MetadataProvider.swift
[8/15] Compiling Logging LogEvent.swift
[9/15] Compiling Logging LogHandler.swift
[10/15] Compiling Logging Logger+Attributes.swift
[11/15] Compiling Logging MultiplexLogHandler.swift
[12/15] Compiling Logging StreamLogHandler.swift
[13/15] Emitting module Logging
[14/15] Compiling Logging SwiftLogNoOpLogHandler.swift
[15/15] Compiling Logging Locks.swift
[17/23] Compiling PerfectLogger LogOptions.swift
[18/23] Compiling PerfectLogger LogPriority.swift
[19/23] Compiling PerfectLogger RemoteLogHandler.swift
/host/spi-builder-workspace/Sources/PerfectLogger/RemoteLogHandler.swift:88:38: error: cannot find type 'URLRequest' in scope
86 | /// one task at a time.
87 | final class RemoteSink: @unchecked Sendable {
88 | typealias Transport = @Sendable (URLRequest) async -> Void
| `- error: cannot find type 'URLRequest' in scope
89 |
90 | static let defaultCapacity = 1_000
/host/spi-builder-workspace/Sources/PerfectLogger/RemoteLogHandler.swift:111:20: error: '@escaping' only applies to function types
109 | capacity: Int = RemoteSink.defaultCapacity,
110 | timeout: TimeInterval = RemoteSink.defaultTimeout,
111 | transport: @escaping Transport = RemoteSink.urlSession
| `- error: '@escaping' only applies to function types
112 | ) {
113 | self.url = url
/host/spi-builder-workspace/Sources/PerfectLogger/RemoteLogHandler.swift:176:26: error: cannot find type 'URLRequest' in scope
174 | /// trickles its response, which `URLRequest.timeoutInterval` (an idle
175 | /// timeout, and ignored by Linux's `URLSession.shared`) does not.
176 | func send(_ request: URLRequest) async {
| `- error: cannot find type 'URLRequest' in scope
177 | let transport = self.transport
178 | let timeout = self.timeout
/host/spi-builder-workspace/Sources/PerfectLogger/RemoteLogHandler.swift:231:16: error: static property 'session' is not concurrency-safe because non-'Sendable' type 'URLSession' (aka 'AnyObject') may have shared mutable state [#MutableGlobalVariable]
229 | /// An ephemeral session whose request and resource timeouts match
230 | /// ``defaultTimeout``, so the URL loading system gives up too.
231 | static let session: URLSession = {
| |- error: static property 'session' is not concurrency-safe because non-'Sendable' type 'URLSession' (aka 'AnyObject') may have shared mutable state [#MutableGlobalVariable]
| |- note: add '@MainActor' to make static property 'session' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
232 | let configuration = URLSessionConfiguration.ephemeral
233 | configuration.timeoutIntervalForRequest = defaultTimeout
/host/spi-builder-workspace/Sources/PerfectLogger/RemoteLogHandler.swift:231:25: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
229 | /// An ephemeral session whose request and resource timeouts match
230 | /// ``defaultTimeout``, so the URL loading system gives up too.
231 | static let session: URLSession = {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
232 | let configuration = URLSessionConfiguration.ephemeral
233 | configuration.timeoutIntervalForRequest = defaultTimeout
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/PerfectLogger/RemoteLogHandler.swift:232:53: error: type 'URLSessionConfiguration' (aka 'AnyObject') has no member 'ephemeral'
230 | /// ``defaultTimeout``, so the URL loading system gives up too.
231 | static let session: URLSession = {
232 | let configuration = URLSessionConfiguration.ephemeral
| `- error: type 'URLSessionConfiguration' (aka 'AnyObject') has no member 'ephemeral'
233 | configuration.timeoutIntervalForRequest = defaultTimeout
234 | configuration.timeoutIntervalForResource = defaultTimeout
/host/spi-builder-workspace/Sources/PerfectLogger/RemoteLogHandler.swift:239:32: error: value of type 'URLSession' (aka 'AnyObject') has no member 'data'
237 |
238 | static let urlSession: Transport = { request in
239 | _ = try? await session.data(for: request)
| `- error: value of type 'URLSession' (aka 'AnyObject') has no member 'data'
240 | }
241 |
/host/spi-builder-workspace/Sources/PerfectLogger/RemoteLogHandler.swift:163:27: error: cannot find 'URLRequest' in scope
161 | private func drain() async {
162 | while let body = next() {
163 | var request = URLRequest(url: url, timeoutInterval: timeout)
| `- error: cannot find 'URLRequest' in scope
164 | request.httpMethod = "POST"
165 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
[#MutableGlobalVariable]: <https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable>
error: emit-module command failed with exit code 1 (use -v to see invocation)
[20/23] Emitting module PerfectLogger
/host/spi-builder-workspace/Sources/PerfectLogger/RemoteLogHandler.swift:88:38: error: cannot find type 'URLRequest' in scope
86 | /// one task at a time.
87 | final class RemoteSink: @unchecked Sendable {
88 | typealias Transport = @Sendable (URLRequest) async -> Void
| `- error: cannot find type 'URLRequest' in scope
89 |
90 | static let defaultCapacity = 1_000
/host/spi-builder-workspace/Sources/PerfectLogger/RemoteLogHandler.swift:111:20: error: '@escaping' only applies to function types
109 | capacity: Int = RemoteSink.defaultCapacity,
110 | timeout: TimeInterval = RemoteSink.defaultTimeout,
111 | transport: @escaping Transport = RemoteSink.urlSession
| `- error: '@escaping' only applies to function types
112 | ) {
113 | self.url = url
/host/spi-builder-workspace/Sources/PerfectLogger/RemoteLogHandler.swift:176:26: error: cannot find type 'URLRequest' in scope
174 | /// trickles its response, which `URLRequest.timeoutInterval` (an idle
175 | /// timeout, and ignored by Linux's `URLSession.shared`) does not.
176 | func send(_ request: URLRequest) async {
| `- error: cannot find type 'URLRequest' in scope
177 | let transport = self.transport
178 | let timeout = self.timeout
/host/spi-builder-workspace/Sources/PerfectLogger/RemoteLogHandler.swift:231:16: error: static property 'session' is not concurrency-safe because non-'Sendable' type 'URLSession' (aka 'AnyObject') may have shared mutable state [#MutableGlobalVariable]
229 | /// An ephemeral session whose request and resource timeouts match
230 | /// ``defaultTimeout``, so the URL loading system gives up too.
231 | static let session: URLSession = {
| |- error: static property 'session' is not concurrency-safe because non-'Sendable' type 'URLSession' (aka 'AnyObject') may have shared mutable state [#MutableGlobalVariable]
| |- note: add '@MainActor' to make static property 'session' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
232 | let configuration = URLSessionConfiguration.ephemeral
233 | configuration.timeoutIntervalForRequest = defaultTimeout
/host/spi-builder-workspace/Sources/PerfectLogger/RemoteLogHandler.swift:231:25: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
229 | /// An ephemeral session whose request and resource timeouts match
230 | /// ``defaultTimeout``, so the URL loading system gives up too.
231 | static let session: URLSession = {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
232 | let configuration = URLSessionConfiguration.ephemeral
233 | configuration.timeoutIntervalForRequest = defaultTimeout
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/PerfectLogger/RemoteLogHandler.swift:232:53: error: type 'URLSessionConfiguration' (aka 'AnyObject') has no member 'ephemeral'
230 | /// ``defaultTimeout``, so the URL loading system gives up too.
231 | static let session: URLSession = {
232 | let configuration = URLSessionConfiguration.ephemeral
| `- error: type 'URLSessionConfiguration' (aka 'AnyObject') has no member 'ephemeral'
233 | configuration.timeoutIntervalForRequest = defaultTimeout
234 | configuration.timeoutIntervalForResource = defaultTimeout
/host/spi-builder-workspace/Sources/PerfectLogger/RemoteLogHandler.swift:239:32: error: value of type 'URLSession' (aka 'AnyObject') has no member 'data'
237 |
238 | static let urlSession: Transport = { request in
239 | _ = try? await session.data(for: request)
| `- error: value of type 'URLSession' (aka 'AnyObject') has no member 'data'
240 | }
241 |
[#MutableGlobalVariable]: <https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable>
[21/23] Compiling PerfectLogger Bootstrap.swift
/host/spi-builder-workspace/Sources/PerfectLogger/RemoteLogHandler.swift:88:38: error: cannot find type 'URLRequest' in scope
86 | /// one task at a time.
87 | final class RemoteSink: @unchecked Sendable {
88 | typealias Transport = @Sendable (URLRequest) async -> Void
| `- error: cannot find type 'URLRequest' in scope
89 |
90 | static let defaultCapacity = 1_000
[22/23] Compiling PerfectLogger LogFile.swift
[23/23] Compiling PerfectLogger FileLogHandler.swift
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:104:40: error: cannot find 'O_APPEND' in scope
102 | }
103 |
104 | let fd = open(path, O_WRONLY | O_APPEND | O_CREAT | O_CLOEXEC | O_NONBLOCK, 0o644)
| `- error: cannot find 'O_APPEND' in scope
105 | guard fd >= 0 else { return refuse(String(cString: strerror(errno))) }
106 |
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:104:51: error: cannot find 'O_CREAT' in scope
102 | }
103 |
104 | let fd = open(path, O_WRONLY | O_APPEND | O_CREAT | O_CLOEXEC | O_NONBLOCK, 0o644)
| `- error: cannot find 'O_CREAT' in scope
105 | guard fd >= 0 else { return refuse(String(cString: strerror(errno))) }
106 |
/root/.swiftpm/swift-sdks/swift-6.3.2-RELEASE_wasm.artifactbundle/swift-6.3.2-RELEASE_wasm/wasm32-unknown-wasip1/WASI.sdk/include/wasm32-wasip1/__header_fcntl.h:13:9: note: macro 'O_CREAT' unavailable: structure not supported
11 | #define O_RSYNC __WASI_FDFLAGS_RSYNC
12 | #define O_SYNC __WASI_FDFLAGS_SYNC
13 | #define O_CREAT (__WASI_OFLAGS_CREAT << 12)
| `- note: macro 'O_CREAT' unavailable: structure not supported
14 | #define O_DIRECTORY (__WASI_OFLAGS_DIRECTORY << 12)
15 | #define O_EXCL (__WASI_OFLAGS_EXCL << 12)
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:104:73: error: cannot find 'O_NONBLOCK' in scope
102 | }
103 |
104 | let fd = open(path, O_WRONLY | O_APPEND | O_CREAT | O_CLOEXEC | O_NONBLOCK, 0o644)
| `- error: cannot find 'O_NONBLOCK' in scope
105 | guard fd >= 0 else { return refuse(String(cString: strerror(errno))) }
106 |
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:109:57: error: cannot find 'O_NONBLOCK' in scope
107 | // Blocking writes from here on; O_NONBLOCK was only for the open.
108 | let flags = fcntl(fd, F_GETFL)
109 | if flags >= 0 { _ = fcntl(fd, F_SETFL, flags & ~O_NONBLOCK) }
| `- error: cannot find 'O_NONBLOCK' in scope
110 | #if canImport(Darwin)
111 | _ = fcntl(fd, F_SETNOSIGPIPE, 1)
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:159:12: error: cannot find 'Musl' in scope
157 | return Glibc.write(fd, buf, count)
158 | #else
159 | return Musl.write(fd, buf, count)
| `- error: cannot find 'Musl' in scope
160 | #endif
161 | }
BUILD FAILURE 6.3 wasm