If all that's needed is the safety from overflow exploits, a better option
would be to raise a condition on overflow.  That would avoid any size
overhead.


On Tue, Apr 23, 2013 at 11:01 AM, Daniel Micay <[email protected]>wrote:

> On Tue, Apr 23, 2013 at 1:43 PM, Graydon Hoare <[email protected]>
> wrote:
> > On 22/04/2013 9:57 PM, Robert O'Callahan wrote:
> >>
> >> On Tue, Apr 23, 2013 at 4:18 AM, Graydon Hoare <[email protected]
> >> <mailto:[email protected]>> wrote:
> >>
> >>     We've also had some requests for a mechanism to enable overflow
> >>     checking on _all_ integer types within a given static or dynamic
> >>     program extent, using attributes.
> >>
> >>
> >> I, at least, made a request for overflow checking on all integer types,
> >> full stop :-). And I still want it; failure of obvious properties like
> >> "a >= 0 ===> a + b >= b" is just crazy, and I'm tired of living in
> >> crazy-land.
> >
> >
> > How much of a performance penalty is it worth? I believe you can trap
> this
> > in C presently with a gcc flag too (-ftrapv); but it's a flag rarely
> turned
> > on.
> >
> > (I generally concur and wanted rust integers to overflow to bignums
> > originally! But I have had to retreat from such stances due to complaints
> > about performance / not-C-ness. I suspect the attribute mechanism is the
> > right approach for such pragmas; would it be acceptable to put one
> attribute
> > in each of your crates?)
> >
> > -Graydon
>
> I don't really think you need an attribute, just good support for an
> integer type in the library that traps the overflow and expands to a
> big integer.
>
> At the very least, the overhead would involve making integers 2 words
> instead of 1 for a tag, adding a branch to every operation and also
> adding a branch after almost every fixnum representation.
> _______________________________________________
> Rust-dev mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/rust-dev
>
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to