DIP 1006 - Preliminary Review Round 1

Timon Gehr timon.gehr at gmx.ch
Tue Mar 6 23:57:21 UTC 2018


On 06.03.2018 11:17, Walter Bright wrote:
> On 3/6/2018 1:58 AM, Jonathan M Davis wrote:
>> [...]
> 
> The entire point of making assert a core language feature was so that 
> the compiler could take advantage of it to generate better code.

It does not need to be a core language feature for that.
It seems that you did the right thing for the wrong reasons.

> It's 
> been like that for D since day 1. It has always been documented to do 
> that. It has been discussed many times in this n.g. over the years with 
> loooong threads. I designed it that way so that D could potentially 
> produce better code than other languages in ways they could not match.
> 
> There is no other purpose to making it a core language feature.
> ...

Yes. The (only!) purpose is standardization. asserts and contracts are a 
core language feature for similar reasons why unit tests are a core 
language feature.

> ...
> 
> Or just don't turn off assert checking. Personally, I use asserts in a 
> way that they add little overhead so they can remain active in the 
> release build.
> ...

Not everybody runs only their own code.

> It's entirely under your control.

It is not. Could we please make it that way?


More information about the Digitalmars-d mailing list