--- Comment #3 from Don <> 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:
------- You are receiving this mail because: -------

Reply via email to