[PD] Array Size limits

Mathieu Bouchard matju at artengine.ca
Mon Oct 24 19:13:56 CEST 2011


Le 2011-10-24 à 17:58:00, IOhannes m zmoelnig a écrit :
> On 2011-10-24 16:24, Mathieu Bouchard wrote:
>>
>> -maxsize between 4GB and 6GB will pretend that the size is 4GB less than
>> what you specified.
> [...]
>> -maxsize between 4GB and 6GB will pretend that the size is 8GB less than
>> what you specified.
>>
> hein?

A big sorry... although I got the overall point right, I made FOUR 
mistakes in the mail :

1. First, the obvious typo. I wanted to write « between 8GB and 10GB » in 
the latter part. Basically, I just meant wrapping around at 2GB, and 
crossing zero at 4GB... a signed modulo pow(2,32).

2. In 64-bit mode, the long type is 64-bit, which I also already knew ; so 
in that case, there is no problem with crossing the 2GB limit.

3. I didn't actually try it with a C compiler. When I did, I saw that it's 
not at all the same as when casting from a big int type to a smaller int 
type. When I cast from float to a 32-bit int, any overflow gives 
-2147483648 instead of wrapping around.

4. Pd's check for negative numbers does not replace them by 0, it posts 
the «usage» message and refuses to do work. I had already verified this a 
few days ago and forgot it.

In any case, there is still the problem that if the user does -maxsize 
1e+10 on a 32-bit platform, there's nothing that tells him what's wrong. 
The user just gets an uninformative error message that implies (without 
actually stating) that something in the syntax is wrong.

  ______________________________________________________________________
| Mathieu BOUCHARD ----- téléphone : +1.514.383.3801 ----- Montréal, QC


More information about the Pd-list mailing list