On Saturday, 2 August 2014 at 22:00:27 UTC, Andrew Godfrey wrote:
On Saturday, 2 August 2014 at 21:36:11 UTC, Tobias Pankrath wrote:
On Saturday, 2 August 2014 at 21:25:40 UTC, Ola Fosheim Grøstad wrote:
On Saturday, 2 August 2014 at 20:27:09 UTC, Andrei Alexandrescu wrote:
Hmmm... code that fails assertions is hardly working. -- Andrei

It is not the code that fails the assertion, it is the asserted proposition that has not be satisfied by the axioms in the program as it has been formulated in the context. It does not mean "can not be satisfied", but "has not been satisfied".

Don't you agree, that a program that throws AssertError in non -release* build is broken?

* this is not the opposite of debug

By this definition of 'broken', I assert that most shipped software is broken.

I strongly disagree with that: if there's pressure for a release, most software in that condition has the assert _removed_ or _commented_, a bug opened, and a boss directive to do so so that it's boss responsibility having taken the risk.

The assert is _reinserted_ or _uncommented_ when there's someone hunting for that bug after the release.

If this operation can't be done because the failing asserts are a bazillion, compiling it in '-release' with the proposed assert/assume semantic don't change anything: from time to time, when the snowball of failed assert-optimisations will start to destroy the program logic, all that thing will explode in the face of the user.
---
Paolo

Reply via email to