[comp.lang.c] C-Compiler Validation Suites

thomas@utah-gr.UUCP (Spencer W. Thomas) (11/10/86)

In article <1182@kontron.UUCP> stephan@kontron.UUCP (Stephan W. Wendl) writes:
>Yes, I also know that on UNIX systems one considers a successful
>compilation of the unix kernel (of course the kernel should run, too)
>as sufficent validation of the compiler.

Yes, and we have found bugs in several systems' handling of floating
point numbers because of exactly this attitude.  Compilation of the
kernel is NOT sufficient valication of the compiler!


-- 
=Spencer   ({ihnp4,decvax}!utah-cs!thomas, thomas@utah-cs.ARPA)

stephan@kontron.UUCP (Stephan W. Wendl) (11/12/86)

> Xref: kontron comp.lang.c:16 comp.sys.ibm.pc:25
> 
> In article <1182@kontron.UUCP> stephan@kontron.UUCP (Stephan W. Wendl) writes:
>>Yes, I also know that on UNIX systems one considers a successful
>>compilation of the unix kernel (of course the kernel should run, too)
>>as sufficent validation of the compiler.
> 
> Yes, and we have found bugs in several systems' handling of floating
> point numbers because of exactly this attitude.  Compilation of the
> kernel is NOT sufficient valication of the compiler!
> 
> 
> -- 
> =Spencer   ({ihnp4,decvax}!utah-cs!thomas, thomas@utah-cs.ARPA)

As far as I can recall at the moment, the UNIX kernel doesn't use floating
point data (of course I might be wrong). So if leave out this "specific
application of math" (=FFP) then the kernel might right. It is clear that
such a test will NOT sufficently, if at all, test a FFP features of the 
compiler. Historically, I believe, one used the kernel. People who are
familiar with UNIX longer than I may correct me.

ron@brl-sem.ARPA (Ron Natalie <ron>) (11/13/86)

In article <1189@kontron.UUCP>, stephan@kontron.UUCP (Stephan W. Wendl) writes:
>
> As far as I can recall at the moment, the UNIX kernel doesn't use floating
> point data (of course I might be wrong).

At least as far as BSD goes, you're wrong.  load averages are computed
using floating point, for example.  In the old days it was true.  The
kernel not only did not use floating point, it didn't use longs either
but rather an array of two ints that the kernel code took care to do
the carry when necessary.  Of course, there was no unsigned ints either
but using "char *" for these worked just fine.

Besides, everyone knows that the first step in verification is to
compile the compiler.

-Ron

faustus@ucbcad.BERKELEY.EDU (Wayne A. Christopher) (11/14/86)

In article <1841@utah-gr.UUCP>, thomas@utah-gr.UUCP writes:
> Yes, and we have found bugs in several systems' handling of floating
> point numbers because of exactly this attitude.  Compilation of the
> kernel is NOT sufficient valication of the compiler!

Try compiling SPICE 3 -- there's plenty of floating point to excercise your
compiler.  Of course, since we have had to put in lots of work-arounds to
avoid compiler problems we have already encountered, if you have the same
ones you may not find them this way...

	Wayne

tim@ism780c.UUCP (Tim Smith) (11/21/86)

Compiling the kernel also might not test structure assignment, structure
passing and returning, and enumerated types.

Compiling the kernel *AND* the rest of the system ( programs, libraries,
etc ) might be a better test, if you don't have a validation suite.
-- 
emordnilapanalpanama

Tim Smith       USENET: sdcrdcf!ism780c!tim   Compuserve: 72257,3706
                Delphi or GEnie: mnementh