On Friday, 1 August 2014 at 08:21:28 UTC, Kagamin wrote:
On Thursday, 31 July 2014 at 21:29:59 UTC, Sean Kelly wrote:
So effectively, any factor occurring at runtime. If I create a
library, it is acceptable to validate function parameters using
assert() because the user of that library knows what the
library
expects and should write their code accordingly. That's fair.
He should, but what if he doesn't and the library is phobos or
druntime (which are compiled in release mode)? BTW, druntime
can't use enforce and doesn't verify its input.
Druntime uses contracts and asserts in places. Which are of
course removed because we ship only a "release" build. Once
again, the worst naming for a compiler switch ever. What I really
want is a way to ship release and non-release builds (ie. checked
and unchecked) and have the proper one chosen at link time based
on build flags. Basically toss the -defaultlib and -debuglib and
replace it with -checkedlib and -uncheckedlib.