On Sun, Jun 22, 2014 at 2:31 PM, Daniel Micay <danielmi...@gmail.com> wrote:

> On 22/06/14 05:09 PM, Rick Richardson wrote:
> > Apologies if this has been suggested, but would it be possible to have a
> > compiler switch that can add runtime checks and abort on
> > overflow/underflow/carry for debugging purposes, but the default
> > behavior is no check?  IMO this would be the best of both worlds,
> > because I would assume that one would really only care about checked
> > math during testing and dev.
>
> You would need to build an entirely separate set of standard libraries
> with checked overflow. Adding new dialects of the language via compiler
> switches is never the right answer. It seems that every time an issue
> like this comes up, people propose making a compiler switch as the option.
>

> If we had compiler switches for abort vs. unwinding, no tracing gc
> support vs. tracing gc support, no integer overflow checks vs. integer
> overflow checks and more, we would have a truly ridiculous number of
> language dialects. I think even 2 dialects is too much...
>

I am very skeptical about the idea having a single set of standard
libraries that are good for everyone.  If Rust ever gains any degree of
mainstream adoption, I predict that there *will* be switches to disable
bounds checks, stack overflow checks, etc, because different applications
have different needs.

Modern C++ compilers often have a bunch of runtime checks (stack overflow
protectors, iterator invalidation detectors, and so on) that may be enabled
or disabled, and nobody bats an eye at that.
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to