C99 Versus ANSI.

C

Chris Hills

CBFalconer said:
Obsolete is not the best word here. Has been replaced by C99 is
probably more accurate.

ANSI C 98 is OBSOLETE to use the correct standards term.
It was superseded by ISO 9899:1990 (C90) which was in turn superseded
by ISO 9899:1999

To all practical purposes the closest we can get to a C99
implementation is gcc.

This is NOT correct. There are some, but not many, FULL C99
implementations with full C99 compliant libraries.

There are also quite a few compilers that are AFAIK as C99 compliant ac
Gcc.
 
K

Keith Thompson

Chris Hills said:
ANSI C 98 is OBSOLETE to use the correct standards term.
It was superseded by ISO 9899:1990 (C90) which was in turn
superseded by ISO 9899:1999

Typo: you mean ANSI C 89, not 98.

The fact that the 1990 ISO standard superseded the 1989 ANSI standard
wasn't all that significant; both standards describe the same
language. The differences between C90 and C99 are much more
significant.
 
C

CBFalconer

Richard said:
CBFalconer said:

Do you mean "quis custodies ipsos custodes?" ("who guards the guards
themselves?")? No, it doesn't apply. But yes, you're right, we need to be
able to verify C90 conformance too - not so that we can jump on the
implementors, necessarily, but so that we can be careful about our own
code. For example, I am reasonably sure that Borland's handling of errno is
non-conforming. Because there is a significant chance that my code may be
compiled using Borland's compiler, therefore, I avoid errno like the plague
in my own code. I don't rant and rave about it - I just avoid using that
feature. Same with C99 features, really. I don't worry too much about
certification - I just use the features I know to be portable to all the
implementations on which my code is likely to be compiled.

I was suspicious of my memory :) It is about 60 years since I
took my last Latin course, and flunked it miserably (partly
deliberate, so my parents would let me drop it for more maths and
physics). Now I wish I had paid more attention.

Why do you say doesn't apply? If a proper test suite is ever
developed, it needs to be open source so that everybody can poke
it. Otherwise you depend on the accuracy of the unknown designer.
The Pascal conformance test suite was an excellent example, except
the originators maintained copyright and the whole thing
disappeared. It was geared to the section numbering in the Pascal
standard. Something like t6p2p3-4.pas for test section 6.2.3
number 4. Just compile and execute. A master program could
extract the appropriate source from the suite, run the compiler,
and check results. Some tests needed compilation to fail, others
execution to output 'pass' or 'fail'. The initial letter could
govern those choices.

--
Some informative links:
< <http://www.geocities.com/nnqweb/>
<http://www.catb.org/~esr/faqs/smart-questions.html>
<http://www.caliburn.nl/topposting.html>
<http://www.netmeister.org/news/learn2quote.html>
<http://cfaj.freeshell.org/google/>
 
R

Richard Heathfield

CBFalconer said:
Why do you say ["quis custodiet[1] ipsos custodes"] doesn't apply?

Because we are not dependent on third-party test suite implementors for
establishing the conformance or non-conformance of an implementation in
regard to a particular feature. We can, at least in principle, check it
ourselves easily enough. "Does <foo> compile? Does it produce the expected
output?"


[1] Yes, I know - in my earlier reply, I got this wrong too.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

Forum statistics

Threads
474,264
Messages
2,571,066
Members
48,770
Latest member
ElysaD

Latest Threads

Top