The Swift Package Index logo.Swift Package Index

Build Information

Successful build of FFFoundation, reference 9.9.0 (ec377f), with Swift 6.4 for Linux on 9 Oct 2026 19:50:04 UTC.

Swift 6 data race errors: 0

Build Command

bash -c docker run --pull=always --rm -v "checkouts-54344845-2":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest swift build --triple x86_64-unknown-linux-gnu 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/ffried/fffoundation.git
Reference: 9.9.0
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/ffried/fffoundation
 * tag               9.9.0      -> FETCH_HEAD
HEAD is now at ec377fc Convert last test to Testing
Cloned https://github.com/ffried/fffoundation.git
Revision (git rev-parse @):
ec377fc3906f0b7cd9596ca608aaac3194b6ec98
SUCCESS checkout https://github.com/ffried/fffoundation.git at 9.9.0
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.4
Building package at path:  $PWD
https://github.com/ffried/fffoundation.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344845-2":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:cb09f0c0d537a8668f02529c380785d189fc75032d54572211355a09e050e122
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2345] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin (0.51s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (1.44s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3835] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit (0.53s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (0.75s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.5.0
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Building for debugging...
[Planning deferred tasks]
[28 / 36] FFFoundation
/host/spi-builder-workspace/Sources/FFFoundation/Timer.swift:26:24: warning: '@preconcurrency' import is not memory-safe because it can silently introduce data races; add '@unsafe' to indicate that this is unsafe [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/strict-memory-safety\StrictMemorySafety]8;;\]
24 | #endif
25 | #if os(Linux) || compiler(<6.1)
26 | @preconcurrency import Dispatch
   |                        `- warning: '@preconcurrency' import is not memory-safe because it can silently introduce data races; add '@unsafe' to indicate that this is unsafe [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/strict-memory-safety\StrictMemorySafety]8;;\]
27 | #else
28 | import Dispatch
[#StrictMemorySafety]: <https://docs.swift.org/compiler/documentation/diagnostics/strict-memory-safety>
/host/spi-builder-workspace/Sources/FFFoundation/Timer.swift:26:24: warning: '@preconcurrency' import is not memory-safe because it can silently introduce data races; add '@unsafe' to indicate that this is unsafe [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/strict-memory-safety\StrictMemorySafety]8;;\]
24 | #endif
25 | #if os(Linux) || compiler(<6.1)
26 | @preconcurrency import Dispatch
   |                        `- warning: '@preconcurrency' import is not memory-safe because it can silently introduce data races; add '@unsafe' to indicate that this is unsafe [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/strict-memory-safety\StrictMemorySafety]8;;\]
27 | #else
28 | import Dispatch
[#StrictMemorySafety]: <https://docs.swift.org/compiler/documentation/diagnostics/strict-memory-safety>
[29 / 36] FFFoundation
/host/spi-builder-workspace/Sources/FFFoundation/OSLogLinux.swift:113:5: warning: expression uses unsafe constructs but is not marked with 'unsafe' [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/strict-memory-safety\StrictMemorySafety]8;;\]
111 |
112 | public func os_log(_ msg: StaticString, dso: UnsafeRawPointer? = #dsohandle, log: OSLog = .default, type: OSLogType = .default, _ args: any CVarArg...) {
113 |     log.write(message: msg, dso: dso, type: type, args: args)
    |     |   |                        |- note: argument 'dso' in call to instance method 'write' has unsafe type 'UnsafeRawPointer?'
    |     |   |                        `- note: reference to parameter 'dso' involves unsafe type 'UnsafeRawPointer'
    |     |   `- note: reference to instance method 'write(message:dso:type:args:)' involves unsafe type 'UnsafeRawPointer'
    |     `- warning: expression uses unsafe constructs but is not marked with 'unsafe' [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/strict-memory-safety\StrictMemorySafety]8;;\]
114 | }
115 | #endif
[#StrictMemorySafety]: <https://docs.swift.org/compiler/documentation/diagnostics/strict-memory-safety>
/host/spi-builder-workspace/Sources/FFFoundation/Containers/UserDefaultsStorable.swift:53:21: warning: no unsafe operations occur within 'unsafe' expression [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-unsafe\UnnecessaryUnsafe]8;;\]
 51 |             unsafe String(describing: Self.self).withCString { type in
 52 |                 unsafe key.withCString { keyStr in
 53 |                     unsafe String(describing: userDefaults).withCString { ud in
    |                     `- warning: no unsafe operations occur within 'unsafe' expression [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-unsafe\UnnecessaryUnsafe]8;;\]
 54 |                         unsafe os_log("[UserDefault] Could not decode %@ for key %@ from user defaults %@",
 55 |                                       log: .ffFoundation, type: .error, type, keyStr, ud)
/host/spi-builder-workspace/Sources/FFFoundation/Containers/UserDefaultsStorable.swift:52:17: warning: no unsafe operations occur within 'unsafe' expression [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-unsafe\UnnecessaryUnsafe]8;;\]
 50 | #else
 51 |             unsafe String(describing: Self.self).withCString { type in
 52 |                 unsafe key.withCString { keyStr in
    |                 `- warning: no unsafe operations occur within 'unsafe' expression [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-unsafe\UnnecessaryUnsafe]8;;\]
 53 |                     unsafe String(describing: userDefaults).withCString { ud in
 54 |                         unsafe os_log("[UserDefault] Could not decode %@ for key %@ from user defaults %@",
/host/spi-builder-workspace/Sources/FFFoundation/Containers/UserDefaultsStorable.swift:51:13: warning: no unsafe operations occur within 'unsafe' expression [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-unsafe\UnnecessaryUnsafe]8;;\]
 49 |                           log: .ffFoundation, type: .error, String(describing: Self.self), key, userDefaults)
 50 | #else
 51 |             unsafe String(describing: Self.self).withCString { type in
    |             `- warning: no unsafe operations occur within 'unsafe' expression [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-unsafe\UnnecessaryUnsafe]8;;\]
 52 |                 unsafe key.withCString { keyStr in
 53 |                     unsafe String(describing: userDefaults).withCString { ud in
/host/spi-builder-workspace/Sources/FFFoundation/Containers/UserDefaultsStorable.swift:95:21: warning: no unsafe operations occur within 'unsafe' expression [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-unsafe\UnnecessaryUnsafe]8;;\]
 93 |             unsafe String(describing: Self.self).withCString { type in
 94 |                 unsafe key.withCString { keyStr in
 95 |                     unsafe String(describing: userDefaults).withCString { ud in
    |                     `- warning: no unsafe operations occur within 'unsafe' expression [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-unsafe\UnnecessaryUnsafe]8;;\]
 96 |                         unsafe os_log("[UserDefault] Could not encode %@ for key %@ for user defaults %@",
 97 |                                       log: .ffFoundation, type: .error, type, keyStr, ud)
/host/spi-builder-workspace/Sources/FFFoundation/Containers/UserDefaultsStorable.swift:94:17: warning: no unsafe operations occur within 'unsafe' expression [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-unsafe\UnnecessaryUnsafe]8;;\]
 92 | #else
 93 |             unsafe String(describing: Self.self).withCString { type in
 94 |                 unsafe key.withCString { keyStr in
    |                 `- warning: no unsafe operations occur within 'unsafe' expression [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-unsafe\UnnecessaryUnsafe]8;;\]
 95 |                     unsafe String(describing: userDefaults).withCString { ud in
 96 |                         unsafe os_log("[UserDefault] Could not encode %@ for key %@ for user defaults %@",
/host/spi-builder-workspace/Sources/FFFoundation/Containers/UserDefaultsStorable.swift:93:13: warning: no unsafe operations occur within 'unsafe' expression [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-unsafe\UnnecessaryUnsafe]8;;\]
 91 |                           log: .ffFoundation, type: .error, String(describing: Self.self), key, userDefaults)
 92 | #else
 93 |             unsafe String(describing: Self.self).withCString { type in
    |             `- warning: no unsafe operations occur within 'unsafe' expression [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker\UnnecessaryEffectMarker]8;;\::]8;;https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-unsafe\UnnecessaryUnsafe]8;;\]
 94 |                 unsafe key.withCString { keyStr in
 95 |                     unsafe String(describing: userDefaults).withCString { ud in
[#UnnecessaryEffectMarker]: <https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-effect-marker>
[#UnnecessaryUnsafe]: <https://docs.swift.org/compiler/documentation/diagnostics/unnecessary-unsafe>
[36 / 37] FFFoundation
Build complete! (5.65 secs)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/swiftlang/swift-docc-plugin"
    }
  ],
  "manifest_display_name" : "FFFoundation",
  "name" : "FFFoundation",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "tvos",
      "version" : "15.0"
    },
    {
      "name" : "watchos",
      "version" : "9.0"
    },
    {
      "name" : "maccatalyst",
      "version" : "15.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "FFFoundation",
      "targets" : [
        "FFFoundation"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "FFFoundationTests",
      "module_type" : "SwiftTarget",
      "name" : "FFFoundationTests",
      "path" : "Tests/FFFoundationTests",
      "sources" : [
        "AngleTests.swift",
        "DiffTests.swift",
        "NSPredicate_InterpolationTests.swift",
        "StringClassesExtensionTests.swift",
        "TimerTests.swift",
        "TriangleTests.swift",
        "TypeDescriptionTests.swift",
        "UserDefaultTests.swift"
      ],
      "target_dependencies" : [
        "FFFoundation"
      ],
      "type" : "test"
    },
    {
      "c99name" : "FFFoundation",
      "module_type" : "SwiftTarget",
      "name" : "FFFoundation",
      "path" : "Sources/FFFoundation",
      "product_memberships" : [
        "FFFoundation"
      ],
      "sources" : [
        "CacheManager.swift",
        "Containers/CoW.swift",
        "Containers/Lazy.swift",
        "Containers/Lens.swift",
        "Containers/Ref.swift",
        "Containers/Synchronized.swift",
        "Containers/UserDefault.swift",
        "Containers/UserDefaultsStorable.swift",
        "Containers/Weak.swift",
        "Diff.swift",
        "DispatchHelpers.swift",
        "Extensions/DictionaryExtensions.swift",
        "Extensions/FileManager+Directories.swift",
        "Extensions/Locale+LanguageRegion.swift",
        "Extensions/NSAttributedStringExtensions.swift",
        "Extensions/NSLayoutConstraint+FFAdditions.swift",
        "Extensions/OperationQueue+FFAdditions.swift",
        "Extensions/Predicate+Key.swift",
        "Extensions/Predicate+Operators.swift",
        "Extensions/Predicate+StringInterpolation.swift",
        "Extensions/SortDescriptor+Key.swift",
        "Extensions/SortDescriptor+Operators.swift",
        "Extensions/String+Classes.swift",
        "Extensions/StringExtensions.swift",
        "GCDFuture.swift",
        "Geometry/Angle.swift",
        "Geometry/GeometricValue.swift",
        "Geometry/Point.swift",
        "Geometry/Size.swift",
        "Geometry/Triangle.swift",
        "Logging.swift",
        "OSLogLinux.swift",
        "PropertyKey.swift",
        "SendableMetaTypeShim.swift",
        "Timer.swift",
        "Togglable.swift",
        "TypeDescription.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.4"
}
basic-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:cb09f0c0d537a8668f02529c380785d189fc75032d54572211355a09e050e122
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest
Done.