Build Information
Successful build of StreamUI, reference master (a83f11
), with Swift 6.1 for macOS (SPM) on 1 May 2025 10:49:09 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.3
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/StreamUI/StreamUI.swift.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/StreamUI/StreamUI.swift
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at a83f117 Update README.md
Cloned https://github.com/StreamUI/StreamUI.swift.git
Revision (git rev-parse @):
a83f117fd247b503acb233eb92a8d9ce9b55962f
SUCCESS checkout https://github.com/StreamUI/StreamUI.swift.git at master
Fetching https://github.com/vapor/console-kit.git
Fetching https://github.com/apple/swift-nio.git from cache
Fetching https://github.com/kean/Nuke.git
Fetching https://github.com/shogo4405/HaishinKit.swift.git
Fetching https://github.com/pointfreeco/xctest-dynamic-overlay from cache
Fetching https://github.com/pointfreeco/swift-concurrency-extras from cache
Fetching https://github.com/apple/swift-argument-parser.git from cache
[1/5485] Fetching console-kit
[221/31560] Fetching console-kit, nuke
[4625/68632] Fetching console-kit, nuke, haishinkit.swift
Fetched https://github.com/vapor/console-kit.git from cache (1.08s)
Fetched https://github.com/apple/swift-nio.git from cache (1.09s)
[4612/63147] Fetching nuke, haishinkit.swift
Fetching https://github.com/apple/swift-log.git from cache
Fetching https://github.com/apple/swift-system.git from cache
Fetched https://github.com/kean/Nuke.git from cache (1.70s)
Fetched https://github.com/pointfreeco/swift-concurrency-extras from cache (1.70s)
Fetched https://github.com/pointfreeco/xctest-dynamic-overlay from cache (1.71s)
Fetching https://github.com/pointfreeco/swift-clocks.git from cache
Fetching https://github.com/kylef/Spectre.git
Fetching https://github.com/stencilproject/Stencil.git
Fetched https://github.com/apple/swift-log.git from cache (0.66s)
Fetching https://github.com/kylef/PathKit.git
Fetched https://github.com/apple/swift-system.git from cache (0.79s)
Fetching https://github.com/apple/swift-collections.git from cache
[3315/37072] Fetching haishinkit.swift
Fetched https://github.com/pointfreeco/swift-clocks.git from cache (0.46s)
Fetching https://github.com/apple/swift-atomics.git from cache
[3338/38093] Fetching haishinkit.swift, spectre
[3502/43386] Fetching haishinkit.swift, spectre, stencil
[3714/44797] Fetching haishinkit.swift, spectre, stencil, pathkit
Fetched https://github.com/kylef/Spectre.git from cache (0.86s)
Fetching https://github.com/shogo4405/Logboard.git
[7765/43776] Fetching haishinkit.swift, stencil, pathkit
Fetched https://github.com/kylef/PathKit.git from cache (0.84s)
[6672/42365] Fetching haishinkit.swift, stencil
Fetched https://github.com/apple/swift-atomics.git from cache (0.48s)
Fetched https://github.com/apple/swift-collections.git from cache (0.78s)
Fetched https://github.com/stencilproject/Stencil.git from cache (1.02s)
[4342/37072] Fetching haishinkit.swift
[7416/38632] Fetching haishinkit.swift, logboard
Fetched https://github.com/shogo4405/Logboard.git from cache (1.05s)
[13638/37072] Fetching haishinkit.swift
Fetched https://github.com/shogo4405/HaishinKit.swift.git from cache (5.91s)
Fetched https://github.com/apple/swift-argument-parser.git from cache (5.91s)
Computing version for https://github.com/vapor/console-kit.git
Computed https://github.com/vapor/console-kit.git at 4.14.3 (6.44s)
Computing version for https://github.com/kean/Nuke.git
Computed https://github.com/kean/Nuke.git at 12.7.3 (0.46s)
Computing version for https://github.com/pointfreeco/swift-clocks.git
Computed https://github.com/pointfreeco/swift-clocks.git at 1.0.2 (0.91s)
Computing version for https://github.com/stencilproject/Stencil.git
Computed https://github.com/stencilproject/Stencil.git at 0.15.1 (0.57s)
Computing version for https://github.com/shogo4405/HaishinKit.swift.git
Computed https://github.com/shogo4405/HaishinKit.swift.git at 1.9.0 (0.46s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.5.4 (0.58s)
Computing version for https://github.com/apple/swift-argument-parser.git
Computed https://github.com/apple/swift-argument-parser.git at 1.4.0 (0.54s)
Computing version for https://github.com/apple/swift-nio.git
Computed https://github.com/apple/swift-nio.git at 2.67.0 (0.56s)
Computing version for https://github.com/pointfreeco/xctest-dynamic-overlay
Computed https://github.com/pointfreeco/xctest-dynamic-overlay at 1.1.2 (0.59s)
Computing version for https://github.com/pointfreeco/swift-concurrency-extras
Computed https://github.com/pointfreeco/swift-concurrency-extras at 1.1.0 (0.58s)
Computing version for https://github.com/kylef/Spectre.git
Computed https://github.com/kylef/Spectre.git at 0.10.1 (0.58s)
Computing version for https://github.com/kylef/PathKit.git
Computed https://github.com/kylef/PathKit.git at 1.0.1 (2.71s)
Computing version for https://github.com/shogo4405/Logboard.git
Computed https://github.com/shogo4405/Logboard.git at 2.5.0 (0.43s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.3.1 (0.48s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.1.1 (0.64s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.2.0 (0.44s)
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.5.4
Creating working copy for https://github.com/shogo4405/HaishinKit.swift.git
Working copy of https://github.com/shogo4405/HaishinKit.swift.git resolved at 1.9.0
Creating working copy for https://github.com/pointfreeco/swift-concurrency-extras
Working copy of https://github.com/pointfreeco/swift-concurrency-extras resolved at 1.1.0
Creating working copy for https://github.com/apple/swift-argument-parser.git
Working copy of https://github.com/apple/swift-argument-parser.git resolved at 1.4.0
Creating working copy for https://github.com/pointfreeco/swift-clocks.git
Working copy of https://github.com/pointfreeco/swift-clocks.git resolved at 1.0.2
Creating working copy for https://github.com/kylef/Spectre.git
Working copy of https://github.com/kylef/Spectre.git resolved at 0.10.1
Creating working copy for https://github.com/vapor/console-kit.git
Working copy of https://github.com/vapor/console-kit.git resolved at 4.14.3
Creating working copy for https://github.com/pointfreeco/xctest-dynamic-overlay
Working copy of https://github.com/pointfreeco/xctest-dynamic-overlay resolved at 1.1.2
Creating working copy for https://github.com/apple/swift-nio.git
Working copy of https://github.com/apple/swift-nio.git resolved at 2.67.0
Creating working copy for https://github.com/shogo4405/Logboard.git
Working copy of https://github.com/shogo4405/Logboard.git resolved at 2.5.0
Creating working copy for https://github.com/kylef/PathKit.git
Working copy of https://github.com/kylef/PathKit.git resolved at 1.0.1
Creating working copy for https://github.com/kean/Nuke.git
Working copy of https://github.com/kean/Nuke.git resolved at 12.7.3
Creating working copy for https://github.com/apple/swift-atomics.git
Working copy of https://github.com/apple/swift-atomics.git resolved at 1.2.0
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.1.1
Creating working copy for https://github.com/stencilproject/Stencil.git
Working copy of https://github.com/stencilproject/Stencil.git resolved at 0.15.1
Creating working copy for https://github.com/apple/swift-system.git
Working copy of https://github.com/apple/swift-system.git resolved at 1.3.1
========================================
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": "streamui.swift",
"name": "StreamUI",
"url": "https://github.com/StreamUI/StreamUI.swift.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/StreamUI.swift",
"dependencies": [
{
"identity": "swift-argument-parser",
"name": "swift-argument-parser",
"url": "https://github.com/apple/swift-argument-parser.git",
"version": "1.5.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-argument-parser",
"dependencies": [
]
},
{
"identity": "swift-log",
"name": "swift-log",
"url": "https://github.com/apple/swift-log.git",
"version": "1.6.3",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-log",
"dependencies": [
]
},
{
"identity": "haishinkit.swift",
"name": "HaishinKit",
"url": "https://github.com/shogo4405/HaishinKit.swift.git",
"version": "1.9.8",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/HaishinKit.swift",
"dependencies": [
{
"identity": "logboard",
"name": "Logboard",
"url": "https://github.com/shogo4405/Logboard.git",
"version": "2.5.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Logboard",
"dependencies": [
]
}
]
},
{
"identity": "stencil",
"name": "Stencil",
"url": "https://github.com/stencilproject/Stencil.git",
"version": "0.15.1",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Stencil",
"dependencies": [
{
"identity": "pathkit",
"name": "PathKit",
"url": "https://github.com/kylef/PathKit.git",
"version": "1.0.1",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/PathKit",
"dependencies": [
{
"identity": "spectre",
"name": "Spectre",
"url": "https://github.com/kylef/Spectre.git",
"version": "0.10.1",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Spectre",
"dependencies": [
]
}
]
},
{
"identity": "spectre",
"name": "Spectre",
"url": "https://github.com/kylef/Spectre.git",
"version": "0.10.1",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Spectre",
"dependencies": [
]
}
]
},
{
"identity": "swift-clocks",
"name": "swift-clocks",
"url": "https://github.com/pointfreeco/swift-clocks.git",
"version": "1.0.6",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-clocks",
"dependencies": [
{
"identity": "swift-concurrency-extras",
"name": "swift-concurrency-extras",
"url": "https://github.com/pointfreeco/swift-concurrency-extras",
"version": "1.3.1",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-concurrency-extras",
"dependencies": [
]
},
{
"identity": "xctest-dynamic-overlay",
"name": "xctest-dynamic-overlay",
"url": "https://github.com/pointfreeco/xctest-dynamic-overlay",
"version": "1.5.2",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/xctest-dynamic-overlay",
"dependencies": [
]
}
]
},
{
"identity": "nuke",
"name": "Nuke",
"url": "https://github.com/kean/Nuke.git",
"version": "12.8.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/Nuke",
"dependencies": [
]
},
{
"identity": "console-kit",
"name": "console-kit",
"url": "https://github.com/vapor/console-kit.git",
"version": "4.15.2",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/console-kit",
"dependencies": [
{
"identity": "swift-log",
"name": "swift-log",
"url": "https://github.com/apple/swift-log.git",
"version": "1.6.3",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-log",
"dependencies": [
]
},
{
"identity": "swift-nio",
"name": "swift-nio",
"url": "https://github.com/apple/swift-nio.git",
"version": "2.82.1",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-nio",
"dependencies": [
{
"identity": "swift-atomics",
"name": "swift-atomics",
"url": "https://github.com/apple/swift-atomics.git",
"version": "1.2.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-atomics",
"dependencies": [
]
},
{
"identity": "swift-collections",
"name": "swift-collections",
"url": "https://github.com/apple/swift-collections.git",
"version": "1.1.4",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-collections",
"dependencies": [
]
},
{
"identity": "swift-system",
"name": "swift-system",
"url": "https://github.com/apple/swift-system.git",
"version": "1.4.2",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swift-system",
"dependencies": [
]
}
]
}
]
}
]
}
]
}
Fetching https://github.com/StreamUI/StreamUI.swift.git
[1/224] Fetching streamui.swift
Fetched https://github.com/StreamUI/StreamUI.swift.git from cache (0.76s)
Fetching https://github.com/kean/Nuke.git from cache
Fetching https://github.com/vapor/console-kit.git from cache
Fetching https://github.com/stencilproject/Stencil.git from cache
Fetching https://github.com/shogo4405/HaishinKit.swift.git from cache
Fetching https://github.com/apple/swift-argument-parser.git from cache
Fetching https://github.com/pointfreeco/swift-clocks.git from cache
Fetching https://github.com/apple/swift-log.git from cache
Fetched https://github.com/pointfreeco/swift-clocks.git from cache (0.59s)
Fetched https://github.com/shogo4405/HaishinKit.swift.git from cache (0.59s)
Fetched https://github.com/apple/swift-argument-parser.git from cache (0.60s)
Fetched https://github.com/vapor/console-kit.git from cache (0.60s)
Fetched https://github.com/kean/Nuke.git from cache (0.60s)
Fetched https://github.com/stencilproject/Stencil.git from cache (0.60s)
Fetched https://github.com/apple/swift-log.git from cache (0.60s)
Computing version for https://github.com/stencilproject/Stencil.git
Computed https://github.com/stencilproject/Stencil.git at 0.15.1 (0.68s)
Fetching https://github.com/kylef/Spectre.git from cache
Fetching https://github.com/kylef/PathKit.git from cache
Fetched https://github.com/kylef/Spectre.git from cache (0.44s)
Fetched https://github.com/kylef/PathKit.git from cache (0.44s)
Computing version for https://github.com/kylef/Spectre.git
Computed https://github.com/kylef/Spectre.git at 0.10.1 (0.51s)
Computing version for https://github.com/kylef/PathKit.git
Computed https://github.com/kylef/PathKit.git at 1.0.1 (0.03s)
Computing version for https://github.com/kean/Nuke.git
Computed https://github.com/kean/Nuke.git at 12.8.0 (0.05s)
Computing version for https://github.com/apple/swift-argument-parser.git
Computed https://github.com/apple/swift-argument-parser.git at 1.5.0 (0.05s)
Computing version for https://github.com/vapor/console-kit.git
Computed https://github.com/vapor/console-kit.git at 4.15.2 (0.04s)
Fetching https://github.com/apple/swift-nio.git from cache
Fetched https://github.com/apple/swift-nio.git from cache (0.72s)
Computing version for https://github.com/pointfreeco/swift-clocks.git
Computed https://github.com/pointfreeco/swift-clocks.git at 1.0.6 (1.23s)
Fetching https://github.com/pointfreeco/swift-concurrency-extras from cache
Fetching https://github.com/pointfreeco/xctest-dynamic-overlay from cache
Fetched https://github.com/pointfreeco/swift-concurrency-extras from cache (0.48s)
Fetched https://github.com/pointfreeco/xctest-dynamic-overlay from cache (0.49s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.6.3 (0.96s)
Computing version for https://github.com/pointfreeco/swift-concurrency-extras
Computed https://github.com/pointfreeco/swift-concurrency-extras at 1.3.1 (0.45s)
Computing version for https://github.com/shogo4405/HaishinKit.swift.git
Computed https://github.com/shogo4405/HaishinKit.swift.git at 1.9.8 (0.03s)
Fetching https://github.com/shogo4405/Logboard.git from cache
Fetched https://github.com/shogo4405/Logboard.git from cache (0.46s)
Computing version for https://github.com/shogo4405/Logboard.git
Computed https://github.com/shogo4405/Logboard.git at 2.5.0 (0.51s)
Computing version for https://github.com/pointfreeco/xctest-dynamic-overlay
Computed https://github.com/pointfreeco/xctest-dynamic-overlay at 1.5.2 (0.46s)
Computing version for https://github.com/apple/swift-nio.git
Computed https://github.com/apple/swift-nio.git at 2.82.1 (0.68s)
Fetching https://github.com/apple/swift-atomics.git from cache
Fetching https://github.com/apple/swift-collections.git from cache
Fetching https://github.com/apple/swift-system.git from cache
Fetched https://github.com/apple/swift-atomics.git from cache (0.52s)
Fetched https://github.com/apple/swift-collections.git from cache (0.53s)
Fetched https://github.com/apple/swift-system.git from cache (0.54s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.2.0 (0.60s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.4.2 (0.44s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.1.4 (0.03s)
Creating working copy for https://github.com/vapor/console-kit.git
Working copy of https://github.com/vapor/console-kit.git resolved at 4.15.2
Creating working copy for https://github.com/shogo4405/HaishinKit.swift.git
Working copy of https://github.com/shogo4405/HaishinKit.swift.git resolved at 1.9.8
Creating working copy for https://github.com/apple/swift-nio.git
Working copy of https://github.com/apple/swift-nio.git resolved at 2.82.1
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.6.3
Creating working copy for https://github.com/apple/swift-system.git
Working copy of https://github.com/apple/swift-system.git resolved at 1.4.2
Creating working copy for https://github.com/apple/swift-argument-parser.git
Working copy of https://github.com/apple/swift-argument-parser.git resolved at 1.5.0
Creating working copy for https://github.com/pointfreeco/swift-clocks.git
Working copy of https://github.com/pointfreeco/swift-clocks.git resolved at 1.0.6
Creating working copy for https://github.com/pointfreeco/swift-concurrency-extras
Working copy of https://github.com/pointfreeco/swift-concurrency-extras resolved at 1.3.1
Creating working copy for https://github.com/pointfreeco/xctest-dynamic-overlay
Working copy of https://github.com/pointfreeco/xctest-dynamic-overlay resolved at 1.5.2
Creating working copy for https://github.com/kean/Nuke.git
Working copy of https://github.com/kean/Nuke.git resolved at 12.8.0
Creating working copy for https://github.com/apple/swift-atomics.git
Working copy of https://github.com/apple/swift-atomics.git resolved at 1.2.0
Creating working copy for https://github.com/shogo4405/Logboard.git
Working copy of https://github.com/shogo4405/Logboard.git resolved at 2.5.0
Creating working copy for https://github.com/stencilproject/Stencil.git
Working copy of https://github.com/stencilproject/Stencil.git resolved at 0.15.1
Creating working copy for https://github.com/kylef/PathKit.git
Working copy of https://github.com/kylef/PathKit.git resolved at 1.0.1
Creating working copy for https://github.com/StreamUI/StreamUI.swift.git
Working copy of https://github.com/StreamUI/StreamUI.swift.git resolved at master (a83f117)
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.1.4
Creating working copy for https://github.com/kylef/Spectre.git
Working copy of https://github.com/kylef/Spectre.git resolved at 0.10.1
Found 7 product dependencies
- swift-argument-parser
- swift-log
- HaishinKit
- Stencil
- swift-clocks
- Nuke
- console-kit
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/StreamUI/StreamUI.swift.git
https://github.com/StreamUI/StreamUI.swift.git
{
"dependencies" : [
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.4.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser.git"
},
{
"identity" : "swift-log",
"requirement" : {
"range" : [
{
"lower_bound" : "1.5.4",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-log.git"
},
{
"identity" : "haishinkit.swift",
"requirement" : {
"range" : [
{
"lower_bound" : "1.9.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/shogo4405/HaishinKit.swift.git"
},
{
"identity" : "stencil",
"requirement" : {
"range" : [
{
"lower_bound" : "0.15.1",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/stencilproject/Stencil.git"
},
{
"identity" : "swift-clocks",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.2",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/pointfreeco/swift-clocks.git"
},
{
"identity" : "nuke",
"requirement" : {
"range" : [
{
"lower_bound" : "12.7.3",
"upper_bound" : "13.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/kean/Nuke.git"
},
{
"identity" : "console-kit",
"requirement" : {
"range" : [
{
"lower_bound" : "4.14.3",
"upper_bound" : "5.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/vapor/console-kit.git"
}
],
"manifest_display_name" : "StreamUI",
"name" : "StreamUI",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "14.0"
}
],
"products" : [
{
"name" : "StreamUI",
"targets" : [
"StreamUI"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "CLIExample",
"targets" : [
"CLIExample"
],
"type" : {
"executable" : null
}
},
{
"name" : "VideoViews",
"targets" : [
"VideoViews"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "GenerateTemplate",
"targets" : [
"GenerateTemplate"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "VideoViews",
"module_type" : "SwiftTarget",
"name" : "VideoViews",
"path" : "Examples/VideoViews",
"product_memberships" : [
"CLIExample",
"VideoViews"
],
"sources" : [
"BasicCounterView.swift",
"ImageTestView.swift",
"RandomSwiftUIComponentsTestView.swift",
"SceneKitTestView.swift",
"SoundTestView.swift",
"SpriteKitTestView.swift",
"VideoTestView.swift",
"WebViewTestView.swift"
],
"target_dependencies" : [
"StreamUI"
],
"type" : "library"
},
{
"c99name" : "StreamUITests",
"module_type" : "SwiftTarget",
"name" : "StreamUITests",
"path" : "Tests/StreamUITests",
"sources" : [
"StreamUITests.swift"
],
"target_dependencies" : [
"StreamUI"
],
"type" : "test"
},
{
"c99name" : "StreamUI",
"module_type" : "SwiftTarget",
"name" : "StreamUI",
"path" : "Sources/StreamUI",
"product_dependencies" : [
"HaishinKit",
"Logging",
"Clocks",
"Nuke",
"ConsoleKit"
],
"product_memberships" : [
"StreamUI",
"CLIExample",
"VideoViews"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Resources/discord.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Resources/github.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Resources/x.png",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Components/Internal/HUD.swift",
"Components/Internal/SizedView.swift",
"Components/StreamingImage.swift",
"Components/StreamingLoadingIndicator.swift",
"Components/StreamingMediaPlayer.swift",
"Components/StreamingProgressView.swift",
"Components/StreamingVideoPlayer.swift",
"Extensions/AVAudioTime+Extensions.swift",
"Extensions/Duration+Extensions.swift",
"Extensions/Image+Extension.swift",
"Helpers/ControlledClock.swift",
"Helpers/FrameTimer.swift",
"Helpers/LoggerHelper.swift",
"Helpers/MetalRenderer.swift",
"Helpers/PreloadManager.swift",
"Helpers/RecorderKeys.swift",
"Helpers/RenderSettings.swift",
"Helpers/Streams/AudioStream.swift",
"Helpers/Streams/FrameStream.swift",
"Helpers/createStreamUIRecorder.swift",
"Recorders/AudioRecorder/AudioRecorder.swift",
"Recorders/Recorder.swift",
"Recorders/VideoRecorder/Extensions/createCMSampleBuffer.swift",
"Recorders/VideoRecorder/VideoRecorder.swift",
"StreamUI.swift",
"Streaming/RTMPStreaming.swift"
],
"type" : "library"
},
{
"c99name" : "GenerateTemplate",
"module_type" : "SwiftTarget",
"name" : "GenerateTemplate",
"path" : "Scripts/GenerateTemplate",
"product_dependencies" : [
"Stencil",
"ArgumentParser",
"Logging"
],
"product_memberships" : [
"GenerateTemplate"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Scripts/GenerateTemplate/Templates/Package.swift.stencil",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Scripts/GenerateTemplate/Templates/main.swift.stencil",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"index.swift"
],
"type" : "executable"
},
{
"c99name" : "CLIExample",
"module_type" : "SwiftTarget",
"name" : "CLIExample",
"path" : "Examples/CLIExample",
"product_dependencies" : [
"ArgumentParser"
],
"product_memberships" : [
"CLIExample"
],
"sources" : [
"index.swift"
],
"target_dependencies" : [
"StreamUI",
"VideoViews"
],
"type" : "executable"
}
],
"tools_version" : "5.10"
}
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
[1/1] Compiling plugin GenerateManual
Building for debugging...
[1/37] Write sources
[7/37] Write CLIExample-entitlement.plist
[7/37] Write GenerateTemplate-entitlement.plist
[8/37] Copying x.png
[11/37] Copying discord.png
[11/37] Write sources
[11/37] Copying main.swift.stencil
[11/37] Write sources
[11/37] Copying Package.swift.stencil
[14/37] Write sources
[18/37] Copying github.png
[19/37] Write sources
[27/37] Write swift-version-2F0A5646E1D333AE.txt
[29/126] Compiling ArgumentParserToolInfo ToolInfo.swift
[30/126] Emitting module ArgumentParserToolInfo
[31/164] Compiling Logging MetadataProvider.swift
[31/164] Compiling c-nioatomics.c
[33/164] Emitting module Logging
[34/164] Compiling Logging LogHandler.swift
[35/164] Compiling Logging Logging.swift
[36/164] Compiling Logging Locks.swift
[36/164] Compiling SwiftPMSupport dummy.m
[37/164] Compiling c-atomics.c
[39/170] Compiling NIOConcurrencyHelpers NIOLockedValueBox.swift
[40/170] Emitting module NIOConcurrencyHelpers
[41/170] Compiling NIOConcurrencyHelpers NIOAtomic.swift
[42/170] Compiling NIOConcurrencyHelpers lock.swift
[43/170] Compiling NIOConcurrencyHelpers NIOLock.swift
[44/170] Compiling NIOConcurrencyHelpers atomics.swift
[45/197] Compiling ConcurrencyExtras ActorIsolated.swift
[46/197] Emitting module ConcurrencyExtras
[47/197] Compiling ConcurrencyExtras UncheckedSendable.swift
[48/197] Compiling XCTestDynamicOverlay Deprecations.swift
[49/197] Emitting module ConsoleKitTerminal
[50/199] Compiling ConsoleKitTerminal Console+Output.swift
[51/199] Compiling ConsoleKitTerminal Console+Wait.swift
[52/199] Compiling ConsoleKitTerminal ConsoleColor.swift
[53/199] Compiling ConsoleKitTerminal ConsoleClear.swift
[54/203] Compiling ConsoleKitTerminal readpassphrase_linux.swift
[55/203] Compiling ConsoleKitTerminal AnySendableHashable.swift
[56/203] Compiling ConsoleKitTerminal ProgressBar.swift
[57/203] Compiling ConsoleKitTerminal Console+Clear.swift
[58/203] Compiling ConsoleKitTerminal Console+Ephemeral.swift
[59/203] Compiling ConsoleKitTerminal ActivityIndicatorState.swift
[60/203] Compiling ConsoleKitTerminal CustomActivity.swift
[61/203] Compiling ConsoleKitTerminal LoadingBar.swift
[62/203] Compiling ConsoleKitTerminal ActivityBar.swift
[63/203] Compiling ConsoleKitTerminal ActivityIndicator.swift
[64/203] Compiling ConsoleKitTerminal ActivityIndicatorRenderer.swift
[65/203] Compiling ConsoleKitTerminal ConsoleStyle.swift
[66/203] Compiling ConsoleKitTerminal ConsoleText.swift
[67/203] Compiling ConsoleKitTerminal ConsoleTextFragment.swift
[68/203] Compiling ConsoleKitTerminal Console+Confirm.swift
[69/203] Compiling ConsoleKitTerminal Console+Input.swift
[70/203] Compiling ConsoleKitTerminal Console+Center.swift
[71/203] Compiling ArgumentParser Platform.swift
[72/203] Compiling ArgumentParser SequenceExtensions.swift
[73/203] Compiling ArgumentParser StringExtensions.swift
[74/203] Compiling ArgumentParser Tree.swift
[75/203] Compiling ConcurrencyExtras Result.swift
[76/203] Compiling ConcurrencyExtras Task.swift
[77/203] Compiling ConcurrencyExtras Locking.swift
[78/203] Compiling Logboard LBLoggerAppender.swift
[79/203] Compiling ConcurrencyExtras MainSerialExecutor.swift
[80/203] Compiling ConcurrencyExtras LockIsolated.swift
[81/203] Compiling ConcurrencyExtras AsyncStream.swift
[82/203] Compiling ConcurrencyExtras AsyncThrowingStream.swift
[83/203] Compiling Logboard MultiAppender.swift
[84/203] Compiling XCTestDynamicOverlay XCTCurrentTestCase.swift
[85/203] Compiling Logboard LBLogger.Data.swift
[86/203] Compiling Logboard ConsoleAppender.swift
[87/203] Emitting module Logboard
[88/203] Compiling Logboard LBLogger.swift
[89/203] Compiling XCTestDynamicOverlay GeneratePlaceholder.swift
[90/203] Compiling XCTestDynamicOverlay RuntimeWarnings.swift
[91/203] Compiling Logboard NullAppender.swift
[92/203] Emitting module XCTestDynamicOverlay
[93/203] Compiling XCTestDynamicOverlay DefaultInitializable.swift
[94/203] Compiling XCTestDynamicOverlay Unimplemented.swift
[95/203] Compiling XCTestDynamicOverlay XCTIsTesting.swift
[96/203] Compiling XCTestDynamicOverlay XCTExpectFailure.swift
[97/203] Compiling XCTestDynamicOverlay XCTFail.swift
[98/203] Emitting module ArgumentParser
[100/203] Compiling ConsoleKitTerminal ConsoleLogger.swift
[101/203] Compiling ConsoleKitTerminal LoggerFragment.swift
[102/203] Compiling ArgumentParser ExpressibleByArgument.swift
[103/203] Compiling ArgumentParser ParsableArguments.swift
[104/203] Compiling ArgumentParser ParsableArgumentsValidation.swift
[105/203] Compiling ArgumentParser ParsableCommand.swift
[106/203] Compiling ArgumentParser ArgumentDecoder.swift
[110/203] Compiling Logboard OSLoggerAppender.swift
[111/203] Compiling Logboard SocketAppender.swift
[116/203] Compiling ConsoleKitTerminal Console+Ask.swift
[117/203] Compiling ConsoleKitTerminal Console+Choose.swift
[124/203] Compiling ConsoleKitTerminal ANSI.swift
[125/203] Compiling ConsoleKitTerminal Console.swift
[126/203] Compiling ConsoleKitTerminal Terminal.swift
[129/348] Emitting module PathKit
[130/348] Compiling PathKit PathKit.swift
[131/348] Compiling ConsoleKitCommands MergedAsyncCommandGroup.swift
[132/348] Compiling ConsoleKitCommands Command.swift
[133/348] Compiling ConsoleKitCommands CommandContext.swift
[134/348] Compiling ConsoleKitCommands CommandError.swift
[135/348] Compiling HaishinKit CMTime+Extension.swift
[136/348] Compiling HaishinKit CMVideoDimention+Extension.swift
[137/348] Compiling HaishinKit CMVideoFormatDescription+Extension.swift
[138/348] Compiling HaishinKit CVPixelBuffer+Extension.swift
[139/348] Compiling ConsoleKitCommands CommandInput.swift
[140/348] Compiling ConsoleKitCommands Argument.swift
[141/348] Compiling ConsoleKitCommands CommandSignature.swift
[142/348] Compiling ConsoleKitCommands GenerateAutocompleteCommand.swift
[143/348] Compiling HaishinKit IOCaptureSession.swift
[144/348] Compiling HaishinKit IOCaptureUnit.swift
[145/348] Compiling HaishinKit IOCaptureVideoPreview.swift
[146/348] Compiling HaishinKit IOMixer.swift
[147/370] Compiling Stencil Errors.swift
[148/370] Compiling Stencil Expression.swift
[149/372] Emitting module ConsoleKitCommands
[150/372] Compiling Stencil Context.swift
[151/372] Compiling Stencil DynamicMemberLookup.swift
[152/372] Compiling Stencil Environment.swift
[153/372] Compiling Stencil Include.swift
[154/372] Compiling Stencil LazyValueWrapper.swift
[155/372] Compiling Stencil ForTag.swift
[156/372] Compiling Stencil IfTag.swift
[157/372] Compiling Stencil Lexer.swift
[158/372] Compiling Stencil NowTag.swift
[159/372] Compiling Stencil Parser.swift
[160/372] Emitting module Stencil
[161/374] Compiling Stencil TrimBehaviour.swift
[162/374] Compiling Stencil Variable.swift
[163/374] Compiling Stencil Loader.swift
[164/374] Compiling Stencil Node.swift
[171/374] Compiling Stencil Inheritance.swift
[172/374] Compiling Stencil KeyPath.swift
[173/374] Compiling Stencil Template.swift
[174/374] Compiling Stencil Tokenizer.swift
[180/374] Compiling Stencil Extension.swift
[181/374] Compiling Stencil FilterTag.swift
[182/374] Compiling Stencil Filters.swift
[184/374] Compiling Clocks Timer.swift
[185/374] Compiling Clocks UnimplementedClock.swift
[197/374] Emitting module Clocks
[198/374] Compiling Clocks TestClock.swift
[199/379] Compiling Clocks ImmediateClock.swift
[200/379] Compiling Clocks AnyClock.swift
[201/379] Compiling ConsoleKit Exports.swift
[202/379] Emitting module ConsoleKit
[203/379] Emitting module Nuke
[205/384] Compiling HaishinKit CVPixelBufferPool+Extension.swift
[206/384] Compiling HaishinKit IOAudioMixerBySingleTrack.swift
[207/384] Compiling HaishinKit IOAudioMixerSettings.swift
[208/384] Compiling HaishinKit IOAudioMixerTrack.swift
[209/384] Compiling HaishinKit IOAudioMonitor.swift
[216/384] Compiling HaishinKit ExpressibleByIntegerLiteral+Extension.swift
[217/384] Compiling HaishinKit Mirror+Extension.swift
[218/384] Compiling HaishinKit NSView+Extension.swift
[219/384] Compiling HaishinKit URL+Extension.swift
[220/384] Compiling HaishinKit VTCompressionSession+Extension.swift
[221/384] Compiling HaishinKit VTDecompressionSession+Extension.swift
[222/384] Compiling HaishinKit VTRotationSessionOption+Extension.swift
[223/384] Compiling HaishinKit vImage_Buffer+Extension.swift
[224/384] Compiling HaishinKit AudioNode.swift
[225/384] Compiling HaishinKit IOAudioCaptureUnit.swift
[232/384] Compiling HaishinKit IOAudioRingBuffer.swift
[233/384] Compiling HaishinKit IOAudioTime.swift
[234/384] Compiling HaishinKit IOAudioUnit.swift
[239/384] Compiling HaishinKit IOMuxer.swift
[240/384] Compiling HaishinKit IOStream.swift
[241/384] Compiling HaishinKit Data+Extension.swift
[242/384] Compiling Nuke TaskFetchOriginalData.swift
[243/384] Compiling Nuke TaskFetchOriginalImage.swift
[244/384] Compiling Nuke TaskFetchWithPublisher.swift
[245/384] Compiling Nuke TaskLoadData.swift
[246/384] Compiling Nuke TaskLoadImage.swift
[259/384] Compiling Clocks SwiftUI.swift
[260/384] Compiling Clocks _AsyncTimerSequence.swift
[261/384] Compiling Clocks Shims.swift
[262/384] Compiling Clocks Lock.swift
[276/396] Emitting module HaishinKit
[316/396] Compiling GenerateTemplate resource_bundle_accessor.swift
[320/396] Compiling HaishinKit IOStreamView.swift
[321/396] Compiling HaishinKit IOTellyUnit.swift
[322/396] Compiling HaishinKit IOUnit.swift
[323/396] Compiling HaishinKit IOVideoCaptureUnit.swift
[324/396] Compiling HaishinKit IOVideoMixer.swift
[325/396] Compiling HaishinKit IOVideoMixerSettings.swift
[326/396] Compiling HaishinKit IOVideoUnit.swift
[327/396] Compiling HaishinKit MTHKView.swift
[328/396] Compiling HaishinKit MediaLink.swift
[329/396] Compiling HaishinKit RTMPStreamInfo.swift
[330/396] Compiling HaishinKit RTMPTSocket.swift
[331/396] Compiling HaishinKit RTMPTimestamp.swift
[332/396] Compiling HaishinKit Choreographer.swift
[333/396] Compiling HaishinKit Screen.swift
[334/396] Compiling HaishinKit ScreenObject.swift
[335/396] Compiling HaishinKit ScreenObjectContainer.swift
[336/396] Compiling HaishinKit ScreenRenderer.swift
[337/396] Compiling HaishinKit Shape.swift
[338/396] Compiling HaishinKit ShapeFactory.swift
[339/396] Compiling HaishinKit VideoEffect.swift
[340/396] Compiling HaishinKit VideoRotator.swift
[341/396] Compiling GenerateTemplate index.swift
/Users/admin/builder/spi-builder-workspace/Scripts/GenerateTemplate/index.swift:16:13: warning: initialization of immutable value 'templatesPath' was never used; consider replacing with assignment to '_' or removing it
14 | let currentPath = FileManager.default.currentDirectoryPath
15 |
16 | let templatesPath = currentPath + "/Scripts/GenerateTemplate/Templates"
| `- warning: initialization of immutable value 'templatesPath' was never used; consider replacing with assignment to '_' or removing it
17 |
18 | guard !FileManager.default.fileExists(atPath: productName) else {
[342/396] Emitting module GenerateTemplate
[342/396] Write Objects.LinkFileList
[344/396] Compiling HaishinKit AVAudioUtil.swift
[345/396] Compiling HaishinKit AnyUtil.swift
[346/396] Compiling HaishinKit Atomic.swift
[347/396] Compiling HaishinKit ByteArray.swift
[348/396] Compiling HaishinKit Constants.swift
[349/396] Compiling HaishinKit DataBuffer.swift
[350/396] Compiling HaishinKit DataConvertible.swift
[351/396] Compiling HaishinKit DeviceUtil.swift
[352/396] Compiling HaishinKit InstanceHolder.swift
[353/396] Compiling HaishinKit MD5.swift
[354/396] Compiling HaishinKit Running.swift
[355/396] Compiling HaishinKit TypedBlockQueue.swift
[356/396] Compiling HaishinKit PacketizedElementaryStream.swift
[357/396] Compiling HaishinKit TSField.swift
[358/396] Compiling HaishinKit TSPacket.swift
[359/396] Compiling HaishinKit TSProgram.swift
[360/396] Compiling HaishinKit TSReader.swift
[361/396] Compiling HaishinKit TSWriter.swift
[362/396] Compiling HaishinKit NetClient.swift
[363/396] Compiling HaishinKit NetService.swift
[364/396] Compiling HaishinKit NetSocket.swift
[365/396] Compiling HaishinKit AMF0Serializer.swift
[366/396] Compiling HaishinKit AMF3Serializer.swift
[367/396] Compiling HaishinKit AMFFoundation.swift
[368/396] Compiling HaishinKit PiPHKView.swift
[369/396] Compiling HaishinKit SoundTransform.swift
[370/396] Compiling HaishinKit ADTS.swift
[371/396] Compiling HaishinKit AVCDecoderConfigurationRecord.swift
[372/396] Compiling HaishinKit AVCNALUnit.swift
[373/396] Compiling HaishinKit AudioSpecificConfig.swift
[374/396] Compiling HaishinKit CRC32.swift
[375/396] Compiling HaishinKit ESSpecificData.swift
[376/396] Compiling HaishinKit HEVCDecoderConfigurationRecord.swift
[377/396] Compiling HaishinKit HEVCNALUnit.swift
[378/396] Compiling HaishinKit ISOTypeBufferUtil.swift
[379/396] Compiling HaishinKit NALUnitReader.swift
[380/396] Compiling HaishinKit EventDispatcher.swift
[381/396] Compiling HaishinKit FLVFoundation.swift
[382/396] Compiling HaishinKit RTMPChunk.swift
[383/396] Compiling HaishinKit RTMPConnection.swift
[384/396] Compiling HaishinKit RTMPHandshake.swift
[385/396] Compiling HaishinKit RTMPMessage.swift
[386/396] Compiling HaishinKit RTMPMuxer.swift
[387/396] Compiling HaishinKit RTMPNWSocket.swift
[388/396] Compiling HaishinKit RTMPObjectEncoding.swift
[389/396] Compiling HaishinKit RTMPSharedObject.swift
[390/396] Compiling HaishinKit RTMPSocketCompatible.swift
[391/396] Compiling HaishinKit RTMPStream.swift
[391/396] Linking GenerateTemplate
[392/396] Applying GenerateTemplate
[394/422] Compiling StreamUI Image+Extension.swift
[395/422] Compiling StreamUI ControlledClock.swift
[396/422] Compiling StreamUI FrameTimer.swift
[397/422] Compiling StreamUI RecorderKeys.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/RecorderKeys.swift:11:23: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Recorder?' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | public struct RecorderKey: EnvironmentKey {
11 | public static let defaultValue: Recorder? = nil
| |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Recorder?' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | }
13 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:8:14: note: class 'Recorder' does not conform to the 'Sendable' protocol
6 |
7 | @Observable
8 | public class Recorder {
| `- note: class 'Recorder' does not conform to the 'Sendable' protocol
9 | public enum RecordingState {
10 | case idle, recording, paused, finished
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/Streams/AudioStream.swift:26:23: warning: sending value of non-Sendable type 'AudioSample' risks causing data races; this is an error in the Swift 6 language mode
24 |
25 | func enqueue(_ buffer: AVAudioPCMBuffer, withTime time: CMTime) {
26 | continuation?.yield(AudioSample(buffer: buffer, time: time))
| |- warning: sending value of non-Sendable type 'AudioSample' risks causing data races; this is an error in the Swift 6 language mode
| `- note: Passing task-isolated value of non-Sendable type 'AudioSample' as a 'sending' parameter risks causing races inbetween task-isolated uses and uses reachable from the callee
27 | }
28 |
[398/422] Compiling StreamUI RenderSettings.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/RecorderKeys.swift:11:23: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Recorder?' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | public struct RecorderKey: EnvironmentKey {
11 | public static let defaultValue: Recorder? = nil
| |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Recorder?' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | }
13 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:8:14: note: class 'Recorder' does not conform to the 'Sendable' protocol
6 |
7 | @Observable
8 | public class Recorder {
| `- note: class 'Recorder' does not conform to the 'Sendable' protocol
9 | public enum RecordingState {
10 | case idle, recording, paused, finished
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/Streams/AudioStream.swift:26:23: warning: sending value of non-Sendable type 'AudioSample' risks causing data races; this is an error in the Swift 6 language mode
24 |
25 | func enqueue(_ buffer: AVAudioPCMBuffer, withTime time: CMTime) {
26 | continuation?.yield(AudioSample(buffer: buffer, time: time))
| |- warning: sending value of non-Sendable type 'AudioSample' risks causing data races; this is an error in the Swift 6 language mode
| `- note: Passing task-isolated value of non-Sendable type 'AudioSample' as a 'sending' parameter risks causing races inbetween task-isolated uses and uses reachable from the callee
27 | }
28 |
[399/422] Compiling StreamUI AudioStream.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/RecorderKeys.swift:11:23: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Recorder?' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | public struct RecorderKey: EnvironmentKey {
11 | public static let defaultValue: Recorder? = nil
| |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Recorder?' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | }
13 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:8:14: note: class 'Recorder' does not conform to the 'Sendable' protocol
6 |
7 | @Observable
8 | public class Recorder {
| `- note: class 'Recorder' does not conform to the 'Sendable' protocol
9 | public enum RecordingState {
10 | case idle, recording, paused, finished
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/Streams/AudioStream.swift:26:23: warning: sending value of non-Sendable type 'AudioSample' risks causing data races; this is an error in the Swift 6 language mode
24 |
25 | func enqueue(_ buffer: AVAudioPCMBuffer, withTime time: CMTime) {
26 | continuation?.yield(AudioSample(buffer: buffer, time: time))
| |- warning: sending value of non-Sendable type 'AudioSample' risks causing data races; this is an error in the Swift 6 language mode
| `- note: Passing task-isolated value of non-Sendable type 'AudioSample' as a 'sending' parameter risks causing races inbetween task-isolated uses and uses reachable from the callee
27 | }
28 |
[400/424] Compiling StreamUI StreamingVideoPlayer.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/StreamingVideoPlayer.swift:68:25: warning: call to main actor-isolated instance method 'add' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
66 |
67 | if let currentItem = player.currentItem {
68 | currentItem.add(videoOutput)
| `- warning: call to main actor-isolated instance method 'add' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
69 | addObservers(to: currentItem)
70 | }
AVFoundation.AVPlayerItem.add:3:24: note: calls to instance method 'add' from outside of its actor context are implicitly asynchronous
1 | class AVPlayerItem {
2 | @available(macOS 10.8, *)
3 | @MainActor open func add(_ output: AVPlayerItemOutput)}
| `- note: calls to instance method 'add' from outside of its actor context are implicitly asynchronous
4 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/StreamingVideoPlayer.swift:96:13: warning: capture of 'self' with non-sendable type 'VideoFrameCaptureManager?' in a '@Sendable' closure
46 |
47 | @Observable
48 | class VideoFrameCaptureManager {
| `- note: class 'VideoFrameCaptureManager' does not conform to the 'Sendable' protocol
49 | var frame: CGImage?
50 | var videoLoaded = PassthroughSubject<Void, Never>()
:
94 | let timeInterval = CMTime(seconds: 1.0 / fps, preferredTimescale: CMTimeScale(NSEC_PER_SEC))
95 | player.addPeriodicTimeObserver(forInterval: timeInterval, queue: .main) { [weak self] time in
96 | self?.captureCurrentFrame(at: time)
| `- warning: capture of 'self' with non-sendable type 'VideoFrameCaptureManager?' in a '@Sendable' closure
97 | }
98 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/StreamingVideoPlayer.swift:68:25: warning: sending value of non-Sendable type 'AVPlayerItemVideoOutput' risks causing data races; this is an error in the Swift 6 language mode
66 |
67 | if let currentItem = player.currentItem {
68 | currentItem.add(videoOutput)
| |- warning: sending value of non-Sendable type 'AVPlayerItemVideoOutput' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type 'AVPlayerItemVideoOutput' to main actor-isolated instance method 'add' risks causing races in between task-isolated and main actor-isolated uses
69 | addObservers(to: currentItem)
70 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/StreamingVideoPlayer.swift:110:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
108 | if let cgImage = context.createCGImage(ciImage, from: ciImage.extent) {
109 | DispatchQueue.main.async {
110 | self.frame = cgImage
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
111 | }
112 | }
[401/424] Compiling StreamUI AVAudioTime+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/StreamingVideoPlayer.swift:68:25: warning: call to main actor-isolated instance method 'add' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
66 |
67 | if let currentItem = player.currentItem {
68 | currentItem.add(videoOutput)
| `- warning: call to main actor-isolated instance method 'add' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
69 | addObservers(to: currentItem)
70 | }
AVFoundation.AVPlayerItem.add:3:24: note: calls to instance method 'add' from outside of its actor context are implicitly asynchronous
1 | class AVPlayerItem {
2 | @available(macOS 10.8, *)
3 | @MainActor open func add(_ output: AVPlayerItemOutput)}
| `- note: calls to instance method 'add' from outside of its actor context are implicitly asynchronous
4 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/StreamingVideoPlayer.swift:96:13: warning: capture of 'self' with non-sendable type 'VideoFrameCaptureManager?' in a '@Sendable' closure
46 |
47 | @Observable
48 | class VideoFrameCaptureManager {
| `- note: class 'VideoFrameCaptureManager' does not conform to the 'Sendable' protocol
49 | var frame: CGImage?
50 | var videoLoaded = PassthroughSubject<Void, Never>()
:
94 | let timeInterval = CMTime(seconds: 1.0 / fps, preferredTimescale: CMTimeScale(NSEC_PER_SEC))
95 | player.addPeriodicTimeObserver(forInterval: timeInterval, queue: .main) { [weak self] time in
96 | self?.captureCurrentFrame(at: time)
| `- warning: capture of 'self' with non-sendable type 'VideoFrameCaptureManager?' in a '@Sendable' closure
97 | }
98 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/StreamingVideoPlayer.swift:68:25: warning: sending value of non-Sendable type 'AVPlayerItemVideoOutput' risks causing data races; this is an error in the Swift 6 language mode
66 |
67 | if let currentItem = player.currentItem {
68 | currentItem.add(videoOutput)
| |- warning: sending value of non-Sendable type 'AVPlayerItemVideoOutput' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type 'AVPlayerItemVideoOutput' to main actor-isolated instance method 'add' risks causing races in between task-isolated and main actor-isolated uses
69 | addObservers(to: currentItem)
70 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/StreamingVideoPlayer.swift:110:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
108 | if let cgImage = context.createCGImage(ciImage, from: ciImage.extent) {
109 | DispatchQueue.main.async {
110 | self.frame = cgImage
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
111 | }
112 | }
[402/424] Compiling StreamUI Duration+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/StreamingVideoPlayer.swift:68:25: warning: call to main actor-isolated instance method 'add' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
66 |
67 | if let currentItem = player.currentItem {
68 | currentItem.add(videoOutput)
| `- warning: call to main actor-isolated instance method 'add' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
69 | addObservers(to: currentItem)
70 | }
AVFoundation.AVPlayerItem.add:3:24: note: calls to instance method 'add' from outside of its actor context are implicitly asynchronous
1 | class AVPlayerItem {
2 | @available(macOS 10.8, *)
3 | @MainActor open func add(_ output: AVPlayerItemOutput)}
| `- note: calls to instance method 'add' from outside of its actor context are implicitly asynchronous
4 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/StreamingVideoPlayer.swift:96:13: warning: capture of 'self' with non-sendable type 'VideoFrameCaptureManager?' in a '@Sendable' closure
46 |
47 | @Observable
48 | class VideoFrameCaptureManager {
| `- note: class 'VideoFrameCaptureManager' does not conform to the 'Sendable' protocol
49 | var frame: CGImage?
50 | var videoLoaded = PassthroughSubject<Void, Never>()
:
94 | let timeInterval = CMTime(seconds: 1.0 / fps, preferredTimescale: CMTimeScale(NSEC_PER_SEC))
95 | player.addPeriodicTimeObserver(forInterval: timeInterval, queue: .main) { [weak self] time in
96 | self?.captureCurrentFrame(at: time)
| `- warning: capture of 'self' with non-sendable type 'VideoFrameCaptureManager?' in a '@Sendable' closure
97 | }
98 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/StreamingVideoPlayer.swift:68:25: warning: sending value of non-Sendable type 'AVPlayerItemVideoOutput' risks causing data races; this is an error in the Swift 6 language mode
66 |
67 | if let currentItem = player.currentItem {
68 | currentItem.add(videoOutput)
| |- warning: sending value of non-Sendable type 'AVPlayerItemVideoOutput' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending task-isolated value of non-Sendable type 'AVPlayerItemVideoOutput' to main actor-isolated instance method 'add' risks causing races in between task-isolated and main actor-isolated uses
69 | addObservers(to: currentItem)
70 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/StreamingVideoPlayer.swift:110:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
108 | if let cgImage = context.createCGImage(ciImage, from: ciImage.extent) {
109 | DispatchQueue.main.async {
110 | self.frame = cgImage
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
111 | }
112 | }
[403/424] Compiling StreamUI RTMPStreaming.swift
[404/424] Compiling StreamUI resource_bundle_accessor.swift
[405/424] Compiling StreamUI Recorder.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:114:29: warning: result of call to 'render()' is unused
112 | // try await Task.sleep(for: frameDuration)
113 | }
114 | self.hud.render()
| `- warning: result of call to 'render()' is unused
115 |
116 | case .paused:
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:117:29: warning: result of call to 'render()' is unused
115 |
116 | case .paused:
117 | self.hud.render()
| `- warning: result of call to 'render()' is unused
118 | try await Task.sleep(for: frameDuration)
119 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:125:21: warning: result of call to 'render()' is unused
123 | }
124 |
125 | self.hud.render()
| `- warning: result of call to 'render()' is unused
126 | await finishRecording()
127 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:179:20: warning: value 'trimmedURL' was defined but never used; consider replacing with boolean test
177 |
178 | if let outputURL = assetWriter?.outputURL, let duration = renderSettings.captureDuration {
179 | if let trimmedURL = await trimVideo(at: outputURL, to: duration) {
| `- warning: value 'trimmedURL' was defined but never used; consider replacing with boolean test
180 | try? FileManager.default.removeItem(at: tempOutputURL)
181 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:252:24: warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a '@Sendable' closure
250 | return await withCheckedContinuation { continuation in
251 | exportSession.exportAsynchronously {
252 | switch exportSession.status {
| `- warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a '@Sendable' closure
253 | case .completed:
254 | continuation.resume(returning: trimmedOutputURL)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:91:30: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
89 |
90 | private func startRecordingTask() {
91 | recordingTask = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
92 | let clock = ContinuousClock()
93 |
94 | let totalFrames = calculateTotalFrames()
| `- note: closure captures 'self' which is accessible to code in the current task
95 | let frameDuration = Duration.seconds(1) / Int(renderSettings.fps)
96 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:102:27: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
100 | let start = clock.now
101 |
102 | await captureFrame()
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'captureFrame()' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
103 |
104 | await controlledClock.advance(by: frameDuration)
[406/424] Compiling StreamUI createCMSampleBuffer.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:114:29: warning: result of call to 'render()' is unused
112 | // try await Task.sleep(for: frameDuration)
113 | }
114 | self.hud.render()
| `- warning: result of call to 'render()' is unused
115 |
116 | case .paused:
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:117:29: warning: result of call to 'render()' is unused
115 |
116 | case .paused:
117 | self.hud.render()
| `- warning: result of call to 'render()' is unused
118 | try await Task.sleep(for: frameDuration)
119 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:125:21: warning: result of call to 'render()' is unused
123 | }
124 |
125 | self.hud.render()
| `- warning: result of call to 'render()' is unused
126 | await finishRecording()
127 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:179:20: warning: value 'trimmedURL' was defined but never used; consider replacing with boolean test
177 |
178 | if let outputURL = assetWriter?.outputURL, let duration = renderSettings.captureDuration {
179 | if let trimmedURL = await trimVideo(at: outputURL, to: duration) {
| `- warning: value 'trimmedURL' was defined but never used; consider replacing with boolean test
180 | try? FileManager.default.removeItem(at: tempOutputURL)
181 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:252:24: warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a '@Sendable' closure
250 | return await withCheckedContinuation { continuation in
251 | exportSession.exportAsynchronously {
252 | switch exportSession.status {
| `- warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a '@Sendable' closure
253 | case .completed:
254 | continuation.resume(returning: trimmedOutputURL)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:91:30: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
89 |
90 | private func startRecordingTask() {
91 | recordingTask = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
92 | let clock = ContinuousClock()
93 |
94 | let totalFrames = calculateTotalFrames()
| `- note: closure captures 'self' which is accessible to code in the current task
95 | let frameDuration = Duration.seconds(1) / Int(renderSettings.fps)
96 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:102:27: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
100 | let start = clock.now
101 |
102 | await captureFrame()
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'captureFrame()' risks causing data races between main actor-isolated and local nonisolated uses
| `- note: access can happen concurrently
103 |
104 | await controlledClock.advance(by: frameDuration)
[407/424] Emitting module StreamUI
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/LoggerHelper.swift:13:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'LoggerHelper' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | // Singleton Logger Helper Class
11 | class LoggerHelper {
| `- note: class 'LoggerHelper' does not conform to the 'Sendable' protocol
12 | // Shared instance
13 | static let shared = LoggerHelper()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'LoggerHelper' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 | // Private logger instance
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/MetalRenderer.swift:7:5: warning: let 'metalDevice' is not concurrency-safe because non-'Sendable' type '(any MTLDevice)?' may have shared mutable state; this is an error in the Swift 6 language mode
5 | import Metal
6 |
7 | let metalDevice = MTLCreateSystemDefaultDevice()
| `- warning: let 'metalDevice' is not concurrency-safe because non-'Sendable' type '(any MTLDevice)?' may have shared mutable state; this is an error in the Swift 6 language mode
8 | let ciContext = CIContext(mtlDevice: metalDevice!, options: [.cacheIntermediates: false, .priorityRequestLow: true])
9 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:434:11: note: protocol 'MTLDevice' does not conform to the 'Sendable' protocol
432 | */
433 | API_AVAILABLE(macos(10.11), ios(8.0))
434 | @protocol MTLDevice <NSObject>
| `- note: protocol 'MTLDevice' does not conform to the 'Sendable' protocol
435 |
436 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/MetalRenderer.swift:5:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Metal'
3 | import CoreImage
4 | import CoreVideo
5 | import Metal
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Metal'
6 |
7 | let metalDevice = MTLCreateSystemDefaultDevice()
| |- note: add '@MainActor' to make let 'metalDevice' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
8 | let ciContext = CIContext(mtlDevice: metalDevice!, options: [.cacheIntermediates: false, .priorityRequestLow: true])
9 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/MetalRenderer.swift:8:5: warning: let 'ciContext' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
6 |
7 | let metalDevice = MTLCreateSystemDefaultDevice()
8 | let ciContext = CIContext(mtlDevice: metalDevice!, options: [.cacheIntermediates: false, .priorityRequestLow: true])
| `- warning: let 'ciContext' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | public func pixelBufferFromCGImage(_ image: CGImage, width: Int, height: Int) -> CVPixelBuffer? {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIContext.h:36:12: note: class 'CIContext' does not conform to the 'Sendable' protocol
34 |
35 | NS_CLASS_AVAILABLE(10_4, 5_0)
36 | @interface CIContext : NSObject
| `- note: class 'CIContext' does not conform to the 'Sendable' protocol
37 | {
38 | void *_priv;
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/MetalRenderer.swift:3:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
1 |
2 |
3 | import CoreImage
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
4 | import CoreVideo
5 | import Metal
6 |
7 | let metalDevice = MTLCreateSystemDefaultDevice()
8 | let ciContext = CIContext(mtlDevice: metalDevice!, options: [.cacheIntermediates: false, .priorityRequestLow: true])
| |- note: add '@MainActor' to make let 'ciContext' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
9 |
10 | public func pixelBufferFromCGImage(_ image: CGImage, width: Int, height: Int) -> CVPixelBuffer? {
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/PreloadManager.swift:14:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'PreloadManager' may have shared mutable state; this is an error in the Swift 6 language mode
11 | import Nuke
12 |
13 | class PreloadManager {
| `- note: class 'PreloadManager' does not conform to the 'Sendable' protocol
14 | static let shared = PreloadManager()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'PreloadManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | private let imagePrefetcher: ImagePrefetcher
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/RecorderKeys.swift:11:23: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Recorder?' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | public struct RecorderKey: EnvironmentKey {
11 | public static let defaultValue: Recorder? = nil
| |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Recorder?' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | }
13 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/Recorder.swift:8:14: note: class 'Recorder' does not conform to the 'Sendable' protocol
6 |
7 | @Observable
8 | public class Recorder {
| `- note: class 'Recorder' does not conform to the 'Sendable' protocol
9 | public enum RecordingState {
10 | case idle, recording, paused, finished
[408/424] Compiling StreamUI FrameStream.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:94:13: warning: no 'async' operations occur within 'await' expression
92 | private func processAudioSamples() async {
93 | for await audioSample in audioStream.stream {
94 | await appendAudioBuffer(audioSample.buffer, at: audioSample.time)
| `- warning: no 'async' operations occur within 'await' expression
95 | }
96 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:215:20: warning: value 'frameTime' was defined but never used; consider replacing with boolean test
213 | playerNode.installTap(onBus: 0, bufferSize: bufferSize, format: commonFormat) { [weak self] buffer, when in
214 |
215 | if let frameTime = self?.frameTimer?.getCurrentFrameTime() {
| `- warning: value 'frameTime' was defined but never used; consider replacing with boolean test
216 | self?.addToStream(buffer, at: when.toCMTime())
217 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:252:17: warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
250 | }
251 |
252 | dst.assign(from: src.advanced(by: Int(start)), count: Int(frameCount))
| |- warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
| `- note: use 'update(from:count:)' instead
253 | }
254 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:243:13: warning: initialization of immutable value 'sampleSize' was never used; consider replacing with assignment to '_' or removing it
241 |
242 | let channelCount = buffer.format.channelCount
243 | let sampleSize = buffer.format.streamDescription.pointee.mBytesPerFrame / UInt32(channelCount)
| `- warning: initialization of immutable value 'sampleSize' was never used; consider replacing with assignment to '_' or removing it
244 |
245 | for channel in 0 ..< channelCount {
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:326:13: warning: no calls to throwing functions occur within 'try' expression
324 |
325 | do {
326 | try converter.convert(to: convertedBuffer, error: nil, withInputFrom: inputBlock)
| `- warning: no calls to throwing functions occur within 'try' expression
327 | } catch {
328 | LoggerHelper.shared.error("Error converting buffer: \(error)")
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:327:11: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
325 | do {
326 | try converter.convert(to: convertedBuffer, error: nil, withInputFrom: inputBlock)
327 | } catch {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
328 | LoggerHelper.shared.error("Error converting buffer: \(error)")
329 | return nil
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:84:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
82 | audioEngine.prepare()
83 | try audioEngine.start()
84 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
85 | await self.processAudioSamples()
| `- note: closure captures 'self' which is accessible to code in the current task
86 | }
87 | } catch {
[409/424] Compiling StreamUI createStreamUIRecorder.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:94:13: warning: no 'async' operations occur within 'await' expression
92 | private func processAudioSamples() async {
93 | for await audioSample in audioStream.stream {
94 | await appendAudioBuffer(audioSample.buffer, at: audioSample.time)
| `- warning: no 'async' operations occur within 'await' expression
95 | }
96 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:215:20: warning: value 'frameTime' was defined but never used; consider replacing with boolean test
213 | playerNode.installTap(onBus: 0, bufferSize: bufferSize, format: commonFormat) { [weak self] buffer, when in
214 |
215 | if let frameTime = self?.frameTimer?.getCurrentFrameTime() {
| `- warning: value 'frameTime' was defined but never used; consider replacing with boolean test
216 | self?.addToStream(buffer, at: when.toCMTime())
217 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:252:17: warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
250 | }
251 |
252 | dst.assign(from: src.advanced(by: Int(start)), count: Int(frameCount))
| |- warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
| `- note: use 'update(from:count:)' instead
253 | }
254 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:243:13: warning: initialization of immutable value 'sampleSize' was never used; consider replacing with assignment to '_' or removing it
241 |
242 | let channelCount = buffer.format.channelCount
243 | let sampleSize = buffer.format.streamDescription.pointee.mBytesPerFrame / UInt32(channelCount)
| `- warning: initialization of immutable value 'sampleSize' was never used; consider replacing with assignment to '_' or removing it
244 |
245 | for channel in 0 ..< channelCount {
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:326:13: warning: no calls to throwing functions occur within 'try' expression
324 |
325 | do {
326 | try converter.convert(to: convertedBuffer, error: nil, withInputFrom: inputBlock)
| `- warning: no calls to throwing functions occur within 'try' expression
327 | } catch {
328 | LoggerHelper.shared.error("Error converting buffer: \(error)")
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:327:11: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
325 | do {
326 | try converter.convert(to: convertedBuffer, error: nil, withInputFrom: inputBlock)
327 | } catch {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
328 | LoggerHelper.shared.error("Error converting buffer: \(error)")
329 | return nil
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:84:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
82 | audioEngine.prepare()
83 | try audioEngine.start()
84 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
85 | await self.processAudioSamples()
| `- note: closure captures 'self' which is accessible to code in the current task
86 | }
87 | } catch {
[410/424] Compiling StreamUI AudioRecorder.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:94:13: warning: no 'async' operations occur within 'await' expression
92 | private func processAudioSamples() async {
93 | for await audioSample in audioStream.stream {
94 | await appendAudioBuffer(audioSample.buffer, at: audioSample.time)
| `- warning: no 'async' operations occur within 'await' expression
95 | }
96 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:215:20: warning: value 'frameTime' was defined but never used; consider replacing with boolean test
213 | playerNode.installTap(onBus: 0, bufferSize: bufferSize, format: commonFormat) { [weak self] buffer, when in
214 |
215 | if let frameTime = self?.frameTimer?.getCurrentFrameTime() {
| `- warning: value 'frameTime' was defined but never used; consider replacing with boolean test
216 | self?.addToStream(buffer, at: when.toCMTime())
217 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:252:17: warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
250 | }
251 |
252 | dst.assign(from: src.advanced(by: Int(start)), count: Int(frameCount))
| |- warning: 'assign(from:count:)' is deprecated: renamed to 'update(from:count:)'
| `- note: use 'update(from:count:)' instead
253 | }
254 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:243:13: warning: initialization of immutable value 'sampleSize' was never used; consider replacing with assignment to '_' or removing it
241 |
242 | let channelCount = buffer.format.channelCount
243 | let sampleSize = buffer.format.streamDescription.pointee.mBytesPerFrame / UInt32(channelCount)
| `- warning: initialization of immutable value 'sampleSize' was never used; consider replacing with assignment to '_' or removing it
244 |
245 | for channel in 0 ..< channelCount {
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:326:13: warning: no calls to throwing functions occur within 'try' expression
324 |
325 | do {
326 | try converter.convert(to: convertedBuffer, error: nil, withInputFrom: inputBlock)
| `- warning: no calls to throwing functions occur within 'try' expression
327 | } catch {
328 | LoggerHelper.shared.error("Error converting buffer: \(error)")
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:327:11: warning: 'catch' block is unreachable because no errors are thrown in 'do' block
325 | do {
326 | try converter.convert(to: convertedBuffer, error: nil, withInputFrom: inputBlock)
327 | } catch {
| `- warning: 'catch' block is unreachable because no errors are thrown in 'do' block
328 | LoggerHelper.shared.error("Error converting buffer: \(error)")
329 | return nil
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/AudioRecorder/AudioRecorder.swift:84:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
82 | audioEngine.prepare()
83 | try audioEngine.start()
84 | Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
85 | await self.processAudioSamples()
| `- note: closure captures 'self' which is accessible to code in the current task
86 | }
87 | } catch {
[411/424] Compiling StreamUI LoggerHelper.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/LoggerHelper.swift:13:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'LoggerHelper' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | // Singleton Logger Helper Class
11 | class LoggerHelper {
| `- note: class 'LoggerHelper' does not conform to the 'Sendable' protocol
12 | // Shared instance
13 | static let shared = LoggerHelper()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'LoggerHelper' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 | // Private logger instance
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/MetalRenderer.swift:7:5: warning: let 'metalDevice' is not concurrency-safe because non-'Sendable' type '(any MTLDevice)?' may have shared mutable state; this is an error in the Swift 6 language mode
5 | import Metal
6 |
7 | let metalDevice = MTLCreateSystemDefaultDevice()
| `- warning: let 'metalDevice' is not concurrency-safe because non-'Sendable' type '(any MTLDevice)?' may have shared mutable state; this is an error in the Swift 6 language mode
8 | let ciContext = CIContext(mtlDevice: metalDevice!, options: [.cacheIntermediates: false, .priorityRequestLow: true])
9 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:434:11: note: protocol 'MTLDevice' does not conform to the 'Sendable' protocol
432 | */
433 | API_AVAILABLE(macos(10.11), ios(8.0))
434 | @protocol MTLDevice <NSObject>
| `- note: protocol 'MTLDevice' does not conform to the 'Sendable' protocol
435 |
436 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/MetalRenderer.swift:5:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Metal'
3 | import CoreImage
4 | import CoreVideo
5 | import Metal
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Metal'
6 |
7 | let metalDevice = MTLCreateSystemDefaultDevice()
| |- note: add '@MainActor' to make let 'metalDevice' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
8 | let ciContext = CIContext(mtlDevice: metalDevice!, options: [.cacheIntermediates: false, .priorityRequestLow: true])
9 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/MetalRenderer.swift:8:5: warning: let 'ciContext' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
6 |
7 | let metalDevice = MTLCreateSystemDefaultDevice()
8 | let ciContext = CIContext(mtlDevice: metalDevice!, options: [.cacheIntermediates: false, .priorityRequestLow: true])
| `- warning: let 'ciContext' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | public func pixelBufferFromCGImage(_ image: CGImage, width: Int, height: Int) -> CVPixelBuffer? {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIContext.h:36:12: note: class 'CIContext' does not conform to the 'Sendable' protocol
34 |
35 | NS_CLASS_AVAILABLE(10_4, 5_0)
36 | @interface CIContext : NSObject
| `- note: class 'CIContext' does not conform to the 'Sendable' protocol
37 | {
38 | void *_priv;
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/MetalRenderer.swift:3:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
1 |
2 |
3 | import CoreImage
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
4 | import CoreVideo
5 | import Metal
6 |
7 | let metalDevice = MTLCreateSystemDefaultDevice()
8 | let ciContext = CIContext(mtlDevice: metalDevice!, options: [.cacheIntermediates: false, .priorityRequestLow: true])
| |- note: add '@MainActor' to make let 'ciContext' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
9 |
10 | public func pixelBufferFromCGImage(_ image: CGImage, width: Int, height: Int) -> CVPixelBuffer? {
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/PreloadManager.swift:14:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'PreloadManager' may have shared mutable state; this is an error in the Swift 6 language mode
11 | import Nuke
12 |
13 | class PreloadManager {
| `- note: class 'PreloadManager' does not conform to the 'Sendable' protocol
14 | static let shared = PreloadManager()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'PreloadManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | private let imagePrefetcher: ImagePrefetcher
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/PreloadManager.swift:33:33: warning: result of call to 'image(for:)' is unused
31 | // Preload images using Nuke
32 | func preloadImage(from url: URL) async throws {
33 | try await imagePipeline.image(for: url)
| `- warning: result of call to 'image(for:)' is unused
34 | }
35 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/PreloadManager.swift:63:23: warning: result of call to 'preloadMedia(from:)' is unused
61 | try await preloadImage(from: url)
62 | } else {
63 | try await preloadMedia(from: url)
| `- warning: result of call to 'preloadMedia(from:)' is unused
64 | }
65 | }
[412/424] Compiling StreamUI MetalRenderer.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/LoggerHelper.swift:13:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'LoggerHelper' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | // Singleton Logger Helper Class
11 | class LoggerHelper {
| `- note: class 'LoggerHelper' does not conform to the 'Sendable' protocol
12 | // Shared instance
13 | static let shared = LoggerHelper()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'LoggerHelper' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 | // Private logger instance
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/MetalRenderer.swift:7:5: warning: let 'metalDevice' is not concurrency-safe because non-'Sendable' type '(any MTLDevice)?' may have shared mutable state; this is an error in the Swift 6 language mode
5 | import Metal
6 |
7 | let metalDevice = MTLCreateSystemDefaultDevice()
| `- warning: let 'metalDevice' is not concurrency-safe because non-'Sendable' type '(any MTLDevice)?' may have shared mutable state; this is an error in the Swift 6 language mode
8 | let ciContext = CIContext(mtlDevice: metalDevice!, options: [.cacheIntermediates: false, .priorityRequestLow: true])
9 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:434:11: note: protocol 'MTLDevice' does not conform to the 'Sendable' protocol
432 | */
433 | API_AVAILABLE(macos(10.11), ios(8.0))
434 | @protocol MTLDevice <NSObject>
| `- note: protocol 'MTLDevice' does not conform to the 'Sendable' protocol
435 |
436 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/MetalRenderer.swift:5:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Metal'
3 | import CoreImage
4 | import CoreVideo
5 | import Metal
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Metal'
6 |
7 | let metalDevice = MTLCreateSystemDefaultDevice()
| |- note: add '@MainActor' to make let 'metalDevice' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
8 | let ciContext = CIContext(mtlDevice: metalDevice!, options: [.cacheIntermediates: false, .priorityRequestLow: true])
9 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/MetalRenderer.swift:8:5: warning: let 'ciContext' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
6 |
7 | let metalDevice = MTLCreateSystemDefaultDevice()
8 | let ciContext = CIContext(mtlDevice: metalDevice!, options: [.cacheIntermediates: false, .priorityRequestLow: true])
| `- warning: let 'ciContext' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | public func pixelBufferFromCGImage(_ image: CGImage, width: Int, height: Int) -> CVPixelBuffer? {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIContext.h:36:12: note: class 'CIContext' does not conform to the 'Sendable' protocol
34 |
35 | NS_CLASS_AVAILABLE(10_4, 5_0)
36 | @interface CIContext : NSObject
| `- note: class 'CIContext' does not conform to the 'Sendable' protocol
37 | {
38 | void *_priv;
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/MetalRenderer.swift:3:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
1 |
2 |
3 | import CoreImage
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
4 | import CoreVideo
5 | import Metal
6 |
7 | let metalDevice = MTLCreateSystemDefaultDevice()
8 | let ciContext = CIContext(mtlDevice: metalDevice!, options: [.cacheIntermediates: false, .priorityRequestLow: true])
| |- note: add '@MainActor' to make let 'ciContext' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
9 |
10 | public func pixelBufferFromCGImage(_ image: CGImage, width: Int, height: Int) -> CVPixelBuffer? {
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/PreloadManager.swift:14:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'PreloadManager' may have shared mutable state; this is an error in the Swift 6 language mode
11 | import Nuke
12 |
13 | class PreloadManager {
| `- note: class 'PreloadManager' does not conform to the 'Sendable' protocol
14 | static let shared = PreloadManager()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'PreloadManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | private let imagePrefetcher: ImagePrefetcher
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/PreloadManager.swift:33:33: warning: result of call to 'image(for:)' is unused
31 | // Preload images using Nuke
32 | func preloadImage(from url: URL) async throws {
33 | try await imagePipeline.image(for: url)
| `- warning: result of call to 'image(for:)' is unused
34 | }
35 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/PreloadManager.swift:63:23: warning: result of call to 'preloadMedia(from:)' is unused
61 | try await preloadImage(from: url)
62 | } else {
63 | try await preloadMedia(from: url)
| `- warning: result of call to 'preloadMedia(from:)' is unused
64 | }
65 | }
[413/424] Compiling StreamUI PreloadManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/LoggerHelper.swift:13:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'LoggerHelper' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | // Singleton Logger Helper Class
11 | class LoggerHelper {
| `- note: class 'LoggerHelper' does not conform to the 'Sendable' protocol
12 | // Shared instance
13 | static let shared = LoggerHelper()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'LoggerHelper' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 |
15 | // Private logger instance
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/MetalRenderer.swift:7:5: warning: let 'metalDevice' is not concurrency-safe because non-'Sendable' type '(any MTLDevice)?' may have shared mutable state; this is an error in the Swift 6 language mode
5 | import Metal
6 |
7 | let metalDevice = MTLCreateSystemDefaultDevice()
| `- warning: let 'metalDevice' is not concurrency-safe because non-'Sendable' type '(any MTLDevice)?' may have shared mutable state; this is an error in the Swift 6 language mode
8 | let ciContext = CIContext(mtlDevice: metalDevice!, options: [.cacheIntermediates: false, .priorityRequestLow: true])
9 |
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:434:11: note: protocol 'MTLDevice' does not conform to the 'Sendable' protocol
432 | */
433 | API_AVAILABLE(macos(10.11), ios(8.0))
434 | @protocol MTLDevice <NSObject>
| `- note: protocol 'MTLDevice' does not conform to the 'Sendable' protocol
435 |
436 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/MetalRenderer.swift:5:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Metal'
3 | import CoreImage
4 | import CoreVideo
5 | import Metal
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Metal'
6 |
7 | let metalDevice = MTLCreateSystemDefaultDevice()
| |- note: add '@MainActor' to make let 'metalDevice' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
8 | let ciContext = CIContext(mtlDevice: metalDevice!, options: [.cacheIntermediates: false, .priorityRequestLow: true])
9 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/MetalRenderer.swift:8:5: warning: let 'ciContext' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
6 |
7 | let metalDevice = MTLCreateSystemDefaultDevice()
8 | let ciContext = CIContext(mtlDevice: metalDevice!, options: [.cacheIntermediates: false, .priorityRequestLow: true])
| `- warning: let 'ciContext' is not concurrency-safe because non-'Sendable' type 'CIContext' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | public func pixelBufferFromCGImage(_ image: CGImage, width: Int, height: Int) -> CVPixelBuffer? {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIContext.h:36:12: note: class 'CIContext' does not conform to the 'Sendable' protocol
34 |
35 | NS_CLASS_AVAILABLE(10_4, 5_0)
36 | @interface CIContext : NSObject
| `- note: class 'CIContext' does not conform to the 'Sendable' protocol
37 | {
38 | void *_priv;
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/MetalRenderer.swift:3:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
1 |
2 |
3 | import CoreImage
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreImage'
4 | import CoreVideo
5 | import Metal
6 |
7 | let metalDevice = MTLCreateSystemDefaultDevice()
8 | let ciContext = CIContext(mtlDevice: metalDevice!, options: [.cacheIntermediates: false, .priorityRequestLow: true])
| |- note: add '@MainActor' to make let 'ciContext' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
9 |
10 | public func pixelBufferFromCGImage(_ image: CGImage, width: Int, height: Int) -> CVPixelBuffer? {
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/PreloadManager.swift:14:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'PreloadManager' may have shared mutable state; this is an error in the Swift 6 language mode
11 | import Nuke
12 |
13 | class PreloadManager {
| `- note: class 'PreloadManager' does not conform to the 'Sendable' protocol
14 | static let shared = PreloadManager()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'PreloadManager' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | private let imagePrefetcher: ImagePrefetcher
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/PreloadManager.swift:33:33: warning: result of call to 'image(for:)' is unused
31 | // Preload images using Nuke
32 | func preloadImage(from url: URL) async throws {
33 | try await imagePipeline.image(for: url)
| `- warning: result of call to 'image(for:)' is unused
34 | }
35 |
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Helpers/PreloadManager.swift:63:23: warning: result of call to 'preloadMedia(from:)' is unused
61 | try await preloadImage(from: url)
62 | } else {
63 | try await preloadMedia(from: url)
| `- warning: result of call to 'preloadMedia(from:)' is unused
64 | }
65 | }
[414/424] Compiling StreamUI HUD.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/Internal/HUD.swift:36:67: warning: left side of nil coalescing operator '??' has non-optional type 'TimeInterval' (aka 'Double'), so the right side is never used
34 | }
35 | let elapsedTime = recorder.controlledClock.elapsedTime
36 | let elapsedTimeFormatted = formatTimeInterval(elapsedTime ?? 0)
| `- warning: left side of nil coalescing operator '??' has non-optional type 'TimeInterval' (aka 'Double'), so the right side is never used
37 | let stateEmoji = getStateEmoji(for: recorder.state)
38 | let frameCount = recorder.frameTimer.frameCount
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/Internal/HUD.swift:54:13: warning: initialization of immutable value 'text' was never used; consider replacing with assignment to '_' or removing it
52 | """
53 |
54 | let text = "hello"
| `- warning: initialization of immutable value 'text' was never used; consider replacing with assignment to '_' or removing it
55 |
56 | console.clear(lines: 5)
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/StreamingImage.swift:50:58: warning: non-sendable result type 'PlatformImage' (aka 'NSImage') cannot be sent from nonisolated context in call to instance method 'image(from:)'; this is an error in the Swift 6 language mode
48 |
49 | do {
50 | self.image = try await PreloadManager.shared.image(from: url)
| `- warning: non-sendable result type 'PlatformImage' (aka 'NSImage') cannot be sent from nonisolated context in call to instance method 'image(from:)'; this is an error in the Swift 6 language mode
51 | } catch {
52 | LoggerHelper.shared.error("Failed to preload image: \(error)")
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSImage.h:66:12: note: class 'NSImage' does not conform to the 'Sendable' protocol
64 | __attribute__((objc_subclassing_restricted))
65 | #endif /* NSIMAGE_UNAVAILABLE_MACCATALYST */
66 | @interface NSImage : NSObject
| `- note: class 'NSImage' does not conform to the 'Sendable' protocol
67 |
68 | #pragma mark - Initialization
[415/424] Compiling StreamUI SizedView.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/Internal/HUD.swift:36:67: warning: left side of nil coalescing operator '??' has non-optional type 'TimeInterval' (aka 'Double'), so the right side is never used
34 | }
35 | let elapsedTime = recorder.controlledClock.elapsedTime
36 | let elapsedTimeFormatted = formatTimeInterval(elapsedTime ?? 0)
| `- warning: left side of nil coalescing operator '??' has non-optional type 'TimeInterval' (aka 'Double'), so the right side is never used
37 | let stateEmoji = getStateEmoji(for: recorder.state)
38 | let frameCount = recorder.frameTimer.frameCount
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/Internal/HUD.swift:54:13: warning: initialization of immutable value 'text' was never used; consider replacing with assignment to '_' or removing it
52 | """
53 |
54 | let text = "hello"
| `- warning: initialization of immutable value 'text' was never used; consider replacing with assignment to '_' or removing it
55 |
56 | console.clear(lines: 5)
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/StreamingImage.swift:50:58: warning: non-sendable result type 'PlatformImage' (aka 'NSImage') cannot be sent from nonisolated context in call to instance method 'image(from:)'; this is an error in the Swift 6 language mode
48 |
49 | do {
50 | self.image = try await PreloadManager.shared.image(from: url)
| `- warning: non-sendable result type 'PlatformImage' (aka 'NSImage') cannot be sent from nonisolated context in call to instance method 'image(from:)'; this is an error in the Swift 6 language mode
51 | } catch {
52 | LoggerHelper.shared.error("Failed to preload image: \(error)")
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSImage.h:66:12: note: class 'NSImage' does not conform to the 'Sendable' protocol
64 | __attribute__((objc_subclassing_restricted))
65 | #endif /* NSIMAGE_UNAVAILABLE_MACCATALYST */
66 | @interface NSImage : NSObject
| `- note: class 'NSImage' does not conform to the 'Sendable' protocol
67 |
68 | #pragma mark - Initialization
[416/424] Compiling StreamUI StreamingImage.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/Internal/HUD.swift:36:67: warning: left side of nil coalescing operator '??' has non-optional type 'TimeInterval' (aka 'Double'), so the right side is never used
34 | }
35 | let elapsedTime = recorder.controlledClock.elapsedTime
36 | let elapsedTimeFormatted = formatTimeInterval(elapsedTime ?? 0)
| `- warning: left side of nil coalescing operator '??' has non-optional type 'TimeInterval' (aka 'Double'), so the right side is never used
37 | let stateEmoji = getStateEmoji(for: recorder.state)
38 | let frameCount = recorder.frameTimer.frameCount
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/Internal/HUD.swift:54:13: warning: initialization of immutable value 'text' was never used; consider replacing with assignment to '_' or removing it
52 | """
53 |
54 | let text = "hello"
| `- warning: initialization of immutable value 'text' was never used; consider replacing with assignment to '_' or removing it
55 |
56 | console.clear(lines: 5)
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Components/StreamingImage.swift:50:58: warning: non-sendable result type 'PlatformImage' (aka 'NSImage') cannot be sent from nonisolated context in call to instance method 'image(from:)'; this is an error in the Swift 6 language mode
48 |
49 | do {
50 | self.image = try await PreloadManager.shared.image(from: url)
| `- warning: non-sendable result type 'PlatformImage' (aka 'NSImage') cannot be sent from nonisolated context in call to instance method 'image(from:)'; this is an error in the Swift 6 language mode
51 | } catch {
52 | LoggerHelper.shared.error("Failed to preload image: \(error)")
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSImage.h:66:12: note: class 'NSImage' does not conform to the 'Sendable' protocol
64 | __attribute__((objc_subclassing_restricted))
65 | #endif /* NSIMAGE_UNAVAILABLE_MACCATALYST */
66 | @interface NSImage : NSObject
| `- note: class 'NSImage' does not conform to the 'Sendable' protocol
67 |
68 | #pragma mark - Initialization
[417/424] Compiling StreamUI VideoRecorder.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/StreamUI.swift:169:10: warning: 'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.
167 | .frame(width: NSScreen.main?.visibleFrame.width ?? 800 * 0.9,
168 | height: NSScreen.main?.visibleFrame.height ?? 600 * 0.9)
169 | .onChange(of: recorder.state) { recorderState in
| `- warning: 'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.
170 | if recorderState == .finished {
171 | isVideoSaved = recorder.renderSettings.saveVideoFile
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/StreamUI.swift:251:10: warning: 'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.
249 | isAnimating = state == .recording
250 | }
251 | .onChange(of: state) { newState in
| `- warning: 'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.
252 | isAnimating = newState == .recording
253 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/VideoRecorder/VideoRecorder.swift:59:31: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
57 |
58 | func startProcessingQueue() {
59 | processingTask = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
60 | for await videoFrame in frameStream.stream {
| `- note: closure captures 'self' which is accessible to code in the current task
61 | guard !Task.isCancelled else { break }
62 | self.processFrame(cgImage: videoFrame.image, frameTime: videoFrame.time)
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/StreamUI.swift:126:56: warning: sending 'self.recorder' risks causing data races; this is an error in the Swift 6 language mode
124 | recorder.stopRecording()
125 | Task {
126 | await recorder.waitForRecordingCompletion()
| |- warning: sending 'self.recorder' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.recorder' to nonisolated instance method 'waitForRecordingCompletion()' risks causing data races between nonisolated and main actor-isolated uses
127 | }
128 | } else {
[418/424] Compiling StreamUI StreamUI.swift
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/StreamUI.swift:169:10: warning: 'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.
167 | .frame(width: NSScreen.main?.visibleFrame.width ?? 800 * 0.9,
168 | height: NSScreen.main?.visibleFrame.height ?? 600 * 0.9)
169 | .onChange(of: recorder.state) { recorderState in
| `- warning: 'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.
170 | if recorderState == .finished {
171 | isVideoSaved = recorder.renderSettings.saveVideoFile
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/StreamUI.swift:251:10: warning: 'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.
249 | isAnimating = state == .recording
250 | }
251 | .onChange(of: state) { newState in
| `- warning: 'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.
252 | isAnimating = newState == .recording
253 | }
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Recorders/VideoRecorder/VideoRecorder.swift:59:31: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
57 |
58 | func startProcessingQueue() {
59 | processingTask = Task {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
60 | for await videoFrame in frameStream.stream {
| `- note: closure captures 'self' which is accessible to code in the current task
61 | guard !Task.isCancelled else { break }
62 | self.processFrame(cgImage: videoFrame.image, frameTime: videoFrame.time)
/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/StreamUI.swift:126:56: warning: sending 'self.recorder' risks causing data races; this is an error in the Swift 6 language mode
124 | recorder.stopRecording()
125 | Task {
126 | await recorder.waitForRecordingCompletion()
| |- warning: sending 'self.recorder' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.recorder' to nonisolated instance method 'waitForRecordingCompletion()' risks causing data races between nonisolated and main actor-isolated uses
127 | }
128 | } else {
[419/424] Compiling StreamUI StreamingLoadingIndicator.swift
[420/424] Compiling StreamUI StreamingMediaPlayer.swift
[421/424] Compiling StreamUI StreamingProgressView.swift
[422/433] Compiling VideoViews WebViewTestView.swift
[423/433] Compiling VideoViews VideoTestView.swift
[424/433] Compiling VideoViews BasicCounterView.swift
/Users/admin/builder/spi-builder-workspace/Examples/VideoViews/BasicCounterView.swift:29:30: warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
27 | .padding()
28 |
29 | Text("Counter: \(recorder?.controlledClock.elapsedTime)")
| | |- note: use 'String(describing:)' to silence this warning
| | `- note: provide a default value to avoid this warning
| `- warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
30 | .font(.largeTitle)
31 | .foregroundColor(.green)
[425/433] Compiling VideoViews SceneKitTestView.swift
/Users/admin/builder/spi-builder-workspace/Examples/VideoViews/SceneKitTestView.swift:22:24: warning: call to main actor-isolated initializer 'init(frame:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
20 |
21 | init(size: CGSize, contentProvider: SceneKitContentProvider) {
22 | self.scnView = SCNView(frame: CGRect(origin: .zero, size: size))
| `- warning: call to main actor-isolated initializer 'init(frame:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
23 | contentProvider.setupScene(in: self.scnView)
24 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:83:1: note: calls to initializer 'init(frame:)' from outside of its actor context are implicitly asynchronous
81 | @interface NSView : NSResponder <NSAnimatablePropertyContainer, NSUserInterfaceItemIdentification, NSDraggingDestination, NSAppearanceCustomization, NSAccessibilityElement, NSAccessibility>
82 |
83 | - (instancetype)initWithFrame:(NSRect)frameRect NS_DESIGNATED_INITIALIZER;
| |- note: calls to initializer 'init(frame:)' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSView'
84 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
85 |
/Users/admin/builder/spi-builder-workspace/Examples/VideoViews/SceneKitTestView.swift:28:26: warning: expression implicitly coerced from 'NSImage?' to 'Any'
26 | func updateSnapshot() {
27 | self.snapshotImage = self.scnView.snapshot()
28 | print("snapper", self.snapshotImage)
| | |- note: provide a default value to avoid this warning
| | |- note: force-unwrap the value to avoid this warning
| | `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
| `- warning: expression implicitly coerced from 'NSImage?' to 'Any'
29 | self.frameCount += 1
30 | }
/Users/admin/builder/spi-builder-workspace/Examples/VideoViews/SceneKitTestView.swift:27:43: warning: call to main actor-isolated instance method 'snapshot()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
24 | }
25 |
26 | func updateSnapshot() {
| `- note: add '@MainActor' to make instance method 'updateSnapshot()' part of global actor 'MainActor'
27 | self.snapshotImage = self.scnView.snapshot()
| `- warning: call to main actor-isolated instance method 'snapshot()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
28 | print("snapper", self.snapshotImage)
29 | self.frameCount += 1
SceneKit.SCNView.snapshot:3:24: note: calls to instance method 'snapshot()' from outside of its actor context are implicitly asynchronous
1 | class SCNView {
2 | @available(macOS 10.10, *)
3 | @MainActor open func snapshot() -> NSImage}
| |- note: calls to instance method 'snapshot()' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from inheritance from class 'NSView'
4 |
/Users/admin/builder/spi-builder-workspace/Examples/VideoViews/SceneKitTestView.swift:56:17: warning: main actor-isolated property 'renderer' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
32 |
33 | struct SceneKitSnapshotView: View {
34 | @StateObject private var renderer: SceneKitRenderer
| `- note: property declared here
35 | @State private var timer: Timer?
36 |
:
54 | timer = Timer.scheduledTimer(withTimeInterval: 1.0 / 30.0, repeats: true) { _ in
55 | print("Timer fired")
56 | renderer.updateSnapshot()
| `- warning: main actor-isolated property 'renderer' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
57 | }
58 | }
/Users/admin/builder/spi-builder-workspace/Examples/VideoViews/SceneKitTestView.swift:91:14: warning: main actor-isolated property 'scene' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
64 |
65 | struct ChildSceneKitView: SceneKitContentProvider {
66 | func setupScene(in view: SCNView) {
| `- note: add '@MainActor' to make instance method 'setupScene(in:)' part of global actor 'MainActor'
67 | let scene = SCNScene()
68 |
:
89 | ballNode.addAnimation(animation, forKey: "position")
90 |
91 | view.scene = scene
| `- warning: main actor-isolated property 'scene' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
92 | view.allowsCameraControl = true
93 | view.autoenablesDefaultLighting = true
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/SceneKit.framework/Headers/SCNView.h:72:50: note: mutation of this property is only permitted within the actor
70 | @abstract Specifies the scene of the receiver
71 | */
72 | @property(nonatomic, retain, nullable) SCNScene *scene;
| `- note: mutation of this property is only permitted within the actor
73 |
74 | /*!
/Users/admin/builder/spi-builder-workspace/Examples/VideoViews/SceneKitTestView.swift:92:14: warning: main actor-isolated property 'allowsCameraControl' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
64 |
65 | struct ChildSceneKitView: SceneKitContentProvider {
66 | func setupScene(in view: SCNView) {
| `- note: add '@MainActor' to make instance method 'setupScene(in:)' part of global actor 'MainActor'
67 | let scene = SCNScene()
68 |
:
90 |
91 | view.scene = scene
92 | view.allowsCameraControl = true
| `- warning: main actor-isolated property 'allowsCameraControl' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
93 | view.autoenablesDefaultLighting = true
94 | view.backgroundColor = .black
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/SceneKit.framework/Headers/SCNView.h:102:27: note: mutation of this property is only permitted within the actor
100 | - alt + pinch gesture (trackpad only) to zoom-in / zoom-out (change the field of view of the camera)
101 | */
102 | @property(nonatomic) BOOL allowsCameraControl;
| `- note: mutation of this property is only permitted within the actor
103 |
104 | /*!
/Users/admin/builder/spi-builder-workspace/Examples/VideoViews/SceneKitTestView.swift:93:14: warning: main actor-isolated property 'autoenablesDefaultLighting' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
64 |
65 | struct ChildSceneKitView: SceneKitContentProvider {
66 | func setupScene(in view: SCNView) {
| `- note: add '@MainActor' to make instance method 'setupScene(in:)' part of global actor 'MainActor'
67 | let scene = SCNScene()
68 |
:
91 | view.scene = scene
92 | view.allowsCameraControl = true
93 | view.autoenablesDefaultLighting = true
| `- warning: main actor-isolated property 'autoenablesDefaultLighting' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
94 | view.backgroundColor = .black
95 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/SceneKit.framework/Headers/SCNSceneRenderer.h:169:27: note: mutation of this property is only permitted within the actor
167 | @discussion When enabled, a diffuse light is automatically added and placed while rendering scenes that have no light or only ambient lights.
168 | */
169 | @property(nonatomic) BOOL autoenablesDefaultLighting;
| `- note: mutation of this property is only permitted within the actor
170 |
171 | /*!
/Users/admin/builder/spi-builder-workspace/Examples/VideoViews/SceneKitTestView.swift:94:14: warning: main actor-isolated property 'backgroundColor' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
64 |
65 | struct ChildSceneKitView: SceneKitContentProvider {
66 | func setupScene(in view: SCNView) {
| `- note: add '@MainActor' to make instance method 'setupScene(in:)' part of global actor 'MainActor'
67 | let scene = SCNScene()
68 |
:
92 | view.allowsCameraControl = true
93 | view.autoenablesDefaultLighting = true
94 | view.backgroundColor = .black
| `- warning: main actor-isolated property 'backgroundColor' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
95 | }
96 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/SceneKit.framework/Headers/SCNView.h:85:37: note: mutation of this property is only permitted within the actor
83 | @abstract Specifies the background color of the receiver. Defaults to opaque white.
84 | */
85 | @property(nonatomic, copy) NSColor *backgroundColor;
| `- note: mutation of this property is only permitted within the actor
86 |
87 | /*!
/Users/admin/builder/spi-builder-workspace/Examples/VideoViews/SceneKitTestView.swift:317:10: warning: 'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.
315 | Text("Frame: \(recorder?.frameTimer.frameCount ?? 0)")
316 | }
317 | .onChange(of: recorder?.frameTimer.frameCount) { _ in
| `- warning: 'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.
318 | updateBallPosition()
319 | }
[426/433] Compiling VideoViews ImageTestView.swift
[427/433] Emitting module VideoViews
[428/433] Compiling VideoViews SoundTestView.swift
/Users/admin/builder/spi-builder-workspace/Examples/VideoViews/SoundTestView.swift:30:37: warning: sending 'self.recorder' risks causing data races; this is an error in the Swift 6 language mode
28 | Task {
29 | print("going to load")
30 | try await recorder?.loadAudio(from: shortAudioURL)
| |- warning: sending 'self.recorder' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.recorder' to nonisolated instance method 'loadAudio(from:)' risks causing data races between nonisolated and main actor-isolated uses
31 | try await recorder?.loadAudio(from: bonusAudioURL)
32 | print("loaded audio")
/Users/admin/builder/spi-builder-workspace/Examples/VideoViews/SoundTestView.swift:31:37: warning: sending 'self.recorder' risks causing data races; this is an error in the Swift 6 language mode
29 | print("going to load")
30 | try await recorder?.loadAudio(from: shortAudioURL)
31 | try await recorder?.loadAudio(from: bonusAudioURL)
| |- warning: sending 'self.recorder' risks causing data races; this is an error in the Swift 6 language mode
| `- note: sending main actor-isolated 'self.recorder' to nonisolated instance method 'loadAudio(from:)' risks causing data races between nonisolated and main actor-isolated uses
32 | print("loaded audio")
33 |
[429/433] Compiling VideoViews RandomSwiftUIComponentsTestView.swift
[430/433] Compiling VideoViews SpriteKitTestView.swift
/Users/admin/builder/spi-builder-workspace/Examples/VideoViews/SpriteKitTestView.swift:237:33: warning: expression implicitly coerced from 'Int?' to 'Any'
235 |
236 | var newFrameCount: Int {
237 | print("recorder count", recorder?.frameTimer.frameCount)
| | |- note: provide a default value to avoid this warning
| | |- note: force-unwrap the value to avoid this warning
| | `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
| `- warning: expression implicitly coerced from 'Int?' to 'Any'
238 | return 10
239 | }
/Users/admin/builder/spi-builder-workspace/Examples/VideoViews/SpriteKitTestView.swift:271:38: warning: expression implicitly coerced from 'Int?' to 'Any'
269 | }
270 | .onChange(of: recorder?.frameTimer.frameCount) { newCount in
271 | print("new frame count", recorder?.frameTimer.frameCount, newCount)
| | |- note: provide a default value to avoid this warning
| | |- note: force-unwrap the value to avoid this warning
| | `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
| `- warning: expression implicitly coerced from 'Int?' to 'Any'
272 | updateCircleAnimation()
273 | }
/Users/admin/builder/spi-builder-workspace/Examples/VideoViews/SpriteKitTestView.swift:271:71: warning: expression implicitly coerced from 'Int?' to 'Any'
269 | }
270 | .onChange(of: recorder?.frameTimer.frameCount) { newCount in
271 | print("new frame count", recorder?.frameTimer.frameCount, newCount)
| |- warning: expression implicitly coerced from 'Int?' to 'Any'
| |- note: provide a default value to avoid this warning
| |- note: force-unwrap the value to avoid this warning
| `- note: explicitly cast to 'Any' with 'as Any' to silence this warning
272 | updateCircleAnimation()
273 | }
/Users/admin/builder/spi-builder-workspace/Examples/VideoViews/SpriteKitTestView.swift:270:10: warning: 'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.
268 | }
269 | }
270 | .onChange(of: recorder?.frameTimer.frameCount) { newCount in
| `- warning: 'onChange(of:perform:)' was deprecated in macOS 14.0: Use `onChange` with a two or zero parameter action closure instead.
271 | print("new frame count", recorder?.frameTimer.frameCount, newCount)
272 | updateCircleAnimation()
[431/435] Compiling CLIExample index.swift
[432/435] Emitting module CLIExample
[432/435] Write Objects.LinkFileList
[433/435] Linking CLIExample
[434/435] Applying CLIExample
Build complete! (29.16s)
warning: 'haishinkit.swift': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/Users/admin/builder/spi-builder-workspace/.build/checkouts/HaishinKit.swift/Sources/SwiftPMSupport/dummy.m
Build complete.
{
"dependencies" : [
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.4.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser.git"
},
{
"identity" : "swift-log",
"requirement" : {
"range" : [
{
"lower_bound" : "1.5.4",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-log.git"
},
{
"identity" : "haishinkit.swift",
"requirement" : {
"range" : [
{
"lower_bound" : "1.9.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/shogo4405/HaishinKit.swift.git"
},
{
"identity" : "stencil",
"requirement" : {
"range" : [
{
"lower_bound" : "0.15.1",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/stencilproject/Stencil.git"
},
{
"identity" : "swift-clocks",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.2",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/pointfreeco/swift-clocks.git"
},
{
"identity" : "nuke",
"requirement" : {
"range" : [
{
"lower_bound" : "12.7.3",
"upper_bound" : "13.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/kean/Nuke.git"
},
{
"identity" : "console-kit",
"requirement" : {
"range" : [
{
"lower_bound" : "4.14.3",
"upper_bound" : "5.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/vapor/console-kit.git"
}
],
"manifest_display_name" : "StreamUI",
"name" : "StreamUI",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "14.0"
}
],
"products" : [
{
"name" : "StreamUI",
"targets" : [
"StreamUI"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "CLIExample",
"targets" : [
"CLIExample"
],
"type" : {
"executable" : null
}
},
{
"name" : "VideoViews",
"targets" : [
"VideoViews"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "GenerateTemplate",
"targets" : [
"GenerateTemplate"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "VideoViews",
"module_type" : "SwiftTarget",
"name" : "VideoViews",
"path" : "Examples/VideoViews",
"product_memberships" : [
"CLIExample",
"VideoViews"
],
"sources" : [
"BasicCounterView.swift",
"ImageTestView.swift",
"RandomSwiftUIComponentsTestView.swift",
"SceneKitTestView.swift",
"SoundTestView.swift",
"SpriteKitTestView.swift",
"VideoTestView.swift",
"WebViewTestView.swift"
],
"target_dependencies" : [
"StreamUI"
],
"type" : "library"
},
{
"c99name" : "StreamUITests",
"module_type" : "SwiftTarget",
"name" : "StreamUITests",
"path" : "Tests/StreamUITests",
"sources" : [
"StreamUITests.swift"
],
"target_dependencies" : [
"StreamUI"
],
"type" : "test"
},
{
"c99name" : "StreamUI",
"module_type" : "SwiftTarget",
"name" : "StreamUI",
"path" : "Sources/StreamUI",
"product_dependencies" : [
"HaishinKit",
"Logging",
"Clocks",
"Nuke",
"ConsoleKit"
],
"product_memberships" : [
"StreamUI",
"CLIExample",
"VideoViews"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Resources/discord.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Resources/github.png",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/StreamUI/Resources/x.png",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Components/Internal/HUD.swift",
"Components/Internal/SizedView.swift",
"Components/StreamingImage.swift",
"Components/StreamingLoadingIndicator.swift",
"Components/StreamingMediaPlayer.swift",
"Components/StreamingProgressView.swift",
"Components/StreamingVideoPlayer.swift",
"Extensions/AVAudioTime+Extensions.swift",
"Extensions/Duration+Extensions.swift",
"Extensions/Image+Extension.swift",
"Helpers/ControlledClock.swift",
"Helpers/FrameTimer.swift",
"Helpers/LoggerHelper.swift",
"Helpers/MetalRenderer.swift",
"Helpers/PreloadManager.swift",
"Helpers/RecorderKeys.swift",
"Helpers/RenderSettings.swift",
"Helpers/Streams/AudioStream.swift",
"Helpers/Streams/FrameStream.swift",
"Helpers/createStreamUIRecorder.swift",
"Recorders/AudioRecorder/AudioRecorder.swift",
"Recorders/Recorder.swift",
"Recorders/VideoRecorder/Extensions/createCMSampleBuffer.swift",
"Recorders/VideoRecorder/VideoRecorder.swift",
"StreamUI.swift",
"Streaming/RTMPStreaming.swift"
],
"type" : "library"
},
{
"c99name" : "GenerateTemplate",
"module_type" : "SwiftTarget",
"name" : "GenerateTemplate",
"path" : "Scripts/GenerateTemplate",
"product_dependencies" : [
"Stencil",
"ArgumentParser",
"Logging"
],
"product_memberships" : [
"GenerateTemplate"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Scripts/GenerateTemplate/Templates/Package.swift.stencil",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Scripts/GenerateTemplate/Templates/main.swift.stencil",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"index.swift"
],
"type" : "executable"
},
{
"c99name" : "CLIExample",
"module_type" : "SwiftTarget",
"name" : "CLIExample",
"path" : "Examples/CLIExample",
"product_dependencies" : [
"ArgumentParser"
],
"product_memberships" : [
"CLIExample"
],
"sources" : [
"index.swift"
],
"target_dependencies" : [
"StreamUI",
"VideoViews"
],
"type" : "executable"
}
],
"tools_version" : "5.10"
}
Done.