On 03/28, Stéphane Letz wrote: > > > Speaking of internal usage of min/max... checkDelayInterval() blindly > > converts double to int, this looks dangerous and wrong. Honestly I do > > not even know what int(HUGE_VAL+0.5) should return, but apparently the > > result is negative because this code > > > > process = @(max(0)); > > > > crashes faust (faustassert() in incOcc()). > > > > Oleg. > > > > > This is indeed a real issue, already reported here: > https://github.com/grame-cncm/faust/issues/154
and I think there are more problems with overflows/conversions. Say, process = @(100000000000000.0); doesn't crash faust but the error message doesn't look right: ERROR : possible negative values of : -2147483648 used in delay expression : IN[0]@-2147483648 interval(-2.14748e+09, -2.14748e+09) I guess this is because of sigFixDelay() -> sigIntCast() which hits the same double-to-int problem. OTOH, this code process = @(100000000000000); compiles, but the cpp code is wrong: float fVec0[536870912]; probably this is simply because atoi() used by the parser doesn't report an error. O just process = 100000000000000; this compiles to output0[i] = FAUSTFLOAT(276447232); without any warning. Not that I think this is the serious problem, but still. Oleg. ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users