Build Information
Successful build of Tonic, reference main (f8af40), with Swift 6.1 for macOS (SPM) on 6 Jul 2026 23:36:13 UTC.
Swift 6 data race errors: 1
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -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 InferSendableFromCapturesBuild Log
========================================
RunAll
========================================
Builder version: undefined version: run 'make version' to update
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/AudioKit/Tonic.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/AudioKit/Tonic
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at f8af407 Fix index-out-of-range crash in romanNumeralNotation for non-diatonic scales
Cloned https://github.com/AudioKit/Tonic.git
Revision (git rev-parse @):
f8af4074c76a5b4a689122ef3c4b294bb7866d30
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/AudioKit/Tonic.git at main
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/AudioKit/Tonic.git
https://github.com/AudioKit/Tonic.git
{
"dependencies" : [
],
"manifest_display_name" : "Tonic",
"name" : "Tonic",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Tonic",
"targets" : [
"Tonic"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "TonicTests",
"module_type" : "SwiftTarget",
"name" : "TonicTests",
"path" : "Tests/TonicTests",
"sources" : [
"BitSetTests.swift",
"ChordTests.swift",
"IntervalTests.swift",
"KeyTests.swift",
"NoteTests.swift",
"PerformanceTests.swift",
"ReadMeTests.swift",
"ScaleTests.swift",
"TonicTests.swift"
],
"target_dependencies" : [
"Tonic"
],
"type" : "test"
},
{
"c99name" : "Tonic",
"module_type" : "SwiftTarget",
"name" : "Tonic",
"path" : "Sources/Tonic",
"product_memberships" : [
"Tonic"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/Tonic/Tonic.docc",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Accidental.swift",
"BitSet.swift",
"Chord+Shortcuts.swift",
"Chord.swift",
"ChordTable.swift",
"ChordType.swift",
"Interval.swift",
"Key+Shortcuts.swift",
"Key.swift",
"Letter.swift",
"Note+MiddleCStandard.swift",
"Note+Shortcuts.swift",
"Note.swift",
"NoteClass+Shortcuts.swift",
"NoteClass.swift",
"NoteSet.swift",
"Octave.swift",
"Pitch.swift",
"PitchColor.swift",
"Scale+Shortcuts.swift",
"Scale.swift"
],
"type" : "library"
}
],
"tools_version" : "5.6"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -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
Building for debugging...
[0/3] Write sources
[1/3] Copying Tonic.docc
[2/3] Write swift-version-2F0A5646E1D333AE.txt
[4/24] Emitting module Tonic
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/ChordTable.swift:7:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | /// A table of note sets so we can look up chord names.
6 | public class ChordTable {
| `- note: class 'ChordTable' does not conform to the 'Sendable' protocol
7 | public static let shared = ChordTable()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
8 |
9 | static func hash(_ noteClasses: [NoteClass]) -> Int {
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/ChordTable.swift:71:62: warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
69 |
70 | /// All chords include enharmonic (same NoteSet) - Use "chords" alternative when enharmonic chords are not needed
71 | lazy var chordsIncludingEnharmonic: [Chord] = ChordTable.generateAllChordsIncludingEnharmonic()
| |- warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
| `- note: use 'getRankedChords()' instead
72 |
73 | /// Returns all of the chord options (enharmonic chords) for a set a notes (slow but effective)
[5/26] Compiling Tonic Scale.swift
[6/26] Compiling Tonic resource_bundle_accessor.swift
[7/26] Compiling Tonic Interval.swift
[8/26] Compiling Tonic Key+Shortcuts.swift
[9/26] Compiling Tonic Note+MiddleCStandard.swift
[10/26] Compiling Tonic Note+Shortcuts.swift
[11/26] Compiling Tonic Octave.swift
[12/26] Compiling Tonic Pitch.swift
[13/26] Compiling Tonic NoteClass.swift
[14/26] Compiling Tonic NoteSet.swift
[15/26] Compiling Tonic Note.swift
[16/26] Compiling Tonic NoteClass+Shortcuts.swift
[17/26] Compiling Tonic PitchColor.swift
[18/26] Compiling Tonic Scale+Shortcuts.swift
[19/26] Compiling Tonic Key.swift
[20/26] Compiling Tonic Letter.swift
[21/26] Compiling Tonic Chord.swift
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/Chord.swift:310:49: warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
308 | /// want to list the notes C, E, G, A as C6 if the C is in the bass
309 | public static func getRankedChords(from notes: [Note]) -> [Chord] {
310 | let potentialChords = ChordTable.shared.getAllChordsForNoteSet(NoteSet(notes: notes))
| |- warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
| `- note: use 'getRankedChords' instead
311 | if potentialChords.isEmpty { return [] }
312 | let orderedNotes = notes.sorted(by: { f, s in f.noteNumber < s.noteNumber })
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/ChordTable.swift:7:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | /// A table of note sets so we can look up chord names.
6 | public class ChordTable {
| `- note: class 'ChordTable' does not conform to the 'Sendable' protocol
7 | public static let shared = ChordTable()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
8 |
9 | static func hash(_ noteClasses: [NoteClass]) -> Int {
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/ChordTable.swift:71:62: warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
69 |
70 | /// All chords include enharmonic (same NoteSet) - Use "chords" alternative when enharmonic chords are not needed
71 | lazy var chordsIncludingEnharmonic: [Chord] = ChordTable.generateAllChordsIncludingEnharmonic()
| |- warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
| `- note: use 'getRankedChords()' instead
72 |
73 | /// Returns all of the chord options (enharmonic chords) for a set a notes (slow but effective)
[22/26] Compiling Tonic ChordTable.swift
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/Chord.swift:310:49: warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
308 | /// want to list the notes C, E, G, A as C6 if the C is in the bass
309 | public static func getRankedChords(from notes: [Note]) -> [Chord] {
310 | let potentialChords = ChordTable.shared.getAllChordsForNoteSet(NoteSet(notes: notes))
| |- warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
| `- note: use 'getRankedChords' instead
311 | if potentialChords.isEmpty { return [] }
312 | let orderedNotes = notes.sorted(by: { f, s in f.noteNumber < s.noteNumber })
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/ChordTable.swift:7:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | /// A table of note sets so we can look up chord names.
6 | public class ChordTable {
| `- note: class 'ChordTable' does not conform to the 'Sendable' protocol
7 | public static let shared = ChordTable()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
8 |
9 | static func hash(_ noteClasses: [NoteClass]) -> Int {
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/ChordTable.swift:71:62: warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
69 |
70 | /// All chords include enharmonic (same NoteSet) - Use "chords" alternative when enharmonic chords are not needed
71 | lazy var chordsIncludingEnharmonic: [Chord] = ChordTable.generateAllChordsIncludingEnharmonic()
| |- warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
| `- note: use 'getRankedChords()' instead
72 |
73 | /// Returns all of the chord options (enharmonic chords) for a set a notes (slow but effective)
[23/26] Compiling Tonic ChordType.swift
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/Chord.swift:310:49: warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
308 | /// want to list the notes C, E, G, A as C6 if the C is in the bass
309 | public static func getRankedChords(from notes: [Note]) -> [Chord] {
310 | let potentialChords = ChordTable.shared.getAllChordsForNoteSet(NoteSet(notes: notes))
| |- warning: 'getAllChordsForNoteSet' is deprecated: Please use getRankedChords() for higher quality chord detection
| `- note: use 'getRankedChords' instead
311 | if potentialChords.isEmpty { return [] }
312 | let orderedNotes = notes.sorted(by: { f, s in f.noteNumber < s.noteNumber })
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/ChordTable.swift:7:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | /// A table of note sets so we can look up chord names.
6 | public class ChordTable {
| `- note: class 'ChordTable' does not conform to the 'Sendable' protocol
7 | public static let shared = ChordTable()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'ChordTable' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
8 |
9 | static func hash(_ noteClasses: [NoteClass]) -> Int {
/Users/admin/builder/spi-builder-workspace/Sources/Tonic/ChordTable.swift:71:62: warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
69 |
70 | /// All chords include enharmonic (same NoteSet) - Use "chords" alternative when enharmonic chords are not needed
71 | lazy var chordsIncludingEnharmonic: [Chord] = ChordTable.generateAllChordsIncludingEnharmonic()
| |- warning: 'generateAllChordsIncludingEnharmonic()' is deprecated: Please use getRankedChords() for higher quality chord detection
| `- note: use 'getRankedChords()' instead
72 |
73 | /// Returns all of the chord options (enharmonic chords) for a set a notes (slow but effective)
[24/26] Compiling Tonic Accidental.swift
[25/26] Compiling Tonic BitSet.swift
[26/26] Compiling Tonic Chord+Shortcuts.swift
Build complete! (4.27s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "Tonic",
"name" : "Tonic",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Tonic",
"targets" : [
"Tonic"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "TonicTests",
"module_type" : "SwiftTarget",
"name" : "TonicTests",
"path" : "Tests/TonicTests",
"sources" : [
"BitSetTests.swift",
"ChordTests.swift",
"IntervalTests.swift",
"KeyTests.swift",
"NoteTests.swift",
"PerformanceTests.swift",
"ReadMeTests.swift",
"ScaleTests.swift",
"TonicTests.swift"
],
"target_dependencies" : [
"Tonic"
],
"type" : "test"
},
{
"c99name" : "Tonic",
"module_type" : "SwiftTarget",
"name" : "Tonic",
"path" : "Sources/Tonic",
"product_memberships" : [
"Tonic"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/Tonic/Tonic.docc",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Accidental.swift",
"BitSet.swift",
"Chord+Shortcuts.swift",
"Chord.swift",
"ChordTable.swift",
"ChordType.swift",
"Interval.swift",
"Key+Shortcuts.swift",
"Key.swift",
"Letter.swift",
"Note+MiddleCStandard.swift",
"Note+Shortcuts.swift",
"Note.swift",
"NoteClass+Shortcuts.swift",
"NoteClass.swift",
"NoteSet.swift",
"Octave.swift",
"Pitch.swift",
"PitchColor.swift",
"Scale+Shortcuts.swift",
"Scale.swift"
],
"type" : "library"
}
],
"tools_version" : "5.6"
}
Done.