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>&1Build 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: [1;33mwarning: [1;39m'@preconcurrency' import is not memory-safe because it can silently introduce data races; add '@unsafe' to indicate that this is unsafe[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/strict-memory-safety\StrictMemorySafety]8;;\]
[0;36m24 |[0;0m #endif
[0;36m25 |[0;0m #if os(Linux) || compiler(<6.1)
[0;36m26 |[0;0m @preconcurrency import Dispatch
[0;36m|[0;0m `- [1;33mwarning: [1;39m'@preconcurrency' import is not memory-safe because it can silently introduce data races; add '@unsafe' to indicate that this is unsafe[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/strict-memory-safety\StrictMemorySafety]8;;\]
[0;36m27 |[0;0m #else
[0;36m28 |[0;0m import Dispatch
[#StrictMemorySafety]: <https://docs.swift.org/compiler/documentation/diagnostics/strict-memory-safety>
/host/spi-builder-workspace/Sources/FFFoundation/Timer.swift:26:24: [1;33mwarning: [1;39m'@preconcurrency' import is not memory-safe because it can silently introduce data races; add '@unsafe' to indicate that this is unsafe[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/strict-memory-safety\StrictMemorySafety]8;;\]
[0;36m24 |[0;0m #endif
[0;36m25 |[0;0m #if os(Linux) || compiler(<6.1)
[0;36m26 |[0;0m @preconcurrency import Dispatch
[0;36m|[0;0m `- [1;33mwarning: [1;39m'@preconcurrency' import is not memory-safe because it can silently introduce data races; add '@unsafe' to indicate that this is unsafe[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/strict-memory-safety\StrictMemorySafety]8;;\]
[0;36m27 |[0;0m #else
[0;36m28 |[0;0m 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: [1;33mwarning: [1;39mexpression uses unsafe constructs but is not marked with 'unsafe'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/strict-memory-safety\StrictMemorySafety]8;;\]
[0;36m111 |[0;0m
[0;36m112 |[0;0m public func os_log(_ msg: StaticString, dso: UnsafeRawPointer? = #dsohandle, log: OSLog = .default, type: OSLogType = .default, _ args: any CVarArg...) {
[0;36m113 |[0;0m log.write(message: msg, dso: [4;39mdso[0;0m, type: type, args: args)
[0;36m|[0;0m | | |- [1;39mnote: [1;39margument 'dso' in call to instance method 'write' has unsafe type 'UnsafeRawPointer?'[0;0m
[0;36m|[0;0m | | `- [1;39mnote: [1;39mreference to parameter 'dso' involves unsafe type 'UnsafeRawPointer'[0;0m
[0;36m|[0;0m | `- [1;39mnote: [1;39mreference to instance method 'write(message:dso:type:args:)' involves unsafe type 'UnsafeRawPointer'[0;0m
[0;36m|[0;0m `- [1;33mwarning: [1;39mexpression uses unsafe constructs but is not marked with 'unsafe'[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/strict-memory-safety\StrictMemorySafety]8;;\]
[0;36m114 |[0;0m }
[0;36m115 |[0;0m #endif
[#StrictMemorySafety]: <https://docs.swift.org/compiler/documentation/diagnostics/strict-memory-safety>
/host/spi-builder-workspace/Sources/FFFoundation/Containers/UserDefaultsStorable.swift:53:21: [1;33mwarning: [1;39mno unsafe operations occur within 'unsafe' expression[0;0m [#]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;;\]
[0;36m51 |[0;0m unsafe String(describing: Self.self).withCString { type in
[0;36m52 |[0;0m unsafe key.withCString { keyStr in
[0;36m53 |[0;0m unsafe String(describing: userDefaults).withCString { ud in
[0;36m|[0;0m `- [1;33mwarning: [1;39mno unsafe operations occur within 'unsafe' expression[0;0m [#]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;;\]
[0;36m54 |[0;0m unsafe os_log("[UserDefault] Could not decode %@ for key %@ from user defaults %@",
[0;36m55 |[0;0m log: .ffFoundation, type: .error, type, keyStr, ud)
/host/spi-builder-workspace/Sources/FFFoundation/Containers/UserDefaultsStorable.swift:52:17: [1;33mwarning: [1;39mno unsafe operations occur within 'unsafe' expression[0;0m [#]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;;\]
[0;36m50 |[0;0m #else
[0;36m51 |[0;0m unsafe String(describing: Self.self).withCString { type in
[0;36m52 |[0;0m unsafe key.withCString { keyStr in
[0;36m|[0;0m `- [1;33mwarning: [1;39mno unsafe operations occur within 'unsafe' expression[0;0m [#]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;;\]
[0;36m53 |[0;0m unsafe String(describing: userDefaults).withCString { ud in
[0;36m54 |[0;0m unsafe os_log("[UserDefault] Could not decode %@ for key %@ from user defaults %@",
/host/spi-builder-workspace/Sources/FFFoundation/Containers/UserDefaultsStorable.swift:51:13: [1;33mwarning: [1;39mno unsafe operations occur within 'unsafe' expression[0;0m [#]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;;\]
[0;36m49 |[0;0m log: .ffFoundation, type: .error, String(describing: Self.self), key, userDefaults)
[0;36m50 |[0;0m #else
[0;36m51 |[0;0m unsafe String(describing: Self.self).withCString { type in
[0;36m|[0;0m `- [1;33mwarning: [1;39mno unsafe operations occur within 'unsafe' expression[0;0m [#]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;;\]
[0;36m52 |[0;0m unsafe key.withCString { keyStr in
[0;36m53 |[0;0m unsafe String(describing: userDefaults).withCString { ud in
/host/spi-builder-workspace/Sources/FFFoundation/Containers/UserDefaultsStorable.swift:95:21: [1;33mwarning: [1;39mno unsafe operations occur within 'unsafe' expression[0;0m [#]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;;\]
[0;36m93 |[0;0m unsafe String(describing: Self.self).withCString { type in
[0;36m94 |[0;0m unsafe key.withCString { keyStr in
[0;36m95 |[0;0m unsafe String(describing: userDefaults).withCString { ud in
[0;36m|[0;0m `- [1;33mwarning: [1;39mno unsafe operations occur within 'unsafe' expression[0;0m [#]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;;\]
[0;36m96 |[0;0m unsafe os_log("[UserDefault] Could not encode %@ for key %@ for user defaults %@",
[0;36m97 |[0;0m log: .ffFoundation, type: .error, type, keyStr, ud)
/host/spi-builder-workspace/Sources/FFFoundation/Containers/UserDefaultsStorable.swift:94:17: [1;33mwarning: [1;39mno unsafe operations occur within 'unsafe' expression[0;0m [#]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;;\]
[0;36m92 |[0;0m #else
[0;36m93 |[0;0m unsafe String(describing: Self.self).withCString { type in
[0;36m94 |[0;0m unsafe key.withCString { keyStr in
[0;36m|[0;0m `- [1;33mwarning: [1;39mno unsafe operations occur within 'unsafe' expression[0;0m [#]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;;\]
[0;36m95 |[0;0m unsafe String(describing: userDefaults).withCString { ud in
[0;36m96 |[0;0m unsafe os_log("[UserDefault] Could not encode %@ for key %@ for user defaults %@",
/host/spi-builder-workspace/Sources/FFFoundation/Containers/UserDefaultsStorable.swift:93:13: [1;33mwarning: [1;39mno unsafe operations occur within 'unsafe' expression[0;0m [#]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;;\]
[0;36m91 |[0;0m log: .ffFoundation, type: .error, String(describing: Self.self), key, userDefaults)
[0;36m92 |[0;0m #else
[0;36m93 |[0;0m unsafe String(describing: Self.self).withCString { type in
[0;36m|[0;0m `- [1;33mwarning: [1;39mno unsafe operations occur within 'unsafe' expression[0;0m [#]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;;\]
[0;36m94 |[0;0m unsafe key.withCString { keyStr in
[0;36m95 |[0;0m 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.