Oh right, it's table lookup that's crashing, not division by zero directly. Thanks for the info.
On Mon, Apr 19, 2021 at 7:46 PM Stéphane Letz <l...@grame.fr> wrote: > > All backends actually crash. Read again: > > ====== > In Faust, the interval calculation system on signals is supposed to detect > possible problematic computations at compile time, and refuse to compile the > corresponding DSP code. But since the interval calculation is currently quite > imperfect, it can misbehave and generate prossible problematic code, that > will possibly misbehave at runtime. The typical case is when producing > indexes to access rdtable/rwtable or delay lines, that may trigger memory > access crashes as explained before. > ====== > > Stéphane > > > > Le 19 avr. 2021 à 19:44, Kjetil Matheussen <k.s.matheus...@gmail.com> a > > écrit : > > > > Thank you. But should the interpreter crash though? > > > > This program does not crash: > > > > import("stdfaust.lib"); > > process = 1000 / hslider("divPitch", 10, 0, 10, 0.01); > > > > While this one does crash: > > > > import("stdfaust.lib"); > > process = os.osc(1000 / hslider("divPitch", 10, 0, 10, 0.01)); > > > > > > Thread 14 "Runner" received signal SIGSEGV, Segmentation fault. > > [Switching to Thread 0x7fff768f6700 (LWP 18030)] > > 0x0000000002f3a11c in FBCInterpreter<float, > > 0>::ExecuteBlock(FBCBlockInstruction<float>*, bool) () > > (gdb) bt > > #0 0x0000000002f3a11c in FBCInterpreter<float, > > 0>::ExecuteBlock(FBCBlockInstruction<float>*, bool) () > > #1 0x0000000002eeaa90 in interpreter_dsp_aux<float, 0>::compute(int, > > float**, float**) () > > #2 0x0000000002579661 in RT_process_effect2 (outputs=0x7fff768f3540, > > inputs=0x7fff768f23c0, num_frames=64, time=<optimized out>, > > data=0x6220002dd900) > > at audio/Faust_plugins_template2.cpp:547 > > > > > > > > > > > > > > On Mon, Apr 19, 2021 at 7:24 PM Stéphane Letz <l...@grame.fr> wrote: > >> > >> This is a the kind of problematic code that the compiler does not > >> correctly handle in a perfect way. More info here: > >> https://faustdoc.grame.fr/manual/faq/#produced-nan-or-infinity-values-and-table-access > >> > >> Stéphane > >> > >>> Le 19 avr. 2021 à 19:10, Kjetil Matheussen <k.s.matheus...@gmail.com> a > >>> écrit : > >>> > >>> Hi, > >>> > >>> I don't know if this is a bug in the compiler, the interpreter > >>> backend, or the faust code itself, but the interpreter backend crashes > >>> when it runs this code: > >>> > >>> import("stdfaust.lib"); > >>> divPitch = hslider("divPitch", 10, 0, 10, 0.01); > >>> enable5 = button("enable2"); > >>> process = os.osc(1000 / divPitch) * enable5 <: _,_; > >>> > >>> ...and the "divPitch" slider is set to 0. > >>> (I got this code anonymously through the Radium crash reporter.) > >>> > >>> I think it's a bug in the compiler though since it refuse to compile this > >>> code: > >>> > >>> process = 1000 / 0.0; > >>> > >>> > >>> _______________________________________________ > >>> Faudiostream-users mailing list > >>> Faudiostream-users@lists.sourceforge.net > >>> https://lists.sourceforge.net/lists/listinfo/faudiostream-users > >> > _______________________________________________ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users