assume, assert, enforce, @safe
Jonathan M Davis via Digitalmars-d
digitalmars-d at puremagic.com
Thu Jul 31 12:39:54 PDT 2014
On Thursday, 31 July 2014 at 19:36:34 UTC, H. S. Teoh via
Digitalmars-d wrote:
> On Thu, Jul 31, 2014 at 03:43:48PM -0300, Ary Borenszweig via
> Digitalmars-d 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.
>
> Isn't that already what you're doing with the current behaviour
> of
> assert? Not only in D, but also in C/C++.
Yes, but I think that his point was that he wants a way to check
programming bugs in release mode, and Walter was saying not to
use enforce for checking programming bugs. So, that leaves the
question of how to check them in release mode, since assertions
won't work in release mode. But the answer to that is normally to
not compile in release mode. And I believe that dmd gives enough
control over that that you can get everything that -release does
without disabling assertions using flags other than -release.
- Jonathan M Davis
More information about the Digitalmars-d
mailing list