feat(sointu): make patterns local to track

The global pattern table is constructed only during compilation. At this point, we can do also all sorts of optimizations / changes e.g. remove unnecessary releases and reuse patterns if there's a pattern already that could be used.
This commit is contained in:
vsariola
2021-01-03 01:06:59 +02:00
parent 06c006086b
commit 5dd81430b7
100 changed files with 395 additions and 150 deletions

View File

@ -85,6 +85,10 @@ func (com *Compiler) Song(song *sointu.Song) (map[string]string, error) {
if err != nil {
return nil, fmt.Errorf(`could not encode patch: %v`, err)
}
encodedSong, err := EncodeSong(song)
if err != nil {
return nil, fmt.Errorf(`could not encode song: %v`, err)
}
for _, templateName := range templates {
compilerMacros := *NewCompilerMacros(*com)
featureSetMacros := FeatureSetMacros{features}
@ -99,7 +103,8 @@ func (com *Compiler) Song(song *sointu.Song) (map[string]string, error) {
X86Macros
SongMacros
*EncodedPatch
}{compilerMacros, featureSetMacros, x86Macros, songMacros, encodedPatch}
EncodedSong *EncodedSong
}{compilerMacros, featureSetMacros, x86Macros, songMacros, encodedPatch, encodedSong}
populatedTemplate, extension, err = com.compile(templateName, &data)
} else if com.Arch == "wasm" {
wasmMacros := *NewWasmMacros()
@ -109,7 +114,8 @@ func (com *Compiler) Song(song *sointu.Song) (map[string]string, error) {
WasmMacros
SongMacros
*EncodedPatch
}{compilerMacros, featureSetMacros, wasmMacros, songMacros, encodedPatch}
EncodedSong *EncodedSong
}{compilerMacros, featureSetMacros, wasmMacros, songMacros, encodedPatch, encodedSong}
populatedTemplate, extension, err = com.compile(templateName, &data)
}
if err != nil {