This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of Forge with Swift 6.0 for macOS (SPM).

Swift 6 data race errors: 3

Build Command

env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Hi-Rez/Forge.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Hi-Rez/Forge
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 700e72f minor update to only update appearance when userInterfaceStyle changes
Cloned https://github.com/Hi-Rez/Forge.git
Revision (git rev-parse @):
700e72f59a807577582194c93e0dcb5aa7d53e5d
SUCCESS checkout https://github.com/Hi-Rez/Forge.git at master
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/Hi-Rez/Forge.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-15.3.0.app xcrun --toolchain org.swift.600202405261a swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-6F35C1178C84523A.txt
[3/7] Compiling Forge ViewController.swift
/Users/admin/builder/spi-builder-workspace/Sources/Forge/ViewController.swift:516:18: warning: main actor-isolated property 'delegate' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
514 |
515 |     deinit {
516 |         mtkView?.delegate = nil
    |                  `- warning: main actor-isolated property 'delegate' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
517 |         renderer = nil
518 |         removeTracking()
MetalKit.MTKView:5:30: note: mutation of this property is only permitted within the actor
 3 |     public init(frame frameRect: CGRect, device: (any MTLDevice)?)
 4 |     public init(coder: NSCoder)
 5 |     @MainActor weak open var delegate: (any MTKViewDelegate)? { get set }
   |                              `- note: mutation of this property is only permitted within the actor
 6 |     @MainActor open var device: (any MTLDevice)? { get set }
 7 |     open var currentDrawable: (any CAMetalDrawable)? { get }
/Users/admin/builder/spi-builder-workspace/Sources/Forge/ViewController.swift:518:9: warning: call to main actor-isolated instance method 'removeTracking()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
253 |     }
254 |
255 |     open func removeTracking() {
    |               `- note: calls to instance method 'removeTracking()' from outside of its actor context are implicitly asynchronous
256 |         if let trackingArea = trackingArea {
257 |             self.view.removeTrackingArea(trackingArea)
    :
516 |         mtkView?.delegate = nil
517 |         renderer = nil
518 |         removeTracking()
    |         `- warning: call to main actor-isolated instance method 'removeTracking()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
519 |         removeEvents()
520 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Forge/ViewController.swift:519:9: warning: call to main actor-isolated instance method 'removeEvents()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
296 |     }
297 |
298 |     open func removeEvents() {
    |               `- note: calls to instance method 'removeEvents()' from outside of its actor context are implicitly asynchronous
299 |         guard let keyDownHandler = self.keyDownHandler else { return }
300 |         NSEvent.removeMonitor(keyDownHandler)
    :
517 |         renderer = nil
518 |         removeTracking()
519 |         removeEvents()
    |         `- warning: call to main actor-isolated instance method 'removeEvents()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
520 |     }
521 | }
/Users/admin/builder/spi-builder-workspace/Sources/Forge/ViewController.swift:517:18: warning: cannot access property 'renderer' with a non-sendable type 'Renderer?' from non-isolated deinit; this is an error in the Swift 6 language mode
515 |     deinit {
516 |         mtkView?.delegate = nil
517 |         renderer = nil
    |                  `- warning: cannot access property 'renderer' with a non-sendable type 'Renderer?' from non-isolated deinit; this is an error in the Swift 6 language mode
518 |         removeTracking()
519 |         removeEvents()
/Users/admin/builder/spi-builder-workspace/Sources/Forge/Renderer.swift:15:12: note: class 'Renderer' does not conform to the 'Sendable' protocol
 13 | public let maxBuffersInFlight: Int = 3
 14 |
 15 | open class Renderer: NSObject, MTKViewDelegate {
    |            `- note: class 'Renderer' does not conform to the 'Sendable' protocol
 16 |     public enum Appearance {
 17 |         case unknown
[4/7] Compiling Forge MetalView.swift
[5/7] Compiling Forge Renderer.swift
/Users/admin/builder/spi-builder-workspace/Sources/Forge/Renderer.swift:25:39: warning: main actor-isolated property 'device' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 23 |         didSet {
 24 |             if let mtkView = mtkView {
 25 |                 self.device = mtkView.device
    |                                       `- warning: main actor-isolated property 'device' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 26 |
 27 |                 guard let queue = self.device.makeCommandQueue() else { return }
MetalKit.MTKView:6:25: note: property declared here
 4 |     public init(coder: NSCoder)
 5 |     weak open var delegate: (any MTKViewDelegate)? { get set }
 6 |     @MainActor open var device: (any MTLDevice)? { get set }
   |                         `- note: property declared here
 7 |     open var currentDrawable: (any CAMetalDrawable)? { get }
 8 |     open var framebufferOnly: Bool { get set }
/Users/admin/builder/spi-builder-workspace/Sources/Forge/Renderer.swift:30:25: warning: main actor-isolated property 'depthStencilPixelFormat' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 28 |                 self.commandQueue = queue
 29 |
 30 |                 mtkView.depthStencilPixelFormat = .depth32Float_stencil8
    |                         `- warning: main actor-isolated property 'depthStencilPixelFormat' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 31 |                 mtkView.colorPixelFormat = .bgra8Unorm
 32 |
MetalKit.MTKView:15:14: note: mutation of this property is only permitted within the actor
13 |     open var presentsWithTransaction: Bool { get set }
14 |     open var colorPixelFormat: MTLPixelFormat { get set }
15 |     open var depthStencilPixelFormat: MTLPixelFormat { get set }
   |              `- note: mutation of this property is only permitted within the actor
16 |     @available(macOS 13.0, *)
17 |     open var depthStencilStorageMode: MTLStorageMode { get set }
/Users/admin/builder/spi-builder-workspace/Sources/Forge/Renderer.swift:31:25: warning: main actor-isolated property 'colorPixelFormat' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 29 |
 30 |                 mtkView.depthStencilPixelFormat = .depth32Float_stencil8
 31 |                 mtkView.colorPixelFormat = .bgra8Unorm
    |                         `- warning: main actor-isolated property 'colorPixelFormat' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 32 |
 33 |                 self.setupMtkView(mtkView)
MetalKit.MTKView:14:14: note: mutation of this property is only permitted within the actor
12 |     open var multisampleColorAttachmentTextureUsage: MTLTextureUsage { get set }
13 |     open var presentsWithTransaction: Bool { get set }
14 |     open var colorPixelFormat: MTLPixelFormat { get set }
   |              `- note: mutation of this property is only permitted within the actor
15 |     open var depthStencilPixelFormat: MTLPixelFormat { get set }
16 |     @available(macOS 13.0, *)
/Users/admin/builder/spi-builder-workspace/Sources/Forge/Renderer.swift:54:29: warning: main actor-isolated property 'sampleCount' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 52 |
 53 |     public var sampleCount: Int {
 54 |         return self.mtkView.sampleCount
    |                             `- warning: main actor-isolated property 'sampleCount' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 55 |     }
 56 |
MetalKit.MTKView:18:14: note: property declared here
16 |     @available(macOS 13.0, *)
17 |     open var depthStencilStorageMode: MTLStorageMode { get set }
18 |     open var sampleCount: Int { get set }
   |              `- note: property declared here
19 |     open var clearColor: MTLClearColor { get set }
20 |     open var clearDepth: Double { get set }
/Users/admin/builder/spi-builder-workspace/Sources/Forge/Renderer.swift:58:29: warning: main actor-isolated property 'colorPixelFormat' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 56 |
 57 |     public var colorPixelFormat: MTLPixelFormat {
 58 |         return self.mtkView.colorPixelFormat
    |                             `- warning: main actor-isolated property 'colorPixelFormat' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 59 |     }
 60 |
MetalKit.MTKView:14:14: note: property declared here
12 |     open var multisampleColorAttachmentTextureUsage: MTLTextureUsage { get set }
13 |     open var presentsWithTransaction: Bool { get set }
14 |     open var colorPixelFormat: MTLPixelFormat { get set }
   |              `- note: property declared here
15 |     open var depthStencilPixelFormat: MTLPixelFormat { get set }
16 |     @available(macOS 13.0, *)
/Users/admin/builder/spi-builder-workspace/Sources/Forge/Renderer.swift:62:29: warning: main actor-isolated property 'depthStencilPixelFormat' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 60 |
 61 |     public var depthStencilPixelFormat: MTLPixelFormat {
 62 |         return self.mtkView.depthStencilPixelFormat
    |                             `- warning: main actor-isolated property 'depthStencilPixelFormat' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 63 |     }
 64 |
MetalKit.MTKView:15:14: note: property declared here
13 |     open var presentsWithTransaction: Bool { get set }
14 |     open var colorPixelFormat: MTLPixelFormat { get set }
15 |     open var depthStencilPixelFormat: MTLPixelFormat { get set }
   |              `- note: property declared here
16 |     @available(macOS 13.0, *)
17 |     open var depthStencilStorageMode: MTLStorageMode { get set }
/Users/admin/builder/spi-builder-workspace/Sources/Forge/Renderer.swift:66:29: warning: main actor-isolated property 'depthStencilPixelFormat' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 64 |
 65 |     public var depthPixelFormat: MTLPixelFormat {
 66 |         return self.mtkView.depthStencilPixelFormat
    |                             `- warning: main actor-isolated property 'depthStencilPixelFormat' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 67 |     }
 68 |
MetalKit.MTKView:15:14: note: property declared here
13 |     open var presentsWithTransaction: Bool { get set }
14 |     open var colorPixelFormat: MTLPixelFormat { get set }
15 |     open var depthStencilPixelFormat: MTLPixelFormat { get set }
   |              `- note: property declared here
16 |     @available(macOS 13.0, *)
17 |     open var depthStencilStorageMode: MTLStorageMode { get set }
/Users/admin/builder/spi-builder-workspace/Sources/Forge/Renderer.swift:73:29: warning: main actor-isolated property 'depthStencilPixelFormat' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 71 |             return .invalid
 72 |         }
 73 |         return self.mtkView.depthStencilPixelFormat
    |                             `- warning: main actor-isolated property 'depthStencilPixelFormat' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 74 |     }
 75 |
MetalKit.MTKView:15:14: note: property declared here
13 |     open var presentsWithTransaction: Bool { get set }
14 |     open var colorPixelFormat: MTLPixelFormat { get set }
15 |     open var depthStencilPixelFormat: MTLPixelFormat { get set }
   |              `- note: property declared here
16 |     @available(macOS 13.0, *)
17 |     open var depthStencilStorageMode: MTLStorageMode { get set }
/Users/admin/builder/spi-builder-workspace/Sources/Forge/Renderer.swift:94:28: warning: main actor-isolated property 'currentDrawable' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 91 |     open func setupMtkView(_ mtkView: MTKView) {}
 92 |
 93 |     open func draw(in view: MTKView) {
    |               `- note: add '@MainActor' to make instance method 'draw(in:)' part of global actor 'MainActor'
 94 |         guard let _ = view.currentDrawable, let commandBuffer = self.preDraw() else { return }
    |                            `- warning: main actor-isolated property 'currentDrawable' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 95 |         self.draw(view, commandBuffer)
 96 |         self.postDraw(view, commandBuffer)
MetalKit.MTKView:7:14: note: property declared here
 5 |     weak open var delegate: (any MTKViewDelegate)? { get set }
 6 |     @MainActor open var device: (any MTLDevice)? { get set }
 7 |     open var currentDrawable: (any CAMetalDrawable)? { get }
   |              `- note: property declared here
 8 |     open var framebufferOnly: Bool { get set }
 9 |     @available(macOS 10.15, *)
/Users/admin/builder/spi-builder-workspace/Sources/Forge/Renderer.swift:111:35: warning: main actor-isolated property 'currentDrawable' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
108 |     }
109 |
110 |     open func postDraw(_ view: MTKView, _ commandBuffer: MTLCommandBuffer) {
    |               `- note: add '@MainActor' to make instance method 'postDraw' part of global actor 'MainActor'
111 |         guard let drawable = view.currentDrawable else { return }
    |                                   `- warning: main actor-isolated property 'currentDrawable' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
112 |         commandBuffer.present(drawable)
113 |         let blockSemaphone = self.inFlightSemaphore
MetalKit.MTKView:7:14: note: property declared here
 5 |     weak open var delegate: (any MTKViewDelegate)? { get set }
 6 |     @MainActor open var device: (any MTLDevice)? { get set }
 7 |     open var currentDrawable: (any CAMetalDrawable)? { get }
   |              `- note: property declared here
 8 |     open var framebufferOnly: Bool { get set }
 9 |     @available(macOS 10.15, *)
[6/7] Emitting module Forge
/Users/admin/builder/spi-builder-workspace/Sources/Forge/Renderer.swift:25:39: warning: main actor-isolated property 'device' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 23 |         didSet {
 24 |             if let mtkView = mtkView {
 25 |                 self.device = mtkView.device
    |                                       `- warning: main actor-isolated property 'device' can not be referenced from a non-isolated context; this is an error in the Swift 6 language mode
 26 |
 27 |                 guard let queue = self.device.makeCommandQueue() else { return }
MetalKit.MTKView:6:25: note: property declared here
 4 |     @MainActor public init(coder: NSCoder)
 5 |     weak open var delegate: (any MTKViewDelegate)? { get set }
 6 |     @MainActor open var device: (any MTLDevice)? { get set }
   |                         `- note: property declared here
 7 |     open var currentDrawable: (any CAMetalDrawable)? { get }
 8 |     open var framebufferOnly: Bool { get set }
/Users/admin/builder/spi-builder-workspace/Sources/Forge/Renderer.swift:30:25: warning: main actor-isolated property 'depthStencilPixelFormat' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 28 |                 self.commandQueue = queue
 29 |
 30 |                 mtkView.depthStencilPixelFormat = .depth32Float_stencil8
    |                         `- warning: main actor-isolated property 'depthStencilPixelFormat' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 31 |                 mtkView.colorPixelFormat = .bgra8Unorm
 32 |
MetalKit.MTKView:15:14: note: mutation of this property is only permitted within the actor
13 |     open var presentsWithTransaction: Bool { get set }
14 |     open var colorPixelFormat: MTLPixelFormat { get set }
15 |     open var depthStencilPixelFormat: MTLPixelFormat { get set }
   |              `- note: mutation of this property is only permitted within the actor
16 |     @available(macOS 13.0, *)
17 |     open var depthStencilStorageMode: MTLStorageMode { get set }
/Users/admin/builder/spi-builder-workspace/Sources/Forge/Renderer.swift:31:25: warning: main actor-isolated property 'colorPixelFormat' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 29 |
 30 |                 mtkView.depthStencilPixelFormat = .depth32Float_stencil8
 31 |                 mtkView.colorPixelFormat = .bgra8Unorm
    |                         `- warning: main actor-isolated property 'colorPixelFormat' can not be mutated from a non-isolated context; this is an error in the Swift 6 language mode
 32 |
 33 |                 self.setupMtkView(mtkView)
MetalKit.MTKView:14:14: note: mutation of this property is only permitted within the actor
12 |     open var multisampleColorAttachmentTextureUsage: MTLTextureUsage { get set }
13 |     open var presentsWithTransaction: Bool { get set }
14 |     open var colorPixelFormat: MTLPixelFormat { get set }
   |              `- note: mutation of this property is only permitted within the actor
15 |     open var depthStencilPixelFormat: MTLPixelFormat { get set }
16 |     @available(macOS 13.0, *)
[7/7] Compiling Forge ForgeView.swift
Build complete! (33.70s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Forge",
  "name" : "Forge",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "Forge",
      "targets" : [
        "Forge"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "Forge",
      "module_type" : "SwiftTarget",
      "name" : "Forge",
      "path" : "Sources/Forge",
      "product_memberships" : [
        "Forge"
      ],
      "sources" : [
        "ForgeView.swift",
        "MetalView.swift",
        "Renderer.swift",
        "ViewController.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.