On Thu, 10 Apr 2014 19:21:52 -0400, Andrei Alexandrescu <seewebsiteforem...@erdani.org> wrote:

On 4/10/14, 10:56 AM, Steven Schveighoffer wrote:
@safe code can be marked as @trusted instead, and nothing changes,
except @trusted code can have bounds checks removed. How does this not
work as a solution?

Doesn't work because @trusted removes all additional checks by the compiler. We do want to have @safe as mechanically verified.

I think you are missing something. This is code that is marked as @safe. Then you change it to @trusted. It doesn't change that the code is @safe, but now it's @trusted so the bounds checks can be removed temporarily.

The assertion is that -noboundscheck for @safe code is a temporary condition to find possible optimizations. Then if this helps, you can find a more permanent mechanism to fix the performance. A similar mechanism is to use @trusted to allow bounds checks to go away temporarily, as a test. Any function that is @safe can be instead marked as @trusted, and nothing else changes.

As Walter often says about logical const, logical @safe is @safe by
convention, and it loses all of its teeth.

I think you are wrong here.

Victims with bleeding hearts around the world are feeling the effects of logical safety.

If @safe is just a convention, then I don't see the point of having it at all. If it can't be a guarantee, then it's pretty much another tech buzzword with no teeth.

-Steve

Reply via email to