Complete.Org: Mailing Lists: Archives: freeciv-dev: August 2001:
[Freeciv-Dev] Re: Profiling Civserver again
Home

[Freeciv-Dev] Re: Profiling Civserver again

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: rf13@xxxxxxxxxxxxxxxxxxxxxx
Cc: Mike Kaufman <mkaufman@xxxxxxxxxxxxxx>, "Ross W. Wetmore" <rwetmore@xxxxxxxxxxxx>, Freeciv-Dev <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Re: Profiling Civserver again
From: "Ross W. Wetmore" <rwetmore@xxxxxxxxxxxx>
Date: Thu, 02 Aug 2001 19:56:48 -0400

At 09:54 AM 01/08/02 +0200, Raimar Falke wrote:
>On Wed, Aug 01, 2001 at 09:59:52PM -0500, Mike Kaufman wrote:
>> On Wed, Aug 01, 2001 at 09:27:04PM -0400, Ross W. Wetmore wrote:
>> > Defensive programming like defensive driving is worthwhile if it doesn't 
>> > cost that much more to implement or follow the right habits.
>> 
>> yes, but this whole discussion started as a result of "hey this
>> function got called umpteen million times!" It might be interesting
>> to see what the differences are between modulus and while loops and
>> such in the macro, but if a little care can avoid the problem, I say
>> we might as well try.
>> 
>> Besides, (not following the list as carefully as he should) has
>> anybody checked to see how often (and where) the code goes outside
>> of [-map.xsize,2*map.xsize]?
>> If it doesn't, why build in a lot of defensive cruft into the code?
>
>I agree. We should make it fatal and see what breaks. AFAIK the only
>time where an interim value is outside is, that you go from a valid
>position one step in a direction.

I'd like to amend this slightly :-). 

We should make this fatal during development or in development builds, and
turn off the behaviour or revert to defensive code when the release is in
final beta or goes out.

Make the developers suffer if they are programming poorly, and expose their
problems during development to get them fixed. Don't take it out on the
customers after the fact :-).

BTW: if you get network corruption or something equivalent that is not
supposed to happen once it is out the door, then the code should still try
not to fall over in a puddle of bits. Building all sorts of limiting
heuristics about the way things are supposed to work in a perfect
environment (and never do) is equally bad programming.

>       Raimar
>
>-- 
> email: rf13@xxxxxxxxxxxxxxxxx
> "We just typed make..."
>    -- Stephen Lambrigh, Director of Server Product Marketing at Informix,
>                         about porting their Database to Linux




[Prev in Thread] Current Thread [Next in Thread]