Build Information
Successful build of Speck, reference master (186173), with Swift 6.4 for macOS (SPM) on 16 Sep 2026 16:43:28 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/bppr/speck.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/bppr/speck
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 1861731 adds color and execution time to output, adds SwiftLint
Cloned https://github.com/bppr/speck.git
Revision (git rev-parse @):
18617316a6c62e2cb3ea00c1cd0d0e214537e28f
SUCCESS checkout https://github.com/bppr/speck.git at master
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/bppr/speck.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Pre-planning 1 / 153]
[Planning deferred tasks]
[37 / 70]
[50 / 85] SpeckCore
[64 / 85] SpeckCore
[70 / 96] SpeckAsserts
[80 / 96] SpeckAsserts
[84 / 104] Speck
[88 / 104] Speck
[100 / 104]
[103 / 104] Speck
Build complete! (4.46 sec)
/Users/admin/builder/spi-builder-workspace/Sources/SpeckAsserts/String.swift:50:33: [1;33mwarning: [1;39m'characters' is deprecated: Please use String directly[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m48 |[0;0m
[0;36m49 |[0;0m private extension String {
[0;36m50 |[0;0m var length: Int { return self.characters.count }
[0;36m|[0;0m `- [1;33mwarning: [1;39m'characters' is deprecated: Please use String directly[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m51 |[0;0m var first: Character? { return self.characters.first }
[0;36m52 |[0;0m
/Users/admin/builder/spi-builder-workspace/Sources/SpeckAsserts/String.swift:51:39: [1;33mwarning: [1;39m'characters' is deprecated: Please use String directly[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m49 |[0;0m private extension String {
[0;36m50 |[0;0m var length: Int { return self.characters.count }
[0;36m51 |[0;0m var first: Character? { return self.characters.first }
[0;36m|[0;0m `- [1;33mwarning: [1;39m'characters' is deprecated: Please use String directly[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m52 |[0;0m
[0;36m53 |[0;0m func contains(string other: String) -> Bool {
/Users/admin/builder/spi-builder-workspace/Sources/SpeckAsserts/String.swift:62:30: [1;33mwarning: [1;39m'characters' is deprecated: Please use String directly[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m60 |[0;0m }
[0;36m61 |[0;0m
[0;36m62 |[0;0m guard let startAt = self.characters.index(of: other.first!) else {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'characters' is deprecated: Please use String directly[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m63 |[0;0m return nil
[0;36m64 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/SpeckAsserts/String.swift:51:50: [1;33mwarning: [1;39mfunction call causes an infinite recursion[0;0m
[0;36m49 |[0;0m private extension String {
[0;36m50 |[0;0m var length: Int { return self.characters.count }
[0;36m51 |[0;0m var first: Character? { return self.characters.first }
[0;36m|[0;0m `- [1;33mwarning: [1;39mfunction call causes an infinite recursion[0;0m
[0;36m52 |[0;0m
[0;36m53 |[0;0m func contains(string other: String) -> Bool {
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
/Users/admin/builder/spi-builder-workspace/Sources/SpeckCore/Timer.swift:58:17: [1;33mwarning: [1;39m'deallocate(capacity:)' is deprecated: Swift currently only supports freeing entire heap blocks, use deallocate() instead[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m56 |[0;0m public static func now() -> Int {
[0;36m57 |[0;0m let val = UnsafeMutablePointer<timeval>.allocate(capacity: 1)
[0;36m58 |[0;0m defer { val.deallocate(capacity: 1) }
[0;36m|[0;0m `- [1;33mwarning: [1;39m'deallocate(capacity:)' is deprecated: Swift currently only supports freeing entire heap blocks, use deallocate() instead[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m59 |[0;0m
[0;36m60 |[0;0m gettimeofday(val, nil)
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
/Users/admin/builder/spi-builder-workspace/Sources/Speck/Reporter.swift:106:32: [1;33mwarning: [1;39m'characters' is deprecated: Please use String directly[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m104 |[0;0m
[0;36m105 |[0;0m func fileMinusPwd(_ file: String) -> String {
[0;36m106 |[0;0m let offset = SpeckSystem.cwd.characters.count + 1
[0;36m|[0;0m `- [1;33mwarning: [1;39m'characters' is deprecated: Please use String directly[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m107 |[0;0m let startIdx = file.index(file.startIndex, offsetBy: offset)
[0;36m108 |[0;0m
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
/Users/admin/builder/spi-builder-workspace/Sources/Speck/Printer.swift:49:20: [1;33mwarning: [1;39m'characters' is deprecated: Please use String directly[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m47 |[0;0m let fullOutput = ([indentation] + output)
[0;36m48 |[0;0m .map { $0.asString }
[0;36m49 |[0;0m .filter { $0.characters.count > 0 }
[0;36m|[0;0m `- [1;33mwarning: [1;39m'characters' is deprecated: Please use String directly[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m50 |[0;0m .joined(separator: " ")
[0;36m51 |[0;0m
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "Speck",
"name" : "Speck",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Speck",
"targets" : [
"Speck"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SpeckSystem",
"module_type" : "SwiftTarget",
"name" : "SpeckSystem",
"path" : "Sources/SpeckSystem",
"product_memberships" : [
"Speck"
],
"sources" : [
"Math.swift",
"cwd.swift",
"log.swift"
],
"type" : "library"
},
{
"c99name" : "SpeckCoreTests",
"module_type" : "SwiftTarget",
"name" : "SpeckCoreTests",
"path" : "Tests/SpeckCoreTests",
"sources" : [
"BasicExpectationTest.swift",
"ExampleTest.swift",
"ReporterTest.swift",
"SuiteTest.swift"
],
"target_dependencies" : [
"SpeckCore"
],
"type" : "test"
},
{
"c99name" : "SpeckCore",
"module_type" : "SwiftTarget",
"name" : "SpeckCore",
"path" : "Sources/SpeckCore",
"product_memberships" : [
"Speck"
],
"sources" : [
"BasicExpectation.swift",
"Cursor.swift",
"Example.swift",
"Reporter.swift",
"SpeckCore.swift",
"Status.swift",
"Suite.swift",
"Timer.swift"
],
"type" : "library"
},
{
"c99name" : "SpeckAssertsTests",
"module_type" : "SwiftTarget",
"name" : "SpeckAssertsTests",
"path" : "Tests/SpeckAssertsTests",
"sources" : [
"ArrayTest.swift",
"CollectionTest.swift",
"ComparableTest.swift",
"ExpectationTest.swift"
],
"target_dependencies" : [
"SpeckAsserts"
],
"type" : "test"
},
{
"c99name" : "SpeckAsserts",
"module_type" : "SwiftTarget",
"name" : "SpeckAsserts",
"path" : "Sources/SpeckAsserts",
"product_memberships" : [
"Speck"
],
"sources" : [
"Array.swift",
"Collection.swift",
"Comparable.swift",
"Dictionary.swift",
"Equatable.swift",
"Expectation.swift",
"Sequence.swift",
"String.swift",
"VoidExpectation.swift"
],
"target_dependencies" : [
"SpeckCore"
],
"type" : "library"
},
{
"c99name" : "Speck",
"module_type" : "SwiftTarget",
"name" : "Speck",
"path" : "Sources/Speck",
"product_memberships" : [
"Speck"
],
"sources" : [
"Context.swift",
"Core.swift",
"Printer.swift",
"Reporter.swift",
"expect.swift",
"run.swift"
],
"target_dependencies" : [
"SpeckSystem",
"SpeckCore",
"SpeckAsserts"
],
"type" : "library"
}
],
"tools_version" : "4.0"
}
Done.