Build Information
Successful build of Erik, reference master (92c708
), with Swift 6.1 for macOS (SPM) on 26 Apr 2025 21:37:57 UTC.
Swift 6 data race errors: 5
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -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
Build Log
========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/phimage/Erik.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/phimage/Erik
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 92c7081 fix typo KanaParser to KannaParser
Cloned https://github.com/phimage/Erik.git
Revision (git rev-parse @):
92c7081ce6f5b4416cc238791e14960bc44fdbf7
SUCCESS checkout https://github.com/phimage/Erik.git at master
Fetching https://github.com/tid-kijyun/Kanna.git
Fetching https://github.com/Thomvis/BrightFutures.git
Fetching https://github.com/nvzqz/FileKit.git
[1/4067] Fetching brightfutures
[42/6388] Fetching brightfutures, kanna
[275/9511] Fetching brightfutures, kanna, filekit
Fetched https://github.com/tid-kijyun/Kanna.git from cache (1.53s)
Fetched https://github.com/Thomvis/BrightFutures.git from cache (1.53s)
Fetched https://github.com/nvzqz/FileKit.git from cache (1.53s)
Computing version for https://github.com/nvzqz/FileKit.git
Computed https://github.com/nvzqz/FileKit.git at 6.0.0 (2.17s)
Computing version for https://github.com/Thomvis/BrightFutures.git
Computed https://github.com/Thomvis/BrightFutures.git at 8.0.1 (0.60s)
Computing version for https://github.com/tid-kijyun/Kanna.git
Computed https://github.com/tid-kijyun/Kanna.git at 5.0.0 (0.60s)
Creating working copy for https://github.com/tid-kijyun/Kanna.git
Working copy of https://github.com/tid-kijyun/Kanna.git resolved at 5.0.0
Creating working copy for https://github.com/Thomvis/BrightFutures.git
Working copy of https://github.com/Thomvis/BrightFutures.git resolved at 8.0.1
Creating working copy for https://github.com/nvzqz/FileKit.git
Working copy of https://github.com/nvzqz/FileKit.git resolved at 6.0.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"dependencies": [
{
"identity": "erik",
"name": "Erik",
"url": "https://github.com/phimage/Erik.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Erik",
"dependencies": [
{
"identity": "kanna",
"name": "Kanna",
"url": "https://github.com/tid-kijyun/Kanna.git",
"version": "5.3.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Kanna",
"dependencies": [
]
},
{
"identity": "brightfutures",
"name": "BrightFutures",
"url": "https://github.com/Thomvis/BrightFutures.git",
"version": "8.2.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/BrightFutures",
"dependencies": [
]
},
{
"identity": "filekit",
"name": "FileKit",
"url": "https://github.com/nvzqz/FileKit.git",
"version": "6.1.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/FileKit",
"dependencies": [
]
}
]
}
]
}
Fetching https://github.com/phimage/Erik.git
[1/642] Fetching erik
Fetched https://github.com/phimage/Erik.git from cache (0.80s)
Fetching https://github.com/Thomvis/BrightFutures.git from cache
Fetching https://github.com/nvzqz/FileKit.git from cache
Fetching https://github.com/tid-kijyun/Kanna.git from cache
Fetched https://github.com/Thomvis/BrightFutures.git from cache (0.41s)
Fetched https://github.com/nvzqz/FileKit.git from cache (0.45s)
Fetched https://github.com/tid-kijyun/Kanna.git from cache (0.45s)
Computing version for https://github.com/nvzqz/FileKit.git
Computed https://github.com/nvzqz/FileKit.git at 6.1.0 (0.51s)
Computing version for https://github.com/Thomvis/BrightFutures.git
Computed https://github.com/Thomvis/BrightFutures.git at 8.2.0 (0.57s)
Computing version for https://github.com/tid-kijyun/Kanna.git
Computed https://github.com/tid-kijyun/Kanna.git at 5.3.0 (0.57s)
Creating working copy for https://github.com/Thomvis/BrightFutures.git
Working copy of https://github.com/Thomvis/BrightFutures.git resolved at 8.2.0
Creating working copy for https://github.com/tid-kijyun/Kanna.git
Working copy of https://github.com/tid-kijyun/Kanna.git resolved at 5.3.0
Creating working copy for https://github.com/phimage/Erik.git
Working copy of https://github.com/phimage/Erik.git resolved at master (92c7081)
Creating working copy for https://github.com/nvzqz/FileKit.git
Working copy of https://github.com/nvzqz/FileKit.git resolved at 6.1.0
warning: '.resolve-product-dependencies': dependency 'erik' is not used by any target
Found 3 product dependencies
- Kanna
- BrightFutures
- FileKit
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/phimage/Erik.git
https://github.com/phimage/Erik.git
{
"dependencies" : [
{
"identity" : "kanna",
"requirement" : {
"range" : [
{
"lower_bound" : "5.0.0",
"upper_bound" : "6.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/tid-kijyun/Kanna.git"
},
{
"identity" : "brightfutures",
"requirement" : {
"range" : [
{
"lower_bound" : "8.0.0",
"upper_bound" : "9.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Thomvis/BrightFutures.git"
},
{
"identity" : "filekit",
"requirement" : {
"range" : [
{
"lower_bound" : "6.0.0",
"upper_bound" : "7.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/nvzqz/FileKit.git"
}
],
"manifest_display_name" : "Erik",
"name" : "Erik",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Erik",
"targets" : [
"Erik"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "ErikTests",
"module_type" : "SwiftTarget",
"name" : "ErikTests",
"path" : "ErikTests",
"product_dependencies" : [
"Kanna",
"BrightFutures",
"FileKit"
],
"sources" : [
"ErikTests.swift",
"KannaTests.swift"
],
"target_dependencies" : [
"Erik"
],
"type" : "test"
},
{
"c99name" : "Erik",
"module_type" : "SwiftTarget",
"name" : "Erik",
"path" : "Sources",
"product_dependencies" : [
"Kanna",
"BrightFutures"
],
"product_memberships" : [
"Erik"
],
"sources" : [
"Document.swift",
"Erik.swift",
"Future/Future.swift",
"LayoutEngine.swift"
],
"type" : "library"
}
],
"tools_version" : "5.1"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -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
Building for debugging...
[0/4] Write sources
[3/4] Write swift-version-2F0A5646E1D333AE.txt
[5/27] Compiling BrightFutures Result+BrightFutures.swift
[6/27] Compiling BrightFutures ResultProtocol.swift
[7/28] Compiling BrightFutures Promise.swift
[8/28] Compiling BrightFutures MutableAsyncType.swift
[9/28] Compiling BrightFutures NSOperationQueue+BrightFutures.swift
[10/28] Compiling BrightFutures ExecutionContext.swift
[11/28] Compiling BrightFutures Future.swift
[12/28] Compiling BrightFutures AsyncType+ResultType.swift
[13/28] Compiling BrightFutures AsyncType.swift
[14/28] Compiling BrightFutures Async.swift
[15/28] Compiling BrightFutures AsyncType+Debug.swift
[16/28] Compiling BrightFutures Dispatch+BrightFutures.swift
[17/28] Compiling BrightFutures Errors.swift
[18/28] Emitting module BrightFutures
[19/28] Compiling BrightFutures InvalidationToken.swift
[20/28] Compiling BrightFutures MutableAsyncType+ResultType.swift
[21/28] Compiling Kanna libxmlParserOption.swift
[22/28] Compiling Kanna Kanna.swift
[23/28] Compiling Kanna libxmlHTMLDocument.swift
[24/28] Emitting module Kanna
[25/28] Compiling Kanna Deprecated.swift
[26/28] Compiling Kanna CSS.swift
[27/28] Compiling Kanna libxmlHTMLNode.swift
[28/28] Compiling BrightFutures SequenceType+BrightFutures.swift
[29/33] Compiling Erik Future.swift
/Users/admin/builder/spi-builder-workspace/Sources/Future/Future.swift:122:5: warning: non-'@objc' instance method in extensions cannot be overridden; use 'public' instead
120 | extension Form {
121 |
122 | open func submitFuture() -> Future<Any?, FutureError> {
| `- warning: non-'@objc' instance method in extensions cannot be overridden; use 'public' instead
123 | let promise = Promise<Any?, FutureError>()
124 |
/Users/admin/builder/spi-builder-workspace/Sources/Future/Future.swift:140:5: warning: non-'@objc' instance method in extensions cannot be overridden; use 'public' instead
138 | }
139 |
140 | open func resetFuture() -> Future<Any?, FutureError> {
| `- warning: non-'@objc' instance method in extensions cannot be overridden; use 'public' instead
141 | let promise = Promise<Any?, FutureError>()
142 |
[30/33] Emitting module Erik
/Users/admin/builder/spi-builder-workspace/Sources/Document.swift:31:16: warning: static property 'instance' is not concurrency-safe because non-'Sendable' type 'KannaParser' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 | import Kanna
30 | class KannaParser: HTMLParser {
| `- note: class 'KannaParser' does not conform to the 'Sendable' protocol
31 | static let instance = KannaParser()
| |- warning: static property 'instance' is not concurrency-safe because non-'Sendable' type 'KannaParser' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'instance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
32 |
33 | func parse(_ html: String, encoding: String.Encoding) throws -> Document {
/Users/admin/builder/spi-builder-workspace/Sources/Document.swift:38:16: warning: static property 'escapeJavaScript' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
36 | }
37 |
38 | static var escapeJavaScript: (String) -> String = {
| |- warning: static property 'escapeJavaScript' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'escapeJavaScript' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'escapeJavaScript' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 | return $0.replacingOccurrences(of: "'", with: "\\'")
40 | }
/Users/admin/builder/spi-builder-workspace/Sources/Erik.swift:169:23: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'Erik' may have shared mutable state; this is an error in the Swift 6 language mode
44 |
45 | // Instance of headless browser
46 | open class Erik {
| `- note: class 'Erik' does not conform to the 'Sendable' protocol
47 |
48 | open var layoutEngine: LayoutEngine
:
167 | extension Erik {
168 | // Shared instance used for static functions
169 | public static let sharedInstance = Erik()
| |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'Erik' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
170 |
171 | public static func visit(url: Foundation.URL, completionHandler: DocumentCompletionHandler?) {
/Users/admin/builder/spi-builder-workspace/Sources/Future/Future.swift:122:5: warning: non-'@objc' instance method in extensions cannot be overridden; use 'public' instead
120 | extension Form {
121 |
122 | open func submitFuture() -> Future<Any?, FutureError> {
| `- warning: non-'@objc' instance method in extensions cannot be overridden; use 'public' instead
123 | let promise = Promise<Any?, FutureError>()
124 |
/Users/admin/builder/spi-builder-workspace/Sources/Future/Future.swift:140:5: warning: non-'@objc' instance method in extensions cannot be overridden; use 'public' instead
138 | }
139 |
140 | open func resetFuture() -> Future<Any?, FutureError> {
| `- warning: non-'@objc' instance method in extensions cannot be overridden; use 'public' instead
141 | let promise = Promise<Any?, FutureError>()
142 |
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:173:16: warning: main actor-isolated property 'navigate' cannot be used to satisfy nonisolated requirement from protocol 'Navigable'; this is an error in the Swift 6 language mode
56 | // Useful to know if currently in navigation processs
57 | public protocol Navigable {
58 | var navigate: Bool {get set}
| `- note: requirement 'navigate' declared here
59 | }
60 |
:
169 |
170 | // MARK: WKNavigationDelegate
171 | open class LayoutEngineNavigationDelegate: NSObject, WKNavigationDelegate, Navigable {
| `- note: add '@preconcurrency' to the 'Navigable' conformance to defer isolation checking to run time
172 |
173 | public var navigate: Bool = false
| `- warning: main actor-isolated property 'navigate' cannot be used to satisfy nonisolated requirement from protocol 'Navigable'; this is an error in the Swift 6 language mode
174 | public var lastError: Error?
175 |
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:176:15: warning: instance method 'webView(_:decidePolicyFor:decisionHandler:)' nearly matches optional requirement 'webView(_:decidePolicyFor:decisionHandler:)' of protocol 'WKNavigationDelegate'
174 | public var lastError: Error?
175 |
176 | open func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Swift.Void) {
| |- warning: instance method 'webView(_:decidePolicyFor:decisionHandler:)' nearly matches optional requirement 'webView(_:decidePolicyFor:decisionHandler:)' of protocol 'WKNavigationDelegate'
| |- note: candidate has non-matching type '(WKWebView, WKNavigationAction, @escaping (WKNavigationActionPolicy) -> Void) -> ()'
| `- note: move 'webView(_:decidePolicyFor:decisionHandler:)' to an extension to silence this warning
177 | //self.navigate = true
178 | decisionHandler(WKNavigationActionPolicy.allow)
WebKit.WKNavigationDelegate.webView:3:28: note: requirement 'webView(_:decidePolicyFor:decisionHandler:)' declared here
1 | protocol WKNavigationDelegate {
2 | @available(macOS 10.10, *)
3 | @MainActor optional func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping @MainActor @Sendable (WKNavigationActionPolicy) -> Void)}
| `- note: requirement 'webView(_:decidePolicyFor:decisionHandler:)' declared here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:421:16: warning: static property 'semaphores' is not concurrency-safe because non-'Sendable' type 'UnsafeRawPointer?' may have shared mutable state; this is an error in the Swift 6 language mode
419 |
420 | private struct SemaphorableKeys {
421 | static let semaphores = UnsafeRawPointer(bitPattern: Selector(("semaphores")).hashValue)
| |- warning: static property 'semaphores' is not concurrency-safe because non-'Sendable' type 'UnsafeRawPointer?' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'semaphores' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
422 | }
423 | extension Semaphorable {
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
| `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 | case none
3 | case some(Wrapped)
[31/33] Compiling Erik Document.swift
/Users/admin/builder/spi-builder-workspace/Sources/Document.swift:31:16: warning: static property 'instance' is not concurrency-safe because non-'Sendable' type 'KannaParser' may have shared mutable state; this is an error in the Swift 6 language mode
28 |
29 | import Kanna
30 | class KannaParser: HTMLParser {
| `- note: class 'KannaParser' does not conform to the 'Sendable' protocol
31 | static let instance = KannaParser()
| |- warning: static property 'instance' is not concurrency-safe because non-'Sendable' type 'KannaParser' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'instance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
32 |
33 | func parse(_ html: String, encoding: String.Encoding) throws -> Document {
/Users/admin/builder/spi-builder-workspace/Sources/Document.swift:38:16: warning: static property 'escapeJavaScript' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
36 | }
37 |
38 | static var escapeJavaScript: (String) -> String = {
| |- warning: static property 'escapeJavaScript' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'escapeJavaScript' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'escapeJavaScript' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
39 | return $0.replacingOccurrences(of: "'", with: "\\'")
40 | }
[32/33] Compiling Erik Erik.swift
/Users/admin/builder/spi-builder-workspace/Sources/Erik.swift:169:23: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'Erik' may have shared mutable state; this is an error in the Swift 6 language mode
44 |
45 | // Instance of headless browser
46 | open class Erik {
| `- note: class 'Erik' does not conform to the 'Sendable' protocol
47 |
48 | open var layoutEngine: LayoutEngine
:
167 | extension Erik {
168 | // Shared instance used for static functions
169 | public static let sharedInstance = Erik()
| |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'Erik' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
170 |
171 | public static func visit(url: Foundation.URL, completionHandler: DocumentCompletionHandler?) {
[33/33] Compiling Erik LayoutEngine.swift
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:173:16: warning: main actor-isolated property 'navigate' cannot be used to satisfy nonisolated requirement from protocol 'Navigable'; this is an error in the Swift 6 language mode
56 | // Useful to know if currently in navigation processs
57 | public protocol Navigable {
58 | var navigate: Bool {get set}
| `- note: requirement 'navigate' declared here
59 | }
60 |
:
169 |
170 | // MARK: WKNavigationDelegate
171 | open class LayoutEngineNavigationDelegate: NSObject, WKNavigationDelegate, Navigable {
| `- note: add '@preconcurrency' to the 'Navigable' conformance to defer isolation checking to run time
172 |
173 | public var navigate: Bool = false
| `- warning: main actor-isolated property 'navigate' cannot be used to satisfy nonisolated requirement from protocol 'Navigable'; this is an error in the Swift 6 language mode
174 | public var lastError: Error?
175 |
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:176:15: warning: instance method 'webView(_:decidePolicyFor:decisionHandler:)' nearly matches optional requirement 'webView(_:decidePolicyFor:decisionHandler:)' of protocol 'WKNavigationDelegate'
174 | public var lastError: Error?
175 |
176 | open func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Swift.Void) {
| |- warning: instance method 'webView(_:decidePolicyFor:decisionHandler:)' nearly matches optional requirement 'webView(_:decidePolicyFor:decisionHandler:)' of protocol 'WKNavigationDelegate'
| |- note: candidate has non-matching type '(WKWebView, WKNavigationAction, @escaping (WKNavigationActionPolicy) -> Void) -> ()'
| `- note: move 'webView(_:decidePolicyFor:decisionHandler:)' to an extension to silence this warning
177 | //self.navigate = true
178 | decisionHandler(WKNavigationActionPolicy.allow)
WebKit.WKNavigationDelegate.webView:3:28: note: requirement 'webView(_:decidePolicyFor:decisionHandler:)' declared here
1 | protocol WKNavigationDelegate {
2 | @available(macOS 10.10, *)
3 | @MainActor optional func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping @MainActor @Sendable (WKNavigationActionPolicy) -> Void)}
| `- note: requirement 'webView(_:decidePolicyFor:decisionHandler:)' declared here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:421:16: warning: static property 'semaphores' is not concurrency-safe because non-'Sendable' type 'UnsafeRawPointer?' may have shared mutable state; this is an error in the Swift 6 language mode
419 |
420 | private struct SemaphorableKeys {
421 | static let semaphores = UnsafeRawPointer(bitPattern: Selector(("semaphores")).hashValue)
| |- warning: static property 'semaphores' is not concurrency-safe because non-'Sendable' type 'UnsafeRawPointer?' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'semaphores' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
422 | }
423 | extension Semaphorable {
Swift.Optional:1:21: note: generic enum 'Optional' does not conform to the 'Sendable' protocol
1 | @frozen public enum Optional<Wrapped> : ~Copyable where Wrapped : ~Copyable {
| `- note: generic enum 'Optional' does not conform to the 'Sendable' protocol
2 | case none
3 | case some(Wrapped)
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:77:44: warning: main actor-isolated property 'isLoading' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
75 | switch self {
76 | case .isLoading:
77 | return { return $0.webView.isLoading }
| `- warning: main actor-isolated property 'isLoading' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
78 | case .estimatedProgress:
79 | return { engine in
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebView.h:178:56: note: property declared here
176 | for this property.
177 | */
178 | @property (nonatomic, readonly, getter=isLoading) BOOL loading;
| `- note: property declared here
179 |
180 | /*! @abstract An estimate of what fraction of the current navigation has been completed.
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:80:60: warning: main actor-isolated property 'estimatedProgress' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
78 | case .estimatedProgress:
79 | return { engine in
80 | let estimatedProgress = engine.webView.estimatedProgress
| `- warning: main actor-isolated property 'estimatedProgress' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
81 | if engine.firstPageLoaded {
82 | return estimatedProgress != 1.0
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebView.h:188:40: note: property declared here
186 | property.
187 | */
188 | @property (nonatomic, readonly) double estimatedProgress;
| `- note: property declared here
189 |
190 | /*! @abstract A Boolean value indicating whether all resources on the page
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:151:58: warning: call to main actor-isolated instance method 'add(_:name:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
149 | self.webView = webView
150 | super.init()
151 | self.webView.configuration.userContentController.add(self, name: JavascriptErrorHandler)
| `- warning: call to main actor-isolated instance method 'add(_:name:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
152 | self.webView.configuration.userContentController.add(self, name: JavascriptEndHandler)
153 |
WebKit.WKUserContentController.add:2:22: note: calls to instance method 'add(_:name:)' from outside of its actor context are implicitly asynchronous
1 | class WKUserContentController {
2 | @MainActor open func add(_ scriptMessageHandler: any WKScriptMessageHandler, name: String)}
| `- note: calls to instance method 'add(_:name:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:151:36: warning: main actor-isolated property 'userContentController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
149 | self.webView = webView
150 | super.init()
151 | self.webView.configuration.userContentController.add(self, name: JavascriptErrorHandler)
| `- warning: main actor-isolated property 'userContentController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
152 | self.webView.configuration.userContentController.add(self, name: JavascriptEndHandler)
153 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebViewConfiguration.h:118:56: note: property declared here
116 | /*! @abstract The user content controller to associate with the web view.
117 | */
118 | @property (nonatomic, strong) WKUserContentController *userContentController;
| `- note: property declared here
119 |
120 | /*! @abstract The web extension controller to associate with the web view.
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:151:22: warning: main actor-isolated property 'configuration' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
149 | self.webView = webView
150 | super.init()
151 | self.webView.configuration.userContentController.add(self, name: JavascriptErrorHandler)
| `- warning: main actor-isolated property 'configuration' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
152 | self.webView.configuration.userContentController.add(self, name: JavascriptEndHandler)
153 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebView.h:91:63: note: property declared here
89 | /*! @abstract A copy of the configuration with which the web view was
90 | initialized. */
91 | @property (nonatomic, readonly, copy) WKWebViewConfiguration *configuration;
| `- note: property declared here
92 |
93 | /*! @abstract The web view's navigation delegate. */
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:152:58: warning: call to main actor-isolated instance method 'add(_:name:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
150 | super.init()
151 | self.webView.configuration.userContentController.add(self, name: JavascriptErrorHandler)
152 | self.webView.configuration.userContentController.add(self, name: JavascriptEndHandler)
| `- warning: call to main actor-isolated instance method 'add(_:name:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
153 |
154 | if self.webView.navigationDelegate == nil {
WebKit.WKUserContentController.add:2:22: note: calls to instance method 'add(_:name:)' from outside of its actor context are implicitly asynchronous
1 | class WKUserContentController {
2 | @MainActor open func add(_ scriptMessageHandler: any WKScriptMessageHandler, name: String)}
| `- note: calls to instance method 'add(_:name:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:152:36: warning: main actor-isolated property 'userContentController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
150 | super.init()
151 | self.webView.configuration.userContentController.add(self, name: JavascriptErrorHandler)
152 | self.webView.configuration.userContentController.add(self, name: JavascriptEndHandler)
| `- warning: main actor-isolated property 'userContentController' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
153 |
154 | if self.webView.navigationDelegate == nil {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebViewConfiguration.h:118:56: note: property declared here
116 | /*! @abstract The user content controller to associate with the web view.
117 | */
118 | @property (nonatomic, strong) WKUserContentController *userContentController;
| `- note: property declared here
119 |
120 | /*! @abstract The web extension controller to associate with the web view.
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:152:22: warning: main actor-isolated property 'configuration' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
150 | super.init()
151 | self.webView.configuration.userContentController.add(self, name: JavascriptErrorHandler)
152 | self.webView.configuration.userContentController.add(self, name: JavascriptEndHandler)
| `- warning: main actor-isolated property 'configuration' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
153 |
154 | if self.webView.navigationDelegate == nil {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebView.h:91:63: note: property declared here
89 | /*! @abstract A copy of the configuration with which the web view was
90 | initialized. */
91 | @property (nonatomic, readonly, copy) WKWebViewConfiguration *configuration;
| `- note: property declared here
92 |
93 | /*! @abstract The web view's navigation delegate. */
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:154:25: warning: main actor-isolated property 'navigationDelegate' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
152 | self.webView.configuration.userContentController.add(self, name: JavascriptEndHandler)
153 |
154 | if self.webView.navigationDelegate == nil {
| `- warning: main actor-isolated property 'navigationDelegate' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
155 | let delegate = LayoutEngineNavigationDelegate()
156 | self.webView.navigationDelegate = delegate
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebView.h:94:65: note: property declared here
92 |
93 | /*! @abstract The web view's navigation delegate. */
94 | @property (nullable, nonatomic, weak) id <WKNavigationDelegate> navigationDelegate;
| `- note: property declared here
95 |
96 | /*! @abstract The web view's user interface delegate. */
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:155:28: warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
153 |
154 | if self.webView.navigationDelegate == nil {
155 | let delegate = LayoutEngineNavigationDelegate()
| `- warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
156 | self.webView.navigationDelegate = delegate
157 | self.navigable = delegate
:
169 |
170 | // MARK: WKNavigationDelegate
171 | open class LayoutEngineNavigationDelegate: NSObject, WKNavigationDelegate, Navigable {
| |- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'WKNavigationDelegate'
172 |
173 | public var navigate: Bool = false
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:156:26: warning: main actor-isolated property 'navigationDelegate' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
154 | if self.webView.navigationDelegate == nil {
155 | let delegate = LayoutEngineNavigationDelegate()
156 | self.webView.navigationDelegate = delegate
| `- warning: main actor-isolated property 'navigationDelegate' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
157 | self.navigable = delegate
158 | self.pageLoadedPolicy = .navigationDelegate
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebView.h:94:65: note: mutation of this property is only permitted within the actor
92 |
93 | /*! @abstract The web view's navigation delegate. */
94 | @property (nullable, nonatomic, weak) id <WKNavigationDelegate> navigationDelegate;
| `- note: mutation of this property is only permitted within the actor
95 |
96 | /*! @abstract The web view's user interface delegate. */
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:159:43: warning: main actor-isolated property 'navigationDelegate' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
157 | self.navigable = delegate
158 | self.pageLoadedPolicy = .navigationDelegate
159 | } else if let navigable = webView.navigationDelegate as? Navigable {
| `- warning: main actor-isolated property 'navigationDelegate' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
160 | self.navigable = navigable
161 | self.pageLoadedPolicy = .navigationDelegate
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebView.h:94:65: note: property declared here
92 |
93 | /*! @abstract The web view's navigation delegate. */
94 | @property (nullable, nonatomic, weak) id <WKNavigationDelegate> navigationDelegate;
| `- note: property declared here
95 |
96 | /*! @abstract The web view's user interface delegate. */
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:166:28: warning: call to main actor-isolated initializer 'init(frame:configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
164 |
165 | convenience init(frame: CGRect = CGRect(x: 0, y: 0, width: 1024, height: 768)) {
166 | self.init(webView: WKWebView(frame: frame, configuration: WKWebViewConfiguration()))
| `- warning: call to main actor-isolated initializer 'init(frame:configuration:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
167 | }
168 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebView.h:114:1: note: calls to initializer 'init(frame:configuration:)' from outside of its actor context are implicitly asynchronous
112 | on the web view.
113 | */
114 | - (instancetype)initWithFrame:(CGRect)frame configuration:(WKWebViewConfiguration *)configuration NS_DESIGNATED_INITIALIZER;
| `- note: calls to initializer 'init(frame:configuration:)' from outside of its actor context are implicitly asynchronous
115 |
116 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:166:68: warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
164 |
165 | convenience init(frame: CGRect = CGRect(x: 0, y: 0, width: 1024, height: 768)) {
166 | self.init(webView: WKWebView(frame: frame, configuration: WKWebViewConfiguration()))
| `- warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
167 | }
168 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/usr/include/objc/NSObject.h:66:1: note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
64 |
65 | + (void)initialize;
66 | - (instancetype)init
| `- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
67 | #if NS_ENFORCE_NSOBJECT_DESIGNATED_INITIALIZER
68 | NS_DESIGNATED_INITIALIZER
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:211:17: warning: call to main actor-isolated instance method 'load' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
206 | }
207 |
208 | @nonobjc public func browse(urlRequest: Foundation.URLRequest, completionHandler: CompletionHandler?) {
| `- note: add '@MainActor' to make instance method 'browse(urlRequest:completionHandler:)' part of global actor 'MainActor'
209 | self.firstPageLoaded = true
210 | self.navigable?.navigate = true
211 | webView.load(urlRequest)
| `- warning: call to main actor-isolated instance method 'load' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
212 | self.currentContent(completionHandler: completionHandler)
213 | }
WebKit.WKWebView.load:2:22: note: calls to instance method 'load' from outside of its actor context are implicitly asynchronous
1 | class WKWebView {
2 | @MainActor open func load(_ request: URLRequest) -> WKNavigation?}
| `- note: calls to instance method 'load' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:216:17: warning: call to main actor-isolated instance method 'loadHTMLString(_:baseURL:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
213 | }
214 |
215 | public func load(htmlString: String, baseURL: URL?) {
| `- note: add '@MainActor' to make instance method 'load(htmlString:baseURL:)' part of global actor 'MainActor'
216 | webView.loadHTMLString(htmlString, baseURL: baseURL)
| `- warning: call to main actor-isolated instance method 'loadHTMLString(_:baseURL:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
217 | }
218 |
WebKit.WKWebView.loadHTMLString:2:22: note: calls to instance method 'loadHTMLString(_:baseURL:)' from outside of its actor context are implicitly asynchronous
1 | class WKWebView {
2 | @MainActor open func loadHTMLString(_ string: String, baseURL: URL?) -> WKNavigation?}
| `- note: calls to instance method 'loadHTMLString(_:baseURL:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:220:29: warning: main actor-isolated property 'url' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
218 |
219 | public var url: URL? {
220 | return self.webView.url
| `- warning: main actor-isolated property 'url' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
221 | }
222 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebView.h:171:56: note: property declared here
169 | property.
170 | */
171 | @property (nullable, nonatomic, readonly, copy) NSURL *URL;
| `- note: property declared here
172 |
173 | /*! @abstract A Boolean value indicating whether the view is currently
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:224:29: warning: main actor-isolated property 'title' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
222 |
223 | public var title: String? {
224 | return self.webView.title
| `- warning: main actor-isolated property 'title' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
225 | }
226 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebView.h:163:59: note: property declared here
161 | for this property.
162 | */
163 | @property (nullable, nonatomic, readonly, copy) NSString *title;
| `- note: property declared here
164 |
165 | /*! @abstract The active URL.
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:228:22: warning: call to main actor-isolated instance method 'goBack()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
225 | }
226 |
227 | public func goBack() {
| `- note: add '@MainActor' to make instance method 'goBack()' part of global actor 'MainActor'
228 | self.webView.goBack()
| `- warning: call to main actor-isolated instance method 'goBack()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
229 | }
230 | public func goForward() {
WebKit.WKWebView.goBack:2:22: note: calls to instance method 'goBack()' from outside of its actor context are implicitly asynchronous
1 | class WKWebView {
2 | @MainActor open func goBack() -> WKNavigation?}
| `- note: calls to instance method 'goBack()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:231:22: warning: call to main actor-isolated instance method 'goForward()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
228 | self.webView.goBack()
229 | }
230 | public func goForward() {
| `- note: add '@MainActor' to make instance method 'goForward()' part of global actor 'MainActor'
231 | self.webView.goForward()
| `- warning: call to main actor-isolated instance method 'goForward()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
232 | }
233 |
WebKit.WKWebView.goForward:2:22: note: calls to instance method 'goForward()' from outside of its actor context are implicitly asynchronous
1 | class WKWebView {
2 | @MainActor open func goForward() -> WKNavigation?}
| `- note: calls to instance method 'goForward()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:235:29: warning: main actor-isolated property 'canGoBack' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
233 |
234 | public var canGoBack: Bool {
235 | return self.webView.canGoBack
| `- warning: main actor-isolated property 'canGoBack' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
236 | }
237 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebView.h:209:38: note: property declared here
207 | @seealso backForwardList.
208 | */
209 | @property (nonatomic, readonly) BOOL canGoBack;
| `- note: property declared here
210 |
211 | /*! @abstract A Boolean value indicating whether there is a forward item in
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:239:29: warning: main actor-isolated property 'canGoForward' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
237 |
238 | public var canGoForward: Bool {
239 | return self.webView.canGoForward
| `- warning: main actor-isolated property 'canGoForward' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
240 | }
241 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebView.h:217:38: note: property declared here
215 | @seealso backForwardList.
216 | */
217 | @property (nonatomic, readonly) BOOL canGoForward;
| `- note: property declared here
218 |
219 | /*! @abstract Navigates to the back item in the back-forward list.
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:243:22: warning: call to main actor-isolated instance method 'reload()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
240 | }
241 |
242 | public func reload() {
| `- note: add '@MainActor' to make instance method 'reload()' part of global actor 'MainActor'
243 | self.webView.reload()
| `- warning: call to main actor-isolated instance method 'reload()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
244 | }
245 |
WebKit.WKWebView.reload:2:22: note: calls to instance method 'reload()' from outside of its actor context are implicitly asynchronous
1 | class WKWebView {
2 | @MainActor open func reload() -> WKNavigation?}
| `- note: calls to instance method 'reload()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:248:13: warning: capture of 'self' with non-sendable type 'WebKitLayoutEngine' in a '@Sendable' closure
60 |
61 | import WebKit
62 | open class WebKitLayoutEngine: NSObject, LayoutEngine {
| `- note: class 'WebKitLayoutEngine' does not conform to the 'Sendable' protocol
63 |
64 | // Policy to detect page loading end
:
246 | public func currentContent(completionHandler: CompletionHandler?) {
247 | waitLoadingQueue.async { [unowned self] in
248 | self.handleLoadRequestCompletion { error in
| `- warning: capture of 'self' with non-sendable type 'WebKitLayoutEngine' in a '@Sendable' closure
249 | if let error = error {
250 | self.callBackQueue.asyncOrCurrent {
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:251:25: warning: capture of 'completionHandler' with non-sendable type 'CompletionHandler?' (aka 'Optional<(Optional<Any>, Optional<any Error>) -> ()>') in a '@Sendable' closure
249 | if let error = error {
250 | self.callBackQueue.asyncOrCurrent {
251 | completionHandler?(nil, error)
| |- warning: capture of 'completionHandler' with non-sendable type 'CompletionHandler?' (aka 'Optional<(Optional<Any>, Optional<any Error>) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
252 | }
253 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:250:21: warning: capture of 'self' with non-sendable type 'WebKitLayoutEngine' in an isolated closure; this is an error in the Swift 6 language mode
60 |
61 | import WebKit
62 | open class WebKitLayoutEngine: NSObject, LayoutEngine {
| `- note: class 'WebKitLayoutEngine' does not conform to the 'Sendable' protocol
63 |
64 | // Policy to detect page loading end
:
248 | self.handleLoadRequestCompletion { error in
249 | if let error = error {
250 | self.callBackQueue.asyncOrCurrent {
| `- warning: capture of 'self' with non-sendable type 'WebKitLayoutEngine' in an isolated closure; this is an error in the Swift 6 language mode
251 | completionHandler?(nil, error)
252 | }
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:251:25: warning: capture of 'completionHandler' with non-sendable type 'CompletionHandler?' (aka 'Optional<(Optional<Any>, Optional<any Error>) -> ()>') in an isolated closure; this is an error in the Swift 6 language mode
249 | if let error = error {
250 | self.callBackQueue.asyncOrCurrent {
251 | completionHandler?(nil, error)
| |- warning: capture of 'completionHandler' with non-sendable type 'CompletionHandler?' (aka 'Optional<(Optional<Any>, Optional<any Error>) -> ()>') in an isolated closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
252 | }
253 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:251:25: warning: capture of 'completionHandler' with non-sendable type 'CompletionHandler?' (aka 'Optional<(Optional<Any>, Optional<any Error>) -> ()>') in an isolated closure; this is an error in the Swift 6 language mode
249 | if let error = error {
250 | self.callBackQueue.asyncOrCurrent {
251 | completionHandler?(nil, error)
| |- warning: capture of 'completionHandler' with non-sendable type 'CompletionHandler?' (aka 'Optional<(Optional<Any>, Optional<any Error>) -> ()>') in an isolated closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
252 | }
253 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:279:13: warning: capture of 'self' with non-sendable type 'WebKitLayoutEngine' in a '@Sendable' closure
60 |
61 | import WebKit
62 | open class WebKitLayoutEngine: NSObject, LayoutEngine {
| `- note: class 'WebKitLayoutEngine' does not conform to the 'Sendable' protocol
63 |
64 | // Policy to detect page loading end
:
277 | javaScriptQueue.async { [unowned self] in
278 |
279 | self.webView.evaluateJavaScript(self.javascriptToGetContent.javascript) { [unowned self] (obj, error) -> Void in
| `- warning: capture of 'self' with non-sendable type 'WebKitLayoutEngine' in a '@Sendable' closure
280 | self.javaScriptQueue.async {
281 | completionHandler?(obj, error)
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:281:21: warning: capture of 'completionHandler' with non-sendable type 'CompletionHandler?' (aka 'Optional<(Optional<Any>, Optional<any Error>) -> ()>') in a '@Sendable' closure
279 | self.webView.evaluateJavaScript(self.javascriptToGetContent.javascript) { [unowned self] (obj, error) -> Void in
280 | self.javaScriptQueue.async {
281 | completionHandler?(obj, error)
| |- warning: capture of 'completionHandler' with non-sendable type 'CompletionHandler?' (aka 'Optional<(Optional<Any>, Optional<any Error>) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
282 | }
283 | }
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:279:26: warning: call to main actor-isolated instance method 'evaluateJavaScript(_:completionHandler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
277 | javaScriptQueue.async { [unowned self] in
278 |
279 | self.webView.evaluateJavaScript(self.javascriptToGetContent.javascript) { [unowned self] (obj, error) -> Void in
| `- warning: call to main actor-isolated instance method 'evaluateJavaScript(_:completionHandler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
280 | self.javaScriptQueue.async {
281 | completionHandler?(obj, error)
WebKit.WKWebView.evaluateJavaScript:2:22: note: calls to instance method 'evaluateJavaScript(_:completionHandler:)' from outside of its actor context are implicitly asynchronous
1 | class WKWebView {
2 | @MainActor open func evaluateJavaScript(_ javaScriptString: String, completionHandler: (@MainActor @Sendable (Any?, (any Error)?) -> Void)? = nil)}
| `- note: calls to instance method 'evaluateJavaScript(_:completionHandler:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:281:21: warning: capture of 'completionHandler' with non-sendable type 'CompletionHandler?' (aka 'Optional<(Optional<Any>, Optional<any Error>) -> ()>') in a '@Sendable' closure
279 | self.webView.evaluateJavaScript(self.javascriptToGetContent.javascript) { [unowned self] (obj, error) -> Void in
280 | self.javaScriptQueue.async {
281 | completionHandler?(obj, error)
| |- warning: capture of 'completionHandler' with non-sendable type 'CompletionHandler?' (aka 'Optional<(Optional<Any>, Optional<any Error>) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
282 | }
283 | }
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:281:40: warning: capture of 'obj' with non-sendable type 'Any?' in a '@Sendable' closure
279 | self.webView.evaluateJavaScript(self.javascriptToGetContent.javascript) { [unowned self] (obj, error) -> Void in
280 | self.javaScriptQueue.async {
281 | completionHandler?(obj, error)
| `- warning: capture of 'obj' with non-sendable type 'Any?' in a '@Sendable' closure
282 | }
283 | }
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:294:31: warning: main actor-isolated property 'processPool' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
285 | }
286 |
287 | public func clear() {
| `- note: add '@MainActor' to make instance method 'clear()' part of global actor 'MainActor'
288 | // try to remove all information
289 | if let cookies = HTTPCookieStorage.shared.cookies {
:
292 | }
293 | }
294 | webView.configuration.processPool = WKProcessPool()
| `- warning: main actor-isolated property 'processPool' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
295 | // maybe reset url?
296 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebViewConfiguration.h:110:46: note: mutation of this property is only permitted within the actor
108 | that pool will be used.
109 | */
110 | @property (nonatomic, strong) WKProcessPool *processPool;
| `- note: mutation of this property is only permitted within the actor
111 |
112 | /*! @abstract The preference settings to be used by the web view.
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:294:17: warning: main actor-isolated property 'configuration' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
285 | }
286 |
287 | public func clear() {
| `- note: add '@MainActor' to make instance method 'clear()' part of global actor 'MainActor'
288 | // try to remove all information
289 | if let cookies = HTTPCookieStorage.shared.cookies {
:
292 | }
293 | }
294 | webView.configuration.processPool = WKProcessPool()
| `- warning: main actor-isolated property 'configuration' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
295 | // maybe reset url?
296 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebView.h:91:63: note: mutation of this property is only permitted within the actor
89 | /*! @abstract A copy of the configuration with which the web view was
90 | initialized. */
91 | @property (nonatomic, readonly, copy) WKWebViewConfiguration *configuration;
| `- note: mutation of this property is only permitted within the actor
92 |
93 | /*! @abstract The web view's navigation delegate. */
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:294:45: warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
285 | }
286 |
287 | public func clear() {
| `- note: add '@MainActor' to make instance method 'clear()' part of global actor 'MainActor'
288 | // try to remove all information
289 | if let cookies = HTTPCookieStorage.shared.cookies {
:
292 | }
293 | }
294 | webView.configuration.processPool = WKProcessPool()
| `- warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
295 | // maybe reset url?
296 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/usr/include/objc/NSObject.h:66:1: note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
64 |
65 | + (void)initialize;
66 | - (instancetype)init
| `- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
67 | #if NS_ENFORCE_NSOBJECT_DESIGNATED_INITIALIZER
68 | NS_DESIGNATED_INITIALIZER
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:319:40: warning: main actor-isolated property 'subviews' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
303 | #endif
304 | extension WebKitLayoutEngine {
305 | public func snapshot(_ size: CGSize) -> ErikImage? {
| `- note: add '@MainActor' to make instance method 'snapshot' part of global actor 'MainActor'
306 | #if os(iOS)
307 | if let capturedView: UIView = self.webView.snapshotView(afterScreenUpdates: false) {
:
317 | }
318 | #elseif os(OSX)
319 | if let view = self.webView.subviews.first,
| `- warning: main actor-isolated property 'subviews' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
320 | let rep: NSBitmapImageRep = view.bitmapImageRepForCachingDisplay(in: view.bounds) {
321 | view.cacheDisplay(in: view.bounds, to:rep)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:88:46: note: property declared here
86 | @property (nullable, readonly, unsafe_unretained) NSWindow *window;
87 | @property (nullable, readonly, unsafe_unretained) NSView *superview;
88 | @property (copy) NSArray<__kindof NSView *> *subviews;
| `- note: property declared here
89 | - (BOOL)isDescendantOf:(NSView *)view;
90 | - (nullable NSView *)ancestorSharedWithView:(NSView *)view;
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:320:50: warning: call to main actor-isolated instance method 'bitmapImageRepForCachingDisplay(in:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
303 | #endif
304 | extension WebKitLayoutEngine {
305 | public func snapshot(_ size: CGSize) -> ErikImage? {
| `- note: add '@MainActor' to make instance method 'snapshot' part of global actor 'MainActor'
306 | #if os(iOS)
307 | if let capturedView: UIView = self.webView.snapshotView(afterScreenUpdates: false) {
:
318 | #elseif os(OSX)
319 | if let view = self.webView.subviews.first,
320 | let rep: NSBitmapImageRep = view.bitmapImageRepForCachingDisplay(in: view.bounds) {
| `- warning: call to main actor-isolated instance method 'bitmapImageRepForCachingDisplay(in:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
321 | view.cacheDisplay(in: view.bounds, to:rep)
322 | let image = NSImage(size: size)
AppKit.NSView.bitmapImageRepForCachingDisplay:2:22: note: calls to instance method 'bitmapImageRepForCachingDisplay(in:)' from outside of its actor context are implicitly asynchronous
1 | class NSView {
2 | @MainActor open func bitmapImageRepForCachingDisplay(in rect: NSRect) -> NSBitmapImageRep?}
| |- note: calls to instance method 'bitmapImageRepForCachingDisplay(in:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:320:91: warning: main actor-isolated property 'bounds' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
303 | #endif
304 | extension WebKitLayoutEngine {
305 | public func snapshot(_ size: CGSize) -> ErikImage? {
| `- note: add '@MainActor' to make instance method 'snapshot' part of global actor 'MainActor'
306 | #if os(iOS)
307 | if let capturedView: UIView = self.webView.snapshotView(afterScreenUpdates: false) {
:
318 | #elseif os(OSX)
319 | if let view = self.webView.subviews.first,
320 | let rep: NSBitmapImageRep = view.bitmapImageRepForCachingDisplay(in: view.bounds) {
| `- warning: main actor-isolated property 'bounds' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
321 | view.cacheDisplay(in: view.bounds, to:rep)
322 | let image = NSImage(size: size)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:139:18: note: property declared here
137 | - (void)scaleUnitSquareToSize:(NSSize)newUnitSize;
138 | - (void)rotateByAngle:(CGFloat)angle;
139 | @property NSRect bounds;
| `- note: property declared here
140 |
141 | @property (getter=isFlipped, readonly) BOOL flipped;
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:321:22: warning: call to main actor-isolated instance method 'cacheDisplay(in:to:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
303 | #endif
304 | extension WebKitLayoutEngine {
305 | public func snapshot(_ size: CGSize) -> ErikImage? {
| `- note: add '@MainActor' to make instance method 'snapshot' part of global actor 'MainActor'
306 | #if os(iOS)
307 | if let capturedView: UIView = self.webView.snapshotView(afterScreenUpdates: false) {
:
319 | if let view = self.webView.subviews.first,
320 | let rep: NSBitmapImageRep = view.bitmapImageRepForCachingDisplay(in: view.bounds) {
321 | view.cacheDisplay(in: view.bounds, to:rep)
| `- warning: call to main actor-isolated instance method 'cacheDisplay(in:to:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
322 | let image = NSImage(size: size)
323 | image.addRepresentation(rep)
AppKit.NSView.cacheDisplay:2:22: note: calls to instance method 'cacheDisplay(in:to:)' from outside of its actor context are implicitly asynchronous
1 | class NSView {
2 | @MainActor open func cacheDisplay(in rect: NSRect, to bitmapImageRep: NSBitmapImageRep)}
| |- note: calls to instance method 'cacheDisplay(in:to:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSResponder'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:321:44: warning: main actor-isolated property 'bounds' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
303 | #endif
304 | extension WebKitLayoutEngine {
305 | public func snapshot(_ size: CGSize) -> ErikImage? {
| `- note: add '@MainActor' to make instance method 'snapshot' part of global actor 'MainActor'
306 | #if os(iOS)
307 | if let capturedView: UIView = self.webView.snapshotView(afterScreenUpdates: false) {
:
319 | if let view = self.webView.subviews.first,
320 | let rep: NSBitmapImageRep = view.bitmapImageRepForCachingDisplay(in: view.bounds) {
321 | view.cacheDisplay(in: view.bounds, to:rep)
| `- warning: main actor-isolated property 'bounds' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
322 | let image = NSImage(size: size)
323 | image.addRepresentation(rep)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:139:18: note: property declared here
137 | - (void)scaleUnitSquareToSize:(NSSize)newUnitSize;
138 | - (void)rotateByAngle:(CGFloat)angle;
139 | @property NSRect bounds;
| `- note: property declared here
140 |
141 | @property (getter=isFlipped, readonly) BOOL flipped;
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:340:34: warning: capture of 'self' with non-sendable type 'WebKitLayoutEngine' in a '@Sendable' closure
60 |
61 | import WebKit
62 | open class WebKitLayoutEngine: NSObject, LayoutEngine {
| `- note: class 'WebKitLayoutEngine' does not conform to the 'Sendable' protocol
63 |
64 | // Policy to detect page loading end
:
338 |
339 |
340 | var source = "var \(self.javaScriptResultVarName);"
| `- warning: capture of 'self' with non-sendable type 'WebKitLayoutEngine' in a '@Sendable' closure
341 | source += " try { "
342 | source += javaScript
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:357:25: warning: capture of 'completionHandler' with non-sendable type 'CompletionHandler?' (aka 'Optional<(Optional<Any>, Optional<any Error>) -> ()>') in a '@Sendable' closure
355 |
356 | if let e = error {
357 | completionHandler?(object, e) // must not be called
| |- warning: capture of 'completionHandler' with non-sendable type 'CompletionHandler?' (aka 'Optional<(Optional<Any>, Optional<any Error>) -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
358 | return
359 | }
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:353:26: warning: call to main actor-isolated instance method 'evaluateJavaScript(_:completionHandler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
351 |
352 | self.expect(key)
353 | self.webView.evaluateJavaScript(source) {[unowned self] (object, error) -> Void in
| `- warning: call to main actor-isolated instance method 'evaluateJavaScript(_:completionHandler:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
354 | self.callBackQueue.asyncOrCurrent { [unowned self] in // XXX maybe if self.callBackQueue.isCurrent execute the block now
355 |
WebKit.WKWebView.evaluateJavaScript:2:22: note: calls to instance method 'evaluateJavaScript(_:completionHandler:)' from outside of its actor context are implicitly asynchronous
1 | class WKWebView {
2 | @MainActor open func evaluateJavaScript(_ javaScriptString: String, completionHandler: (@MainActor @Sendable (Any?, (any Error)?) -> Void)? = nil)}
| `- note: calls to instance method 'evaluateJavaScript(_:completionHandler:)' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:384:29: warning: passing non-sendable parameter 'block' to function expecting a @Sendable closure
381 | extension DispatchQueue {
382 |
383 | func asyncOrCurrent(_ block: @escaping () -> Void) {
| `- note: parameter 'block' is implicitly non-sendable
384 | self.async(execute: block)
| `- warning: passing non-sendable parameter 'block' to function expecting a @Sendable closure
385 | }
386 |
/Users/admin/builder/spi-builder-workspace/Sources/LayoutEngine.swift:321:22: warning: sending 'rep' risks causing data races; this is an error in the Swift 6 language mode
319 | if let view = self.webView.subviews.first,
320 | let rep: NSBitmapImageRep = view.bitmapImageRepForCachingDisplay(in: view.bounds) {
321 | view.cacheDisplay(in: view.bounds, to:rep)
| |- warning: sending 'rep' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending 'rep' to main actor-isolated instance method 'cacheDisplay(in:to:)' risks causing data races between main actor-isolated and local nonisolated uses
322 | let image = NSImage(size: size)
323 | image.addRepresentation(rep)
| `- note: access can happen concurrently
324 | return nil //image https://github.com/lemonmojo/WKWebView-Screenshot
325 | }
Build complete! (11.23s)
warning: failed to retrieve search paths with pkg-config; maybe pkg-config is not installed
warning: you may be able to install libxml-2.0 using your system-packager:
brew install libxml2
warning: you may be able to install libxml-2.0 using your system-packager:
brew install libxml2
Build complete.
{
"dependencies" : [
{
"identity" : "kanna",
"requirement" : {
"range" : [
{
"lower_bound" : "5.0.0",
"upper_bound" : "6.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/tid-kijyun/Kanna.git"
},
{
"identity" : "brightfutures",
"requirement" : {
"range" : [
{
"lower_bound" : "8.0.0",
"upper_bound" : "9.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Thomvis/BrightFutures.git"
},
{
"identity" : "filekit",
"requirement" : {
"range" : [
{
"lower_bound" : "6.0.0",
"upper_bound" : "7.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/nvzqz/FileKit.git"
}
],
"manifest_display_name" : "Erik",
"name" : "Erik",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Erik",
"targets" : [
"Erik"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "ErikTests",
"module_type" : "SwiftTarget",
"name" : "ErikTests",
"path" : "ErikTests",
"product_dependencies" : [
"Kanna",
"BrightFutures",
"FileKit"
],
"sources" : [
"ErikTests.swift",
"KannaTests.swift"
],
"target_dependencies" : [
"Erik"
],
"type" : "test"
},
{
"c99name" : "Erik",
"module_type" : "SwiftTarget",
"name" : "Erik",
"path" : "Sources",
"product_dependencies" : [
"Kanna",
"BrightFutures"
],
"product_memberships" : [
"Erik"
],
"sources" : [
"Document.swift",
"Erik.swift",
"Future/Future.swift",
"LayoutEngine.swift"
],
"type" : "library"
}
],
"tools_version" : "5.1"
}
Done.