DIP 1006 - Preliminary Review Round 1

Timon Gehr via Digitalmars-d digitalmars-d at puremagic.com
Wed Apr 12 13:19:57 PDT 2017


On 12.04.2017 17:16, Mathias Lang wrote:
>>
>
> Addressing Daniel Kozak's question as well here:
>
> Providing `-release` on the command line has the following effect:
> - Disable invariants,
> - Disable in and out,
> - Disable assert,

Actually, (at least) asserts are turned into compiler hints (i.e. 
potential UB).


> - Disable switch error [1]
> ...

I have missed that one.

Note that it also implies -boundscheck=safeonly.

> Which `-contract` just allows more control on.
>
> TL;DR: It affects all build. It's a subset of `-release`, so passing
> `-contracts=whatever` and `-release` has the same effect as passing
> `-release`.
>

It's not a subset unless "disable" can mean "turn failures into 
undefined behaviour".



More information about the Digitalmars-d mailing list