>I can't think of an occasion when I would want to have my uses of
>enforce() stripped for a release build.
Ideally enforce shouldn't have side effects, so its removal shouldn't affect
your business logic.
>Removing asserts once I am sure
>that my code has no logic errors make sense
Did you ever have this sense? Well, I can be sure "hello world" has no bugs,
but for something more complex... only if you're a programming god, but even
then your way won't suit us mortals.
>Performance is irrelevant if you are processing corrupted memory or
>malformed input.
I believe, sometimes it's easier to make sure that the input is correct, than
to make sure the code has no bugs.
>This means that libraries (should) have 2 types of assert,
>but I hesitate to suggest the creation of a synonym to help better
>document the difference between them, as I find that the use of in{} and
>out{} do a pretty good job of that already.
So you suggest to check iota's input in contract? They say, phobos is compiled
with -release flag, so all contracts are removed. Is it ok for D programmers?