On Thursday, 31 July 2014 at 18:43:49 UTC, Ary Borenszweig wrote:
On 7/31/14, 4:37 AM, Walter Bright wrote:
On 7/30/2014 4:05 PM, Ary Borenszweig wrote:
On 7/30/14, 7:01 PM, Walter Bright wrote:
I'd like to sum up my position and intent on all this.

7. using enforce() to check for program bugs is utterly wrong. enforce() is a library creation, the core language does not recognize it.

What do you suggest to use to check program bugs?

assert()

Then you are potentially releasing programs with bugs that are of undefined behavior, instead of halting the program immediately.

Then don't build with -release. You can even build with -boundscheck=safe if you want to turn off bounds checking in @system code like -release does. IIRC, the only things that -release does are disable assertions, disable contracts, turn assert(0) into a halt instruction, and disable bounds checking in @system and @trusted code. So, if you want to keep the assertions and contracts and whatnot in, just don't use -release and use -boundscheck=safe to get the bounds checking changes that -release does.

- Jonathan M Davis

Reply via email to