surge-synthesizer / surge

Synthesizer plug-in (previously released as Vember Audio Surge)
https://surge-synthesizer.github.io/
GNU General Public License v3.0
3.08k stars 394 forks source link

Unity Builds todo for Release #7772

Open baconpaul opened 3 weeks ago

baconpaul commented 3 weeks ago

Unity Builds (#7771) work for development but for release the surge-juce unity target contains dsp and gui both and is linked into common so common can get dsp. The right solution here is

  1. Split the unity surge-juice target into surge-juce-dsp and surce-juce-plugin and adjust the targets
  2. probably also, just because the use is minimal, rewrite the juce::dsp code in chow

I think 2 is a better solution honestly and then there's no juce until you get to surge-xt, but we may want to do a split anyway for the cli

But anyways just writing this down to do before 1.4.

mkruselj commented 3 weeks ago
  1. definitely makes sense to me.
baconpaul commented 3 weeks ago

yeah its pretty minimal use. looks like 'a day of work and testing'

also makes rack build way less hairy

we will still need a split for the cli tho but that's a more technical issue.

baconpaul commented 2 weeks ago

A nightly user reported following crash which makes me think I didn't get the JUCE ODR stuff correct

Surge patch name ch crash

Process:               Surge XT [3873]
Path:                  /Applications/Surge XT.app/Contents/MacOS/Surge XT
Identifier:            org.surge-synth-team.surge-xt
Version:               1.4.0 (1.4.0)
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Surge XT [3873]
User ID:               501

Date/Time:             2024-08-24 16:04:56.052 +0200
OS Version:            Mac OS X 10.14.6 (18G9323)
Report Version:        12
Anonymous UUID:        9A7AD5ED-E832-5E05-230D-8914D90D0DF6

Sleep/Wake UUID:       09BDA707-5E37-4793-AC10-B25FBC97821F

Time Awake Since Boot: 16000 seconds
Time Since Wake:       3700 seconds

System Integrity Protection: enabled

Crashed Thread:        0  JUCE Message Thread  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x00004000db123b20
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Segmentation fault: 11
Termination Reason:    Namespace SIGNAL, Code 0xb
Terminating Process:   exc handler [3873]

VM Regions Near 0x4000db123b20:
    MALLOC_LARGE           000000011ded6000-000000011dee6000 [   64K] rw-/rwx SM=PRV  
-->
    MALLOC_NANO            0000600000000000-0000600008000000 [128.0M] rw-/rwx SM=PRV  

Thread 0 Crashed:: JUCE Message Thread  Dispatch queue: com.apple.main-thread
0   org.surge-synth-team.surge-xt   0x000000010ef19b65 Surge::GUI::UndoManagerImpl::UndoRecord& std::__1::deque<Surge::GUI::UndoManagerImpl::UndoRecord, std::__1::allocator<Surge::GUI::UndoManagerImpl::UndoRecord> >::emplace_back<std::__1::variant<Surge::GUI::UndoManagerImpl::UndoParam, Surge::GUI::UndoManagerImpl::UndoModulation, Surge::GUI::UndoManagerImpl::UndoOscillator, Surge::GUI::UndoManagerImpl::UndoOscillatorExtraConfig, Surge::GUI::UndoManagerImpl::UndoWavetable, Surge::GUI::UndoManagerImpl::UndoFX, Surge::GUI::UndoManagerImpl::UndoStep, Surge::GUI::UndoManagerImpl::UndoMSEG, Surge::GUI::UndoManagerImpl::UndoFormula, Surge::GUI::UndoManagerImpl::UndoRename, Surge::GUI::UndoManagerImpl::UndoMacro, Surge::GUI::UndoManagerImpl::UndoTuning, Surge::GUI::UndoManagerImpl::UndoPatch, Surge::GUI::UndoManagerImpl::UndoFullLFO, Surge::GUI::UndoManagerImpl::UndoFilterAnalysisMovement> const&>(std::__1::variant<Surge::GUI::UndoManagerImpl::UndoParam, Surge::GUI::UndoManagerImpl::UndoModulation, Surge::GUI::UndoManagerImpl::UndoOscillator, Surge::GUI::UndoManagerImpl::UndoOscillatorExtraConfig, Surge::GUI::UndoManagerImpl::UndoWavetable, Surge::GUI::UndoManagerImpl::UndoFX, Surge::GUI::UndoManagerImpl::UndoStep, Surge::GUI::UndoManagerImpl::UndoMSEG, Surge::GUI::UndoManagerImpl::UndoFormula, Surge::GUI::UndoManagerImpl::UndoRename, Surge::GUI::UndoManagerImpl::UndoMacro, Surge::GUI::UndoManagerImpl::UndoTuning, Surge::GUI::UndoManagerImpl::UndoPatch, Surge::GUI::UndoManagerImpl::UndoFullLFO, Surge::GUI::UndoManagerImpl::UndoFilterAnalysisMovement> const&&&) + 85
1   org.surge-synth-team.surge-xt   0x000000010ef19877 Surge::GUI::UndoManagerImpl::pushUndo(std::__1::variant<Surge::GUI::UndoManagerImpl::UndoParam, Surge::GUI::UndoManagerImpl::UndoModulation, Surge::GUI::UndoManagerImpl::UndoOscillator, Surge::GUI::UndoManagerImpl::UndoOscillatorExtraConfig, Surge::GUI::UndoManagerImpl::UndoWavetable, Surge::GUI::UndoManagerImpl::UndoFX, Surge::GUI::UndoManagerImpl::UndoStep, Surge::GUI::UndoManagerImpl::UndoMSEG, Surge::GUI::UndoManagerImpl::UndoFormula, Surge::GUI::UndoManagerImpl::UndoRename, Surge::GUI::UndoManagerImpl::UndoMacro, Surge::GUI::UndoManagerImpl::UndoTuning, Surge::GUI::UndoManagerImpl::UndoPatch, Surge::GUI::UndoManagerImpl::UndoFullLFO, Surge::GUI::UndoManagerImpl::UndoFilterAnalysisMovement> const&) + 215
2   org.surge-synth-team.surge-xt   0x000000010ef1849a Surge::GUI::UndoManagerImpl::pushPatch(Surge::GUI::UndoManager::Target) + 474
3   org.surge-synth-team.surge-xt   0x000000010f051144 Surge::Widgets::PatchSelector::loadPatch(int) + 116
4   org.surge-synth-team.surge-xt   0x000000010ec43fc9 juce::MessageQueue::runLoopCallback() + 57
5   com.apple.CoreFoundation        0x00007fff36c5e0df __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
6   com.apple.CoreFoundation        0x00007fff36c5e085 __CFRunLoopDoSource0 + 108
7   com.apple.CoreFoundation        0x00007fff36c41e87 __CFRunLoopDoSources0 + 195
8   com.apple.CoreFoundation        0x00007fff36c4144f __CFRunLoopRun + 1196
9   com.apple.CoreFoundation        0x00007fff36c40d51 CFRunLoopRunSpecific + 459
10  com.apple.HIToolbox             0x00007fff35ef41ab RunCurrentEventLoopInMode + 292
11  com.apple.HIToolbox             0x00007fff35ef3ee5 ReceiveNextEventCommon + 603
12  com.apple.HIToolbox             0x00007fff35ef3c76 _BlockUntilNextEventMatchingListInModeWithFilter + 64
13  com.apple.AppKit                0x00007fff3428be89 _DPSNextEvent + 1135
14  com.apple.AppKit                0x00007fff3428ab77 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1361
15  com.apple.AppKit                0x00007fff34284c94 -[NSApplication run] + 699
16  org.surge-synth-team.surge-xt   0x000000010ec359a4 juce::JUCEApplicationBase::main() + 164
17  org.surge-synth-team.surge-xt   0x000000010ec358b5 juce::JUCEApplicationBase::main(int, char const**) + 85
18  libdyld.dylib                   0x00007fff61fdd3d5 start + 1

so temporarily reverting

baconpaul commented 2 weeks ago

OS X Mojave 10.14.6 i7 2,3Ghz From discord user BaGlow

I bet Asan on an x86 build will show the link error