grame-cncm / faust

Functional programming language for signal processing and sound synthesis
http://faust.grame.fr
Other
2.53k stars 319 forks source link

faust compiler crash with a simple echo project #154

Closed YruamaLairba closed 6 years ago

YruamaLairba commented 6 years ago

Hello, i'am under debian and the faust compiler is crashing with a very simple project. what it show me when it crash :

faust(+0x18f097)[0x56341eb79097]
faust(+0x21442c)[0x56341ebfe42c]
faust(+0x214508)[0x56341ebfe508]
faust(+0x214508)[0x56341ebfe508]
faust(+0x214508)[0x56341ebfe508]
faust(+0x214508)[0x56341ebfe508]
faust(+0x214508)[0x56341ebfe508]
faust(+0x21483e)[0x56341ebfe83e]
faust(+0x1f7dbf)[0x56341ebe1dbf]
faust(+0x206479)[0x56341ebf0479]
faust(+0x281c38)[0x56341ec6bc38]
faust(+0x28314e)[0x56341ec6d14e]
faust(+0x284d53)[0x56341ec6ed53]
faust(+0x138377)[0x56341eb22377]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1)[0x7f2b306b22b1]
faust(+0x13844a)[0x56341eb2244a]
ASSERT : please report the stack trace and the failing DSP file to Faust developers (version: 2.5.21, options: cpp, -scal -ftz 0)

the code i'm trying to compile :

//delay in second
ma = library("maths.lib");
delayInSample = ma.SR * hslider ( "delay in second" , 0.5 , 0 , 44100 , 0.001);
feedback = hslider ( "feedback", 0.75, 0, 1, 0.001);
process =   +(_)~(_@delayInSample*feedback);

The problem is triggered by the erroneous "44100" value in my code, putting really lower value make it work, but some value like "10000" make the compiler hang.

josmithiii commented 6 years ago

Maybe the problem is trying to allocate an 8GB delay line?

On Wed, Mar 14, 2018 at 1:49 PM, YruamaLairba notifications@github.com wrote:

Hello, i'am under debian and the faust compiler is crashing with a very simple project. what it show me when it crash :

faust(+0x18f097)[0x56341eb79097] faust(+0x21442c)[0x56341ebfe42c] faust(+0x214508)[0x56341ebfe508] faust(+0x214508)[0x56341ebfe508] faust(+0x214508)[0x56341ebfe508] faust(+0x214508)[0x56341ebfe508] faust(+0x214508)[0x56341ebfe508] faust(+0x21483e)[0x56341ebfe83e] faust(+0x1f7dbf)[0x56341ebe1dbf] faust(+0x206479)[0x56341ebf0479] faust(+0x281c38)[0x56341ec6bc38] faust(+0x28314e)[0x56341ec6d14e] faust(+0x284d53)[0x56341ec6ed53] faust(+0x138377)[0x56341eb22377] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1)[0x7f2b306b22b1] faust(+0x13844a)[0x56341eb2244a] ASSERT : please report the stack trace and the failing DSP file to Faust developers (version: 2.5.21, options: cpp, -scal -ftz 0)

the code i'm trying to compile :

//delay in second ma = library("maths.lib"); delayInSample = ma.SR hslider ( "delay in second" , 0.5 , 0 , 44100 , 0.001); feedback = hslider ( "feedback", 0.75, 0, 1, 0.001); process = +()~(@delayInSamplefeedback);

The problem is triggered by the erroneous "44100" value in my code, putting really lower value make it work, but some value like "10000" make the compiler hang.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/grame-cncm/faust/issues/154, or mute the thread https://github.com/notifications/unsubscribe-auth/ACGVFVIBq2LIt3y7ld3SaivrvqX5g3qvks5teYI-gaJpZM4SrJmP .

--

Julius O. Smith III jos@ccrma.stanford.edu Professor of Music and, by courtesy, Electrical Engineering CCRMA, Stanford University http://ccrma.stanford.edu/~jos/ http://ccrma.stanford.edu/

sletz commented 6 years ago

https://github.com/grame-cncm/faust/blob/master-dev/compiler/signals/sigtype.cpp

int checkDelayInterval(Type t) at line 296  produces:

checkDelayInterval : i.hi  8.4672e+09
checkDelayInterval : int(i.hi+0.5) -2147483648

then :

void OccMarkup::incOcc(Tree env, int v, int r, int d, Tree t)
....
faustassert(d2>=0); 
.....

and the faustassert is triggered

@orlarey : maybe an exception with a message would be more adapted than an assert here?

YruamaLairba commented 6 years ago

a message telling that something is probably wrong in the dsp file would be great, with the current assert, i didn't undersand that i had made a mistake in my code. I see the error only when i copied my code in the issue report.

josmithiii commented 6 years ago

Since that's a delay of over 12 hours, maybe we should print a compiler warning when a delay line exceeds 30 seconds in length (the upper end of our "short term memory duration") :-)

On Thu, Mar 15, 2018 at 4:39 AM, YruamaLairba notifications@github.com wrote:

a message telling that something is probably wrong in the dsp file would be great, with the current assert, i didn't undersand that i had made a mistake in my code. I see the error only when i copied my code in the issue report.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/grame-cncm/faust/issues/154#issuecomment-373347773, or mute the thread https://github.com/notifications/unsubscribe-auth/ACGVFcfqh2HADyvp51DY5ZWqCW6n321mks5telMLgaJpZM4SrJmP .

--

Julius O. Smith III jos@ccrma.stanford.edu Professor of Music and, by courtesy, Electrical Engineering CCRMA, Stanford University http://ccrma.stanford.edu/~jos/ http://ccrma.stanford.edu/

sletz commented 6 years ago

We have an internal computation that produces a value outside of the integer range. This causes a faustassert later on in the code. The point is see what kind of meaningful error message (instead of the faustassert ) can re returned. @orlarey any idea here?

sletz commented 6 years ago

Fixed in https://github.com/grame-cncm/faust/commit/4fd226de1e1a427431674a6172abbc011adba8eb