On Friday, 1 August 2014 at 03:58:22 UTC, Walter Bright wrote:

If you look at the Wikipedia article,

  http://en.wikipedia.org/wiki/Assertion_(software_development)

you'll see a more high level view of what assert is all about, rather than a worm's eye view the C standard takes. (It even uses C for its examples.) Up until this thread, I've never encountered someone who thought differently about it.

I just read that and it matches my idea of what asserts are all about. But nowhere could I see any mention of asserts being a promise to the compiler that it could then reason from. The article mentions reasoning but I read that as human reasoning. This sentence:

"The use of assertions helps the programmer design, develop, and reason about a program."

To me sums it up. I dislike the idea of the compiler reasoning from the assertions because, to me, it hinders the programmer's ability to develop a program.

That said: From what Jonathan has said, it sound like this argument could be recast as one about what the "-release" option means. If it's avoidable without losing other optimizations, I don't feel hindered in any way, and this is just a question about user surprise, naming and documentation.

Reply via email to