On Wednesday, 30 July 2014 at 22:01:23 UTC, Walter Bright wrote:
I'd like to sum up my position and intent on all this.
1. I can discern no useful, practical difference between the
notions of assume and assert.
People have explained the difference repeatedly, a ridiculous
number of times now. Could you please take a minute to understand
it this time instead of flippantly dismissing it again?
assert does a runtime check, assume does not
assume affects code generation/optimization, assert does not
assert is for debugging, assume is not
assume is for optimization, assert is not
In terms of what they practically do, they have *nothing* in
common, their functions are entirely orthogonal.
Still think there is no practical difference?
2. The compiler can make use of assert expressions to improve
optimization, even in -release mode.
This will introduce a lot of undefined behavior, including making
@safe code with asserts unsafe. I really think this needs to be
acknowledged. As far as I can tell from the other thread, it
still hasn't been.