[fpc-pascal] Competitive advantage in showing proof of correctness
mm
m2 at ellipsa.net
Wed Aug 15 02:40:54 CEST 2007
Daniël Mantione a écrit :
>
>> James Smith a écrit :
>>> Well, I know programmers who turn off range checking and let exceptions
>>> fall through empty exception blocks. They don't work with me on projects.
>> Though it is sometimes the best way of doing. It is sometimes better
>> to check ranges explicitly (where it is needed to do so) rather than
>> to let the compiler set checks everywhere.
>
> You almost never ship a binary with range checking, since a range check
> crash is for a end user generally as usefull as the protection fault that
> can happen when you disable range checking. The performance penalty of
> range checking is significant.
>
> Range checking during development greatly reduces the change of range bugs
> going unnoticed into the final product. Further, for a developer, a range
> check error is much easier to debug than a crash later in the program
> because a range error caused data strutures to be overwritten.
I totally agree with you (I wrote "sometimes").
For instance, if, in a program, I made use of the following types
TDigitFrame = array[0..0] of Longword;
PDigitFrame = ^TDigitFrame;
TPBigIntFrame = array[0..0] of PBigInt;
PPBigIntFrame = ^TPBigIntFrame;
etc.
there would not be much places where I could set {$R+} without having
to reset {$R-} almost immediately.
mm
More information about the fpc-pascal
mailing list