[rust-dev] Compiling with no bounds checking for vectors?

Patrick Walton pcwalton at mozilla.com
Thu Mar 27 20:56:30 PDT 2014


On 3/27/14 1:42 PM, Tommi wrote:
> On 27 Mar 2014, at 22:17, Steve Klabnik <steve at steveklabnik.com> wrote:
>
>>> Why isn't there a compiler flag like 'noboundscheck' which would disable all bounds checking for vectors? It would make it easier to have those language performance benchmarks (which people are bound to make with no bounds checking in C++ at least) be more apples-to-apples comparisons. Also, knowing there's a flag in case you need one would put performance-critical people's mind
>>
>> A flag that removes safety is pretty antithical to the goals of the
>> language, IMHO.
>
> Yes, I agree it's not the official Rust way of things. But not
providing the option seems quite totalitarian. An example use case might
be a company that runs its code on 100,000 servers, and has do so for
many years without a hiccup. They realize they could save millions of
dollars a year in electricity bill by disabling bounds checking, and
that's what they decide to do. At this point they would really like to
have that compiler flag.

I think that Rust should give you the ability to opt out of safety, but 
on a per-operation basis. Having it as a compiler option is too much of 
a sledgehammer: often you want some non-performance-critical bounds to 
be checked in the name of safety, while you want some bounds checks to 
be turned off.

In fact, this is precisely what Rust allows today, via the 
`.unsafe_get()` and `.unsafe_set()` methods.

Patrick


More information about the Rust-dev mailing list