On Monday, 6 April 2015 at 05:15:43 UTC, Walter Bright wrote:
I read the code to figure out what was happening.
At some point, -release was changed so that bounds checking was
turned off for all but @safe code. A new switch was added,
-boundscheck=[on|safeonly|off]. It took me a while to find it
at:
http://dlang.org/dmd-linux.html
because whoever added it didn't realize that the list was
alphabetized and stuck it in there after -map.
I don't know why the change was made.
I thought this was how bounds checking always worked. On in debug
mode, off in everything except @safe code in release mode. I
thought -release implied no contract checking, no asserts, AND no
bounds checking.