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".