Hello, unearthing this thread as I have been trying to play with sc_faust and I do not have a GitHub account to post a report in the repository.
The examples in the schelp file trigger crashes and the failures point to places in the FAUST library.
I am running the 0.1.2 release version compiled on my machine and linked with libraries from FAUST 2.88, with SC 3.14.1 running on a Debian 13 machine. I rebuilt the extension both with the FAUST GitHub releases, a version compiled on my machine and the Debian packages, to no avail.
First issue:
Running FaustDef(\x, "process = 0.5;").send; results in the following stack trace:
#0 0x00007f04f1823721 in llvm_dsp_factory::getJSON[abi:cxx11]() ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#1 0x00007f04f1816348 in compileScript(World*, void*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#2 0x00007f04f1816776 in compileScriptFromString(World*, void*) ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#3 0x00007f0501ce6c60 in ?? () from /lib/libscsynth.so.1
#4 0x00007f0501cc72ea in ?? () from /lib/libscsynth.so.1
#5 0x00007f0501ae1224 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007f0501871b7b in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#7 0x00007f05018ef7f8 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
While this crash occurs with FAUST 2.88, it doesn’t happen anymore when using a prior version of the FAUST libs (2.83.1).
Second issue:
Running the jp60 reverb code results in this error:
scsynth: /home/runner/work/faust/faust/compiler/interval/intervalPow.cpp:89: itv::interval itv::interval_algebra::fPow(const itv::interval&, const itv::interval&): Assertion `x.lo() > 0' failed. Server 'localhost' exited with exit code 0. server 'localhost' disconnected shared memory interface
and the follwing stacktrace:
#0 0x00007f3968ea095c in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007f3968e4bcc2 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x00007f3968e344ac in abort () from /lib/x86_64-linux-gnu/libc.so.6
#3 0x00007f3968e34420 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#4 0x00007f39596e423d in itv::interval_algebra::fPow(itv::interval const&, itv::interval const&) const [clone .cold] ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#5 0x00007f395c7c1a47 in itv::interval_algebra::Pow(itv::interval const&, itv::interval const&) const ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#6 0x00007f395c823574 in non-virtual thunk to itv::AffineOps<SignalAlgebra<itv::AffItv> >::Pow(itv::AffItv const&, itv::AffItv const&) const ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#7 0x00007f395c82f6e0 in SignalDispatch<itv::AffItv>::xtendedOp(xtended*, std::vector<itv::AffItv, std::allocator<itv::AffItv> > const&) const ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#8 0x00007f395c82c4f2 in SignalDispatch<itv::AffItv>::combine(CTree*, std::vector<itv::AffItv, std::allocator<itv::AffItv> > const&, FixPointEvaluator<itv::Af
fItv>&) const () from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#9 0x00007f395c82d077 in FixPointIterator<itv::AffItv>::memoized(std::unordered_map<CTree*, itv::AffItv, std::hash<CTree*>, std::equal_to<CTree*>, std::alloca
tor<std::pair<CTree* const, itv::AffItv> > >&, CTree*) () from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#10 0x00007f395c82d3f8 in FixPointIterator<itv::AffItv>::eval(CTree*) ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#11 0x00007f395c82d272 in FixPointIterator<itv::AffItv>::memoized(std::unordered_map<CTree*, itv::AffItv, std::hash<CTree*>, std::equal_to<CTree*>, std::alloca
tor<std::pair<CTree* const, itv::AffItv> > >&, CTree*) () from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#12 0x00007f395c82d3f8 in FixPointIterator<itv::AffItv>::eval(CTree*) ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#13 0x00007f395c82d272 in FixPointIterator<itv::AffItv>::memoized(std::unordered_map<CTree*, itv::AffItv, std::hash<CTree*>, std::equal_to<CTree*>, std::alloca
tor<std::pair<CTree* const, itv::AffItv> > >&, CTree*) () from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#14 0x00007f395c82d3f8 in FixPointIterator<itv::AffItv>::eval(CTree*) ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#15 0x00007f395c82d272 in FixPointIterator<itv::AffItv>::memoized(std::unordered_map<CTree*, itv::AffItv, std::hash<CTree*>, std::equal_to<CTree*>, std::alloca
tor<std::pair<CTree* const, itv::AffItv> > >&, CTree*) () from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#16 0x00007f395c82d3f8 in FixPointIterator<itv::AffItv>::eval(CTree*) ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#17 0x00007f395c82d272 in FixPointIterator<itv::AffItv>::memoized(std::unordered_map<CTree*, itv::AffItv, std::hash<CTree*>, std::equal_to<CTree*>, std::allocator<std::pair<CTree* const, itv::AffItv> > >&, CTree*) () from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#18 0x00007f395c82d4c5 in FixPointIterator<itv::AffItv>::eval(CTree*) ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#19 0x00007f395c82d272 in FixPointIterator<itv::AffItv>::memoized(std::unordered_map<CTree*, itv::AffItv, std::hash<CTree*>, std::equal_to<CTree*>, std::allocator<std::pair<CTree* const, itv::AffItv> > >&, CTree*) () from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#20 0x00007f395c82d4c5 in FixPointIterator<itv::AffItv>::eval(CTree*) ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#21 0x00007f395c82d272 in FixPointIterator<itv::AffItv>::memoized(std::unordered_map<CTree*, itv::AffItv, std::hash<CTree*>, std::equal_to<CTree*>, std::allocator<std::pair<CTree* const, itv::AffItv> > >&, CTree*) () from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#22 0x00007f395c82d4c5 in FixPointIterator<itv::AffItv>::eval(CTree*) ()
--Type <RET> for more, q to quit, c to continue without paging--
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#23 0x00007f395c82d272 in FixPointIterator<itv::AffItv>::memoized(std::unordered_map<CTree*, itv::AffItv, std::hash<CTree*>, std::equal_to<CTree*>, std::allocator<std::pair<CTree* const, itv::AffItv> > >&, CTree*) () from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#24 0x00007f395c82d4c5 in FixPointIterator<itv::AffItv>::eval(CTree*) ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#25 0x00007f395c82a7ed in FixPointIterator<itv::AffItv>::probeComponent(int) ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#26 0x00007f395c81f11a in HorizonReader::at(CTree*) const () from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#27 0x00007f395b52afa6 in TypeSolver::type(CTree*) () from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#28 0x00007f395b52a57e in typeAnnotation(CTree*, bool) () from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#29 0x00007f395b499e6d in simplifyToNormalFormAux(CTree*) () from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#30 0x00007f395b49b5a6 in simplifyToNormalForm(CTree*) () from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#31 0x00007f395c792a7e in InstructionsCompiler::prepare(CTree*) ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#32 0x00007f395c7a0a51 in InstructionsCompiler::compileMultiSignal(CTree*) ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#33 0x00007f395b367159 in generateCode(CTree*, int, int, bool) ()
from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#34 0x00007f395b369927 in createFactoryAux1(void*) () from /home/jmbto/.local/share/SuperCollider/Extensions/native-linux/compiled/sc_faust/sc_faust.so
#35 0x00007f3968e9eb7b in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#36 0x00007f3968f1c7f8 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
This occurs both with FAUST 2.83 and 2.88.
The brass example code triggers the same assertion.
A PR is already opened on FAUST’s repository side regarding the assertion, with a potential solution here.
However, I am not sure about how to integrate such a change in theexisting codebase.