Build Information
Failed to build Cachyr, reference 1.3.1 (97aa6e), with Swift 6.1 for Wasm on 27 May 2025 17:04:51 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>&1Build Log
========================================
RunAll
========================================
Builder version: 4.63.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/nrkno/yr-cachyr.git
Reference: 1.3.1
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/nrkno/yr-cachyr
* tag 1.3.1 -> FETCH_HEAD
HEAD is now at 97aa6e9 Added SPM support (#7)
Cloned https://github.com/nrkno/yr-cachyr.git
Revision (git rev-parse @):
97aa6e9b6154656190e0949bcc45f44fb65aec88
SUCCESS checkout https://github.com/nrkno/yr-cachyr.git at 1.3.1
========================================
Build
========================================
Selected platform: wasm
Swift version: 6.1
Building package at path: $PWD
https://github.com/nrkno/yr-cachyr.git
https://github.com/nrkno/yr-cachyr.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
"dependencies" : [
],
"manifest_display_name" : "Cachyr",
"name" : "Cachyr",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.12"
},
{
"name" : "ios",
"version" : "10.0"
},
{
"name" : "tvos",
"version" : "10.0"
},
{
"name" : "watchos",
"version" : "3.0"
}
],
"products" : [
{
"name" : "Cachyr",
"targets" : [
"Cachyr"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "CachyrTests",
"module_type" : "SwiftTarget",
"name" : "CachyrTests",
"path" : "Tests/CachyrTests",
"sources" : [
"DataCacheAccessTests.swift",
"DataCacheTests.swift",
"DiskCacheTests.swift",
"MemoryCacheTests.swift"
],
"target_dependencies" : [
"Cachyr"
],
"type" : "test"
},
{
"c99name" : "Cachyr",
"module_type" : "SwiftTarget",
"name" : "Cachyr",
"path" : "Sources",
"product_memberships" : [
"Cachyr"
],
"sources" : [
"CacheLog.swift",
"DataCache.swift",
"DataConvertable.swift",
"DiskCache.swift",
"FileManager+xattr.swift",
"MemoryCache.swift"
],
"type" : "library"
}
],
"tools_version" : "5.0"
}
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
[3/9] Compiling Cachyr MemoryCache.swift
/host/spi-builder-workspace/Sources/MemoryCache.swift:46:31: error: cannot find 'DispatchQueue' in scope
44 | is used to synchronize access to a set with keys.
45 | */
46 | private let accessQueue = DispatchQueue(label: "no.nrk.yr.cache.memory")
| `- error: cannot find 'DispatchQueue' in scope
47 |
48 | private let cache = NSCache<NSString, ValueWrapper<ValueType>>()
/host/spi-builder-workspace/Sources/MemoryCache.swift:75:24: error: 'nil' requires a contextual type
73 |
74 | guard let wrapper = wrapper(for: key) else {
75 | return nil
| `- error: 'nil' requires a contextual type
76 | }
77 |
[4/9] Compiling Cachyr FileManager+xattr.swift
/host/spi-builder-workspace/Sources/FileManager+xattr.swift:38:14: error: cannot find 'ENOATTR' in scope
36 | name = "EEXIST"
37 | description = "Options contains XATTR_CREATE and the named attribute already exists."
38 | case ENOATTR:
| `- error: cannot find 'ENOATTR' in scope
39 | name = "ENOATTR"
40 | description = "GET: The extended attribute does not exist. SET: Options is set to XATTR_REPLACE and the named attribute does not exist."
/host/spi-builder-workspace/Sources/FileManager+xattr.swift:93:20: error: cannot find 'getxattr' in scope
91 | func extendedAttribute(_ name: String, on url: URL) throws -> Data {
92 | // Get size of attribute data
93 | var size = getxattr(url.path, name, nil, 0, 0, 0)
| `- error: cannot find 'getxattr' in scope
94 | if size == -1 {
95 | throw ExtendedAttributeError(errno: errno)
/host/spi-builder-workspace/Sources/FileManager+xattr.swift:93:45: error: 'nil' requires a contextual type
91 | func extendedAttribute(_ name: String, on url: URL) throws -> Data {
92 | // Get size of attribute data
93 | var size = getxattr(url.path, name, nil, 0, 0, 0)
| `- error: 'nil' requires a contextual type
94 | if size == -1 {
95 | throw ExtendedAttributeError(errno: errno)
/host/spi-builder-workspace/Sources/FileManager+xattr.swift:104:16: error: cannot find 'getxattr' in scope
102 | ptr.deallocate()
103 | }
104 | size = getxattr(url.path, name, ptr, size, 0, 0)
| `- error: cannot find 'getxattr' in scope
105 |
106 | return Data(bytes: ptr, count: size)
/host/spi-builder-workspace/Sources/FileManager+xattr.swift:114:26: error: cannot find 'setxattr' in scope
112 | return
113 | }
114 | let result = setxattr(url.path, name, ptr, data.count, 0, 0)
| `- error: cannot find 'setxattr' in scope
115 | if result == -1 {
116 | throw ExtendedAttributeError(errno: errno)
/host/spi-builder-workspace/Sources/FileManager+xattr.swift:122:22: error: cannot find 'removexattr' in scope
120 |
121 | func removeExtendedAttribute(_ name: String, from url: URL) throws {
122 | let result = removexattr(url.path, name, 0)
| `- error: cannot find 'removexattr' in scope
123 | if result == -1 {
124 | // If the attribute was already gone, do nothing
/host/spi-builder-workspace/Sources/FileManager+xattr.swift:125:25: error: cannot find 'ENOATTR' in scope
123 | if result == -1 {
124 | // If the attribute was already gone, do nothing
125 | if errno != ENOATTR {
| `- error: cannot find 'ENOATTR' in scope
126 | throw ExtendedAttributeError(errno: errno)
127 | }
error: emit-module command failed with exit code 1 (use -v to see invocation)
[5/9] Compiling Cachyr CacheLog.swift
/host/spi-builder-workspace/Sources/CacheLog.swift:43:17: warning: let 'logLevelPrefix' is not concurrency-safe because non-'Sendable' type '[CacheLogLevel : String]' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public enum CacheLogLevel: Int {
| `- note: consider making enum 'CacheLogLevel' conform to the 'Sendable' protocol
28 | case verbose
29 | case debug
:
41 | }
42 |
43 | fileprivate let logLevelPrefix: [CacheLogLevel: String] = [
| |- warning: let 'logLevelPrefix' is not concurrency-safe because non-'Sendable' type '[CacheLogLevel : String]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'logLevelPrefix' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
44 | .verbose: "VERBOSE",
45 | .debug : "DEBUG",
/host/spi-builder-workspace/Sources/CacheLog.swift:58:23: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
56 |
57 | public struct CacheLog {
58 | public static var logger: CacheLogger.Type? = nil
| |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
59 |
60 | public static var level: CacheLogLevel = .info
/host/spi-builder-workspace/Sources/CacheLog.swift:60:23: warning: static property 'level' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
58 | public static var logger: CacheLogger.Type? = nil
59 |
60 | public static var level: CacheLogLevel = .info
| |- warning: static property 'level' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'level' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'level' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 |
62 | public static func verbose(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, line: Int = #line) {
[6/9] Emitting module Cachyr
/host/spi-builder-workspace/Sources/CacheLog.swift:43:17: warning: let 'logLevelPrefix' is not concurrency-safe because non-'Sendable' type '[CacheLogLevel : String]' may have shared mutable state; this is an error in the Swift 6 language mode
25 | import Foundation
26 |
27 | public enum CacheLogLevel: Int {
| `- note: consider making enum 'CacheLogLevel' conform to the 'Sendable' protocol
28 | case verbose
29 | case debug
:
41 | }
42 |
43 | fileprivate let logLevelPrefix: [CacheLogLevel: String] = [
| |- warning: let 'logLevelPrefix' is not concurrency-safe because non-'Sendable' type '[CacheLogLevel : String]' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'logLevelPrefix' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
44 | .verbose: "VERBOSE",
45 | .debug : "DEBUG",
/host/spi-builder-workspace/Sources/CacheLog.swift:58:23: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
56 |
57 | public struct CacheLog {
58 | public static var logger: CacheLogger.Type? = nil
| |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
59 |
60 | public static var level: CacheLogLevel = .info
/host/spi-builder-workspace/Sources/CacheLog.swift:60:23: warning: static property 'level' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
58 | public static var logger: CacheLogger.Type? = nil
59 |
60 | public static var level: CacheLogLevel = .info
| |- warning: static property 'level' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'level' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'level' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
61 |
62 | public static func verbose(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, line: Int = #line) {
/host/spi-builder-workspace/Sources/DataCache.swift:37:23: warning: static property 'disk' is not concurrency-safe because non-'Sendable' type 'DataCacheAccessOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 | Options indicating which data layers to access when getting/setting a value.
29 | */
30 | public struct DataCacheAccessOptions: OptionSet {
| `- note: consider making struct 'DataCacheAccessOptions' conform to the 'Sendable' protocol
31 | public let rawValue: Int
32 |
:
35 | }
36 |
37 | public static let disk = DataCacheAccessOptions(rawValue: 1 << 0)
| |- warning: static property 'disk' is not concurrency-safe because non-'Sendable' type 'DataCacheAccessOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'disk' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 | public static let memory = DataCacheAccessOptions(rawValue: 1 << 1)
39 |
/host/spi-builder-workspace/Sources/DataCache.swift:38:23: warning: static property 'memory' is not concurrency-safe because non-'Sendable' type 'DataCacheAccessOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 | Options indicating which data layers to access when getting/setting a value.
29 | */
30 | public struct DataCacheAccessOptions: OptionSet {
| `- note: consider making struct 'DataCacheAccessOptions' conform to the 'Sendable' protocol
31 | public let rawValue: Int
32 |
:
36 |
37 | public static let disk = DataCacheAccessOptions(rawValue: 1 << 0)
38 | public static let memory = DataCacheAccessOptions(rawValue: 1 << 1)
| |- warning: static property 'memory' is not concurrency-safe because non-'Sendable' type 'DataCacheAccessOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'memory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 |
40 | public static let `default`: DataCacheAccessOptions = [.disk, .memory]
/host/spi-builder-workspace/Sources/DataCache.swift:40:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'DataCacheAccessOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 | Options indicating which data layers to access when getting/setting a value.
29 | */
30 | public struct DataCacheAccessOptions: OptionSet {
| `- note: consider making struct 'DataCacheAccessOptions' conform to the 'Sendable' protocol
31 | public let rawValue: Int
32 |
:
38 | public static let memory = DataCacheAccessOptions(rawValue: 1 << 1)
39 |
40 | public static let `default`: DataCacheAccessOptions = [.disk, .memory]
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'DataCacheAccessOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
41 | }
42 |
/host/spi-builder-workspace/Sources/DataCache.swift:78:31: error: cannot find 'DispatchQueue' in scope
76 | Serial queue used to synchronize access to the cache.
77 | */
78 | private let accessQueue = DispatchQueue(label: "no.nrk.yr.cache.queue")
| `- error: cannot find 'DispatchQueue' in scope
79 |
80 | /**
/host/spi-builder-workspace/Sources/DataCache.swift:83:34: error: cannot find type 'DispatchQueue' in scope
81 | All completion closures are dispatched on this queue.
82 | */
83 | private let completionQueue: DispatchQueue
| `- error: cannot find type 'DispatchQueue' in scope
84 |
85 | public init(name: String = "no.nrk.yr.cache", completionQueue: DispatchQueue? = nil, diskBaseURL: URL? = nil) {
/host/spi-builder-workspace/Sources/DataCache.swift:85:68: error: cannot find type 'DispatchQueue' in scope
83 | private let completionQueue: DispatchQueue
84 |
85 | public init(name: String = "no.nrk.yr.cache", completionQueue: DispatchQueue? = nil, diskBaseURL: URL? = nil) {
| `- error: cannot find type 'DispatchQueue' in scope
86 | self.name = name
87 | self.completionQueue = completionQueue ?? DispatchQueue(label: "no.nrk.yr.cache.completion")
/host/spi-builder-workspace/Sources/DiskCache.swift:39:31: error: cannot find 'DispatchQueue' in scope
37 | but only serial writes using barriers.
38 | */
39 | private let accessQueue = DispatchQueue(label: "no.nrk.yr.cache.disk.queue")
| `- error: cannot find 'DispatchQueue' in scope
40 |
41 | /**
/host/spi-builder-workspace/Sources/MemoryCache.swift:46:31: error: cannot find 'DispatchQueue' in scope
44 | is used to synchronize access to a set with keys.
45 | */
46 | private let accessQueue = DispatchQueue(label: "no.nrk.yr.cache.memory")
| `- error: cannot find 'DispatchQueue' in scope
47 |
48 | private let cache = NSCache<NSString, ValueWrapper<ValueType>>()
[7/9] Compiling Cachyr DataConvertable.swift
/host/spi-builder-workspace/Sources/DataConvertable.swift:55:29: warning: initialization of 'UnsafeBufferPointer<Self>' results in a dangling buffer pointer
53 | public static func data(from value: Self) -> Data? {
54 | var theValue = value
55 | return Data(buffer: UnsafeBufferPointer(start: &theValue, count: 1))
| | |- note: implicit argument conversion from 'Self' to 'UnsafePointer<Self>?' produces a pointer valid only for the duration of the call to 'init(start:count:)'
| | `- note: use 'withUnsafePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'UnsafeBufferPointer<Self>' results in a dangling buffer pointer
56 | }
57 |
[8/9] Compiling Cachyr DiskCache.swift
/host/spi-builder-workspace/Sources/DiskCache.swift:39:31: error: cannot find 'DispatchQueue' in scope
37 | but only serial writes using barriers.
38 | */
39 | private let accessQueue = DispatchQueue(label: "no.nrk.yr.cache.disk.queue")
| `- error: cannot find 'DispatchQueue' in scope
40 |
41 | /**
/host/spi-builder-workspace/Sources/DiskCache.swift:178:24: error: 'nil' requires a contextual type
176 |
177 | guard let data = fileFor(key: key) else {
178 | return nil
| `- error: 'nil' requires a contextual type
179 | }
180 |
/host/spi-builder-workspace/Sources/DiskCache.swift:406:30: error: cannot find 'ENOATTR' in scope
404 | } catch let error as ExtendedAttributeError {
405 | // Missing expiration attribute is not an error
406 | if error.code != ENOATTR {
| `- error: cannot find 'ENOATTR' in scope
407 | CacheLog.error("\(error.name) \(error.code) \(error.description)")
408 | }
[9/9] Compiling Cachyr DataCache.swift
/host/spi-builder-workspace/Sources/DataCache.swift:37:23: warning: static property 'disk' is not concurrency-safe because non-'Sendable' type 'DataCacheAccessOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 | Options indicating which data layers to access when getting/setting a value.
29 | */
30 | public struct DataCacheAccessOptions: OptionSet {
| `- note: consider making struct 'DataCacheAccessOptions' conform to the 'Sendable' protocol
31 | public let rawValue: Int
32 |
:
35 | }
36 |
37 | public static let disk = DataCacheAccessOptions(rawValue: 1 << 0)
| |- warning: static property 'disk' is not concurrency-safe because non-'Sendable' type 'DataCacheAccessOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'disk' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 | public static let memory = DataCacheAccessOptions(rawValue: 1 << 1)
39 |
/host/spi-builder-workspace/Sources/DataCache.swift:38:23: warning: static property 'memory' is not concurrency-safe because non-'Sendable' type 'DataCacheAccessOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 | Options indicating which data layers to access when getting/setting a value.
29 | */
30 | public struct DataCacheAccessOptions: OptionSet {
| `- note: consider making struct 'DataCacheAccessOptions' conform to the 'Sendable' protocol
31 | public let rawValue: Int
32 |
:
36 |
37 | public static let disk = DataCacheAccessOptions(rawValue: 1 << 0)
38 | public static let memory = DataCacheAccessOptions(rawValue: 1 << 1)
| |- warning: static property 'memory' is not concurrency-safe because non-'Sendable' type 'DataCacheAccessOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'memory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 |
40 | public static let `default`: DataCacheAccessOptions = [.disk, .memory]
/host/spi-builder-workspace/Sources/DataCache.swift:40:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'DataCacheAccessOptions' may have shared mutable state; this is an error in the Swift 6 language mode
28 | Options indicating which data layers to access when getting/setting a value.
29 | */
30 | public struct DataCacheAccessOptions: OptionSet {
| `- note: consider making struct 'DataCacheAccessOptions' conform to the 'Sendable' protocol
31 | public let rawValue: Int
32 |
:
38 | public static let memory = DataCacheAccessOptions(rawValue: 1 << 1)
39 |
40 | public static let `default`: DataCacheAccessOptions = [.disk, .memory]
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'DataCacheAccessOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
41 | }
42 |
/host/spi-builder-workspace/Sources/DataCache.swift:78:31: error: cannot find 'DispatchQueue' in scope
76 | Serial queue used to synchronize access to the cache.
77 | */
78 | private let accessQueue = DispatchQueue(label: "no.nrk.yr.cache.queue")
| `- error: cannot find 'DispatchQueue' in scope
79 |
80 | /**
/host/spi-builder-workspace/Sources/DataCache.swift:83:34: error: cannot find type 'DispatchQueue' in scope
81 | All completion closures are dispatched on this queue.
82 | */
83 | private let completionQueue: DispatchQueue
| `- error: cannot find type 'DispatchQueue' in scope
84 |
85 | public init(name: String = "no.nrk.yr.cache", completionQueue: DispatchQueue? = nil, diskBaseURL: URL? = nil) {
/host/spi-builder-workspace/Sources/DataCache.swift:85:68: error: cannot find type 'DispatchQueue' in scope
83 | private let completionQueue: DispatchQueue
84 |
85 | public init(name: String = "no.nrk.yr.cache", completionQueue: DispatchQueue? = nil, diskBaseURL: URL? = nil) {
| `- error: cannot find type 'DispatchQueue' in scope
86 | self.name = name
87 | self.completionQueue = completionQueue ?? DispatchQueue(label: "no.nrk.yr.cache.completion")
/host/spi-builder-workspace/Sources/DataCache.swift:87:51: error: cannot find 'DispatchQueue' in scope
85 | public init(name: String = "no.nrk.yr.cache", completionQueue: DispatchQueue? = nil, diskBaseURL: URL? = nil) {
86 | self.name = name
87 | self.completionQueue = completionQueue ?? DispatchQueue(label: "no.nrk.yr.cache.completion")
| `- error: cannot find 'DispatchQueue' in scope
88 | memoryCache = MemoryCache<ValueType>(name: name)
89 | diskCache = DiskCache<ValueType>(name: name, baseURL: diskBaseURL)
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
[2/8] Compiling Cachyr FileManager+xattr.swift
/host/spi-builder-workspace/Sources/FileManager+xattr.swift:38:14: error: cannot find 'ENOATTR' in scope
36 | name = "EEXIST"
37 | description = "Options contains XATTR_CREATE and the named attribute already exists."
38 | case ENOATTR:
| `- error: cannot find 'ENOATTR' in scope
39 | name = "ENOATTR"
40 | description = "GET: The extended attribute does not exist. SET: Options is set to XATTR_REPLACE and the named attribute does not exist."
/host/spi-builder-workspace/Sources/FileManager+xattr.swift:93:20: error: cannot find 'getxattr' in scope
91 | func extendedAttribute(_ name: String, on url: URL) throws -> Data {
92 | // Get size of attribute data
93 | var size = getxattr(url.path, name, nil, 0, 0, 0)
| `- error: cannot find 'getxattr' in scope
94 | if size == -1 {
95 | throw ExtendedAttributeError(errno: errno)
/host/spi-builder-workspace/Sources/FileManager+xattr.swift:93:45: error: 'nil' requires a contextual type
91 | func extendedAttribute(_ name: String, on url: URL) throws -> Data {
92 | // Get size of attribute data
93 | var size = getxattr(url.path, name, nil, 0, 0, 0)
| `- error: 'nil' requires a contextual type
94 | if size == -1 {
95 | throw ExtendedAttributeError(errno: errno)
/host/spi-builder-workspace/Sources/FileManager+xattr.swift:104:16: error: cannot find 'getxattr' in scope
102 | ptr.deallocate()
103 | }
104 | size = getxattr(url.path, name, ptr, size, 0, 0)
| `- error: cannot find 'getxattr' in scope
105 |
106 | return Data(bytes: ptr, count: size)
/host/spi-builder-workspace/Sources/FileManager+xattr.swift:114:26: error: cannot find 'setxattr' in scope
112 | return
113 | }
114 | let result = setxattr(url.path, name, ptr, data.count, 0, 0)
| `- error: cannot find 'setxattr' in scope
115 | if result == -1 {
116 | throw ExtendedAttributeError(errno: errno)
/host/spi-builder-workspace/Sources/FileManager+xattr.swift:122:22: error: cannot find 'removexattr' in scope
120 |
121 | func removeExtendedAttribute(_ name: String, from url: URL) throws {
122 | let result = removexattr(url.path, name, 0)
| `- error: cannot find 'removexattr' in scope
123 | if result == -1 {
124 | // If the attribute was already gone, do nothing
/host/spi-builder-workspace/Sources/FileManager+xattr.swift:125:25: error: cannot find 'ENOATTR' in scope
123 | if result == -1 {
124 | // If the attribute was already gone, do nothing
125 | if errno != ENOATTR {
| `- error: cannot find 'ENOATTR' in scope
126 | throw ExtendedAttributeError(errno: errno)
127 | }
[3/8] Compiling Cachyr MemoryCache.swift
/host/spi-builder-workspace/Sources/MemoryCache.swift:46:31: error: cannot find 'DispatchQueue' in scope
44 | is used to synchronize access to a set with keys.
45 | */
46 | private let accessQueue = DispatchQueue(label: "no.nrk.yr.cache.memory")
| `- error: cannot find 'DispatchQueue' in scope
47 |
48 | private let cache = NSCache<NSString, ValueWrapper<ValueType>>()
/host/spi-builder-workspace/Sources/MemoryCache.swift:75:24: error: 'nil' requires a contextual type
73 |
74 | guard let wrapper = wrapper(for: key) else {
75 | return nil
| `- error: 'nil' requires a contextual type
76 | }
77 |
error: emit-module command failed with exit code 1 (use -v to see invocation)
[4/8] Emitting module Cachyr
/host/spi-builder-workspace/Sources/DataCache.swift:78:31: error: cannot find 'DispatchQueue' in scope
76 | Serial queue used to synchronize access to the cache.
77 | */
78 | private let accessQueue = DispatchQueue(label: "no.nrk.yr.cache.queue")
| `- error: cannot find 'DispatchQueue' in scope
79 |
80 | /**
/host/spi-builder-workspace/Sources/DataCache.swift:83:34: error: cannot find type 'DispatchQueue' in scope
81 | All completion closures are dispatched on this queue.
82 | */
83 | private let completionQueue: DispatchQueue
| `- error: cannot find type 'DispatchQueue' in scope
84 |
85 | public init(name: String = "no.nrk.yr.cache", completionQueue: DispatchQueue? = nil, diskBaseURL: URL? = nil) {
/host/spi-builder-workspace/Sources/DataCache.swift:85:68: error: cannot find type 'DispatchQueue' in scope
83 | private let completionQueue: DispatchQueue
84 |
85 | public init(name: String = "no.nrk.yr.cache", completionQueue: DispatchQueue? = nil, diskBaseURL: URL? = nil) {
| `- error: cannot find type 'DispatchQueue' in scope
86 | self.name = name
87 | self.completionQueue = completionQueue ?? DispatchQueue(label: "no.nrk.yr.cache.completion")
/host/spi-builder-workspace/Sources/DiskCache.swift:39:31: error: cannot find 'DispatchQueue' in scope
37 | but only serial writes using barriers.
38 | */
39 | private let accessQueue = DispatchQueue(label: "no.nrk.yr.cache.disk.queue")
| `- error: cannot find 'DispatchQueue' in scope
40 |
41 | /**
/host/spi-builder-workspace/Sources/MemoryCache.swift:46:31: error: cannot find 'DispatchQueue' in scope
44 | is used to synchronize access to a set with keys.
45 | */
46 | private let accessQueue = DispatchQueue(label: "no.nrk.yr.cache.memory")
| `- error: cannot find 'DispatchQueue' in scope
47 |
48 | private let cache = NSCache<NSString, ValueWrapper<ValueType>>()
[5/8] Compiling Cachyr DataConvertable.swift
/host/spi-builder-workspace/Sources/DataConvertable.swift:55:29: warning: initialization of 'UnsafeBufferPointer<Self>' results in a dangling buffer pointer
53 | public static func data(from value: Self) -> Data? {
54 | var theValue = value
55 | return Data(buffer: UnsafeBufferPointer(start: &theValue, count: 1))
| | |- note: implicit argument conversion from 'Self' to 'UnsafePointer<Self>?' produces a pointer valid only for the duration of the call to 'init(start:count:)'
| | `- note: use 'withUnsafePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'UnsafeBufferPointer<Self>' results in a dangling buffer pointer
56 | }
57 |
[6/8] Compiling Cachyr CacheLog.swift
[7/8] Compiling Cachyr DataCache.swift
/host/spi-builder-workspace/Sources/DataCache.swift:78:31: error: cannot find 'DispatchQueue' in scope
76 | Serial queue used to synchronize access to the cache.
77 | */
78 | private let accessQueue = DispatchQueue(label: "no.nrk.yr.cache.queue")
| `- error: cannot find 'DispatchQueue' in scope
79 |
80 | /**
/host/spi-builder-workspace/Sources/DataCache.swift:83:34: error: cannot find type 'DispatchQueue' in scope
81 | All completion closures are dispatched on this queue.
82 | */
83 | private let completionQueue: DispatchQueue
| `- error: cannot find type 'DispatchQueue' in scope
84 |
85 | public init(name: String = "no.nrk.yr.cache", completionQueue: DispatchQueue? = nil, diskBaseURL: URL? = nil) {
/host/spi-builder-workspace/Sources/DataCache.swift:85:68: error: cannot find type 'DispatchQueue' in scope
83 | private let completionQueue: DispatchQueue
84 |
85 | public init(name: String = "no.nrk.yr.cache", completionQueue: DispatchQueue? = nil, diskBaseURL: URL? = nil) {
| `- error: cannot find type 'DispatchQueue' in scope
86 | self.name = name
87 | self.completionQueue = completionQueue ?? DispatchQueue(label: "no.nrk.yr.cache.completion")
/host/spi-builder-workspace/Sources/DataCache.swift:87:51: error: cannot find 'DispatchQueue' in scope
85 | public init(name: String = "no.nrk.yr.cache", completionQueue: DispatchQueue? = nil, diskBaseURL: URL? = nil) {
86 | self.name = name
87 | self.completionQueue = completionQueue ?? DispatchQueue(label: "no.nrk.yr.cache.completion")
| `- error: cannot find 'DispatchQueue' in scope
88 | memoryCache = MemoryCache<ValueType>(name: name)
89 | diskCache = DiskCache<ValueType>(name: name, baseURL: diskBaseURL)
[8/8] Compiling Cachyr DiskCache.swift
/host/spi-builder-workspace/Sources/DiskCache.swift:39:31: error: cannot find 'DispatchQueue' in scope
37 | but only serial writes using barriers.
38 | */
39 | private let accessQueue = DispatchQueue(label: "no.nrk.yr.cache.disk.queue")
| `- error: cannot find 'DispatchQueue' in scope
40 |
41 | /**
/host/spi-builder-workspace/Sources/DiskCache.swift:178:24: error: 'nil' requires a contextual type
176 |
177 | guard let data = fileFor(key: key) else {
178 | return nil
| `- error: 'nil' requires a contextual type
179 | }
180 |
/host/spi-builder-workspace/Sources/DiskCache.swift:406:30: error: cannot find 'ENOATTR' in scope
404 | } catch let error as ExtendedAttributeError {
405 | // Missing expiration attribute is not an error
406 | if error.code != ENOATTR {
| `- error: cannot find 'ENOATTR' in scope
407 | CacheLog.error("\(error.name) \(error.code) \(error.description)")
408 | }
BUILD FAILURE 6.1 wasm