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

Failed to build MainOffender, reference main (a5c60f), with Swift 6.0 for Linux on 21 Apr 2025 16:58:51 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.60.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/mattmassicotte/MainOffender.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/mattmassicotte/MainOffender
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at a5c60fe Update contact info
Cloned https://github.com/mattmassicotte/MainOffender.git
Revision (git rev-parse @):
a5c60feeb800a0d41d0fbc3f102f6c286fe3c549
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/mattmassicotte/MainOffender.git at main
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/mattmassicotte/MainOffender.git
https://github.com/mattmassicotte/MainOffender.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
  ],
  "manifest_display_name" : "MainOffender",
  "name" : "MainOffender",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "maccatalyst",
      "version" : "13.0"
    },
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    }
  ],
  "products" : [
    {
      "name" : "MainOffender",
      "targets" : [
        "MainOffender"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "MainOffenderTests",
      "module_type" : "SwiftTarget",
      "name" : "MainOffenderTests",
      "path" : "Tests/MainOffenderTests",
      "sources" : [
        "AsyncAdditionTests.swift",
        "MainActorTests.swift",
        "ThreadExecutorTests.swift",
        "UndoManagerTests.swift"
      ],
      "target_dependencies" : [
        "MainOffender"
      ],
      "type" : "test"
    },
    {
      "c99name" : "MainOffender",
      "module_type" : "SwiftTarget",
      "name" : "MainOffender",
      "path" : "Sources/MainOffender",
      "product_memberships" : [
        "MainOffender"
      ],
      "sources" : [
        "MainActor+RunUnsafely.swift",
        "MainDispatchQueue.swift",
        "MainOperationQueue.swift",
        "NotificationCenter+Unsafe.swift",
        "RunLoop+Async.swift",
        "ThreadExecutor.swift",
        "UndoManager+MainActor.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.8"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:9029076bb687edc160a3d5201c89e92dd9fa7309f33f090c4234365c83366c31
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/10] Compiling MainOffender UndoManager+MainActor.swift
[4/10] Compiling MainOffender RunLoop+Async.swift
[5/10] Compiling MainOffender MainActor+RunUnsafely.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[6/10] Compiling MainOffender MainDispatchQueue.swift
[7/10] Compiling MainOffender MainOperationQueue.swift
[8/10] Compiling MainOffender NotificationCenter+Unsafe.swift
/host/spi-builder-workspace/Sources/MainOffender/NotificationCenter+Unsafe.swift:10:7: warning: initialization of immutable value 'nonMainblock' was never used; consider replacing with assignment to '_' or removing it
 8 | 		using block: @escaping @MainActor (Notification) -> Void
 9 | 	) -> NSObjectProtocol {
10 | 		let nonMainblock = unsafeBitCast(block, to: ((Notification) -> Void).self)
   |       `- warning: initialization of immutable value 'nonMainblock' was never used; consider replacing with assignment to '_' or removing it
11 |
12 | 		return addObserver(forName: name, object: obj, queue: .main) { notification in
[9/10] Emitting module MainOffender
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:5:16: error: cannot find type 'CFRunLoop' in scope
  3 | final class ThreadRunLoop: Sendable {
  4 | 	private struct RunLoopContext: @unchecked Sendable {
  5 | 		let runLoop: CFRunLoop
    |                `- error: cannot find type 'CFRunLoop' in scope
  6 | 		let source: CFRunLoopSource
  7 | 		let thread: Thread
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:6:15: error: cannot find type 'CFRunLoopSource' in scope
  4 | 	private struct RunLoopContext: @unchecked Sendable {
  5 | 		let runLoop: CFRunLoop
  6 | 		let source: CFRunLoopSource
    |               `- error: cannot find type 'CFRunLoopSource' in scope
  7 | 		let thread: Thread
  8 | 	}
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:45:37: error: cannot find type 'CFRunLoopSource' in scope
 43 | 	}
 44 |
 45 | 	static func createEmptySource() -> CFRunLoopSource {
    |                                     `- error: cannot find type 'CFRunLoopSource' in scope
 46 | 		var sourceContext = CFRunLoopSourceContext(
 47 | 			version: 0,
[10/10] Compiling MainOffender ThreadExecutor.swift
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:5:16: error: cannot find type 'CFRunLoop' in scope
  3 | final class ThreadRunLoop: Sendable {
  4 | 	private struct RunLoopContext: @unchecked Sendable {
  5 | 		let runLoop: CFRunLoop
    |                `- error: cannot find type 'CFRunLoop' in scope
  6 | 		let source: CFRunLoopSource
  7 | 		let thread: Thread
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:6:15: error: cannot find type 'CFRunLoopSource' in scope
  4 | 	private struct RunLoopContext: @unchecked Sendable {
  5 | 		let runLoop: CFRunLoop
  6 | 		let source: CFRunLoopSource
    |               `- error: cannot find type 'CFRunLoopSource' in scope
  7 | 		let thread: Thread
  8 | 	}
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:45:37: error: cannot find type 'CFRunLoopSource' in scope
 43 | 	}
 44 |
 45 | 	static func createEmptySource() -> CFRunLoopSource {
    |                                     `- error: cannot find type 'CFRunLoopSource' in scope
 46 | 		var sourceContext = CFRunLoopSourceContext(
 47 | 			version: 0,
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:24:21: error: cannot find 'CFRunLoopGetCurrent' in scope
 22 | 			}
 23 |
 24 | 			guard let loop = CFRunLoopGetCurrent() else {
    |                     `- error: cannot find 'CFRunLoopGetCurrent' in scope
 25 | 				fatalError("Unable to create runloop in thread")
 26 | 			}
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:30:4: error: cannot find 'CFRunLoopAddSource' in scope
 28 | 			let source = Self.createEmptySource()
 29 |
 30 | 			CFRunLoopAddSource(loop, source, CFRunLoopMode.defaultMode)
    |    `- error: cannot find 'CFRunLoopAddSource' in scope
 31 |
 32 | 			context = RunLoopContext(runLoop: loop, source: source, thread: thread)
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:30:37: error: cannot find 'CFRunLoopMode' in scope
 28 | 			let source = Self.createEmptySource()
 29 |
 30 | 			CFRunLoopAddSource(loop, source, CFRunLoopMode.defaultMode)
    |                                     `- error: cannot find 'CFRunLoopMode' in scope
 31 |
 32 | 			context = RunLoopContext(runLoop: loop, source: source, thread: thread)
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:35:4: error: cannot find 'CFRunLoopRun' in scope
 33 | 			semaphore.signal()
 34 |
 35 | 			CFRunLoopRun()
    |    `- error: cannot find 'CFRunLoopRun' in scope
 36 | 		}
 37 |
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:46:23: error: cannot find 'CFRunLoopSourceContext' in scope
 44 |
 45 | 	static func createEmptySource() -> CFRunLoopSource {
 46 | 		var sourceContext = CFRunLoopSourceContext(
    |                       `- error: cannot find 'CFRunLoopSourceContext' in scope
 47 | 			version: 0,
 48 | 			info: nil,
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:48:10: error: 'nil' requires a contextual type
 46 | 		var sourceContext = CFRunLoopSourceContext(
 47 | 			version: 0,
 48 | 			info: nil,
    |          `- error: 'nil' requires a contextual type
 49 | 			retain: nil,
 50 | 			release: nil,
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:49:12: error: 'nil' requires a contextual type
 47 | 			version: 0,
 48 | 			info: nil,
 49 | 			retain: nil,
    |            `- error: 'nil' requires a contextual type
 50 | 			release: nil,
 51 | 			copyDescription: nil,
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:50:13: error: 'nil' requires a contextual type
 48 | 			info: nil,
 49 | 			retain: nil,
 50 | 			release: nil,
    |             `- error: 'nil' requires a contextual type
 51 | 			copyDescription: nil,
 52 | 			equal: nil,
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:51:21: error: 'nil' requires a contextual type
 49 | 			retain: nil,
 50 | 			release: nil,
 51 | 			copyDescription: nil,
    |                     `- error: 'nil' requires a contextual type
 52 | 			equal: nil,
 53 | 			hash: nil,
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:52:11: error: 'nil' requires a contextual type
 50 | 			release: nil,
 51 | 			copyDescription: nil,
 52 | 			equal: nil,
    |           `- error: 'nil' requires a contextual type
 53 | 			hash: nil,
 54 | 			schedule: { _, _, _ in
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:53:10: error: 'nil' requires a contextual type
 51 | 			copyDescription: nil,
 52 | 			equal: nil,
 53 | 			hash: nil,
    |          `- error: 'nil' requires a contextual type
 54 | 			schedule: { _, _, _ in
 55 | 			},
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:66:3: error: cannot find 'CFRunLoopStop' in scope
 64 |
 65 | 	deinit {
 66 | 		CFRunLoopStop(context.runLoop)
    |   `- error: cannot find 'CFRunLoopStop' in scope
 67 | 	}
 68 |
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:76:3: error: cannot find 'CFRunLoopPerformBlock' in scope
 74 | 		semaphore.wait()
 75 |
 76 | 		CFRunLoopPerformBlock(context.runLoop, CFRunLoopMode.defaultMode.rawValue, work)
    |   `- error: cannot find 'CFRunLoopPerformBlock' in scope
 77 | 		CFRunLoopWakeUp(context.runLoop)
 78 |
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:76:42: error: cannot find 'CFRunLoopMode' in scope
 74 | 		semaphore.wait()
 75 |
 76 | 		CFRunLoopPerformBlock(context.runLoop, CFRunLoopMode.defaultMode.rawValue, work)
    |                                          `- error: cannot find 'CFRunLoopMode' in scope
 77 | 		CFRunLoopWakeUp(context.runLoop)
 78 |
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:77:3: error: cannot find 'CFRunLoopWakeUp' in scope
 75 |
 76 | 		CFRunLoopPerformBlock(context.runLoop, CFRunLoopMode.defaultMode.rawValue, work)
 77 | 		CFRunLoopWakeUp(context.runLoop)
    |   `- error: cannot find 'CFRunLoopWakeUp' in scope
 78 |
 79 | 		semaphore.signal()
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:9029076bb687edc160a3d5201c89e92dd9fa7309f33f090c4234365c83366c31
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-24593BA9C3E375BF.txt
[2/9] Compiling MainOffender UndoManager+MainActor.swift
[3/9] Compiling MainOffender ThreadExecutor.swift
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:5:16: error: cannot find type 'CFRunLoop' in scope
  3 | final class ThreadRunLoop: Sendable {
  4 | 	private struct RunLoopContext: @unchecked Sendable {
  5 | 		let runLoop: CFRunLoop
    |                `- error: cannot find type 'CFRunLoop' in scope
  6 | 		let source: CFRunLoopSource
  7 | 		let thread: Thread
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:6:15: error: cannot find type 'CFRunLoopSource' in scope
  4 | 	private struct RunLoopContext: @unchecked Sendable {
  5 | 		let runLoop: CFRunLoop
  6 | 		let source: CFRunLoopSource
    |               `- error: cannot find type 'CFRunLoopSource' in scope
  7 | 		let thread: Thread
  8 | 	}
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:45:37: error: cannot find type 'CFRunLoopSource' in scope
 43 | 	}
 44 |
 45 | 	static func createEmptySource() -> CFRunLoopSource {
    |                                     `- error: cannot find type 'CFRunLoopSource' in scope
 46 | 		var sourceContext = CFRunLoopSourceContext(
 47 | 			version: 0,
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:24:21: error: cannot find 'CFRunLoopGetCurrent' in scope
 22 | 			}
 23 |
 24 | 			guard let loop = CFRunLoopGetCurrent() else {
    |                     `- error: cannot find 'CFRunLoopGetCurrent' in scope
 25 | 				fatalError("Unable to create runloop in thread")
 26 | 			}
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:30:4: error: cannot find 'CFRunLoopAddSource' in scope
 28 | 			let source = Self.createEmptySource()
 29 |
 30 | 			CFRunLoopAddSource(loop, source, CFRunLoopMode.defaultMode)
    |    `- error: cannot find 'CFRunLoopAddSource' in scope
 31 |
 32 | 			context = RunLoopContext(runLoop: loop, source: source, thread: thread)
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:30:37: error: cannot find 'CFRunLoopMode' in scope
 28 | 			let source = Self.createEmptySource()
 29 |
 30 | 			CFRunLoopAddSource(loop, source, CFRunLoopMode.defaultMode)
    |                                     `- error: cannot find 'CFRunLoopMode' in scope
 31 |
 32 | 			context = RunLoopContext(runLoop: loop, source: source, thread: thread)
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:35:4: error: cannot find 'CFRunLoopRun' in scope
 33 | 			semaphore.signal()
 34 |
 35 | 			CFRunLoopRun()
    |    `- error: cannot find 'CFRunLoopRun' in scope
 36 | 		}
 37 |
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:46:23: error: cannot find 'CFRunLoopSourceContext' in scope
 44 |
 45 | 	static func createEmptySource() -> CFRunLoopSource {
 46 | 		var sourceContext = CFRunLoopSourceContext(
    |                       `- error: cannot find 'CFRunLoopSourceContext' in scope
 47 | 			version: 0,
 48 | 			info: nil,
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:48:10: error: 'nil' requires a contextual type
 46 | 		var sourceContext = CFRunLoopSourceContext(
 47 | 			version: 0,
 48 | 			info: nil,
    |          `- error: 'nil' requires a contextual type
 49 | 			retain: nil,
 50 | 			release: nil,
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:49:12: error: 'nil' requires a contextual type
 47 | 			version: 0,
 48 | 			info: nil,
 49 | 			retain: nil,
    |            `- error: 'nil' requires a contextual type
 50 | 			release: nil,
 51 | 			copyDescription: nil,
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:50:13: error: 'nil' requires a contextual type
 48 | 			info: nil,
 49 | 			retain: nil,
 50 | 			release: nil,
    |             `- error: 'nil' requires a contextual type
 51 | 			copyDescription: nil,
 52 | 			equal: nil,
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:51:21: error: 'nil' requires a contextual type
 49 | 			retain: nil,
 50 | 			release: nil,
 51 | 			copyDescription: nil,
    |                     `- error: 'nil' requires a contextual type
 52 | 			equal: nil,
 53 | 			hash: nil,
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:52:11: error: 'nil' requires a contextual type
 50 | 			release: nil,
 51 | 			copyDescription: nil,
 52 | 			equal: nil,
    |           `- error: 'nil' requires a contextual type
 53 | 			hash: nil,
 54 | 			schedule: { _, _, _ in
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:53:10: error: 'nil' requires a contextual type
 51 | 			copyDescription: nil,
 52 | 			equal: nil,
 53 | 			hash: nil,
    |          `- error: 'nil' requires a contextual type
 54 | 			schedule: { _, _, _ in
 55 | 			},
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:66:3: error: cannot find 'CFRunLoopStop' in scope
 64 |
 65 | 	deinit {
 66 | 		CFRunLoopStop(context.runLoop)
    |   `- error: cannot find 'CFRunLoopStop' in scope
 67 | 	}
 68 |
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:76:3: error: cannot find 'CFRunLoopPerformBlock' in scope
 74 | 		semaphore.wait()
 75 |
 76 | 		CFRunLoopPerformBlock(context.runLoop, CFRunLoopMode.defaultMode.rawValue, work)
    |   `- error: cannot find 'CFRunLoopPerformBlock' in scope
 77 | 		CFRunLoopWakeUp(context.runLoop)
 78 |
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:76:42: error: cannot find 'CFRunLoopMode' in scope
 74 | 		semaphore.wait()
 75 |
 76 | 		CFRunLoopPerformBlock(context.runLoop, CFRunLoopMode.defaultMode.rawValue, work)
    |                                          `- error: cannot find 'CFRunLoopMode' in scope
 77 | 		CFRunLoopWakeUp(context.runLoop)
 78 |
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:77:3: error: cannot find 'CFRunLoopWakeUp' in scope
 75 |
 76 | 		CFRunLoopPerformBlock(context.runLoop, CFRunLoopMode.defaultMode.rawValue, work)
 77 | 		CFRunLoopWakeUp(context.runLoop)
    |   `- error: cannot find 'CFRunLoopWakeUp' in scope
 78 |
 79 | 		semaphore.signal()
[4/9] Compiling MainOffender MainOperationQueue.swift
[5/9] Compiling MainOffender RunLoop+Async.swift
[6/9] Compiling MainOffender NotificationCenter+Unsafe.swift
/host/spi-builder-workspace/Sources/MainOffender/NotificationCenter+Unsafe.swift:10:7: warning: initialization of immutable value 'nonMainblock' was never used; consider replacing with assignment to '_' or removing it
 8 | 		using block: @escaping @MainActor (Notification) -> Void
 9 | 	) -> NSObjectProtocol {
10 | 		let nonMainblock = unsafeBitCast(block, to: ((Notification) -> Void).self)
   |       `- warning: initialization of immutable value 'nonMainblock' was never used; consider replacing with assignment to '_' or removing it
11 |
12 | 		return addObserver(forName: name, object: obj, queue: .main) { notification in
error: emit-module command failed with exit code 1 (use -v to see invocation)
[7/9] Compiling MainOffender MainActor+RunUnsafely.swift
[8/9] Compiling MainOffender MainDispatchQueue.swift
[9/9] Emitting module MainOffender
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:5:16: error: cannot find type 'CFRunLoop' in scope
  3 | final class ThreadRunLoop: Sendable {
  4 | 	private struct RunLoopContext: @unchecked Sendable {
  5 | 		let runLoop: CFRunLoop
    |                `- error: cannot find type 'CFRunLoop' in scope
  6 | 		let source: CFRunLoopSource
  7 | 		let thread: Thread
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:6:15: error: cannot find type 'CFRunLoopSource' in scope
  4 | 	private struct RunLoopContext: @unchecked Sendable {
  5 | 		let runLoop: CFRunLoop
  6 | 		let source: CFRunLoopSource
    |               `- error: cannot find type 'CFRunLoopSource' in scope
  7 | 		let thread: Thread
  8 | 	}
/host/spi-builder-workspace/Sources/MainOffender/ThreadExecutor.swift:45:37: error: cannot find type 'CFRunLoopSource' in scope
 43 | 	}
 44 |
 45 | 	static func createEmptySource() -> CFRunLoopSource {
    |                                     `- error: cannot find type 'CFRunLoopSource' in scope
 46 | 		var sourceContext = CFRunLoopSourceContext(
 47 | 			version: 0,
BUILD FAILURE 6.0 linux