Andrei Alexandrescu wrote:
Walter Bright wrote:
Jason House wrote:
I posted in the other thread how casting to immutable/shared can be
just as bad. A leaked reference prior to casting to immutable/shared
is in effect the same as casting away shared. No matter how you mix
thread local and shared, or mutable and immutable, you still have the
same undefined behavior

Not undefined, it's just that the compiler can't prove it's defined behavior. Hence, such code would go into a trusted function.

Are we in agreement that @safe functions have bounds checking on regardless of -release?

You're right from a theoretical perspective, but not from a practical one. People ought to be able to flip on 'safe' without large performance penalties.

If it came with inescapable large performance penalties, then it'll get a bad rap and people will be reluctant to use it, defeating its purpose.

Reply via email to