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
