On 10/18/2014 8:21 AM, Jacob Carlborg wrote:
On 2014-10-18 07:09, Walter Bright wrote:

Which means they'll be program bugs, not environmental errors.

Yes, but just because I made a mistake in using a function (hitting an assert)
doesn't mean I want to have undefined behavior.


As I've said before, tripping an assert by definition means the program has entered an unknown state. I don't believe it is possible for any language to make guarantees beyond that point.

Now, if it is a "known" unknown state, and you want to recover, the solution is straightforward - use enforce(). enforce() offers the guarantees you're asking for.

Using assert() when you mean enforce() is like pulling the fire alarm but not wanting the fire dept. to show up.

Reply via email to