Build Information
Failed to build CurrencyConverter, reference main (5ac7d6
), with Swift 6.1 for Wasm on 15 Jun 2025 18:18:32 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/pixyzehn/currency-converter.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/pixyzehn/currency-converter
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 5ac7d6b Protect array from concurrent mutations or reads
Cloned https://github.com/pixyzehn/currency-converter.git
Revision (git rev-parse @):
5ac7d6bf004df0c52cb4a1118ce1872ef5b220a8
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/pixyzehn/currency-converter.git at main
========================================
Build
========================================
Selected platform: wasm
Swift version: 6.1
Building package at path: $PWD
https://github.com/pixyzehn/currency-converter.git
https://github.com/pixyzehn/currency-converter.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
"dependencies" : [
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/swiftlang/swift-docc-plugin"
}
],
"manifest_display_name" : "CurrencyConverter",
"name" : "CurrencyConverter",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "14.0"
},
{
"name" : "macos",
"version" : "11.0"
}
],
"products" : [
{
"name" : "CurrencyConverter",
"targets" : [
"CurrencyConverter"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "CurrencyConverterTests",
"module_type" : "SwiftTarget",
"name" : "CurrencyConverterTests",
"path" : "Tests/CurrencyConverterTests",
"sources" : [
"CurrencyConverterTests.swift"
],
"target_dependencies" : [
"CurrencyConverter"
],
"type" : "test"
},
{
"c99name" : "CurrencyConverter",
"module_type" : "SwiftTarget",
"name" : "CurrencyConverter",
"path" : "Sources/CurrencyConverter",
"product_memberships" : [
"CurrencyConverter"
],
"sources" : [
"CurrencyConverter.swift",
"CurrencyRate.swift",
"ReferenceRates.swift",
"ReferenceRatesXMLParser.swift",
"SafeCallback.swift",
"XMLParserError.swift"
],
"type" : "library"
}
],
"tools_version" : "6.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 2>&1
wasm-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:1d9b2ff10447e71c7331541368dc204699fc22b6bc9ef4efb815c3e4c1ba42e3
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2082] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.40s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.4 (2.61s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3411] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.91s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.48s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.4.4
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/4] Write sources
[3/4] Write swift-version-24593BA9C3E375BF.txt
[5/11] Compiling CurrencyConverter SafeCallback.swift
[6/11] Compiling CurrencyConverter XMLParserError.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[7/11] Emitting module CurrencyConverter
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
1 | import Foundation
2 |
3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
| `- error: cannot find type 'XMLParserDelegate' in scope
4 | private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
5 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:6:25: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
4 | private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
5 |
6 | private let parser: XMLParser?
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
7 |
8 | private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:8:36: error: cannot find 'DispatchQueue' in scope
6 | private let parser: XMLParser?
7 |
8 | private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
| `- error: cannot find 'DispatchQueue' in scope
9 | private var _resultRates: [CurrencyRate] = []
10 | private var resultDate: String?
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:53:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
51 | // MARK: - XMLParserDelegate
52 |
53 | func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String: String] = [:]) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
54 | guard elementName == "Cube", !attributeDict.isEmpty else {
55 | // Skip throwing an error as there will be element names to ignore,
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:96:41: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
94 | }
95 |
96 | func parserDidEndDocument(_ parser: XMLParser) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
97 | if let resultDate = resultDate {
98 | callbacks.parseSucceeded?(.init(date: resultDate, rates: resultRates))
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:104:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
102 | }
103 |
104 | func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
105 | callbacks.parseErrorOccurred?(.general(parseError))
106 | }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
[8/11] Compiling CurrencyConverter CurrencyConverter.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:8:36: error: cannot find 'DispatchQueue' in scope
6 | private let parser: XMLParser?
7 |
8 | private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
| `- error: cannot find 'DispatchQueue' in scope
9 | private var _resultRates: [CurrencyRate] = []
10 | private var resultDate: String?
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
1 | import Foundation
2 |
3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
| `- error: cannot find type 'XMLParserDelegate' in scope
4 | private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
5 |
[9/11] Compiling CurrencyConverter CurrencyRate.swift
[10/11] Compiling CurrencyConverter ReferenceRates.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRates.swift:22:22: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
20 | /// - baseCurrencyCode: The base currency code for the currency rates. The default is "EUR".
21 | public func rates(amount: Double = 1, baseCurrencyCode: String = "EUR") -> [CurrencyRate] {
22 | guard Locale.isoCurrencyCodes.contains(baseCurrencyCode) else {
| `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
23 | return []
24 | }
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRates.swift:57:39: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
55 | }
56 |
57 | let isoCurrencyCodes = Locale.isoCurrencyCodes
| `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
58 |
59 | guard isoCurrencyCodes.contains(fromCurrencyCode) && isoCurrencyCodes.contains(toCurrencyCode) else {
[11/11] Compiling CurrencyConverter ReferenceRatesXMLParser.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
1 | import Foundation
2 |
3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
| `- error: cannot find type 'XMLParserDelegate' in scope
4 | private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
5 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:6:25: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
4 | private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
5 |
6 | private let parser: XMLParser?
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
7 |
8 | private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:8:36: error: cannot find 'DispatchQueue' in scope
6 | private let parser: XMLParser?
7 |
8 | private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
| `- error: cannot find 'DispatchQueue' in scope
9 | private var _resultRates: [CurrencyRate] = []
10 | private var resultDate: String?
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:53:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
51 | // MARK: - XMLParserDelegate
52 |
53 | func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String: String] = [:]) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
54 | guard elementName == "Cube", !attributeDict.isEmpty else {
55 | // Skip throwing an error as there will be element names to ignore,
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:96:41: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
94 | }
95 |
96 | func parserDidEndDocument(_ parser: XMLParser) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
97 | if let resultDate = resultDate {
98 | callbacks.parseSucceeded?(.init(date: resultDate, rates: resultRates))
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:104:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
102 | }
103 |
104 | func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
105 | callbacks.parseErrorOccurred?(.general(parseError))
106 | }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:36:18: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
34 |
35 | init(contentsOf url: URL = defaultXMLURL) {
36 | parser = XMLParser(contentsOf: url)
| `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
37 | super.init()
38 | parser?.delegate = self
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:38:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
36 | parser = XMLParser(contentsOf: url)
37 | super.init()
38 | parser?.delegate = self
| `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
39 | }
40 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:42:18: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
40 |
41 | init(data: Data) {
42 | parser = XMLParser(data: data)
| `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
43 | super.init()
44 | parser?.delegate = self
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:44:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
42 | parser = XMLParser(data: data)
43 | super.init()
44 | parser?.delegate = self
| `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
45 | }
46 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:48:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'parse'
46 |
47 | func parse() {
48 | parser?.parse()
| `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'parse'
49 | }
50 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:80:27: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
78 | }
79 | case XMLParserKeys.currency.rawValue:
80 | if Locale.isoCurrencyCodes.contains(attribute.value) {
| `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
81 | currencyRate.currencyCode = attribute.value
82 | } else {
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:1d9b2ff10447e71c7331541368dc204699fc22b6bc9ef4efb815c3e4c1ba42e3
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest
[0/1] Planning build
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/3] Write swift-version-24593BA9C3E375BF.txt
[4/10] Compiling CurrencyConverter ReferenceRatesXMLParser.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
1 | import Foundation
2 |
3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
| `- error: cannot find type 'XMLParserDelegate' in scope
4 | private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
5 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:6:25: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
4 | private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
5 |
6 | private let parser: XMLParser?
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
7 |
8 | private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:8:36: error: cannot find 'DispatchQueue' in scope
6 | private let parser: XMLParser?
7 |
8 | private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
| `- error: cannot find 'DispatchQueue' in scope
9 | private var _resultRates: [CurrencyRate] = []
10 | private var resultDate: String?
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:53:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
51 | // MARK: - XMLParserDelegate
52 |
53 | func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String: String] = [:]) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
54 | guard elementName == "Cube", !attributeDict.isEmpty else {
55 | // Skip throwing an error as there will be element names to ignore,
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:96:41: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
94 | }
95 |
96 | func parserDidEndDocument(_ parser: XMLParser) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
97 | if let resultDate = resultDate {
98 | callbacks.parseSucceeded?(.init(date: resultDate, rates: resultRates))
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:104:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
102 | }
103 |
104 | func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
105 | callbacks.parseErrorOccurred?(.general(parseError))
106 | }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:36:18: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
34 |
35 | init(contentsOf url: URL = defaultXMLURL) {
36 | parser = XMLParser(contentsOf: url)
| `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
37 | super.init()
38 | parser?.delegate = self
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:38:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
36 | parser = XMLParser(contentsOf: url)
37 | super.init()
38 | parser?.delegate = self
| `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
39 | }
40 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:42:18: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
40 |
41 | init(data: Data) {
42 | parser = XMLParser(data: data)
| `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
43 | super.init()
44 | parser?.delegate = self
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:44:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
42 | parser = XMLParser(data: data)
43 | super.init()
44 | parser?.delegate = self
| `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'delegate'
45 | }
46 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:48:17: error: value of type 'XMLParser' (aka 'AnyObject') has no member 'parse'
46 |
47 | func parse() {
48 | parser?.parse()
| `- error: value of type 'XMLParser' (aka 'AnyObject') has no member 'parse'
49 | }
50 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:80:27: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
78 | }
79 | case XMLParserKeys.currency.rawValue:
80 | if Locale.isoCurrencyCodes.contains(attribute.value) {
| `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
81 | currencyRate.currencyCode = attribute.value
82 | } else {
[5/10] Compiling CurrencyConverter XMLParserError.swift
[6/10] Compiling CurrencyConverter SafeCallback.swift
[7/10] Compiling CurrencyConverter CurrencyRate.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[8/10] Compiling CurrencyConverter ReferenceRates.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRates.swift:22:22: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
20 | /// - baseCurrencyCode: The base currency code for the currency rates. The default is "EUR".
21 | public func rates(amount: Double = 1, baseCurrencyCode: String = "EUR") -> [CurrencyRate] {
22 | guard Locale.isoCurrencyCodes.contains(baseCurrencyCode) else {
| `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
23 | return []
24 | }
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRates.swift:57:39: warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
55 | }
56 |
57 | let isoCurrencyCodes = Locale.isoCurrencyCodes
| `- warning: 'isoCurrencyCodes' is deprecated: Use `Locale.Currency.isoCurrencies` instead
58 |
59 | guard isoCurrencyCodes.contains(fromCurrencyCode) && isoCurrencyCodes.contains(toCurrencyCode) else {
[9/10] Emitting module CurrencyConverter
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
1 | import Foundation
2 |
3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
| `- error: cannot find type 'XMLParserDelegate' in scope
4 | private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
5 |
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:6:25: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
4 | private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
5 |
6 | private let parser: XMLParser?
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
7 |
8 | private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:8:36: error: cannot find 'DispatchQueue' in scope
6 | private let parser: XMLParser?
7 |
8 | private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
| `- error: cannot find 'DispatchQueue' in scope
9 | private var _resultRates: [CurrencyRate] = []
10 | private var resultDate: String?
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:53:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
51 | // MARK: - XMLParserDelegate
52 |
53 | func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String: String] = [:]) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
54 | guard elementName == "Cube", !attributeDict.isEmpty else {
55 | // Skip throwing an error as there will be element names to ignore,
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:96:41: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
94 | }
95 |
96 | func parserDidEndDocument(_ parser: XMLParser) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
97 | if let resultDate = resultDate {
98 | callbacks.parseSucceeded?(.init(date: resultDate, rates: resultRates))
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:104:27: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
102 | }
103 |
104 | func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
105 | callbacks.parseErrorOccurred?(.general(parseError))
106 | }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
[10/10] Compiling CurrencyConverter CurrencyConverter.swift
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:8:36: error: cannot find 'DispatchQueue' in scope
6 | private let parser: XMLParser?
7 |
8 | private let resultRatesQueue = DispatchQueue(label: "ReferenceRatesXMLParser.resultRatesQueue")
| `- error: cannot find 'DispatchQueue' in scope
9 | private var _resultRates: [CurrencyRate] = []
10 | private var resultDate: String?
/host/spi-builder-workspace/Sources/CurrencyConverter/ReferenceRatesXMLParser.swift:3:42: error: cannot find type 'XMLParserDelegate' in scope
1 | import Foundation
2 |
3 | class ReferenceRatesXMLParser: NSObject, XMLParserDelegate {
| `- error: cannot find type 'XMLParserDelegate' in scope
4 | private static let defaultXMLURL = URL(string: "https://expenses.cash/eurofxref/eurofxref.xml")!
5 |
BUILD FAILURE 6.1 wasm