[Issue 3407] [tdpl] Compiling with -safe -release must keep all bound checks
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri Oct 30 08:38:38 PDT 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3407
--- Comment #3 from Don <clugdbug at yahoo.com.au> 2009-10-30 08:38:34 PDT ---
> -safe: "Do whatever the hell it takes to make sure my program never has a
> memory error"
>
> -release: "I've tested and debugged my programs, eliminate runtime design
> checks"
>
> Compiling with -safe implies array bounds checks stay, come hell or high water.
> Compiling with -release means the contracts and assert are removed. Those can't
> cause memory errors. Only non-safe builds will remove array bounds checks.
The current -safe guarantees that you never have to debug memory corruption
problems, which can be notoriously difficult to track down. I would use it 100%
of the time. But I'd always have bounds checking off in production code, it
hurts performance too much.
Actually, I think what this issue is, is that you need an option to have
contracts and asserts turned off, while leaving bounds checking on.
compile runtime
safe bounds contracts
Y Y Y
Y N N <---- I want to keep this option
Y Y N <---- You're saying we need this option
I think -release is a misnomer, and should be split in two.
(Actually I think since we have module(system), we'll probably be able make
-safe mandatory, eventually).
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list