Martin Sebor wrote:

[snip]

Here are a few possibilities:

1. Clean slate. Everything compiles and links cleanly with no
   errors or warnings, and runs successfully to completion with
   zero failed assertions.

2. Warnings acceptable, no errors. Same as above except that
   warnings are allowed. (How many warnings? I.e., what's the
   threshold?)

3. Warnings and some failed assertions acceptable. Just like (2)
   except that tests are allowed to report some failed assertions.
   (Again, how many failed assertions are acceptable?)

4. Status quo. I.e., some warnings are acceptable, compilation
   or linker errors (except in the library) are acceptable if
   they are attributable to platform bugs or limitations, some
   (small number) of runtime errors, including abnormal exits,
   are expected.

Ideally, we'd shoot for (1). Frankly, I don't see it happening
without a monumental effort. I'm not even convinced that (2) is
doable. Maybe (3), with a lot of work. I agree that (4) is less
than optimal.

Thoughts?

I think #2 should be the goal on common platforms although I can
appreciate that enforcing the rule in rare environments could be
hard. I suppose it's up to us to decide what the "common" target
platforms are. In my opinion, Linux should definitely be one.
Windows another. Solaris is also pretty widely available. Others?

-- Mark

Reply via email to