Build Information
Successful build of Notus, reference 1.0.0 (c3e836), with Swift 6.4 for Wasm on 16 Sep 2026 18:22:44 UTC.
Swift 6 data race errors: 0
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344847-0":/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:wasm-6.4-latest swift build --swift-sdk swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm 2>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/cremo-music/notus.git
Reference: 1.0.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/cremo-music/notus
* tag 1.0.0 -> FETCH_HEAD
HEAD is now at c3e8363 Notus is born! Please give him a warm welcome.
Cloned https://github.com/cremo-music/notus.git
Revision (git rev-parse @):
c3e8363647a8ed5f287a17aaf95e6dadb3edf3c8
SUCCESS checkout https://github.com/cremo-music/notus.git at 1.0.0
========================================
Build
========================================
Selected platform: wasm
Swift version: 6.4
Building package at path: $PWD
https://github.com/cremo-music/notus.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344847-0":/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:wasm-6.4-latest swift build --swift-sdk swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm 2>&1
wasm-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:4328fdb43c680d205c1d6761b1e3267aa38277eefdda9ddfb17b6a0f1a77857a
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:wasm-6.4-latest
Building for debugging...
[Planning deferred tasks]
[27 / 35] Notus
[32 / 35] Notus
/host/spi-builder-workspace/Sources/Notus/Performance/Duration.swift:157:25: [1;33mwarning: [1;39menum case 'stack' has 2 associated values[0;0m
[0;36m155 |[0;0m case .modify(_, let music):
[0;36m156 |[0;0m return music.duration()
[0;36m157 |[0;0m case .stack(let (musicUpper, musicLower)):
[0;36m|[0;0m `- [1;33mwarning: [1;39menum case 'stack' has 2 associated values[0;0m
[0;36m158 |[0;0m let upperDuration = musicUpper.duration()
[0;36m159 |[0;0m let lowerDuration = musicLower.duration()
/host/spi-builder-workspace/Sources/Notus/MusicNotation.swift:5:19: [1;39mnote: [1;39m'stack' declared here[0;0m
[0;36m3 |[0;0m public enum Music {
[0;36m4 |[0;0m case prim(Primitive)
[0;36m5 |[0;0m indirect case stack(Music, Music)
[0;36m|[0;0m `- [1;39mnote: [1;39m'stack' declared here[0;0m
[0;36m6 |[0;0m indirect case seq(Music, Music)
[0;36m7 |[0;0m indirect case modify(Control, Music)
/host/spi-builder-workspace/Sources/Notus/Performance/Duration.swift:161:23: [1;33mwarning: [1;39menum case 'seq' has 2 associated values[0;0m
[0;36m159 |[0;0m let lowerDuration = musicLower.duration()
[0;36m160 |[0;0m return cut ? min(upperDuration, lowerDuration) : max(upperDuration, lowerDuration)
[0;36m161 |[0;0m case .seq(let (musicLeft, musicRight)):
[0;36m|[0;0m `- [1;33mwarning: [1;39menum case 'seq' has 2 associated values[0;0m
[0;36m162 |[0;0m return musicLeft.duration() + musicRight.duration()
[0;36m163 |[0;0m case .prim(let .note(dur, _)):
/host/spi-builder-workspace/Sources/Notus/MusicNotation.swift:6:19: [1;39mnote: [1;39m'seq' declared here[0;0m
[0;36m4 |[0;0m case prim(Primitive)
[0;36m5 |[0;0m indirect case stack(Music, Music)
[0;36m6 |[0;0m indirect case seq(Music, Music)
[0;36m|[0;0m `- [1;39mnote: [1;39m'seq' declared here[0;0m
[0;36m7 |[0;0m indirect case modify(Control, Music)
[0;36m8 |[0;0m }
/host/spi-builder-workspace/Sources/Notus/Performance/MusicToPerformance.swift:41:25: [1;33mwarning: [1;39menum case 'stack' has 2 associated values[0;0m
[0;36m39 |[0;0m return music.musicToPerformance(context: updatedContext, playerMap: playerMap)
[0;36m40 |[0;0m
[0;36m41 |[0;0m case .stack(let (musicUpper, musicLower)):
[0;36m|[0;0m `- [1;33mwarning: [1;39menum case 'stack' has 2 associated values[0;0m
[0;36m42 |[0;0m let per0 = musicUpper.musicToPerformance(context: context, playerMap: playerMap)
[0;36m43 |[0;0m let per1 = musicLower.musicToPerformance(context: context, playerMap: playerMap)
/host/spi-builder-workspace/Sources/Notus/MusicNotation.swift:5:19: [1;39mnote: [1;39m'stack' declared here[0;0m
[0;36m3 |[0;0m public enum Music {
[0;36m4 |[0;0m case prim(Primitive)
[0;36m5 |[0;0m indirect case stack(Music, Music)
[0;36m|[0;0m `- [1;39mnote: [1;39m'stack' declared here[0;0m
[0;36m6 |[0;0m indirect case seq(Music, Music)
[0;36m7 |[0;0m indirect case modify(Control, Music)
/host/spi-builder-workspace/Sources/Notus/Performance/MusicToPerformance.swift:46:23: [1;33mwarning: [1;39menum case 'seq' has 2 associated values[0;0m
[0;36m44 |[0;0m return (per0.0 + per1.0, per0.1 + per1.1)
[0;36m45 |[0;0m
[0;36m46 |[0;0m case .seq(let (musicLeft, musicRight)):
[0;36m|[0;0m `- [1;33mwarning: [1;39menum case 'seq' has 2 associated values[0;0m
[0;36m47 |[0;0m var updatedContext = context
[0;36m48 |[0;0m updatedContext.beat += Time(musicLeft.duration())
/host/spi-builder-workspace/Sources/Notus/MusicNotation.swift:6:19: [1;39mnote: [1;39m'seq' declared here[0;0m
[0;36m4 |[0;0m case prim(Primitive)
[0;36m5 |[0;0m indirect case stack(Music, Music)
[0;36m6 |[0;0m indirect case seq(Music, Music)
[0;36m|[0;0m `- [1;39mnote: [1;39m'seq' declared here[0;0m
[0;36m7 |[0;0m indirect case modify(Control, Music)
[0;36m8 |[0;0m }
/host/spi-builder-workspace/Sources/Notus/Performance/MusicToPerformance.swift:61:24: [1;33mwarning: [1;39menum case 'note' has 2 associated values[0;0m
[0;36m59 |[0;0m private func primToPerformance(context: MusicContext, prim: Primitive) -> Performance {
[0;36m60 |[0;0m switch prim {
[0;36m61 |[0;0m case .note(let (dur, pitch)):
[0;36m|[0;0m `- [1;33mwarning: [1;39menum case 'note' has 2 associated values[0;0m
[0;36m62 |[0;0m let event = context.player.noteInterpret(context, pitch, dur, [])
[0;36m63 |[0;0m return ([event], [])
/host/spi-builder-workspace/Sources/Notus/MusicNotation.swift:27:10: [1;39mnote: [1;39m'note' declared here[0;0m
[0;36m25 |[0;0m
[0;36m26 |[0;0m public enum Primitive {
[0;36m27 |[0;0m case note(Dur, Pitch)
[0;36m|[0;0m `- [1;39mnote: [1;39m'note' declared here[0;0m
[0;36m28 |[0;0m case noteAttr(Dur, Pitch, [NoteAttribute])
[0;36m29 |[0;0m case rest(Dur)
/host/spi-builder-workspace/Sources/Notus/Performance/MusicToPerformance.swift:64:28: [1;33mwarning: [1;39menum case 'noteAttr' has 3 associated values[0;0m
[0;36m62 |[0;0m let event = context.player.noteInterpret(context, pitch, dur, [])
[0;36m63 |[0;0m return ([event], [])
[0;36m64 |[0;0m case .noteAttr(let (dur, pitch, attrs)):
[0;36m|[0;0m `- [1;33mwarning: [1;39menum case 'noteAttr' has 3 associated values[0;0m
[0;36m65 |[0;0m let event = context.player.noteInterpret(context, pitch, dur, attrs)
[0;36m66 |[0;0m return ([event], [])
/host/spi-builder-workspace/Sources/Notus/MusicNotation.swift:28:10: [1;39mnote: [1;39m'noteAttr' declared here[0;0m
[0;36m26 |[0;0m public enum Primitive {
[0;36m27 |[0;0m case note(Dur, Pitch)
[0;36m28 |[0;0m case noteAttr(Dur, Pitch, [NoteAttribute])
[0;36m|[0;0m `- [1;39mnote: [1;39m'noteAttr' declared here[0;0m
[0;36m29 |[0;0m case rest(Dur)
[0;36m30 |[0;0m case none
Build complete! (4.59 secs)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "Notus",
"name" : "Notus",
"path" : "/host/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Notus",
"targets" : [
"Notus"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "NotusTests",
"module_type" : "SwiftTarget",
"name" : "NotusTests",
"path" : "Tests/NotusTests",
"sources" : [
"MusicNotation/MusicNotationTests.swift",
"Performance/Players/DefaultPlayerTests.swift",
"Performance/Players/FancyPlayerTests.swift",
"Performance/UserPatchMapTests.swift",
"XCTestManifests.swift"
],
"target_dependencies" : [
"Notus"
],
"type" : "test"
},
{
"c99name" : "Notus",
"module_type" : "SwiftTarget",
"name" : "Notus",
"path" : "Sources/Notus",
"product_memberships" : [
"Notus"
],
"sources" : [
"Music/Channel.swift",
"Music/Instrument.swift",
"Music/MusicNotationSimpleTypes.swift",
"Music/MusicUtils.swift",
"Music/Percussion.swift",
"MusicExamples/Canine/CanineMain.swift",
"MusicExamples/Canine/ChordsAndBass.swift",
"MusicExamples/Canine/Solo.swift",
"MusicExamples/Canine/SoloChordsAndBass.swift",
"MusicExamples/Canine/ThemeChordsAndBass.swift",
"MusicExamples/Canine/ThemeMel.swift",
"MusicExamples/Canine/ThemeSoloInterlude.swift",
"MusicExamples/Chameleon.swift",
"MusicExamples/Counterpoint.swift",
"MusicExamples/DrumSolo.swift",
"MusicExamples/FrereJacques.swift",
"MusicExamples/James.swift",
"MusicExamples/LillePeterEdderkop.swift",
"MusicExamples/Triol.swift",
"MusicNotation.swift",
"NotusIO/Midi/MidiToMusic.swift",
"NotusIO/Midi/MidiToNotusBuilders.swift",
"NotusIO/Midi/MusicSequenceBuilder.swift",
"NotusIO/Midi/MusicToMidi.swift",
"NotusIO/Midi/Validaters.swift",
"NotusIO/Playback/MidiPlayer.swift",
"Performance/Duration.swift",
"Performance/Event.swift",
"Performance/MusicToPerformance.swift",
"Performance/Performance.swift",
"Performance/Pitch.swift",
"Performance/Players/DefaultPlayer.swift",
"Performance/Players/FancyPlayer.swift",
"Performance/UserPatchMap.swift"
],
"type" : "library"
}
],
"tools_version" : "5.0"
}
wasm-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:4328fdb43c680d205c1d6761b1e3267aa38277eefdda9ddfb17b6a0f1a77857a
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:wasm-6.4-latest
Done.