[rust-dev] Integer overflow, round -2147483648
Benjamin Striegel
ben.striegel at gmail.com
Mon Jun 23 11:00:41 PDT 2014
> Ada's approach to integer overflows is substantially similar to AIR
Isn't Ada's response to overflow implementation-defined?
On Mon, Jun 23, 2014 at 11:37 AM, John Regehr <regehr at cs.utah.edu> wrote:
> I would think that something simple like
>>
>> let mut sum = 0;
>> for x in some_int_array.iter() {
>> sum += x;
>> }
>>
>> would be very hard to vectorise with unwinding integer operations.
>>
>
> It sounds like there are two problems. First, you need to give up on
> precise exceptions. So the code becomes something line:
>
>
> let mut sum = 0;
> overflow = false
> for x in some_int_array.iter() {
> (sum,o) = x+sum
> overflow |= o
> }
> if (overflow) deal with it
>
> The other problem is that as far as I know AVX doesn't store the overflow
> bits for integer vector operations and recovering these bits another way
> isn't necessarily cheap.
>
> In an earlier mail Patrick said that AIR integers are research and using
> research results is risky. This is true but keep in mind that Ada's
> approach to integer overflows is substantially similar to AIR, and Ada is
> not a research language.
>
> John
>
> _______________________________________________
> Rust-dev mailing list
> Rust-dev at mozilla.org
> https://mail.mozilla.org/listinfo/rust-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/rust-dev/attachments/20140623/c84d0eb9/attachment.html>
More information about the Rust-dev
mailing list