469,281 Members | 2,450 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,281 developers. It's quick & easy.

Storgae durations

what is the difference between the tree storage
durations(static,automatic and dynamic) in C?
Aug 16 '08
241 5684
s0s...@gmail.com wrote:
On Aug 19, 7:19 am, Richard Heathfield <rj*@see.sig.invalidwrote:
s0****@gmail.com said:
Richard Heathfield wrote:
....
>Let's get this straight, once and for all. Do you use a conforming C99
>implementation? If so, which one? (If your answer is "gcc", then no, you
>don't use a conforming C99 implementation.)
No.
And I never claimed I did.
I said I used a C99 implementation.
So you are drawing a distinction between "C99 implementation" and
"conforming C99 implementation". I would argue that there is no such
distinction - that an implementation either conforms, or does not conform,
to C99. There is no middle ground.

Everybody uses the terms that way. Doesn't that tell you something?
My only experience with anyone ever using the term "C99
implementation" is in this newsgroup and in comp.std.c. In those two
newsgroups, it has overwhelming been my experience that "C99
implementation" is used only to refer to fully conforming
implementations, or at least implementations that fail to conform only
because of unexpected bugs, not as a matter of deliberate choice.

A quick Google Groups search gives an estimated 880 uses of "C99
implementation" across all newsgroups. Among the first 100 hits, the
only ones that I could find using that term to refer to an
implementation which falls short of being fully conforming are by you
and jacob navia. A large fraction of those hits involve arguments
about that very issue, in this newsgroup.

For almost everyone other than you two, the term is usually used in
sentences like the following: "for a C99 implementation, A is
guaranteed", which would not be true if they were using "C99
implementation" to refer to something that might not be fully
conforming - if they did, then A wouldn't be guaranteed - it might be
precisely the particular feature that prevents the implementation from
being fully conforming.
Aug 19 '08 #151
Richard <rg****@gmail.comwrote:
>
"Support C99" does not mean "conforms to C99" indeed. Where do you get
off talking such nonsense and continually playing ridiculous word games
On the contrary, it's just healthy skepticism. Using "support" instead
of "conform" is exactly the kind of word games that marketers play when
they want to lie to you without you being able to (successfully) sue
them for doing so. Never believe the marketing materials -- always ask
for the official conformance document that every conforming
implementation is required to provide to determine whether it really
conforms or not.
--
Larry Jones

I've got PLENTY of common sense! I just choose to ignore it. -- Calvin
Aug 20 '08 #152
santosh <sa*********@gmail.comwrote:
>
C90 *was* implemented fully by the majority of C compilers
and one would've have expected the same for the current C Standard.
That it didn't happen is disappointing.
"Hasn't happened yet." Don't give up hope -- most of the active
implementations that haven't reached the goal are actually moving in the
right direction, and the pace even seems to be accelerating to some
degree.
--
Larry Jones

It COULD'VE happened by accident! -- Calvin
Aug 20 '08 #153
s0****@gmail.com said:
On Aug 19, 7:19 am, Richard Heathfield <rj*@see.sig.invalidwrote:
>s0****@gmail.com said:
Richard Heathfield wrote:
s0****@gmail.com said:
Richard Heathfield wrote:
>It is you who claim that things have changed - that most people
now use C99. The burden of proof is therefore on you. (Saying
"it's so" does not constitute proof.)
That's clearly something nearly impossible to prove.
>Yes, it's certainly very difficult to prove something that isn't
true.
You don't know whether it's true or not.

"Kid, I've flown from one side of this galaxy to the other, and I've
seen a lot of strange stuff, but I've never seen anyone use a C99
implementation", as Han Solo nearly said. How many horses must you
count, and how many times must you *not* see a unicorn, before you're
allowed to say that unicorns aren't as common as horses?

This obviously nonsense, because there are many C99 implementations.
There are actually very few. Perens mentions a handful - I think it's five.
We'll accept Intel as another. That's about it, as far as I'm aware. There
are literally dozens of C90 implementations. More to the point, there are
hundreds of thousands, if not millions, of C90 *installations*. If there
were truly hundreds of thousands, if not millions, of C99 installations,
I'd have expected to see one or two of them by now. But it's never
happened yet.

You can claim that most people use C99 even when the observable evidence is
heavily weighted in the other direction, but nobody has to believe you.

<snip>
I said I used a C99 implementation.

So you are drawing a distinction between "C99 implementation" and
"conforming C99 implementation". I would argue that there is no such
distinction - that an implementation either conforms, or does not
conform, to C99. There is no middle ground.

Everybody uses the terms that way. Doesn't that tell you something?
Yes. It tells me you don't understand the word "everybody".

<snip>
>Fine. We have now established that you do not use a conforming C99
implementation.

So far so good...
>Good. Since an implementation that does not conform to C99
is not a C99 implementation, we have also established that you do not
use a C99 implementation. Good. Finally.

...but not so good. False.
We are now arguing only over terminology. Since I'm not about to break my
terminology usage for your benefit, I see no point in continuing this
discussion.

<snip>

Just one further point, though:
><snip>
>Furthermore, [your argument] made improper use
of an implicit assumption that the mere availability of a C99
implementation for a platform indicates that a significantly large
proportion of C developers using that platform have obtained a copy
of that implementation.
How so? Why do you think it made that assumption?

I don't know why your argument made that assumption.

Then that makes your whole point null.
No, I claimed *that* your argument made the assumption - which it did. If
I'd claimed to know *why* your argument made the assumption even though
you hadn't explained why it did, you'd have been able to ask whether I
claimed to be a mind-reader.

Anyway, this has been a long thread full of long articles, but I have to
say that I feel I've wasted my time trying to debate this with you,
because it seems you are still at that stage where you think you know
everything, and it will take a few years for life to knock that out of
you. When you're ready to think, feel free to open this discussion again.
Who knows? Perhaps by then you'll be using a C99 implementation!

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Aug 20 '08 #154
Flash Gordon wrote:

<snip>
I know of *one* implementation which comes close (for some value of
close) to C99 and does not have a supported C90 mode that conforms
(modulo bugs) to C90.
:-)

<snip>

Aug 20 '08 #155
On Aug 19, 11:40*pm, Richard Heathfield <rj*@see.sig.invalidwrote:
s0****@gmail.com said:
On Aug 19, 7:19 am, Richard Heathfield <rj*@see.sig.invalidwrote:
s0****@gmail.com said:
Richard Heathfield wrote:
s0****@gmail.com said:
Richard Heathfield wrote:
It is you who claim that things have changed - that most people
now use C99. The burden of proof is therefore on you. (Saying
"it's so" does not constitute proof.)
That's clearly something nearly impossible to prove.
Yes, it's certainly very difficult to prove something that isn't
true.
You don't know whether it's true or not.
"Kid, I've flown from one side of this galaxy to the other, and I've
seen a lot of strange stuff, but I've never seen anyone use a C99
implementation", as Han Solo nearly said. How many horses must you
count, and how many times must you *not* see a unicorn, before you're
allowed to say that unicorns aren't as common as horses?
This obviously nonsense, because there are many C99 implementations.

There are actually very few. Perens mentions a handful - I think it's five.
We'll accept Intel as another. That's about it, as far as I'm aware. There
are literally dozens of C90 implementations. More to the point, there are
hundreds of thousands, if not millions, of C90 *installations*. If there
were truly hundreds of thousands, if not millions, of C99 installations,
I'd have expected to see one or two of them by now. But it's never
happened yet.

You can claim that most people use C99 even when the observable evidence is
heavily weighted in the other direction, but nobody has to believe you.
What evidence? The one in your imagination?
<snip>
I said I used a C99 implementation.
So you are drawing a distinction between "C99 implementation" and
"conforming C99 implementation". I would argue that there is no such
distinction - that an implementation either conforms, or does not
conform, to C99. There is no middle ground.
Everybody uses the terms that way. Doesn't that tell you something?

Yes. It tells me you don't understand the word "everybody".
Well, that's yet another thing we can't prove.
<snip>
Fine. We have now established that you do not use a conforming C99
implementation.
So far so good...
Good. Since an implementation that does not conform to C99
is not a C99 implementation, we have also established that you do not
use a C99 implementation. Good. Finally.
...but not so good. False.

We are now arguing only over terminology. Since I'm not about to break my
terminology usage for your benefit, I see no point in continuing this
discussion.
Terminology has been our "bone of contention," like Santosh said,
during the whole thread! :-)
<snip>

Just one further point, though:
<snip>
Furthermore, [your argument] made improper use
of an implicit assumption that the mere availability of a C99
implementation for a platform indicates that a significantly large
proportion of C developers using that platform have obtained a copy
of that implementation.
How so? Why do you think it made that assumption?
I don't know why your argument made that assumption.
Then that makes your whole point null.

No, I claimed *that* your argument made the assumption - which it did.
I still don't see how it made that assumption, and you haven't
answered that.
If
I'd claimed to know *why* your argument made the assumption even though
you hadn't explained why it did, you'd have been able to ask whether I
claimed to be a mind-reader.

Anyway, this has been a long thread full of long articles, but I have to
say that I feel I've wasted my time trying to debate this with you,
Just *now* you realize that!? :-)
because it seems you are still at that stage where you think you know
everything, and it will take a few years for life to knock that out of
you. When you're ready to think, feel free to open this discussion again.
Who knows? Perhaps by then you'll be using a C99 implementation!
(And so I shall say my last words...)

Oh I already am.

Sebastian

Aug 20 '08 #156
s0****@gmail.com said:
On Aug 19, 11:40 pm, Richard Heathfield <rj*@see.sig.invalidwrote:
>>
<snip>
>>
You can claim that most people use C99 even when the observable evidence
is heavily weighted in the other direction, but nobody has to believe
you.

What evidence? The one in your imagination?
I've already explained that I have *observed* - not imagined, but
*observed* - a great many C90 installations (i.e. a particular
implementation of C90 installed on a particular machine), on a wide
variety of machines, being used by a wide variety of C programmers.

I have never once seen anyone use a C99 implementation. I have never seen a
C99 installation. Not once, not ever.

It is for C99 installations that I must use my imagination - not because
there aren't any but because I've never actually seen one. I know they
exist, because I've seen the Perens page and you've shown me the Intel
page. Fine. And presumably they're out there in the field, too - *someone*
must be using that software, surely? - but I've never seen it happen.
><snip>
I said I used a C99 implementation.
>So you are drawing a distinction between "C99 implementation" and
"conforming C99 implementation". I would argue that there is no such
distinction - that an implementation either conforms, or does not
conform, to C99. There is no middle ground.
Everybody uses the terms that way. Doesn't that tell you something?

Yes. It tells me you don't understand the word "everybody".

Well, that's yet another thing we can't prove.
You said that "everybody uses the terms that way". But I don't. Therefore,
not everybody uses the terms that way.
>Just one further point, though:
><snip>
>Furthermore, [your argument] made improper use
of an implicit assumption that the mere availability of a C99
implementation for a platform indicates that a significantly large
proportion of C developers using that platform have obtained a
copy of that implementation.
How so? Why do you think it made that assumption?
>I don't know why your argument made that assumption.
Then that makes your whole point null.

No, I claimed *that* your argument made the assumption - which it did.

I still don't see how it made that assumption,
Yes, I know.

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Aug 20 '08 #157
On Aug 20, 4:28*am, Richard Heathfield <rj*@see.sig.invalidwrote:
s0****@gmail.com said:
On Aug 19, 11:40 pm, Richard Heathfield <rj*@see.sig.invalidwrote:

<snip>
You can claim that most people use C99 even when the observable evidence
is heavily weighted in the other direction, but nobody has to believe
you.
What evidence? The one in your imagination?

I've already explained that I have *observed* - not imagined, but
*observed* - a great many C90 installations (i.e. a particular
implementation of C90 installed on a particular machine), on a wide
variety of machines, being used by a wide variety of C programmers.

I have never once seen anyone use a C99 implementation. I have never seena
C99 installation. Not once, not ever.
What you see isn't always what it is. But what you see is certainly no
such thing as an "evidence."
It is for C99 installations that I must use my imagination - not because
there aren't any but because I've never actually seen one. I know they
exist, because I've seen the Perens page and you've shown me the Intel
page. Fine. And presumably they're out there in the field, too - *someone*
must be using that software, surely? - but I've never seen it happen.
<snip>
I said I used a C99 implementation.
So you are drawing a distinction between "C99 implementation" and
"conforming C99 implementation". I would argue that there is no such
distinction - that an implementation either conforms, or does not
conform, to C99. There is no middle ground.
Everybody uses the terms that way. Doesn't that tell you something?
Yes. It tells me you don't understand the word "everybody".
Well, that's yet another thing we can't prove.

You said that "everybody uses the terms that way". But I don't. Therefore,
not everybody uses the terms that way.
OK, most people use the terms that way.

<snip>

Sebastian

Aug 20 '08 #158
s0****@gmail.com said:
On Aug 20, 4:28 am, Richard Heathfield <rj*@see.sig.invalidwrote:
>s0****@gmail.com said:
On Aug 19, 11:40 pm, Richard Heathfield <rj*@see.sig.invalidwrote:

<snip>
>You can claim that most people use C99 even when the observable
evidence is heavily weighted in the other direction, but nobody has
to believe you.
What evidence? The one in your imagination?

I've already explained that I have *observed* - not imagined, but
*observed* - a great many C90 installations (i.e. a particular
implementation of C90 installed on a particular machine), on a wide
variety of machines, being used by a wide variety of C programmers.

I have never once seen anyone use a C99 implementation. I have never
seen a C99 installation. Not once, not ever.

What you see isn't always what it is.
I think I can tell the difference between a C90 installation and a C99
installation. For one thing, any Visual C installation conforms (when
suitably kicked) to C90, but none of them conform to C99, no matter how
hard you kick them. Same applies to Borland and gcc. Same applies to
Norcroft. Same applies to C/370 and LE370. Same applies to Hitech ARM C.
Same applies to - oh, loads and loads and loads of compilers.
But what you see is certainly no
such thing as an "evidence."
Wrong. "Evidence" means "information, etc that gives grounds for belief;
that which points to, reveals, or suggests something; written or spoken
testimony". "Evident" means "clear to see or understand; obvious or
apparent". In a court of law, eye-witness evidence (i.e. something that
somebody saw) is valid. It might or might not be believed, but it is not
disregarded simply for being eye-witness evidence.

My experience in the field gives me good grounds for belief that C90 is
widely implemented and installed. I have no grounds whatsoever for belief
that C99 is widely implemented or installed, since only a few
implementations exist and I've never seen any of them actually running on
a system.
>You said that "everybody uses the terms that way". But I don't.
Therefore, not everybody uses the terms that way.

OK, most people use the terms that way.
I know of two, to be precise. You, and Jacob Navia. It is possible that our
resident trolls might pitch in on your side, simply because they do so
love to be contrary. But if this newsgroup is any guide, by far the
majority of people who use the term "C99 implementation" use it to mean a
/conforming/ C99 implementation - and apart from Usenet, ISO committee
meetings, and the odd Web page the term is rarely, if ever, used at all.

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Aug 20 '08 #159
s0****@gmail.com wrote:
On Aug 19, 7:19 am, Richard Heathfield <rj*@see.sig.invalidwrote:
....
>So you are drawing a distinction between "C99 implementation" and
"conforming C99 implementation". I would argue that there is no such
distinction - that an implementation either conforms, or does not conform,
to C99. There is no middle ground.

Everybody uses the terms that way. Doesn't that tell you something?
I challenge you to give me one example of someone other than you and
jacob navia posting a message to this newsgroup using the term "C99
implementation" or "implementation of C99" in a way that is clearly
incompatible with it meaning the same thing as "fully conforming C99
implementation".

I have no doubt that you'll be able find one. If two people do this,
then there's almost certainly a third. Here's the second part of the
challenge: tell us how many messages you had to look at containing the
term "C99 implementation" before finding one to support your point.

Keep in mind that any use of the term to support a conclusion about
features of such an implementation implies "fully conforming", unless
the conclusion is expressed in a way that implies some level of
uncertainty. That is because if the term was intended to include "nearly
conforming" implementations, it necessarily includes implementations
that might have failed to implement that feature.

Thus a message which says "a C99 implementation will allow use of //
comments" implies that it is referring to "fully conforming"
implementations, because a "nearly conforming implementation" might have
implemented almost every feature of the language except // comments. On
the other hand "a C99 implementation almost certainly will allow use of
// comments" would be a clear example of someone using your definition
of the term, because the only possible reason for saying "almost
certainly" would be because the term is considered to include "nearly
conforming" implementations.
Aug 20 '08 #160
On Aug 20, 7:47 am, James Kuyper <jameskuy...@verizon.netwrote:
....
I challenge you to give me one example of someone other than you and
jacob navia posting a message to this newsgroup using the term "C99
implementation" or "implementation of C99" in a way that is clearly
incompatible with it meaning the same thing as "fully conforming C99
implementation".
I left out one important detail: the message must have been posted
prior to today, 2008-08-20.
Aug 20 '08 #161
On Aug 20, 4:58*am, Richard Heathfield <rj*@see.sig.invalidwrote:
s0****@gmail.com said:
On Aug 20, 4:28 am, Richard Heathfield <rj*@see.sig.invalidwrote:
s0****@gmail.com said:
On Aug 19, 11:40 pm, Richard Heathfield <rj*@see.sig.invalidwrote:
<snip>
You can claim that most people use C99 even when the observable
evidence is heavily weighted in the other direction, but nobody has
to believe you.
What evidence? The one in your imagination?
I've already explained that I have *observed* - not imagined, but
*observed* - a great many C90 installations (i.e. a particular
implementation of C90 installed on a particular machine), on a wide
variety of machines, being used by a wide variety of C programmers.
I have never once seen anyone use a C99 implementation. I have never
seen a C99 installation. Not once, not ever.
What you see isn't always what it is.

I think I can tell the difference between a C90 installation and a C99
installation. For one thing, any Visual C installation conforms (when
suitably kicked) to C90, but none of them conform to C99, no matter how
hard you kick them. Same applies to Borland and gcc. Same applies to
Norcroft. Same applies to C/370 and LE370. Same applies to Hitech ARM C.
Same applies to - oh, loads and loads and loads of compilers.
But what you see is certainly no
such thing as an "evidence."

Wrong. "Evidence" means "information, etc that gives grounds for belief;
that which points to, reveals, or suggests something; written or spoken
testimony". "Evident" means "clear to see or understand; obvious or
apparent". In a court of law, eye-witness evidence (i.e. something that
somebody saw) is valid. It might or might not be believed, but it is not
disregarded simply for being eye-witness evidence.
And what "eye-witness evidence" have you presented so far? Remember
that people can't see through your imagination.
My experience in the field gives me good grounds for belief that C90 is
widely implemented and installed. I have no grounds whatsoever for belief
that C99 is widely implemented or installed, since only a few
implementations exist and I've never seen any of them actually running on
a system.
You said that "everybody uses the terms that way". But I don't.
Therefore, not everybody uses the terms that way.
OK, most people use the terms that way.

I know of two, to be precise.
Well, as we've learned, you and I live on different planets.
You, and Jacob Navia. It is possible that our
resident trolls might pitch in on your side,
It seems your definition of "troll" is equivalent to "wise" or
"correct."
simply because they do so
love to be contrary.
Contrary to your imagination?
But if this newsgroup is any guide, by far the
majority of people who use the term "C99 implementation" use it to mean a
/conforming/ C99 implementation - and apart from Usenet, ISO committee
meetings, and the odd Web page the term is rarely, if ever, used at all.
False, again.

Sebastian

Aug 20 '08 #162
s0****@gmail.com wrote, On 19/08/08 23:51:
On Aug 19, 3:39 pm, Flash Gordon <sp**@flash-gordon.me.ukwrote:
>s0****@gmail.com wrote, On 19/08/08 20:27:
>>On Aug 19, 7:19 am, Richard Heathfield <rj*@see.sig.invalidwrote:
s0****@gmail.com said:
Richard Heathfield wrote:
>s0****@gmail.com said:
>>Richard Heathfield wrote:
>>>It is you who claim that things have changed - that most people now
>>>use C99. The burden of proof is therefore on you. (Saying "it's so"
>>>does not constitute proof.)
>>That's clearly something nearly impossible to prove.
>Yes, it's certainly very difficult to prove something that isn't true.
You don't know whether it's true or not.
"Kid, I've flown from one side of this galaxy to the other, and I've seen a
lot of strange stuff, but I've never seen anyone use a C99
implementation", as Han Solo nearly said. How many horses must you count,
and how many times must you *not* see a unicorn, before you're allowed to
say that unicorns aren't as common as horses?
This obviously nonsense, because there are many C99 implementations.
Name 10. For each one you name others will be able to name 10 C90
implementations. That is even if you use implementations which are
closer to C99 than C90 and the rest of us stick strictly to conforming
implementations of C90. If you stick to only conforming C99
implementations I doubt you will even reach 10.

There are obviously more C90 implementations than there are C99
implementations. What I meant was that, in general, there are many C99
implementations.
I would not consider a number smaller than (or even close to) 10 to be
"many".
>I know of *one* implementation which comes close (for some value of
close) to C99 and does not have a supported C90 mode that conforms
(modulo bugs) to C90.
>>>>>>You said
>>"That's curious, since you don't use C99 yourself"
>>which I denied.
>Let's get this straight, once and for all. Do you use a conforming C99
>implementation? If so, which one? (If your answer is "gcc", then no, you
>don't use a conforming C99 implementation.)
No.
And I never claimed I did.
I said I used a C99 implementation.
So you are drawing a distinction between "C99 implementation" and
"conforming C99 implementation". I would argue that there is no such
distinction - that an implementation either conforms, or does not conform,
to C99. There is no middle ground.
Everybody uses the terms that way. Doesn't that tell you something?
This is one of the few places where I come across the term C99 and a
significant number of people here mean conforming implementations when
they talk about C99. Personally I would expect people to mention if the
they did *not* mean a conforming implementation.

Sometimes, when it's relevant. But frequently they don't.
There seem to be two poster here who frequently don't mention when they
don't mean "fully conforming" and you are one of the two. More than two
people have stated in this thread that when they (and in their opinion
most other people) refer to a C99 implementation they mean a fully
conforming one. So the evidence is against you.
>>>>>[...] Either you use a conforming C99 implementation or you
>don't. Decide.
No.
And I never claimed I did.
Fine. We have now established that you do not use a conforming C99
implementation.
So far so good...
Good. Since an implementation that does not conform to C99
is not a C99 implementation, we have also established that you do not use
a C99 implementation. Good. Finally.
...but not so good. False.
So what do you mean by a C99 compiler? Remember that an old pre-ANSI
standard compiler can correctly compile C99 code provided you stick to
the portions of C99 that it supports.

Sure, but that isn't usually the case for compilers that claim to
support C99, either conforming or not.
So far in this thread we have had example which claimed "support for"
which, on further investigation turned out to be fully conforming. We
have gcc which *explicitly* states in both the web pages and the info
page (in the section which describes the C99 flag) that it is *not*
complete. I know of one other compiler where the author claims C99
support but has not yet completed it. So the evidence currently is that
usually they only claim C99 support (without mentioning it being
incomplete) if they are conforming implementations.
>>>>[...] You said
"Given that most people starting to write new apps don't actually have
a C99 implementation,"
Which is, let's admit it, gibberish.
No, it's simply true.
False.
Hmm. Microsoft Visual Studio is probably the most used C compiler on
Windows and it does not even *attempt* to come close to C99.

But it isn't the only C compiler on Windows.
No, just the most common by a very long way. So it is almost certainly
the compiler most commonly used when developing new C application on
Windows. So it not conforming to C99 is very strong evidence that you
are wrong.
>gcc still defaults to using GNU89 which is C89 + extensions (rather than
the incomplete C99 mode, and I suspect that the majority of gcc users
don't override this default.

That doesn't mean GCC users don't have access to a C99 implementation.
No, it just means that GNU do not consider gcc to be a C99
implementation yet. gcc users may well also have access to other
compilers (I do, but none of them are C99 compilers).

It is also strong evidence that you are WRONG to have claimed that most
new C development is in C99.
>I've not heard of a rush by embedded compiler developers to implement
C99, so probably most developers for embedded systems still use C90.

Yes, embedded systems is probably one of the places where it'd be more
advantageous to use C90. But that's a very specific case.
Yes, I suppose that probably the majority of C programming is a special
case.
>There, you now have a reasoned argument as to why most new C development
is in C90 + extensions and *not* in C99 - bits not implemented or broken.

If you're going to use extensions,
I'm not and you have completely missed the point.
you're limiting the code to be
compiled only under the compiler that supports those extensions.
Not enabling conformance does NOT mean that you are using extension.
Most people using gcc would not enable conformance to compile the
following program which conforms to ALL versions of the C standard
(including K&R1 which is not "a Standard"):

int main()
{
return 0;
}
In
contrast, using C99 would only limit the code to be compiled under a
C99 implementation, which would be more portable than using compiler-
specific extensions.
You have missed the point that most people do not even *attempt* to use
anything approaching C99. I strongly believe that most people who care
about portability enough to try and write code conforming to *any*
standard try and write C90, not as you have claimed C99.
>>>>Do I really need to say anything
else but "False"?
Well, "True" would have been a lot closer to the mark, wouldn't it?
<snip>
It's as simple as this: Not everything is as exact and concise as
mathematics.
Nevertheless, we can say with exactness and concision that implementations
either do, or do not, conform to C99.
Saying "and implementation conforms, but it doesn't" is a null
statement, and I've never said anything like that (and it's not what I
was referring to in that sentence).
You have yet to say where *you* draw the border between a C89 and a C99
implementation.
You still have not addressed this point.
>Note that the reason GNU have not yet switched to GNU99 (C99 +
extensions) being the default for their compiler is that it is not fully
implemented. It also in the info pages when talking about C99 that,
"this standard is not fully supported."
So you agree that you were wrong?
>>>>>Furthermore, [your argument] made improper use
>of an implicit assumption that the mere availability of a C99
>implementation for a platform indicates that a significantly large
>proportion of C developers using that platform have obtained a copy of
>that implementation.
How so? Why do you think it made that assumption?
I don't know why your argument made that assumption.
Then that makes your whole point null.
You have miss-interpreted each other.

Richard meant (I think) that he does not know why you chose to make that
assumption. He does understand what about your argument assumes that.

But I don't see how my argument made that assumption.
You start off trying to prove that most new C development is in C99 and
as evidence claim that C99 is available for most platforms. Above I have
explained why the availability of C99 implementations does *not* mean
that people are programming in C99.
>>>I don't even know
whether you realise your argument made that assumption. Nevertheless, make
it it did. It's as if we were to suggest that the majority of people drive
Porsches because they are available in both left-hand-drive and
right-hand-drive. But there are other relevant factors! Not everyone can
afford a Porsche (or a C99 implementation).
There are free C99 implementations.
That does not mean that people can use them. Possible reasons for not
using them include:
- Management specifying which compiler to use

That'd be the case for an implementation of any standard.
ANY compiler (bar a small handful) they specify will support C99. Since
ONLY a small handful of compilers provide C99 implementations it is VERY
likely to mean that C99 is not available.
>- Not being aware of the free implementations

Do you think that's a valid excuse?
Who said it was an excuse? It is a possible reason for not using a C99
implementations.
Anyway, that'd also be the case
for an implementation of any standard.
No, because the chances are VERY high that whatever compiler they happen
to use provides C90 conformance but NOT C99 conformance.
>- The non-free implementations being better (in any of a number of ways)

Quite possibly, but that'd also be the case for an implementation of
any standard. Though in this case it might be admittedly more probable
in the case of C99 since it's more recent.
Actually you are wrong again. Any compiler approaching C99 conformance
has been under active development recently.

You still seem to have failed to understand that if someone picks a
compiler for ANY reason other than to get C99 conformance the chances
are that the compiler will have a C90 mode, a default mode which is
C90+extensions and either NO C99 mode or a broken (or incomplete) C99
mode. Therefore the ONLY reason people are likely to be using C99 is if
they have gone out of their way to use it, and most people do not go out
of their way to use C99.
>>I don't know much about compilers,
but so far in this discussion we've mentioned two, one of which was
discussed about two posts ago, remember?
So? I've probably used 10 times that number of different compilers, and
that is excluding switching to newer versions of a specific compiler.
For about half of my C development career I had little choice about
which compiler to use either because there *was* no alternative or due
to reasons such as those I mention above.
So you accept your point above has been rebutted?
>>>Of those who can, not everyone
likes them. Of those who do, not everyone is in control of the decision to
buy or not buy one. Of those who are, not everyone necessarily wants to
spend the money in that way.
Those three points are equally applicable for an implementation of any
standard.
It is *extremely* difficult to find compilers that do *not* have a mode
that conforms to C90. I can think of two or three, and NONE of those are
even vaguely approaching C99 (most if not all of what does not conform
to C90 is in the common subset of C90 and C99).

What does that have to do with the three points Richard mentioned?
It has relevance to the point that *you* made in an attempt to refute
Richard.
>>>(Yes, I know Intel C is free - or at least,
I'm prepared to take your word for it - but the point is nevertheless
valid. Not everyone uses a platform supported by Intel.)
<snip>
>But I don't want to beg the question myself, so let's look at it another
>way. If by some strange chance there is a C programmer out there who
>doesn't have a C90 implementation, that programmer is not one of my
>users (because he or she is not using my code, because they can't,
>because they don't have a C90 implementation). Therefore, all my users
>have C90 implementations. :-)
Well if they don't object to you the first time you send them code
they can't compile, it's only logical to assume they do have a C90
implementation. So the bottom line is that it would be equally
acceptable to send them any code: C99, C++, Java! :-) And if they
don't object, then it means it's OK.
Yes, that's a perfectly reasonable point - until, of course, they /do/
object. And that is precisely what would happen if I started littering my
code with C99isms.
Since they don't tell you anything about their systems, that's hard to
know (and, IMO, unlikely to happen).
How much do you know about Richard's typical customers?

He told me most of them don't bother to tell him about their system.
Whether they would object to the code he sends because it doesn't work
on their systems depends of course on what kinds of systems they use,
but I think in general most people would be able to accept C99, unlike
he thinks. Of course, these are just wild guesses.
See comments above for why you are almost certainly wrong. You don't
even know if any (or most) of Richard's work is for embedded systems.
>>>>>>Have [GNU] actually said, "we don't have a C99
>>implementation"?
>I don't know whether they've ever used those precise words, but...
>>If so, could you point me to the site where it's stated?
>...http://gcc.gnu.org/c99status.htmlmakesit very clear.
Like I already told Keith, they don't mention that there.
Yes, they do, by listing the ways in which their implementation does not
conform to C99.
That doesn't imply the words "we don't have a C99 implementation"
either explicitly or implicitly.
Well, there info page states as the reason for not making gnu99 the
default mode (instead of gnu89) that it is not fully implemented. Since
the extensions GNU provide to C99 are *also* extensions they provide to
C90, it is obviously the implementation of the base C99 language they
consider to be too far from compete for it to be the default mode. That,
to me, *does* imply that they do not consider gcc to have a C99
implementation yet, just something they are working on getting there.

To me, it implies that they consider GCC to have a C90 implementation,
a C99 implementation, and a custom implementation of their own for
each of the two standards. But we've yet got to see what they say.
The GNU developers do not often post here. However you should be able to
see why some people (most people don't care) consider it to imply that
they do not have a C99 implementation.
--
Flash Gordon
Aug 20 '08 #163
s0****@gmail.com said:
Richard Heathfield wrote:
>s0****@gmail.com said:
<snip>
But what you see is certainly no such thing as an "evidence."

Wrong. "Evidence" means "information, etc that gives grounds for belief;
that which points to, reveals, or suggests something; written or spoken
testimony". "Evident" means "clear to see or understand; obvious or
apparent". In a court of law, eye-witness evidence (i.e. something that
somebody saw) is valid. It might or might not be believed, but it is not
disregarded simply for being eye-witness evidence.

And what "eye-witness evidence" have you presented so far? Remember
that people can't see through your imagination.
<repost>
I've already explained that I have *observed* - not imagined, but
*observed* - a great many C90 installations (i.e. a particular
implementation of C90 installed on a particular machine), on a wide
variety of machines, being used by a wide variety of C programmers.

I have never once seen anyone use a C99 implementation. I have never seen a
C99 installation. Not once, not ever.
</repost>

Now, okay, you could decide not to believe me, and that's up to you - but
failure to accept reality is your problem, not mine.

I suspect that the reason you continue to hold this absurd position is that
you continue to imagine that "C99 implementation" and "C99-conforming
implementation" mean different things. They don't.

<snip>
>You said that "everybody uses the terms that way". But I don't.
Therefore, not everybody uses the terms that way.
OK, most people use the terms that way.

I know of two, to be precise.

Well, as we've learned, you and I live on different planets.
Perhaps. I live here on Earth. I don't know what planet you hail from, but
I must give your civilisation credit where credit is due - being able to
tap into Earth's Internet from so far away is a massive achievement.
>You, and Jacob Navia. It is possible that our
resident trolls might pitch in on your side,

It seems your definition of "troll" is equivalent to "wise" or
"correct."
Well, no. I don't think trolling is a particularly wise thing to do. There
is no reason per se that a troll might not be correct simply because he's
trolling, and indeed the most effective trolls are those whose articles
either are, or at least appear to be, correct in their use of facts. (Of
course, our resident trolls aren't nearly clever enough for that. They
wouldn't know a fact from a hole in the ground.)
>
>simply because they do so
love to be contrary.

Contrary to your imagination?
No, contrary to reality. It is *your* imagination that populates the world
with C99 installations.
>But if this newsgroup is any guide, by far the
majority of people who use the term "C99 implementation" use it to mean
a /conforming/ C99 implementation - and apart from Usenet, ISO committee
meetings, and the odd Web page the term is rarely, if ever, used at all.

False, again.
Demonstrate this, please. I'm not asking you to "prove" it, although you're
welcome to try if you wish - but if you could just demonstrate some
examples, that might help to strengthen your case, a case which, at
present, is desperately weak.

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Aug 20 '08 #164
Flash Gordon wrote:
s0****@gmail.com wrote, On 19/08/08 23:51:
<snip>
>Sure, but that isn't usually the case for compilers that claim to
support C99, either conforming or not.

So far in this thread we have had example which claimed "support for"
which, on further investigation turned out to be fully conforming.
[ ... ]

I don't you can say that. Nothing except a complete run through an
industry accepted conformance test suite can conform a compiler as
fully conforming. Intel's wording is far too ambiguous to come to this
conclusion and a few random test programs don't cut it either, IMO.

So the evidence currently is
that usually they only claim C99 support (without mentioning it being
incomplete) if they are conforming implementations.
Comeau C++ "claims" to be fully conforming C99 implementation if used in
conjunction with the Dinkumware Standard library. Once again, though
it's quite reasonable to take on faith the claims of Comeau C++ and
Intel, it's still not proof positive unless it passes a conformance
test.

<snip>

Aug 20 '08 #165
On Wed, 20 Aug 2008 11:47:20 +0000, James Kuyper wrote:
s0****@gmail.com wrote:
>On Aug 19, 7:19 am, Richard Heathfield <rj*@see.sig.invalidwrote:
...
>>So you are drawing a distinction between "C99 implementation" and
"conforming C99 implementation". I would argue that there is no such
distinction - that an implementation either conforms, or does not
conform, to C99. There is no middle ground.

Everybody uses the terms that way. Doesn't that tell you something?

I challenge you to give me one example of someone other than you and
jacob navia posting a message to this newsgroup using the term "C99
implementation" or "implementation of C99" in a way that is clearly
incompatible with it meaning the same thing as "fully conforming C99
implementation".
Jack Klein, 2000-08-08:
"gcc might well be the most compliant C99 implementation available
today, and might very well be the first with acceptable compliance,"

http://groups.google.com/group/comp....9b38f3bc2f9acc
I have no doubt that you'll be able find one. If two people do this,
then there's almost certainly a third. Here's the second part of the
challenge: tell us how many messages you had to look at containing the
term "C99 implementation" before finding one to support your point.
I searched Google for "C99 implementation" on comp.lang.c, sorted by date,
and went to the last page. The above was the fifth last result. Of the
four earlier messages, two clearly used it as "fully conforming C99
implementation", one as "the act of implementing C99", and one that I
can't classify as either "nearly conforming" or "fully conforming".
Aug 20 '08 #166
On Aug 20, 4:22 pm, Harald van Dk <true...@gmail.comwrote:
Jack Klein, 2000-08-08:
"gcc might well be the most compliant C99 implementation available
today, and might very well be the first with acceptable compliance,"
http://groups.google.com/group/comp....9b38f3bc2f9acc
In my humble opinion, I believe that example doesn't qualify,
since Jack is using it to mean "uncertainty" (I'll quote James's
original challenge below, then I'll explain what I mean):

James Kuyper wrote:
unless the conclusion is expressed in a way that
implies some level of uncertainty. That is because
if the term was intended to include "nearly conforming" implementations,
it necessarily includes implementations that might have failed
to implement that feature.
...snip...
"a C99 implementation almost certainly will allow use of // comments"
would be a clear example of someone using your definition of the term,
because the only possible reason for saying "almost certainly"
would be because the term is considered to include "nearly conforming"
implementations.
Now, Jack's exact wording was "gcc might well be the *most compliant*
C99 implementation available". The "most compliant" means less than
100%.
He means gcc is the "closest thing" to a C99 implementation.
That is, in his use of the word in that paragraph, I believe he
intends C99 implementation to mean a conforming C99 implementation.
Otherwise, if he considers gcc to *be* a C99 implementation as-is,
then he wouldn't need to qualify it with "most compliant...".

Aug 20 '08 #167
Harald van Dk wrote:
...
Jack Klein, 2000-08-08:
"gcc might well be the most compliant C99 implementation available
today, and might very well be the first with acceptable compliance,"

http://groups.google.com/group/comp....9b38f3bc2f9acc
I have no doubt that you'll be able find one. If two people do this,
then there's almost certainly a third. Here's the second part of the
challenge: tell us how many messages you had to look at containing the
term "C99 implementation" before finding one to support your point.

I searched Google for "C99 implementation" on comp.lang.c, sorted by date,
and went to the last page. The above was the fifth last result. Of the
four earlier messages, two clearly used it as "fully conforming C99
implementation", one as "the act of implementing C99", and one that I
can't classify as either "nearly conforming" or "fully conforming".
I went through 100 messages sorting through that same list in the
opposite direction without finding any such use by anyone other than
Sebastian and jacob navia. This is a small amount of data on which to
base any serious conclusions, but it suggests that such use may have
been more common immediately after the standard was adopted, than it
is now, but that it has never been the most common usage.
Aug 20 '08 #168
On Aug 20, 1:40*pm, Flash Gordon <sp**@flash-gordon.me.ukwrote:
s0****@gmail.com wrote, On 19/08/08 23:51:
On Aug 19, 3:39 pm, Flash Gordon <sp**@flash-gordon.me.ukwrote:
s0****@gmail.com wrote, On 19/08/08 20:27:
>On Aug 19, 7:19 am, Richard Heathfield <rj*@see.sig.invalidwrote:
s0****@gmail.com said:
Richard Heathfield wrote:
s0****@gmail.com said:
>Richard Heathfield wrote:
>>It is you who claim that things have changed - that most people now
>>use C99. The burden of proof is therefore on you. (Saying "it's so"
>>does not constitute proof.)
>That's clearly something nearly impossible to prove.
Yes, it's certainly very difficult to prove something that isn't true.
You don't know whether it's true or not.
"Kid, I've flown from one side of this galaxy to the other, and I'veseen a
lot of strange stuff, but I've never seen anyone use a C99
implementation", as Han Solo nearly said. How many horses must you count,
and how many times must you *not* see a unicorn, before you're allowed to
say that unicorns aren't as common as horses?
This obviously nonsense, because there are many C99 implementations.
Name 10. For each one you name others will be able to name 10 C90
implementations. That is even if you use implementations which are
closer to C99 than C90 and the rest of us stick strictly to conforming
implementations of C90. If you stick to only conforming C99
implementations I doubt you will even reach 10.
There are obviously more C90 implementations than there are C99
implementations. What I meant was that, in general, there are many C99
implementations.

I would not consider a number smaller than (or even close to) 10 to be
"many".
I know of *one* implementation which comes close (for some value of
close) to C99 and does not have a supported C90 mode that conforms
(modulo bugs) to C90.
>>>>>You said
>"That's curious, since you don't use C99 yourself"
>which I denied.
Let's get this straight, once and for all. Do you use a conformingC99
implementation? If so, which one? (If your answer is "gcc", then no, you
don't use a conforming C99 implementation.)
No.
And I never claimed I did.
I said I used a C99 implementation.
So you are drawing a distinction between "C99 implementation" and
"conforming C99 implementation". I would argue that there is no such
distinction - that an implementation either conforms, or does not conform,
to C99. There is no middle ground.
Everybody uses the terms that way. Doesn't that tell you something?
This is one of the few places where I come across the term C99 and a
significant number of people here mean conforming implementations when
they talk about C99. Personally I would expect people to mention if the
they did *not* mean a conforming implementation.
Sometimes, when it's relevant. But frequently they don't.

There seem to be two poster here who frequently don't mention when they
don't mean "fully conforming" and you are one of the two. More than two
people have stated in this thread that when they (and in their opinion
most other people) refer to a C99 implementation they mean a fully
conforming one. So the evidence is against you.
But you know, there's a bigger number of programmers in the world than
"more than two people in this thread." So I don't see how that's an
evidence.
>>>>[...] Either you use a conforming C99 implementation or you
don't. Decide.
No.
And I never claimed I did.
Fine. We have now established that you do not use a conforming C99
implementation.
So far so good...
Good. Since an implementation that does not conform to C99
is not a C99 implementation, we have also established that you do not use
a C99 implementation. Good. Finally.
...but not so good. False.
So what do you mean by a C99 compiler? Remember that an old pre-ANSI
standard compiler can correctly compile C99 code provided you stick to
the portions of C99 that it supports.
Sure, but that isn't usually the case for compilers that claim to
support C99, either conforming or not.

So far in this thread we have had example which claimed "support for"
which, on further investigation turned out to be fully conforming. We
have gcc which *explicitly* states in both the web pages and the info
page (in the section which describes the C99 flag) that it is *not*
complete. I know of one other compiler where the author claims C99
support but has not yet completed it. So the evidence currently is that
usually they only claim C99 support (without mentioning it being
incomplete) if they are conforming implementations.
Wrong. Read

http://gcc.gnu.org/c99status.html

"This page describes the C99 support in mainline GCC, not in any
particular release."

So they *do* claim support without claiming conformance.
>>>[...] You said
"Given that most people starting to write new apps don't actually have
a C99 implementation,"
Which is, let's admit it, gibberish.
No, it's simply true.
False.
Hmm. Microsoft Visual Studio is probably the most used C compiler on
Windows and it does not even *attempt* to come close to C99.
But it isn't the only C compiler on Windows.

No, just the most common by a very long way. So it is almost certainly
the compiler most commonly used when developing new C application on
Windows. So it not conforming to C99 is very strong evidence that you
are wrong.
First you say "No [it isn't the only C compiler on Windows], just the
most common by a very long way." And then you say that I'm wrong. Your
above paragraph contradicts itself.
gcc still defaults to using GNU89 which is C89 + extensions (rather than
the incomplete C99 mode, and I suspect that the majority of gcc users
don't override this default.
That doesn't mean GCC users don't have access to a C99 implementation.

No, it just means that GNU do not consider gcc to be a C99
implementation yet.
Like I discussed with Richard, we've yet got to see what they say
about it, since until now we haven't seen them state those words
either implicitly or explicitly.
gcc users may well also have access to other
compilers (I do, but none of them are C99 compilers).
Not everybody is like you.
It is also strong evidence that you are WRONG to have claimed that most
new C development is in C99.
Since the GNU folks haven't said they don't have a C99 implementation,
and since not everybody is like you, then that is no such thing as a
strong evidence.
I've not heard of a rush by embedded compiler developers to implement
C99, so probably most developers for embedded systems still use C90.
Yes, embedded systems is probably one of the places where it'd be more
advantageous to use C90. But that's a very specific case.

Yes, I suppose that probably the majority of C programming is a special
case.
Are you certain that the majority of C programming takes place on
embedded systems? Could you prove it?
There, you now have a reasoned argument as to why most new C development
is in C90 + extensions and *not* in C99 - bits not implemented or broken.
If you're going to use extensions,

I'm not and you have completely missed the point.
You mentioned the words "C90 + extensions." If I missed the point,
it's because you failed to state your point.
you're limiting the code to be
compiled only under the compiler that supports those extensions.

Not enabling conformance does NOT mean that you are using extension.
But you didn't talk about not enabling conformance; you talked about
C90 + extensions.
Most people using gcc would not enable conformance to compile the
following program which conforms to ALL versions of the C standard
(including K&R1 which is not "a Standard"):

int main()
{
* * return 0;

}
So why do you claim that most new C development is in C90 +
extensions?
In
contrast, using C99 would only limit the code to be compiled under a
C99 implementation, which would be more portable than using compiler-
specific extensions.

You have missed the point that most people do not even *attempt* to use
anything approaching C99.
Can you prove that? Until you do, it's safe to assume that most people
*do* attempt to use anything approaching C99.
I strongly believe that most people who care
about portability enough to try and write code conforming to *any*
standard try and write C90, not as you have claimed C99.
I strongly do not believe that.
>>>Do I really need to say anything
else but "False"?
Well, "True" would have been a lot closer to the mark, wouldn't it?
<snip>
It's as simple as this: Not everything is as exact and concise as
mathematics.
Nevertheless, we can say with exactness and concision that implementations
either do, or do not, conform to C99.
Saying "and implementation conforms, but it doesn't" is a null
statement, and I've never said anything like that (and it's not what I
was referring to in that sentence).
You have yet to say where *you* draw the border between a C89 and a C99
implementation.

You still have not addressed this point.
Where do I draw the border between a C89 and a C99 implementation?
Simple: a C89 implementation supports C89; a C99 implementation
supports C99.
Note that the reason GNU have not yet switched to GNU99 (C99 +
extensions) being the default for their compiler is that it is not fully
implemented. It also in the info pages when talking about C99 that,
"this standard is not fully supported."

So you agree that you were wrong?
How so?
>>>>Furthermore, [your argument] made improper use
of an implicit assumption that the mere availability of a C99
implementation for a platform indicates that a significantly large
proportion of C developers using that platform have obtained a copy of
that implementation.
How so? Why do you think it made that assumption?
I don't know why your argument made that assumption.
Then that makes your whole point null.
You have miss-interpreted each other.
Richard meant (I think) that he does not know why you chose to make that
assumption. He does understand what about your argument assumes that.
But I don't see how my argument made that assumption.

You start off trying to prove that most new C development is in C99
I'm not trying to prove that, as I know it's impossible to prove it
(just as it is impossible to prove the opposite). I simply point it
out.
and
as evidence claim that C99 is available for most platforms. Above I have
explained why the availability of C99 implementations does *not* mean
that people are programming in C99.
Neither does it mean that they aren't.
>>I don't even know
whether you realise your argument made that assumption. Nevertheless, make
it it did. It's as if we were to suggest that the majority of peopledrive
Porsches because they are available in both left-hand-drive and
right-hand-drive. But there are other relevant factors! Not everyonecan
afford a Porsche (or a C99 implementation).
There are free C99 implementations.
That does not mean that people can use them. Possible reasons for not
using them include:
- Management specifying which compiler to use
That'd be the case for an implementation of any standard.

ANY compiler (bar a small handful) they specify will support C99. Since
ONLY a small handful of compilers provide C99 implementations it is VERY
likely to mean that C99 is not available.
It isn't very likely. Anyway, what does that have to do with
management specifying which compiler to use, even if there is C99
availability?
- Not being aware of the free implementations
Do you think that's a valid excuse?

Who said it was an excuse? It is a possible reason for not using a C99
implementations.
By the same token, it is also a possible reason for not using a C90
implementation.
Anyway, that'd also be the case
for an implementation of any standard.

No, because the chances are VERY high that whatever compiler they happen
to use provides C90 conformance but NOT C99 conformance.
That doesn't have anything to do with not being aware of free
implementations.
- The non-free implementations being better (in any of a number of ways)
Quite possibly, but that'd also be the case for an implementation of
any standard. Though in this case it might be admittedly more probable
in the case of C99 since it's more recent.

Actually you are wrong again. Any compiler approaching C99 conformance
has been under active development recently.
Have I ever denied that a C99 compiler approaching conformance has
been under active development?
You still seem to have failed to understand that if someone picks a
compiler for ANY reason other than to get C99 conformance the chances
are that the compiler will have a C90 mode, a default mode which is
C90+extensions and either NO C99 mode or a broken (or incomplete) C99
mode. Therefore the ONLY reason people are likely to be using C99 is if
they have gone out of their way to use it, and most people do not go out
of their way to use C99.
I don't think this is true. Anyway, can you prove it? Until you do,
it's safe to assume that you're wrong.
>I don't know much about compilers,
but so far in this discussion we've mentioned two, one of which was
discussed about two posts ago, remember?
So? I've probably used 10 times that number of different compilers, and
that is excluding switching to newer versions of a specific compiler.
For about half of my C development career I had little choice about
which compiler to use either because there *was* no alternative or due
to reasons such as those I mention above.

So you accept your point above has been rebutted?
How so?
>>Of those who can, not everyone
likes them. Of those who do, not everyone is in control of the decision to
buy or not buy one. Of those who are, not everyone necessarily wantsto
spend the money in that way.
Those three points are equally applicable for an implementation of any
standard.
It is *extremely* difficult to find compilers that do *not* have a mode
that conforms to C90. I can think of two or three, and NONE of those are
even vaguely approaching C99 (most if not all of what does not conform
to C90 is in the common subset of C90 and C99).
What does that have to do with the three points Richard mentioned?

It has relevance to the point that *you* made in an attempt to refute
Richard.
No, it has no relevance. Richard started by saying that not everyone
can afford a C99 implementation, and that OF THOSE WHO DO, (1) not
everyone likes them, (2) of those who do, not everyone can make the
decission of buying them, (3) and of those who do, not everyone wants
to spend money on them. Then I replied by saying that those three
points are equally applicable for an implementation of any standard.
Then you replied by saying that it's difficult to find compilers that
don't conform to C90, which is completely unrelated to what was
previously being discussed.
>>(Yes, I know Intel C is free - or at least,
I'm prepared to take your word for it - but the point is nevertheless
valid. Not everyone uses a platform supported by Intel.)
<snip>
But I don't want to beg the question myself, so let's look at it another
way. If by some strange chance there is a C programmer out there who
doesn't have a C90 implementation, that programmer is not one of my
users (because he or she is not using my code, because they can't,
because they don't have a C90 implementation). Therefore, all my users
have C90 implementations. :-)
Well if they don't object to you the first time you send them code
they can't compile, it's only logical to assume they do have a C90
implementation. So the bottom line is that it would be equally
acceptable to send them any code: C99, C++, Java! :-) And if they
don't object, then it means it's OK.
Yes, that's a perfectly reasonable point - until, of course, they /do/
object. And that is precisely what would happen if I started littering my
code with C99isms.
Since they don't tell you anything about their systems, that's hard to
know (and, IMO, unlikely to happen).
How much do you know about Richard's typical customers?
He told me most of them don't bother to tell him about their system.
Whether they would object to the code he sends because it doesn't work
on their systems depends of course on what kinds of systems they use,
but I think in general most people would be able to accept C99, unlike
he thinks. Of course, these are just wild guesses.

See comments above for why you are almost certainly wrong. You don't
even know if any (or most) of Richard's work is for embedded systems.
When have I said that Richard's work is for embedded systems?
>>>>>Have [GNU] actually said, "we don't have a C99
>implementation"?
I don't know whether they've ever used those precise words, but...
>If so, could you point me to the site where it's stated?
...http://gcc.gnu.org/c99status.htmlmakesitvery clear.
Like I already told Keith, they don't mention that there.
Yes, they do, by listing the ways in which their implementation doesnot
conform to C99.
That doesn't imply the words "we don't have a C99 implementation"
either explicitly or implicitly.
Well, there info page states as the reason for not making gnu99 the
default mode (instead of gnu89) that it is not fully implemented. Since
the extensions GNU provide to C99 are *also* extensions they provide to
C90, it is obviously the implementation of the base C99 language they
consider to be too far from compete for it to be the default mode. That,
to me, *does* imply that they do not consider gcc to have a C99
implementation yet, just something they are working on getting there.
To me, it implies that they consider GCC to have a C90 implementation,
a C99 implementation, and a custom implementation of their own for
each of the two standards. But we've yet got to see what they say.

The GNU developers do not often post here. However you should be able to
see why some people (most people don't care) consider it to imply that
they do not have a C99 implementation.
It isn't about what some people consider; it's about what it implies
or not, and what you said does not imply that they do not have a C99
implementation.

Sebastian

Aug 20 '08 #169
On Aug 20, 2:27*pm, Richard Heathfield <rj*@see.sig.invalidwrote:
s0****@gmail.com said:
Richard Heathfield wrote:
s0****@gmail.com said:

<snip>
But what you see is certainly no such thing as an "evidence."
Wrong. "Evidence" means "information, etc that gives grounds for belief;
that which points to, reveals, or suggests something; written or spoken
testimony". "Evident" means "clear to see or understand; obvious or
apparent". In a court of law, eye-witness evidence (i.e. something that
somebody saw) is valid. It might or might not be believed, but it is not
disregarded simply for being eye-witness evidence.
And what "eye-witness evidence" have you presented so far? Remember
that people can't see through your imagination.

<repost>
I've already explained that I have *observed* - not imagined, but
*observed* - a great many C90 installations (i.e. a particular
implementation of C90 installed on a particular machine), on a wide
variety of machines, being used by a wide variety of C programmers.

I have never once seen anyone use a C99 implementation. I have never seena
C99 installation. Not once, not ever.
</repost>
The question remains: what "eye-witness evidence" have you presented
so far? The fact that you claim to have "observed" something is not
such evidence.
Now, okay, you could decide not to believe me, and that's up to you - but
failure to accept reality is your problem, not mine.
Only if your definition of reality is "anything inside your
imagination."
I suspect that the reason you continue to hold this absurd position is that
you continue to imagine that "C99 implementation" and "C99-conforming
implementation" mean different things. They don't.
That's your opinion.
<snip>
You said that "everybody uses the terms that way". But I don't.
Therefore, not everybody uses the terms that way.
OK, most people use the terms that way.
I know of two, to be precise.
Well, as we've learned, you and I live on different planets.

Perhaps. I live here on Earth. I don't know what planet you hail from, but
I must give your civilisation credit where credit is due - being able to
tap into Earth's Internet from so far away is a massive achievement.
Actually, I live on Earth too. Perhaps your Earth is in another
dimension!
You, and Jacob Navia. It is possible that our
resident trolls might pitch in on your side,
It seems your definition of "troll" is equivalent to "wise" or
"correct."

Well, no. I don't think trolling is a particularly wise thing to do. There
is no reason per se that a troll might not be correct simply because he's
trolling, and indeed the most effective trolls are those whose articles
either are, or at least appear to be, correct in their use of facts. (Of
course, our resident trolls aren't nearly clever enough for that. They
wouldn't know a fact from a hole in the ground.)
simply because they do so
love to be contrary.
Contrary to your imagination?

No, contrary to reality. It is *your* imagination that populates the world
with C99 installations.
Only if my imagination happens to be reality itself.
But if this newsgroup is any guide, by far the
majority of people who use the term "C99 implementation" use it to mean
a /conforming/ C99 implementation - and apart from Usenet, ISO committee
meetings, and the odd Web page the term is rarely, if ever, used at all.
False, again.

Demonstrate this, please. I'm not asking you to "prove" it, although you're
welcome to try if you wish - but if you could just demonstrate some
examples, that might help to strengthen your case, a case which, at
present, is desperately weak.
It's impossible to prove (just as it'd be impossible to prove the
opposite), and probably hard to demonstrate too (just as it'd be hard
to demonstrate the opposite). It's just the way I see it, which is
clearly different from the way you see it. There's little point in
discussing it.

Sebastian

Aug 20 '08 #170
s0****@gmail.com said:
On Aug 20, 2:27 pm, Richard Heathfield <rj*@see.sig.invalidwrote:
>s0****@gmail.com said:
<snip>
>>
And what "eye-witness evidence" have you presented so far? Remember
that people can't see through your imagination.

<repost>
I've already explained that I have *observed* - not imagined, but
*observed* - a great many C90 installations (i.e. a particular
implementation of C90 installed on a particular machine), on a wide
variety of machines, being used by a wide variety of C programmers.

I have never once seen anyone use a C99 implementation. I have never
seen a C99 installation. Not once, not ever.
</repost>

The question remains: what "eye-witness evidence" have you presented
so far?
See above.
The fact that you claim to have "observed" something is not
such evidence.
That's *precisely* what it is. Eye-witness evidence is an account by an
eye-witness (i.e. someone who has seen something relevant) of that which
he (or she) has seen.

Look, I can see that you're twisting and turning the very best you can, and
you're actually doing it pretty well - but you are massively hampered by
your complete absence of a case, so you're having to feign ignorance of
ordinary words and concepts. At least, I hope you're feigning. I wouldn't
want for anyone to be that ignorant.
>Now, okay, you could decide not to believe me, and that's up to you -
but failure to accept reality is your problem, not mine.

Only if your definition of reality is "anything inside your
imagination."
I've already explained that I'm speaking of what I have *observed*, not
what I have imagined. But since we're on the subject of imagination, where
is this great cloud of C99 programmers that you seem to envisage as
covering the programming world?
>I suspect that the reason you continue to hold this absurd position is
that you continue to imagine that "C99 implementation" and
"C99-conforming implementation" mean different things. They don't.

That's your opinion.
Not only my opinion, but the opinion of several other people in this
thread, and they are very knowledgeable people too.

One major problem you have in this discussion is that, by drawing a
distinction between "C99 implementation" and "conforming C99
implementation", you must either define what *you* mean by "C99
implementation" (and as far as I'm aware, you haven't yet done this) or
risk being misunderstood by almost every participant in this thread.

Do you consider Visual C to be a C99 implementation (by your definition of
the term)? If so, why? If not, why not?

How about Borland C? How about gcc?

Is the implementation of *one* C99 feature (that isn't also a C90 feature)
sufficient to make an implementation "C99"?

<snip>
>It is *your* imagination that populates the
world with C99 installations.

Only if my imagination happens to be reality itself.
So where are they all, then, these C99 installations and programmers?
>But if this newsgroup is any guide, by far the
majority of people who use the term "C99 implementation" use it to
mean a /conforming/ C99 implementation - and apart from Usenet, ISO
committee meetings, and the odd Web page the term is rarely, if ever,
used at all.
False, again.

Demonstrate this, please. I'm not asking you to "prove" it, although
you're welcome to try if you wish - but if you could just demonstrate
some examples, that might help to strengthen your case, a case which, at
present, is desperately weak.

It's impossible to prove (just as it'd be impossible to prove the
opposite),
Then you've got no business saying "False", have you?

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Aug 20 '08 #171
You need to learn how to trim unnecessary context better. I spent more
time trimming your message than I did writing my own.

s0s...@gmail.com wrote:
On Aug 20, 1:40�pm, Flash Gordon <sp**@flash-gordon.me.ukwrote:
...
There seem to be two poster here who frequently don't mention when they
don't mean "fully conforming" and you are one of the two. More than two
people have stated in this thread that when they (and in their opinion
most other people) refer to a C99 implementation they mean a fully
conforming one. So the evidence is against you.

But you know, there's a bigger number of programmers in the world than
"more than two people in this thread." So I don't see how that's an
evidence.
Evidence doesn't have to be complete to support a claim, which is
good, because in the real world "complete" evidence is impossible to
obtain. In the real world decisions are always made by "making
assumptions" (despite the well known canard about assumptions) based
upon incomplete evidence. You should always desire to have better
evidence, but it can never be perfect, and often you'll have to settle
for the evidence that is readily available, no matter how poor it may
be.

The 880 messages Google claims to have archived which contain "C99
implementation" are a relatively small sample, and the 100 or so that
I've had time to review is an even smaller one. But it is sufficient
to justify rejecting your claim that "most" people use the term the
way you use it.

A larger sample size would help, and you're free to suggest a way to
collect one. You're also free to do a more careful and complete
analysis of Google's hits than I've had either the time or inclination
to perform.

...
Yes, embedded systems is probably one of the places where it'd be more
advantageous to use C90. But that's a very specific case.
Yes, I suppose that probably the majority of C programming is a special
case.

Are you certain that the majority of C programming takes place on
embedded systems? Could you prove it?
He said "special", not "embedded". He's saying that virtually all C
programming is performed in a context that can be dismissed as
"special", if you're inclined to do so. It is not a "very" special
case; it constitutes a large fraction of all C programming nowadays.

The C code I've been working on for the past 12 years is for a batch
processing environment. It's not for an embedded environment, it's not
for a GUI environment, it doesn't have anything to do with the
internet, it just runs, 24 hours a day, 7 days a week, on literally
hundreds of different machines reading various input files and writing
various output files, processing Terabytes of data every day. You can
dismiss my situation as "special" too, and I've had people tell me in
newsgroups that no one writes C code to work in that kind of
environment anymore, but I do work in that environment, and so do
hundreds of other people who work on the same project with me.

Every programming context is "special" in one way or another; that's
no justification for ignoring it.

...
Where do I draw the border between a C89 and a C99 implementation?
Simple: a C89 implementation supports C89; a C99 implementation
supports C99.
That explanation does not draw a border. It defines two overlapping
categories, and if taken literally is probably far more inclusive than
I expect you intended it to be. What level of support is needed? If
something supports '//' comments, and no other feature of C99
(including the features it shares with C89), would you call it a C99
implementation? If it supported every feature of C99 except '//'
comments, would you call it a C99 implementation? I'm reasonably sure
that your answers are "no" and "yes" respectively (if not, I'd be
interested to know why), but somewhere between those two extremes you
presumably switch from "no" to "yes". Where? Specifying where you
switch from "no" to "yes" is what "drawing the border" means.
Aug 20 '08 #172
s0****@gmail.com wrote:
....
The question remains: what "eye-witness evidence" have you presented
so far? The fact that you claim to have "observed" something is not
such evidence.
That is precisely what "eye-witness evidence" means: evidence that
someone has witnessed with their own eyes - i.e. observed. What do you
think the term means?
Aug 21 '08 #173
On Aug 20, 5:28 pm, Richard Heathfield <rj*@see.sig.invalidwrote:
s0****@gmail.com said:


On Aug 20, 2:27 pm, Richard Heathfield <rj*@see.sig.invalidwrote:
s0****@gmail.com said:

<snip>
And what "eye-witness evidence" have you presented so far? Remember
that people can't see through your imagination.
<repost>
I've already explained that I have *observed* - not imagined, but
*observed* - a great many C90 installations (i.e. a particular
implementation of C90 installed on a particular machine), on a wide
variety of machines, being used by a wide variety of C programmers.
I have never once seen anyone use a C99 implementation. I have never
seen a C99 installation. Not once, not ever.
</repost>
The question remains: what "eye-witness evidence" have you presented
so far?

See above.
The fact that you claim to have "observed" something is not
such evidence.

That's *precisely* what it is. Eye-witness evidence is an account by an
eye-witness (i.e. someone who has seen something relevant) of that which
he (or she) has seen.
It's possible that you have observed such evidence, but even if that's
the case, you haven't presented it in this discussion (and that would
be of course hard to accomplish given the present media of
communication!). So, since the evidence is not presented, it's the
same as if there were no evidence :-(
Look, I can see that you're twisting and turning the very best you can, and
you're actually doing it pretty well - but you are massively hampered by
your complete absence of a case,
By the same token, we both are.
so you're having to feign ignorance of
ordinary words and concepts. At least, I hope you're feigning. I wouldn't
want for anyone to be that ignorant.
It's not ignorance. It does may seem as if we're not making much use
of common sense anymore, but that's because we've carried the
discussion up to the point where mere common sense fails to
sufficiently support the cases.
Now, okay, you could decide not to believe me, and that's up to you -
but failure to accept reality is your problem, not mine.
Only if your definition of reality is "anything inside your
imagination."

I've already explained that I'm speaking of what I have *observed*, not
what I have imagined. But since we're on the subject of imagination, where
is this great cloud of C99 programmers that you seem to envisage as
covering the programming world?
People working on projects, friends programmers, etc, but I can't
prove this, so is there any point in mentioning it?
I suspect that the reason you continue to hold this absurd position is
that you continue to imagine that "C99 implementation" and
"C99-conforming implementation" mean different things. They don't.
That's your opinion.

Not only my opinion, but the opinion of several other people in this
thread, and they are very knowledgeable people too.

One major problem you have in this discussion is that, by drawing a
distinction between "C99 implementation" and "conforming C99
implementation", you must either define what *you* mean by "C99
implementation" (and as far as I'm aware, you haven't yet done this) or
risk being misunderstood by almost every participant in this thread.
I don't think that would happen, since I would expect most people to
use the terms as I do.
Do you consider Visual C to be a C99 implementation (by your definition of
the term)? If so, why? If not, why not?

How about Borland C? How about gcc?
I haven't used Visual C or Borland C, so I can't comment on them. I do
consider gcc to be a C99 implementation, but we've discussed that more
than enough in this thread, right?
Is the implementation of *one* C99 feature (that isn't also a C90 feature)
sufficient to make an implementation "C99"?
I think most people in general would not consider that.
<snip>
It is *your* imagination that populates the
world with C99 installations.
Only if my imagination happens to be reality itself.

So where are they all, then, these C99 installations and programmers?
All around us, but I'm afraid I can't show you reality from where I'm
sitting.
But if this newsgroup is any guide, by far the
majority of people who use the term "C99 implementation" use it to
mean a /conforming/ C99 implementation - and apart from Usenet, ISO
committee meetings, and the odd Web page the term is rarely, if ever,
used at all.
False, again.
Demonstrate this, please. I'm not asking you to "prove" it, although
you're welcome to try if you wish - but if you could just demonstrate
some examples, that might help to strengthen your case, a case which, at
present, is desperately weak.
It's impossible to prove (just as it'd be impossible to prove the
opposite),

Then you've got no business saying "False", have you?
Well, "False" doesn't really prove anything and doesn't provide much
useful content; it just states that it's my total opinion that the
claim is false, which is sometimes all one can do in discussions like
this.

Sebastian

Aug 21 '08 #174
s0****@gmail.com said:
On Aug 20, 5:28 pm, Richard Heathfield <rj*@see.sig.invalidwrote:
>s0****@gmail.com said:
<snip>
>>
The fact that you claim to have "observed" something is not
such evidence.

That's *precisely* what it is. Eye-witness evidence is an account by an
eye-witness (i.e. someone who has seen something relevant) of that which
he (or she) has seen.

It's possible that you have observed such evidence,
It is *true* that I have.
but even if that's
the case, you haven't presented it in this discussion
Yes, I have - several times now.
(and that would
be of course hard to accomplish given the present media of
communication!). So, since the evidence is not presented, it's the
same as if there were no evidence :-(
You really need to get a clue.
>Look, I can see that you're twisting and turning the very best you can,
and you're actually doing it pretty well - but you are massively
hampered by your complete absence of a case,

By the same token, we both are.
No.
>so you're having to feign ignorance of
ordinary words and concepts. At least, I hope you're feigning. I
wouldn't want for anyone to be that ignorant.

It's not ignorance. It does may seem as if we're not making much use
of common sense anymore,
Well, one of us surely isn't.
but that's because we've carried the
discussion up to the point where mere common sense fails to
sufficiently support the cases.
Common sense suggests that we believe our own experience, but tempering it
with that of others whom we trust. My experience tells me that there are a
very great many people using C90 implementations, and nobody is using C99
implementations - but I'm prepared to accept that my experience is not
universal and that at least /some/ people are using C99 implementations.
Nevertheless, they are sufficiently small in number that they have never
blipped my radar.
>Now, okay, you could decide not to believe me, and that's up to you -
but failure to accept reality is your problem, not mine.
Only if your definition of reality is "anything inside your
imagination."

I've already explained that I'm speaking of what I have *observed*, not
what I have imagined. But since we're on the subject of imagination,
where is this great cloud of C99 programmers that you seem to envisage
as covering the programming world?

People working on projects, friends programmers, etc, but I can't
prove this, so is there any point in mentioning it?
Yes, of course there is! It doesn't *prove* your case, but it is evidence
in support of your case (assuming you're not lying, and I don't see any
reason why anyone should accuse you of that). But it is only evidence in
support of your case if these people really were/are using conforming C99
implementations. If you just mean "C90 with extensions", you're really
proving my point rather than your own.

<snip>
>One major problem you have in this discussion is that, by drawing a
distinction between "C99 implementation" and "conforming C99
implementation", you must either define what *you* mean by "C99
implementation" (and as far as I'm aware, you haven't yet done this) or
risk being misunderstood by almost every participant in this thread.

I don't think that would happen, since I would expect most people to
use the terms as I do.
That expectation has been questioned heavily in this thread, so surely you
must realise that *even if you were right in general* (which I don't
accept), you're wrong in this thread, because most people who've expressed
an opinion in this thread disagree with you - and those are the very
people with whom you're trying to communicate.
>
>Do you consider Visual C to be a C99 implementation (by your definition
of the term)? If so, why? If not, why not?

How about Borland C? How about gcc?

I haven't used Visual C or Borland C, so I can't comment on them. I do
consider gcc to be a C99 implementation,
Why?
but we've discussed that more
than enough in this thread, right?
Maybe we're getting to the heart of it. Why is gcc a C99 implementation?
What makes it a C99 implementation, given that it doesn't conform to C99?
>
>Is the implementation of *one* C99 feature (that isn't also a C90
feature) sufficient to make an implementation "C99"?

I think most people in general would not consider that.
Two features? Four? Where is the line?

<snip>
>So where are they all, then, these C99 installations and programmers?

All around us, but I'm afraid I can't show you reality from where I'm
sitting.
Evidently.
>But if this newsgroup is any guide, by far the
majority of people who use the term "C99 implementation" use it to
mean a /conforming/ C99 implementation - and apart from Usenet,
ISO committee meetings, and the odd Web page the term is rarely,
if ever, used at all.
False, again.
>Demonstrate this, please. I'm not asking you to "prove" it, although
you're welcome to try if you wish - but if you could just demonstrate
some examples, that might help to strengthen your case, a case which,
at present, is desperately weak.
It's impossible to prove (just as it'd be impossible to prove the
opposite),

Then you've got no business saying "False", have you?

Well, "False" doesn't really prove anything and doesn't provide much
useful content; it just states that it's my total opinion that the
claim is false, which is sometimes all one can do in discussions like
this.
If you make assertions of falsehood without being able to support them, the
time will quickly come when people pay less and less attention to such
assertions.

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Aug 21 '08 #175
s0****@gmail.com wrote:
On Aug 20, 5:28 pm, Richard Heathfield <rj*@see.sig.invalidwrote:
....
>That's *precisely* what it is. Eye-witness evidence is an account by an
eye-witness (i.e. someone who has seen something relevant) of that which
he (or she) has seen.

It's possible that you have observed such evidence, but even if that's
the case, you haven't presented it in this discussion (and that would
be of course hard to accomplish given the present media of
communication!).
He has told you what he witnessed. That is precisely what an eye-witness
does in court when presenting eye-witness evidence.
>One major problem you have in this discussion is that, by drawing a
distinction between "C99 implementation" and "conforming C99
implementation", you must either define what *you* mean by "C99
implementation" (and as far as I'm aware, you haven't yet done this) or
risk being misunderstood by almost every participant in this thread.

I don't think that would happen, since I would expect most people to
use the terms as I do.
But your expectations don't seem to be a particularly close match to the
reality that I observe. I found dozens of examples of many different
people using the term in a manner inconsistent with the idea that it
means "nearly conforming", and only you and jacob navia using it in ways
that clearly require that meaning. That means that the only person you
can be sure won't misunderstand what you meant to say is jacob.
Aug 21 '08 #176
Harald van D?k wrote:
On Wed, 20 Aug 2008 11:47:20 +0000, James Kuyper wrote:
>s0****@gmail.com wrote:
>>On Aug 19, 7:19 am, Richard Heathfield <rj*@see.sig.invalidwrote:
...
>>>So you are drawing a distinction between "C99 implementation" and
"conforming C99 implementation". I would argue that there is no
such distinction - that an implementation either conforms, or does
not conform, to C99. There is no middle ground.
Everybody uses the terms that way. Doesn't that tell you something?

I challenge you to give me one example of someone other than you and
jacob navia posting a message to this newsgroup using the term "C99
implementation" or "implementation of C99" in a way that is clearly
incompatible with it meaning the same thing as "fully conforming C99
implementation".

Jack Klein, 2000-08-08:
"gcc might well be the most compliant C99 implementation available
today, and might very well be the first with acceptable compliance,"

http://groups.google.com/group/comp....9b38f3bc2f9acc

I think you snipped too much, actually he wrote:
"gcc might well be the most compliant C99 implementation available
today, and might very well be the first with acceptable compliance,
however one decides to define that. But the last I heard there were
quite a few parts of C99 undone. "
And this was more than 8 years ago, but unfortunaly that last sentence is
still true.

Bye, Jojo
Aug 21 '08 #177
On Aug 21, 5:10 am, Richard Heathfield <rj*@see.sig.invalidwrote:
s0****@gmail.com said:
On Aug 20, 5:28 pm, Richard Heathfield <rj*@see.sig.invalidwrote:
s0****@gmail.com said:

<snip>
The fact that you claim to have "observed" something is not
such evidence.
That's *precisely* what it is. Eye-witness evidence is an account by an
eye-witness (i.e. someone who has seen something relevant) of that which
he (or she) has seen.
It's possible that you have observed such evidence,

It is *true* that I have.
....which we've yet got to see.
but even if that's
the case, you haven't presented it in this discussion

Yes, I have - several times now.
When?
(and that would
be of course hard to accomplish given the present media of
communication!). So, since the evidence is not presented, it's the
same as if there were no evidence :-(

You really need to get a clue.
I don't need to get a clue about the way you see the world.
Look, I can see that you're twisting and turning the very best you can,
and you're actually doing it pretty well - but you are massively
hampered by your complete absence of a case,
By the same token, we both are.

No.
Ummm.. Yes.
so you're having to feign ignorance of
ordinary words and concepts. At least, I hope you're feigning. I
wouldn't want for anyone to be that ignorant.
It's not ignorance. It does may seem as if we're not making much use
of common sense anymore,

Well, one of us surely isn't.
Well, as we've learned, we don't share a common sense.
but that's because we've carried the
discussion up to the point where mere common sense fails to
sufficiently support the cases.

Common sense suggests that we believe our own experience, but tempering it
with that of others whom we trust. My experience tells me that there are a
very great many people using C90 implementations, and nobody is using C99
implementations - but I'm prepared to accept that my experience is not
universal
Good! I don't usually snip, but in this case I made an exception and
snipped the rest of the paragraph, since that last sentence is all
that is relevant.

<snip>
>
Now, okay, you could decide not to believe me, and that's up to you -
but failure to accept reality is your problem, not mine.
Only if your definition of reality is "anything inside your
imagination."
I've already explained that I'm speaking of what I have *observed*, not
what I have imagined. But since we're on the subject of imagination,
where is this great cloud of C99 programmers that you seem to envisage
as covering the programming world?
People working on projects, friends programmers, etc, but I can't
prove this, so is there any point in mentioning it?

Yes, of course there is! It doesn't *prove* your case, but it is evidence
in support of your case (assuming you're not lying, and I don't see any
reason why anyone should accuse you of that). But it is only evidence in
support of your case if these people really were/are using conforming C99
implementations. If you just mean "C90 with extensions", you're really
proving my point rather than your own.
A non-conforming C99 implementation is not necessarily C90 with
extensions. GCC, for example, has a C90 implementation, a C99
implementation, and two more implementations: a C90 implementation
with extensions, and a C99 implementation with extensions. (I'm not
sure if this are the only ones.)
<snip>
One major problem you have in this discussion is that, by drawing a
distinction between "C99 implementation" and "conforming C99
implementation", you must either define what *you* mean by "C99
implementation" (and as far as I'm aware, you haven't yet done this) or
risk being misunderstood by almost every participant in this thread.
I don't think that would happen, since I would expect most people to
use the terms as I do.

That expectation has been questioned heavily in this thread, so surely you
must realise that *even if you were right in general* (which I don't
accept), you're wrong in this thread, because most people who've expressed
an opinion in this thread disagree with you - and those are the very
people with whom you're trying to communicate.
But not the only ones, though.
>
Do you consider Visual C to be a C99 implementation (by your definition
of the term)? If so, why? If not, why not?
How about Borland C? How about gcc?
I haven't used Visual C or Borland C, so I can't comment on them. I do
consider gcc to be a C99 implementation,

Why?
(Answering below...)
but we've discussed that more
than enough in this thread, right?

Maybe we're getting to the heart of it. Why is gcc a C99 implementation?
What makes it a C99 implementation, given that it doesn't conform to C99?
Several obvious and meaningful facts:

- It supports most of C99 with minor failures
- People use it as a C99 implementation
- Some/most people consider it to be a C99 implementation
- Perhaps most importantly, it is *usable* as a C99 implementation
>
Is the implementation of *one* C99 feature (that isn't also a C90
feature) sufficient to make an implementation "C99"?
I think most people in general would not consider that.

Two features? Four? Where is the line?
There's no universal such line, since it depends on people's opinions.
That's why I mentioned the words "most," and "in general."
<snip>
So where are they all, then, these C99 installations and programmers?
All around us, but I'm afraid I can't show you reality from where I'm
sitting.

Evidently.
But if this newsgroup is any guide, by far the
majority of people who use the term "C99 implementation" use it to
mean a /conforming/ C99 implementation - and apart from Usenet,
ISO committee meetings, and the odd Web page the term is rarely,
if ever, used at all.
False, again.
Demonstrate this, please. I'm not asking you to "prove" it, although
you're welcome to try if you wish - but if you could just demonstrate
some examples, that might help to strengthen your case, a case which,
at present, is desperately weak.
It's impossible to prove (just as it'd be impossible to prove the
opposite),
Then you've got no business saying "False", have you?
Well, "False" doesn't really prove anything and doesn't provide much
useful content; it just states that it's my total opinion that the
claim is false, which is sometimes all one can do in discussions like
this.

If you make assertions of falsehood without being able to support them, the
time will quickly come when people pay less and less attention to such
assertions.
It isn't intended for people to pay much attention to them; it's
intended to state that it's my opinion that the claim is false,
without making much of a big deal out of it.

Sebastian

Aug 21 '08 #178
Richard Heathfield <rj*@see.sig.invalidwrote:
>
I think I can tell the difference between a C90 installation and a C99
installation. For one thing, any Visual C installation conforms (when
suitably kicked) to C90, but none of them conform to C99, no matter how
hard you kick them. Same applies to Borland and gcc. Same applies to
Norcroft. Same applies to C/370 and LE370.
I believe that C/370 does conform to C99 now (with suitable kicking).
--
Larry Jones

Archaeologists have the most mind-numbing job on the planet. -- Calvin
Aug 22 '08 #179
la************@siemens.com said:
Richard Heathfield <rj*@see.sig.invalidwrote:
>>
I think I can tell the difference between a C90 installation and a C99
installation. For one thing, any Visual C installation conforms (when
suitably kicked) to C90, but none of them conform to C99, no matter how
hard you kick them. Same applies to Borland and gcc. Same applies to
Norcroft. Same applies to C/370 and LE370.

I believe that C/370 does conform to C99 now (with suitable kicking).
Thanks, Larry - I guess one can't walk over the same river twice...

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Aug 22 '08 #180
s0****@gmail.com said:
On Aug 21, 5:10 am, Richard Heathfield <rj*@see.sig.invalidwrote:
>s0****@gmail.com said:
<snip>
but even if that's
the case, you haven't presented [eye-witness evidence of
the overwhelming prevalence of C90 within the world of
C programming] in this discussion

Yes, I have - several times now.

When?
James Kuyper has already addressed this, so I'll move on.
(and that would
be of course hard to accomplish given the present media of
communication!). So, since the evidence is not presented, it's the
same as if there were no evidence :-(

You really need to get a clue.

I don't need to get a clue about the way you see the world.
Right. You need to get a clue about the way /you/ see it.

<snip>
but that's because we've carried the
discussion up to the point where mere common sense fails to
sufficiently support the cases.

Common sense suggests that we believe our own experience, but tempering
it with that of others whom we trust. My experience tells me that there
are a very great many people using C90 implementations, and nobody is
using C99 implementations - but I'm prepared to accept that my
experience is not universal

Good! I don't usually snip,
Learn. And while you're about it, learn how to do it without distorting the
meaning too much. The paragraph continued "and that at least /some/ people
are using C99 implementations. Nevertheless, they are sufficiently small
in number that they have never blipped my radar."
but in this case I made an exception and
snipped the rest of the paragraph, since that last sentence is all
that is relevant.
No, it isn't. The rest of the paragraph is highly relevant. If C99 were as
prevalent as you say, I'd have expected to see a few dozen installations
of it by now. And I haven't - which leads me to doubt your claims.

<snip>
People working on projects, friends programmers, etc [are using C99],
but I can't prove this, so is there any point in mentioning it?

Yes, of course there is! It doesn't *prove* your case, but it is
evidence in support of your case (assuming you're not lying, and I don't
see any reason why anyone should accuse you of that). But it is only
evidence in support of your case if these people really were/are using
conforming C99 implementations. If you just mean "C90 with extensions",
you're really proving my point rather than your own.

A non-conforming C99 implementation is not necessarily C90 with
extensions.
Agreed. A non-conforming C99 implementation would be anything, anything at
all, that fails to translate program code according to the C99 Standard.
For example, it could be a copy of Visual Basic. That's a non-conforming
C99 implementation. So is ISPF/PDF. So is Lotus WordPro. So is KNode. So
is Apple Writer. So is Space Invaders. So is the coffee-cup on my desk.
"Non-conforming implementation" is not a particularly useful phrase.

<snip>
>One major problem you have in this discussion is that, by drawing a
distinction between "C99 implementation" and "conforming C99
implementation", you must either define what *you* mean by "C99
implementation" (and as far as I'm aware, you haven't yet done this)
or risk being misunderstood by almost every participant in this
thread.
I don't think that would happen, since I would expect most people to
use the terms as I do.

That expectation has been questioned heavily in this thread, so surely
you must realise that *even if you were right in general* (which I don't
accept), you're wrong in this thread, because most people who've
expressed an opinion in this thread disagree with you - and those are
the very people with whom you're trying to communicate.

But not the only ones, though.
With whom else are you trying to communicate, then, in this thread, if not
the people who are reading it and contributing to it?

<snip>
>Maybe we're getting to the heart of it. Why is gcc a C99 implementation?
What makes it a C99 implementation, given that it doesn't conform to
C99?

Several obvious and meaningful facts:

- It supports most of C99 with minor failures
I agree, but so did Turbo C, ten years before the C99 Standard was
published. So do you consider Turbo C a C99 implementation?
- People use it as a C99 implementation
People use flat-head screwdrivers to turn cross-head screws. That doesn't
mean that cross-head screws are flat-head screws.
- Some/most people consider it to be a C99 implementation
Most people have never heard of gcc. If you mean most C programmers, well,
most C programmers don't even know what main returns. I don't consider
their opinion particularly relevant.
- Perhaps most importantly, it is *usable* as a C99 implementation
Not if it doesn't conform to C99, for reasons which I have explained many
times.
>Is the implementation of *one* C99 feature (that isn't also a C90
feature) sufficient to make an implementation "C99"?
I think most people in general would not consider that.

Two features? Four? Where is the line?

There's no universal such line, since it depends on people's opinions.
That isn't good enough where, for example, business contracts are
concerned. If Company A contracts to supply software to Company B that
conforms to ISO/IEC 9899:1999, and Company B sues Company A because the
supplied software doesn't compile - or compiles with the wrong semantics -
on gcc, Company A can easily win the case if it can demonstrate that it is
gcc's failure to conform to the Standard that causes the failure to
compile or the incorrect semantics. The judge will not be impressed by
Company A's claim that "in our opinion gcc conforms to C99".

Whether gcc conforms to C99 is not a matter of opinion. It is a matter of
fact - and the fact is that, at present, it doesn't conform. GNU's C99
status page confirms this, by pointing out (and rightly so) all the places
where they know it doesn't conform.
That's why I mentioned the words "most," and "in general."
Those are weasel words, and they don't get around the fact that gcc doesn't
conform to C99.

<snip>
>If you make assertions of falsehood without being able to support them,
the time will quickly come when people pay less and less attention to
such assertions.

It isn't intended for people to pay much attention to them;
Your strategy is working.

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Aug 22 '08 #181
Richard Heathfield <rj*@see.sig.invalidwrote:
>
Thanks, Larry - I guess one can't walk over the same river twice...
I don't know why not -- I've had the same ax for 20 years, though I did
have to replace the handle four times and the head twice. :-)
--
Larry Jones

I can feel my brain beginning to atrophy already. -- Calvin
Aug 22 '08 #182
On Aug 21, 11:03 pm, Richard Heathfield <rj*@see.sig.invalidwrote:
s0****@gmail.com said:
On Aug 21, 5:10 am, Richard Heathfield <rj*@see.sig.invalidwrote:
s0****@gmail.com said:
<snip>
but even if that's
the case, you haven't presented [eye-witness evidence of
the overwhelming prevalence of C90 within the world of
C programming] in this discussion
Yes, I have - several times now.
When?

James Kuyper has already addressed this, so I'll move on.
(and that would
be of course hard to accomplish given the present media of
communication!). So, since the evidence is not presented, it's the
same as if there were no evidence :-(
You really need to get a clue.
I don't need to get a clue about the way you see the world.

Right. You need to get a clue about the way /you/ see it.
If I have a way to see it, that means I have a clue about the way I
see it.
<snip>
but that's because we've carried the
discussion up to the point where mere common sense fails to
sufficiently support the cases.
Common sense suggests that we believe our own experience, but tempering
it with that of others whom we trust. My experience tells me that there
are a very great many people using C90 implementations, and nobody is
using C99 implementations - but I'm prepared to accept that my
experience is not universal
Good! I don't usually snip,

Learn.
The fact that I don't do it doesn't mean I don't know how to do it. I
simply think it makes us lose context.
And while you're about it, learn how to do it without distorting the
meaning too much. The paragraph continued "and that at least /some/ people
are using C99 implementations. Nevertheless, they are sufficiently small
in number that they have never blipped my radar."
but in this case I made an exception and
snipped the rest of the paragraph, since that last sentence is all
that is relevant.

No, it isn't. The rest of the paragraph is highly relevant. If C99 were as
prevalent as you say, I'd have expected to see a few dozen installations
of it by now. And I haven't - which leads me to doubt your claims.
Your last sentence "but I'm prepared to accept that my experience is
not universal," was indeed very relevant, since it shows that you're
understanding that what /you/ see isn't as relevant to the rest of the
world as it is to you. The rest of the paragraph simply goes further
to comment on things about this rather irrelevant matter.
<snip>
People working on projects, friends programmers, etc [are using C99],
but I can't prove this, so is there any point in mentioning it?
Yes, of course there is! It doesn't *prove* your case, but it is
evidence in support of your case (assuming you're not lying, and I don't
see any reason why anyone should accuse you of that). But it is only
evidence in support of your case if these people really were/are using
conforming C99 implementations. If you just mean "C90 with extensions",
you're really proving my point rather than your own.
A non-conforming C99 implementation is not necessarily C90 with
extensions.

Agreed. A non-conforming C99 implementation would be anything, anything at
all, that fails to translate program code according to the C99 Standard.
Well, it depends on what you mean by "non-conforming."
For example, it could be a copy of Visual Basic. That's a non-conforming
C99 implementation. So is ISPF/PDF. So is Lotus WordPro. So is KNode. So
is Apple Writer. So is Space Invaders. So is the coffee-cup on my desk.
"Non-conforming implementation" is not a particularly useful phrase.
Its usefulness, as with the usefulness of any phrase, depends on the
context.
<snip>
One major problem you have in this discussion is that, by drawing a
distinction between "C99 implementation" and "conforming C99
implementation", you must either define what *you* mean by "C99
implementation" (and as far as I'm aware, you haven't yet done this)
or risk being misunderstood by almost every participant in this
thread.
I don't think that would happen, since I would expect most people to
use the terms as I do.
That expectation has been questioned heavily in this thread, so surely
you must realise that *even if you were right in general* (which I don't
accept), you're wrong in this thread, because most people who've
expressed an opinion in this thread disagree with you - and those are
the very people with whom you're trying to communicate.
But not the only ones, though.

With whom else are you trying to communicate, then, in this thread, if not
the people who are reading it and contributing to it?
In *this* thread, it's obviously them.
<snip>
Maybe we're getting to the heart of it. Why is gcc a C99 implementation?
What makes it a C99 implementation, given that it doesn't conform to
C99?
Several obvious and meaningful facts:
- It supports most of C99 with minor failures

I agree, but so did Turbo C, ten years before the C99 Standard was
published. So do you consider Turbo C a C99 implementation?
Would you say that it had "minor failures"? I think most people
wouldn't think so.
- People use it as a C99 implementation

People use flat-head screwdrivers to turn cross-head screws. That doesn't
mean that cross-head screws are flat-head screws.
Of course, cross-head screws are not flat-head screws. What I'm saying
is not that GCC isn't a C99 implementation and that people use it as a
C99 implementation. What I'm saying is that, because of GCC being a
C99 implementation, people use it as a C99 implementation.
- Some/most people consider it to be a C99 implementation

Most people have never heard of gcc. If you mean most C programmers, well,
most C programmers don't even know what main returns. I don't consider
their opinion particularly relevant.
Nevertheless, the masses are the masses, and they hold some power in
terms of expression.
- Perhaps most importantly, it is *usable* as a C99 implementation

Not if it doesn't conform to C99, for reasons which I have explained many
times.
Well, whether it is usable to you in particular is another matter.
Is the implementation of *one* C99 feature (that isn't also a C90
feature) sufficient to make an implementation "C99"?
I think most people in general would not consider that.
Two features? Four? Where is the line?
There's no universal such line, since it depends on people's opinions.

That isn't good enough where, for example, business contracts are
concerned. If Company A contracts to supply software to Company B that
conforms to ISO/IEC 9899:1999, and Company B sues Company A because the
supplied software doesn't compile - or compiles with the wrong semantics -
on gcc, Company A can easily win the case if it can demonstrate that it is
gcc's failure to conform to the Standard that causes the failure to
compile or the incorrect semantics. The judge will not be impressed by
Company A's claim that "in our opinion gcc conforms to C99".
If I understood correctly, Company A was contracted to supply software
to Company B that conforms to C99, and that's exactly what they did.
What compiler Company B uses is another matter completely, so Company
B would have no case.
Whether gcc conforms to C99 is not a matter of opinion. It is a matter of
fact - and the fact is that, at present, it doesn't conform. GNU's C99
status page confirms this, by pointing out (and rightly so) all the places
where they know it doesn't conform.
Have I ever denied that?
That's why I mentioned the words "most," and "in general."

Those are weasel words, and they don't get around the fact that gcc doesn't
conform to C99.
And they weren't meant to get around the fact that GCC doesn't conform
to C99. In fact, we weren't even talking about that. We were talking
about at what number of features people would consider an
implementation to be a C99 implementation. So, in this context, "most"
and "in general" are not weasel words; they're simply as accurate as
they can be.
<snip>
If you make assertions of falsehood without being able to support them,
the time will quickly come when people pay less and less attention to
such assertions.
It isn't intended for people to pay much attention to them;

Your strategy is working.
Seems like you're the one who should learn to snip without distorting
the meaning too much.

Sebastian

Aug 22 '08 #183
On 22 Aug 2008 at 21:42, s0****@gmail.com wrote:
On Aug 21, 11:03 pm, Richard Heathfield <rj*@see.sig.invalidwrote:
>Your strategy is working.

Seems like you're the one who should learn to snip without distorting
the meaning too much.
Heathfield's entire modus operandi is to distort the words of those who
disagree with him to try to make them look stupid. He is a deceitful
weasel, and word games are all he knows.

Aug 22 '08 #184
s0****@gmail.com said:
Richard Heathfield wrote:
>s0****@gmail.com said:
Richard Heathfield wrote:
s0****@gmail.com said:
<snip>
I don't need to get a clue about the way you see the world.

Right. You need to get a clue about the way /you/ see it.

If I have a way to see it, that means I have a clue about the way I
see it.
Would that it were so.

<snip>
>>
but that's because we've carried the
discussion up to the point where mere common sense fails to
sufficiently support the cases.
>Common sense suggests that we believe our own experience, but
tempering it with that of others whom we trust. My experience tells
me that there are a very great many people using C90 implementations,
and nobody is using C99 implementations - but I'm prepared to accept
that my experience is not universal
Good! I don't usually snip,

Learn.

The fact that I don't do it doesn't mean I don't know how to do it.
You indulged in selective quotation - either by accident or design. This is
the only time I've noticed you snipping at all, and you got it wrong. That
suggests either that you don't know how to snip or you're deliberately
doing it wrong.
I simply think it makes us lose context.
It does. So keep the important context, and lose the rest. If anyone needs
the long background, they can look it up in the archives. That's what
reference headers are for.
>And while you're about it, learn how to do it without distorting the
meaning too much. The paragraph continued "and that at least /some/
people are using C99 implementations. Nevertheless, they are
sufficiently small in number that they have never blipped my radar."
<snip>
>
Your last sentence "but I'm prepared to accept that my experience is
not universal," was indeed very relevant, since it shows that you're
understanding that what /you/ see isn't as relevant to the rest of the
world as it is to you.
Reality is relevant to everyone. Had I claimed that "I've never seen a C99
installation, therefore they don't exist", I'd have been a laughing-stock,
and rightly so. But the fact that I have never seen one, in circumstances
where I would *expect* to see one if they were commonplace, is strong
evidence that they are not as common as you would have us believe.
The rest of the paragraph simply goes further
to comment on things about this rather irrelevant matter.
It's highly relevant that the number of reported observations of C99
installations in the field is significantly below what should be expected
if C99 installations were sufficiently common for your claim (that most
new C development is in C99) to be plausible.

<snip>
People working on projects, friends programmers, etc [are using
C99], but I can't prove this, so is there any point in mentioning
it?
>Yes, of course there is! It doesn't *prove* your case, but it is
evidence in support of your case (assuming you're not lying, and I
don't see any reason why anyone should accuse you of that). But it is
only evidence in support of your case if these people really were/are
using conforming C99 implementations. If you just mean "C90 with
extensions", you're really proving my point rather than your own.
A non-conforming C99 implementation is not necessarily C90 with
extensions.

Agreed. A non-conforming C99 implementation would be anything, anything
at all, that fails to translate program code according to the C99
Standard.

Well, it depends on what you mean by "non-conforming."
I'll take this slowly, if I may - one step at a time.

By "non-conforming C99 implementation" I mean "not a conforming C99
implementation".

By "conforming C99 implementation", I mean the same thing the C99 Standard
does: "The two forms of conforming implementation are hosted and
freestanding. A conforming hosted implementation shall accept any strictly
conforming program. A conforming freestanding implementation shall accept
any strictly conforming program that does not use complex types and in
which the use of the features specified in the library clause (clause 7)
is confined to the contents of the standard headers <float.h>, <iso646.h>,
<limits.h>, <stdarg.h>, <stdbool.h>, <stddef.h>, and <stdint.h>. A
conforming implementation may have extensions (including additional
library functions), provided they do not alter the behavior of any
strictly conforming program."

So anything that matches the description given by C99 of a conforming
implementation is necessarily a conforming C99 implementation. Anything
that does not, is not.

So James was quite right to say that a pencil sharpener is a non-conforming
C99 implementation. It's a term too wide to be useful.
>For example, it could be a copy of Visual Basic. That's a non-conforming
C99 implementation. So is ISPF/PDF. So is Lotus WordPro. So is KNode. So
is Apple Writer. So is Space Invaders. So is the coffee-cup on my desk.
"Non-conforming implementation" is not a particularly useful phrase.

Its usefulness, as with the usefulness of any phrase, depends on the
context.
It also depends on logic and common sense.

<snip>
I don't think that would happen, since I would expect most people
to use the terms as I do.
>That expectation has been questioned heavily in this thread, so
surely you must realise that *even if you were right in general*
(which I don't accept), you're wrong in this thread, because most
people who've expressed an opinion in this thread disagree with you -
and those are the very people with whom you're trying to communicate.
But not the only ones, though.

With whom else are you trying to communicate, then, in this thread, if
not the people who are reading it and contributing to it?

In *this* thread, it's obviously them.
Then I suggest that in *this* thread, it may be useful to adjust your
expectations about terminology usage in line with reality.
><snip>
>Maybe we're getting to the heart of it. Why is gcc a C99
implementation? What makes it a C99 implementation, given that it
doesn't conform to C99?
Several obvious and meaningful facts:
- It supports most of C99 with minor failures

I agree, but so did Turbo C, ten years before the C99 Standard was
published. So do you consider Turbo C a C99 implementation?

Would you say that it had "minor failures"?
Yes. Turbo C implements most of C99. A lot more than that pencil sharpener,
for example.
I think most people wouldn't think so.
What is your basis for thinking you know what most people think? (Sheesh.)
- People use it as a C99 implementation

People use flat-head screwdrivers to turn cross-head screws. That
doesn't mean that cross-head screws are flat-head screws.

Of course, cross-head screws are not flat-head screws.
Right. Using an X as a Y doesn't make it a Y.
What I'm saying
is not that GCC isn't a C99 implementation and that people use it as a
C99 implementation.
No, you're saing that GCC /is/ a C99 implementation because (you claim)
people use it as one.

Proof:

I asked: "What makes it a C99 implementation, given that it doesn't conform
to C99?"
You answered with four points, one of which was that "People use it as a
C99 implementation".
What I'm saying is that, because of GCC being a
C99 implementation, people use it as a C99 implementation.
And now you're saying that people use it as a C99 implementation because it
is one - which completes the circular argument: it is one because people
use it as such, and people use it as such because it is one.

- Some/most people consider it to be a C99 implementation

Most people have never heard of gcc. If you mean most C programmers,
well, most C programmers don't even know what main returns. I don't
consider their opinion particularly relevant.

Nevertheless, the masses are the masses, and they hold some power in
terms of expression.
Are you seriously advancing in defence of your position the argument that a
group of lots of ignorant people are likely to be right because they can
shout louder than a group of relatively few educated people?
>
- Perhaps most importantly, it is *usable* as a C99 implementation

Not if it doesn't conform to C99, for reasons which I have explained
many times.

Well, whether it is usable to you in particular is another matter.
No, whether it is usable as a C99 implementation depends to a much greater
extent than you appear to realise on whether it is one.
>Is the implementation of *one* C99 feature (that isn't also a C90
feature) sufficient to make an implementation "C99"?
I think most people in general would not consider that.
>Two features? Four? Where is the line?
There's no universal such line, since it depends on people's opinions.

That isn't good enough where, for example, business contracts are
concerned. If Company A contracts to supply software to Company B that
conforms to ISO/IEC 9899:1999, and Company B sues Company A because the
supplied software doesn't compile - or compiles with the wrong semantics
- on gcc, Company A can easily win the case if it can demonstrate that
it is gcc's failure to conform to the Standard that causes the failure
to compile or the incorrect semantics. The judge will not be impressed
by Company A's claim that "in our opinion gcc conforms to C99".
(That should, of course, have been "The judge will not be impressed by
Company B's claim".)
If I understood correctly, Company A was contracted to supply software
to Company B that conforms to C99, and that's exactly what they did.
What compiler Company B uses is another matter completely, so Company
B would have no case.
Right. Company B has no case. Their opinion that gcc conforms to C99 is of
no merit, and so their suit against Company A fails.

Likewise, your opinion that gcc conforms to C99 is of no merit. Yet. It may
become so, and we all hope it does - but it isn't there yet.
>Whether gcc conforms to C99 is not a matter of opinion. It is a matter
of fact - and the fact is that, at present, it doesn't conform. GNU's
C99 status page confirms this, by pointing out (and rightly so) all the
places where they know it doesn't conform.

Have I ever denied that?
Whether or not you have denied it is of little consequence, and I can't be
bothered to find out whether you have unequivocally denied that precise
claim. What matters is that the claim is true - gcc does not conform to
C99. I have no doubt that they would like to conform to C99, and they have
gone a long way towards conformance. Clearly there are problems. I have no
doubt that they would conform to C99 now if they could do so without
breaking anything, and they are very bright people so no doubt they will
find a way in due course. But they are not there *right now*.
That's why I mentioned the words "most," and "in general."

Those are weasel words, and they don't get around the fact that gcc
doesn't conform to C99.

And they weren't meant to get around the fact that GCC doesn't conform
to C99. In fact, we weren't even talking about that.
Yes, we were - among other things.
We were talking
about at what number of features people would consider an
implementation to be a C99 implementation.
No, sir. We were talking about what *you* consider to be a C99
implementation.
So, in this context, "most"
and "in general" are not weasel words; they're simply as accurate as
they can be.
And yet they aren't very accurate, are they? Can I suggest that we stick
not to what you think most people think, but rather what you yourself
think? You're not good at most - for example, you think most people
develop in C99 - so it might be better to stick to the facts.
><snip>
>If you make assertions of falsehood without being able to support
them, the time will quickly come when people pay less and less
attention to such assertions.
It isn't intended for people to pay much attention to them;

Your strategy is working.

Seems like you're the one who should learn to snip without distorting
the meaning too much.
I am content with my snippage on that occasion. You made a claim of
falsehood that you could not back up. It is quite proper for people to pay
no attention to such claims.

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Aug 23 '08 #185
On Aug 23, 12:14 am, Richard Heathfield <rj*@see.sig.invalidwrote:
s0****@gmail.com said:
Richard Heathfield wrote:
s0****@gmail.com said:
Richard Heathfield wrote:
s0****@gmail.com said:
<snip>
I don't need to get a clue about the way you see the world.
Right. You need to get a clue about the way /you/ see it.
If I have a way to see it, that means I have a clue about the way I
see it.

Would that it were so.

<snip>
but that's because we've carried the
discussion up to the point where mere common sense fails to
sufficiently support the cases.
Common sense suggests that we believe our own experience, but
tempering it with that of others whom we trust. My experience tells
me that there are a very great many people using C90 implementations,
and nobody is using C99 implementations - but I'm prepared to accept
that my experience is not universal
Good! I don't usually snip,
Learn.
The fact that I don't do it doesn't mean I don't know how to do it.

You indulged in selective quotation - either by accident or design. This is
the only time I've noticed you snipping at all, and you got it wrong. That
suggests either that you don't know how to snip or you're deliberately
doing it wrong.
Or perhaps it suggests that we have different opinions even when it
comes to snipping!
I simply think it makes us lose context.

It does. So keep the important context, and lose the rest. If anyone needs
the long background, they can look it up in the archives. That's what
reference headers are for.
And while you're about it, learn how to do it without distorting the
meaning too much. The paragraph continued "and that at least /some/
people are using C99 implementations. Nevertheless, they are
sufficiently small in number that they have never blipped my radar."

<snip>
Your last sentence "but I'm prepared to accept that my experience is
not universal," was indeed very relevant, since it shows that you're
understanding that what /you/ see isn't as relevant to the rest of the
world as it is to you.

Reality is relevant to everyone. Had I claimed that "I've never seen a C99
installation, therefore they don't exist", I'd have been a laughing-stock,
and rightly so. But the fact that I have never seen one, in circumstances
where I would *expect* to see one if they were commonplace, is strong
evidence that they are not as common as you would have us believe.
It might be a strong evidence to you. But, unfortunately, not everyone
of us has the fortune of being able to see exactly what you see, so
the rest of us have the inconvenient need to either believe you're
wrong, or go find out ourselves, possibly ending up realizing that you
were wrong in the first place.
The rest of the paragraph simply goes further
to comment on things about this rather irrelevant matter.

It's highly relevant that the number of reported observations of C99
installations in the field is significantly below what should be expected
if C99 installations were sufficiently common for your claim (that most
new C development is in C99) to be plausible.
Reported observations? If you're talking about /your/ reported
observations, remember that not everyone of us can see through your
mind. /My/ observations, on the other hand, do make my claim
plausible. But both your observations and my observations are unable
to illustrate anything useful in this case.
<snip>
People working on projects, friends programmers, etc [are using
C99], but I can't prove this, so is there any point in mentioning
it?
Yes, of course there is! It doesn't *prove* your case, but it is
evidence in support of your case (assuming you're not lying, and I
don't see any reason why anyone should accuse you of that). But it is
only evidence in support of your case if these people really were/are
using conforming C99 implementations. If you just mean "C90 with
extensions", you're really proving my point rather than your own.
A non-conforming C99 implementation is not necessarily C90 with
extensions.
Agreed. A non-conforming C99 implementation would be anything, anything
at all, that fails to translate program code according to the C99
Standard.
Well, it depends on what you mean by "non-conforming."

I'll take this slowly, if I may - one step at a time.

By "non-conforming C99 implementation" I mean "not a conforming C99
implementation".
So far so good.
By "conforming C99 implementation", I mean the same thing the C99 Standard
does: "The two forms of conforming implementation are hosted and
freestanding. A conforming hosted implementation shall accept any strictly
conforming program. A conforming freestanding implementation shall accept
any strictly conforming program that does not use complex types and in
which the use of the features specified in the library clause (clause 7)
is confined to the contents of the standard headers <float.h>, <iso646.h>,
<limits.h>, <stdarg.h>, <stdbool.h>, <stddef.h>, and <stdint.h>. A
conforming implementation may have extensions (including additional
library functions), provided they do not alter the behavior of any
strictly conforming program."

So anything that matches the description given by C99 of a conforming
implementation is necessarily a conforming C99 implementation.
So far so good.
Anything
that does not, is not.
Since the standard does not define the term "non-conforming C99
implementation," then the meaning of that term is subject to what
everyone of us thinks about it. For you, for example, KNode and some
other programs are C99 implementations. For me it isn't. And I'd bet
so would think most people.
So James was quite right to say that a pencil sharpener is a non-conforming
C99 implementation. It's a term too wide to be useful.
Well, for you it is.
For example, it could be a copy of Visual Basic. That's a non-conforming
C99 implementation. So is ISPF/PDF. So is Lotus WordPro. So is KNode. So
is Apple Writer. So is Space Invaders. So is the coffee-cup on my desk.
"Non-conforming implementation" is not a particularly useful phrase.
Its usefulness, as with the usefulness of any phrase, depends on the
context.

It also depends on logic and common sense.
Exactly.
<snip>
I don't think that would happen, since I would expect most people
to use the terms as I do.
That expectation has been questioned heavily in this thread, so
surely you must realise that *even if you were right in general*
(which I don't accept), you're wrong in this thread, because most
people who've expressed an opinion in this thread disagree with you -
and those are the very people with whom you're trying to communicate.
But not the only ones, though.
With whom else are you trying to communicate, then, in this thread, if
not the people who are reading it and contributing to it?
In *this* thread, it's obviously them.

Then I suggest that in *this* thread, it may be useful to adjust your
expectations about terminology usage in line with reality.
That's exactly what I'm doing.
<snip>
Maybe we're getting to the heart of it. Why is gcc a C99
implementation? What makes it a C99 implementation, given that it
doesn't conform to C99?
Several obvious and meaningful facts:
- It supports most of C99 with minor failures
I agree, but so did Turbo C, ten years before the C99 Standard was
published. So do you consider Turbo C a C99 implementation?
Would you say that it had "minor failures"?

Yes. Turbo C implements most of C99. A lot more than that pencil sharpener,
for example.
I think most people wouldn't think so.

What is your basis for thinking you know what most people think? (Sheesh.)
I don't think I *know* what most people think. I said I *thought* that
it wasn't what most people think. In other words, it's my assumption
that that's what most people think, not my claim.
- People use it as a C99 implementation
People use flat-head screwdrivers to turn cross-head screws. That
doesn't mean that cross-head screws are flat-head screws.
Of course, cross-head screws are not flat-head screws.

Right. Using an X as a Y doesn't make it a Y.
What I'm saying
is not that GCC isn't a C99 implementation and that people use it as a
C99 implementation.

No, you're saing that GCC /is/ a C99 implementation because (you claim)
people use it as one.
Yes, that's one of the points, but not the only one.
Proof:

I asked: "What makes it a C99 implementation, given that it doesn't conform
to C99?"
You answered with four points, one of which was that "People use it as a
C99 implementation".
Yes.
What I'm saying is that, because of GCC being a
C99 implementation, people use it as a C99 implementation.

And now you're saying that people use it as a C99 implementation because it
is one - which completes the circular argument: it is one because people
use it as such, and people use it as such because it is one.
- Some/most people consider it to be a C99 implementation
Most people have never heard of gcc. If you mean most C programmers,
well, most C programmers don't even know what main returns. I don't
consider their opinion particularly relevant.
Nevertheless, the masses are the masses, and they hold some power in
terms of expression.

Are you seriously advancing in defence of your position the argument that a
group of lots of ignorant people are likely to be right because they can
shout louder than a group of relatively few educated people?
In general, I wouldn't think that. But in this particular case,
they're not likely to be right just because they can shout louder, but
because there's no general or official agreement on the subject and
therefore it is much subject to everyone's opinion. Plus, I don't
think it's only "a group of lots of ignorant people" the ones who
would consider what I mentioned.
>
- Perhaps most importantly, it is *usable* as a C99 implementation
Not if it doesn't conform to C99, for reasons which I have explained
many times.
Well, whether it is usable to you in particular is another matter.

No, whether it is usable as a C99 implementation depends to a much greater
extent than you appear to realise on whether it is one.
I do realize that, but there are other factors. Recall our talk about
the conforming implementation that erases all the files in the hard
disk because of UB... So much for usability!
Is the implementation of *one* C99 feature (that isn't also a C90
feature) sufficient to make an implementation "C99"?
I think most people in general would not consider that.
Two features? Four? Where is the line?
There's no universal such line, since it depends on people's opinions.
That isn't good enough where, for example, business contracts are
concerned. If Company A contracts to supply software to Company B that
conforms to ISO/IEC 9899:1999, and Company B sues Company A because the
supplied software doesn't compile - or compiles with the wrong semantics
- on gcc, Company A can easily win the case if it can demonstrate that
it is gcc's failure to conform to the Standard that causes the failure
to compile or the incorrect semantics. The judge will not be impressed
by Company A's claim that "in our opinion gcc conforms to C99".

(That should, of course, have been "The judge will not be impressed by
Company B's claim".)
If I understood correctly, Company A was contracted to supply software
to Company B that conforms to C99, and that's exactly what they did.
What compiler Company B uses is another matter completely, so Company
B would have no case.

Right. Company B has no case. Their opinion that gcc conforms to C99 is of
no merit, and so their suit against Company A fails.

Likewise, your opinion that gcc conforms to C99 is of no merit.
I've never said that that's my opinion. Not once, not ever.
Yet. It may
become so, and we all hope it does - but it isn't there yet.
Whether gcc conforms to C99 is not a matter of opinion. It is a matter
of fact - and the fact is that, at present, it doesn't conform. GNU's
C99 status page confirms this, by pointing out (and rightly so) all the
places where they know it doesn't conform.
Have I ever denied that?

Whether or not you have denied it is of little consequence, and I can't be
bothered to find out whether you have unequivocally denied that precise
claim. What matters is that the claim is true - gcc does not conform to
C99. I have no doubt that they would like to conform to C99, and they have
gone a long way towards conformance. Clearly there are problems. I have no
doubt that they would conform to C99 now if they could do so without
breaking anything, and they are very bright people so no doubt they will
find a way in due course. But they are not there *right now*.
Agreed.
That's why I mentioned the words "most," and "in general."
Those are weasel words, and they don't get around the fact that gcc
doesn't conform to C99.
And they weren't meant to get around the fact that GCC doesn't conform
to C99. In fact, we weren't even talking about that.

Yes, we were - among other things.
We were talking
about at what number of features people would consider an
implementation to be a C99 implementation.

No, sir. We were talking about what *you* consider to be a C99
implementation.
See, that's the consequence of snipping! :-) Here's the context
restored:

))))) Is the implementation of *one* C99 feature (that isn't also a
C90
))))) feature) sufficient to make an implementation "C99"?

)))) I think most people in general would not consider that.

))) Two features? Four? Where is the line?

)) There's no universal such line, since it depends on people's
opinions.
)) That's why I mentioned the words "most," and "in general."

) Those are weasel words, and they don't get around the fact that gcc
) doesn't conform to C99.

So we /were/ talking about at what number of features people would
consider an implementation to be a C99 implementation.
So, in this context, "most"
and "in general" are not weasel words; they're simply as accurate as
they can be.

And yet they aren't very accurate, are they? Can I suggest that we stick
not to what you think most people think, but rather what you yourself
think? You're not good at most - for example, you think most people
develop in C99 - so it might be better to stick to the facts.
But, as we've learned, it's rather unattainable to illustrate the
facts for what we're discussing here.
<snip>
If you make assertions of falsehood without being able to support
them, the time will quickly come when people pay less and less
attention to such assertions.
It isn't intended for people to pay much attention to them;
Your strategy is working.
Seems like you're the one who should learn to snip without distorting
the meaning too much.

I am content with my snippage on that occasion. You made a claim of
falsehood that you could not back up. It is quite proper for people to pay
no attention to such claims.
Neither could you back up what you claimed, so I did not feel the need
to support the claim of falsehood, but simply to point out its
falsehood.

Sebastian

Aug 24 '08 #186
s0****@gmail.com said:

<snip>
Really? In my case, the only C developers I have come across who have
heard of K&R before I have mentioned it to them are people on this
group.
Thank you for pointing this out. It explains a lot.

<snip>

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Aug 24 '08 #187
s0****@gmail.com said:
Richard Heathfield wrote:
<snip>
>
>Reality is relevant to everyone. Had I claimed that "I've never seen a
C99 installation, therefore they don't exist", I'd have been a
laughing-stock, and rightly so. But the fact that I have never seen one,
in circumstances where I would *expect* to see one if they were
commonplace, is strong evidence that they are not as common as you would
have us believe.

It might be a strong evidence to you.
I don't need any evidence, because I know I'm right. The strength of
eye-witness evidence depends on one's assessment of the character and
reliability of the eye-witness. If one thinks he's a trustworthy person
who will only tell about what he saw (i.e. not make stuff up for whatever
reason), then one will tend to believe what he says about what he saw.

There are some subscribers to this group who wouldn't trust me to get the
day right - but since they can't actually read with any degree of
comprehension, I'm not overly concerned with any lack of faith they might
express in my eye-witness account of the paucity of C99 installations, and
I probably wouldn't even get to read such an expression anyway.

Nor am I concerned over-much with your inability to accept my eye-witness
account. If you don't believe me, fine, that's your problem.

Most people know full well that there's hardly any C99 conformance out
there in the field, so those who are maximally or at least very highly
concerned with portability will necessarily stick to the common subset of
C90 and C99.
>It's highly relevant that the number of reported observations of C99
installations in the field is significantly below what should be
expected if C99 installations were sufficiently common for your claim
(that most new C development is in C99) to be plausible.

Reported observations? If you're talking about /your/ reported
observations, remember that not everyone of us can see through your
mind.
I agree that not everyone has the wit to understand what "reported
observations" means.
/My/ observations, on the other hand, do make my claim
plausible.
No, they don't, because you don't understand what you're observing.

<snip>
Well, it depends on what you mean by "non-conforming."

I'll take this slowly, if I may - one step at a time.

By "non-conforming C99 implementation" I mean "not a conforming C99
implementation".

So far so good.
>By "conforming C99 implementation", I mean the same thing the C99
Standard does: [...]

So anything that matches the description given by C99 of a conforming
implementation is necessarily a conforming C99 implementation.

So far so good.
>Anything
that does not, is not.

Since the standard does not define the term "non-conforming C99
implementation," then the meaning of that term is subject to what
everyone of us thinks about it.
Yes, you can interpret "non-conforming C99 implementation" any way you
like. That doesn't necessarily make your interpretation useful or
meaningful to others.
For you, for example, KNode and some
other programs are C99 implementations.
No, it's a newsreader. It's not a C99 implementation, any more than a
banana is a C99 implementation.

<snip>
>Then I suggest that in *this* thread, it may be useful to adjust your
expectations about terminology usage in line with reality.

That's exactly what I'm doing.
I have seen no sign of this.

<snip>
Seems like you're the one who should learn to snip without distorting
the meaning too much.

I am content with my snippage on that occasion. You made a claim of
falsehood that you could not back up. It is quite proper for people to
pay no attention to such claims.

Neither could you back up what you claimed,
On the contrary, the claim had already been backed up with research by a
number of people other than myself. I felt no particular need to add to
their number, but I could have done so, had I chosen.
so I did not feel the need
to support the claim of falsehood, but simply to point out its
falsehood.
The trouble with pointing out the "falsehood" of something that is pretty
obviously true is that, unless you can demonstrate to other people's
satisfaction that you're right, people tend to think you're talking
nonsense. For example, it is pretty obviously true that the world is
approximately spherical - someone who claims that that observation is
false is setting himself up to be thought a crank unless he can provide a
rigorous demonstration that he's right.

Now, the claim "But if this newsgroup is any guide, by far the majority of
people who use the term "C99 implementation" use it to mean a /conforming/
C99 implementation - and apart from Usenet, ISO committee meetings, and
the odd Web page the term is rarely, if ever, used at all" is not quite as
self-evident as the roughly-spherical nature of the world, but it's pretty
darn obvious to C programmers. If you want people to believe that the
claim is false, you will need to find a way to demonstrate this.

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Aug 24 '08 #188
s0s...@gmail.com wrote:
On Aug 23, 12:14 am, Richard Heathfield <rj*@see.sig.invalidwrote:
....
Reality is relevant to everyone. Had I claimed that "I've never seen a C99
installation, therefore they don't exist", I'd have been a laughing-stock,
and rightly so. But the fact that I have never seen one, in circumstances
where I would *expect* to see one if they were commonplace, is strong
evidence that they are not as common as you would have us believe.

It might be a strong evidence to you. But, unfortunately, not everyone
of us has the fortune of being able to see exactly what you see, so
the rest of us have the inconvenient need to either believe you're
wrong, or go find out ourselves, possibly ending up realizing that you
were wrong in the first place.
I get it! You misunderstand the term "eye witness evidence" as meaning
evidence that you yourself have witnessed. Not, the term is not so
restricted.You are responsible for judging the quality of eye-witness
evidence witnessed by other people's eyes. If you choose to discount
any such evidence that doesn't match your own preconceptions, that's
your choice to make, but it's one that leaves you in a solipsist
fantasy world.
Anything
that does not, is not.

Since the standard does not define the term "non-conforming C99
implementation," then the meaning of that term is subject to what
everyone of us thinks about it.
Not really - the definition of conforming C99 implementations implies,
by simple negation, what a non-conforming C99 implementation is.
Aug 24 '08 #189
Richard Heathfield <rj*@see.sig.invalidwrites:
<snip>
I don't need any evidence, because I know I'm right.
I suspect (though I am not sure) that you did not really intend to
write that. Maybe a "more" or "other" got dropped?

<snip>
--
Ben.
Aug 24 '08 #190
Ben Bacarisse said:

<snip>
Would it stand as a sig, or does the context somehow
make it mean something else?
Help! I'm in a maze of twisty little evidences, all alike!

No, it wouldn't stand as a sig - at least, not "fairly". Here's a
rephrasing that is far less quotable but more precisely expresses my
intent: "I don't need this evidence (that I am supplying), because I don't
need convincing; the reason I'm supplying it is to inform others."

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Aug 24 '08 #191
s0****@gmail.com said:
Richard Heathfield wrote:
>s0****@gmail.com said:
Richard Heathfield wrote:
>I don't need any evidence, because I know I'm right.

But the rest of us don't :-(
Right, which is why I supplied evidence to support my view. Not for my
benefit, but for other people's.
Moreover, some of us believe you're wrong.
Yes, I know you do, and it's quite clear that no amount of evidence is
going to change your mind. I can live with that.

<snip>
>There are some subscribers to this group who wouldn't trust me to get
the day right - but since they can't actually read with any degree of
comprehension, I'm not overly concerned with any lack of faith they
might express in my eye-witness account of the paucity of C99
installations, and I probably wouldn't even get to read such an
expression anyway.

I'm not sure who you mean by those subscribers who you claim can't
read with any degree of comprehension,
Yes, I know - but *I'm* sure who I mean.
but the interesting point is
*why* you would claim they can't read with any degree of
comprehension.
Simple - it's because they have demonstrated this on countless occasions.
If it is because they don't believe in your so-called
eye-witness evidence,
No, it's because they can't read with any degree of comprehension.
I would argue they can read with a higher degree
of comprehension than anyone who would believe in your so-called eye-
witness evidence, since it is potentially unsafe and stupid to believe
in anyone's so-called eye-witness evidence without having actually
seen that so-called eye-witness evidence.
It is clear from your reply that you still don't understand the nature of
eye-witness evidence, even though it has been explained to you several
times.
>Most people know full well that there's hardly any C99 conformance out
there in the field, so those who are maximally or at least very highly
concerned with portability will necessarily stick to the common subset
of C90 and C99.

I think people who are highly concerned with portability can stick
with the current standard.
The current de facto standard, yes. Not the de jure standard, since there
aren't sufficiently many C99 installations to make that feasible -
*unless* the portability is only required across C99 installations, in
which case it's obviously just fine to rely on C99 features.
If they need more portability in terms of
cross-machine compiler availability than C99 offers, well, they can go
with C90, but that isn't normally the case.
You have not demonstrated this, and I don't believe it to be true. Can you
convince me by providing evidence? For example, you could tell us whether
you've actually encountered any C99 installations in the field (and note
that I do not mean "not-quite-C99", for reasons that have already been
explained ad nauseam).
Reported observations [of C99 installations in the field]? If you're
talking about /your/ reported observations, remember that not everyone
of us can see through your mind.

I agree that not everyone has the wit to understand what "reported
observations" means.

Yes, especially when those "reported observations" haven't actually
been reported.
They have been, in this case. I reported them. Let me do so again. I have
been using C since the summer of 1989. Obviously *nobody* encountered any
C99 implementations in the period from 1989 up to the point where ISO
finalised the Standard in late 1999, but I report that I have never
observed a single C99 installation, *ever*, including the period from 1999
to the present day. Not once. Every conforming C installation I have seen
has been C90-conforming but none of them has been C99-conforming.

Have you any counter-examples whatsoever? Have *you* ever encountered a
conforming C99 installation? Even one?
/My/ observations, on the other hand, do make my claim
plausible.

No, they don't, because you don't understand what you're observing.

You have not enough knowledge about me to know what I understand or
not.
My knowledge about you is based purely on what you write here, and it is on
that basis that I draw the conclusion that you don't understand what
you're observing.

<snip>
Since the standard does not define the term "non-conforming C99
implementation," then the meaning of that term is subject to what
everyone of us thinks about it.

Yes, you can interpret "non-conforming C99 implementation" any way you
like. That doesn't necessarily make your interpretation useful or
meaningful to others.

Funny, because the only person who has objected about the usability of
that term so far is you.
Wrong. "In the context of a debate over whether or not compilers that fully
conform to the C90 standard are overwhelmingly more common than compilers
that fully conform to the C99 standard, using a term that doesn't clearly
identify the compiler as conforming to at least one of those two standards
is not very useful." - James Kuyper, in message
<dc**********************************@l42g2000hsc. googlegroups.com>

<snip>
The claim was:

"But if this newsgroup is any guide, by far the majority of people who
use the term "C99 implementation" use it to mean a /conforming/ C99
implementation - and apart from Usenet, ISO committee meetings, and
the odd Web page the term is rarely, if ever, used at all."

No research has been done to back this up, and common sense stands out
against it.
In this very thread, people have presented research that backs this up.
Here's an example, and it's James Kuyper again: "A quick Google Groups
search gives an estimated 880 uses of "C99 implementation" across all
newsgroups. Among the first 100 hits, the only ones that I could find
using that term to refer to an implementation which falls short of being
fully conforming are by you and jacob navia. A large fraction of those
hits involve arguments about that very issue, in this newsgroup."

Message ID:
<38**********************************@a1g2000hsb.g ooglegroups.com>

<snip>
>The trouble with pointing out the "falsehood" of something that is
pretty obviously true is that, unless you can demonstrate to other
people's satisfaction that you're right, people tend to think you're
talking nonsense. For example, it is pretty obviously true that the
world is approximately spherical - someone who claims that that
observation is false is setting himself up to be thought a crank unless
he can provide a rigorous demonstration that he's right.

Sure, it's obviously true that the world is (approximately) spherical.
Not to the Flat Earth Society. (Their home page appears to be
http://www.alaska.net/~clund/e_djubl...rthsociety.htm although
I can't guarantee this.)
But that isn't nearly related to this case since your claim is not
obviously true,
It is to most of us. Your views seem as odd to me and to others here as
those of a Flat Earther would seem to you.
and it would take some (corrupted) lawyer work to back it up.
No, it wouldn't take any lawyer work. The claim has already been backed up,
by other people here, none of whom is a corrupted lawyer (or indeed a
lawyer of any kind) as far as I am aware. Now, the backing up of such a
claim with evidence does not of itself make it *true* - it simply makes
the claim more likely to be true. If you wish to attack the claim, fine,
but to convince people that you're right you will need to do more than
simply claim "it's false". You need to demonstrate why it's false. If you
can *prove* it's false, fine - do it. But if not, you should at least be
able to provide plausible *evidence* that it's false, and you have not yet
done this.

<snip>
>If you want people to believe that the claim is false, you will need to
find a way to demonstrate this.

Obviously not all C programmers agree with that, as this thread shows.
Neither did I claim that they all do. For one thing, there are at least
three people, possibly four, in this very group who are prepared to
disagree with just about any claim I make, no matter how unexceptionable
it might be. Nevertheless, the research presented in this thread - not by
me, but by others participating in this discussion - does suggest very
strongly that I'm right.

<snip>

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Aug 25 '08 #192
Richard Heathfield <rj*@see.sig.invalidwrites:
s0****@gmail.com said:
>Richard Heathfield wrote:
>>s0****@gmail.com said:
[...]
>Since the standard does not define the term "non-conforming C99
implementation," then the meaning of that term is subject to what
everyone of us thinks about it.

Yes, you can interpret "non-conforming C99 implementation" any way you
like. That doesn't necessarily make your interpretation useful or
meaningful to others.

Funny, because the only person who has objected about the usability of
that term so far is you.

Wrong. "In the context of a debate over whether or not compilers that fully
conform to the C90 standard are overwhelmingly more common than compilers
that fully conform to the C99 standard, using a term that doesn't clearly
identify the compiler as conforming to at least one of those two standards
is not very useful." - James Kuyper, in message
<dc**********************************@l42g2000hsc. googlegroups.com>
[...]

And: "I suggest that using the term "C99 implementation" to refer to
an implementation that doesn't fully conform to C99 is more likely to
cause confusion than to convey useful information." - me, in message
<ln************@nuthaus.mib.org>.

Richard, I suggest that arguing with s0suk3 is a waste of time and
bandwidth. He's not likely to acknowledge that you're right no matter
how much evidence you present.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
Nokia
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Aug 25 '08 #193
In article <ln************@nuthaus.mib.org>,
Keith Thompson <ks***@mib.orgwrote:
....
>Richard, I suggest that arguing with s0suk3 is a waste of time and
bandwidth. He's not likely to acknowledge that you're right no matter
how much evidence you present.
Looks like you mistyped: because you never are.

HTH - HAND.

Aug 25 '08 #194
On Mon, 25 Aug 2008 06:11:07 -0500, Richard Heathfield wrote
(in article <yO******************************@bt.com>):

[lots of snipping here...]
For example, you could tell us whether you've actually encountered any C99
installations in the field (and note that I do not mean "not-quite-C99"...
... I have been using C since the summer of 1989. Obviously *nobody*
encountered any C99 implementations in the period from 1989 up to the
point where ISO finalised the Standard in late 1999, but I report that I
have never observed a single C99 installation, *ever*, including the period
from 1999 to the present day. Not once. Every conforming C installation I
have seen has been C90-conforming but none of them has been C99-conforming.

Have you any counter-examples whatsoever? Have *you* ever encountered a
conforming C99 installation? Even one?
The above pretty much sums up what I've seen as well. I too have had
this sort of discussion -- on Usenet, email, in person with other
developer friends, and in production software development shops.
Invariably someone will say something like "Well, gcc is available
for pretty much every platform, and has -std=c99 !!!"

Then I or someone else points them at the gcc URL that shows all the
areas where gcc is /not/ a complete implementation of C99 and they
are crestfallen. Then they try to argue that "we" don't need those
other features anyway for various reasons, and ... <insert death
spiral here>

So, what happens when a portion of gcc users start going to LLVM?
Last I checked, they use the front end of gcc to support C and C++,
so I guess it doesn't change.

But, we can't pretend that gcc is what determines C99 availability
The vast majority of software development done for hire involves a
Windows platform of some flavor. Like it or not, it still has a huge
market share. Of those shops, the few neanderthals that are still
using C for work other than system tools, internals or drivers are
using some variant of MSVC the majority of the time, which /clearly/
is not a C99 compiler and likely never will become one.

What about Open Watcom, which someone here in clc claimed back in
2007 was "working on c99 compliance"? Well, looking at the Open
Watcom FAQ, today, it says:

<quote from their Wiki>
Is the Open Watcom compiler C99 compliant?*

No, not fully. The most-used parts of the standard (ISO/IEC 9899
-1999 standard, also adopted by ANSI) have been implemented, and
there is an ongoing effort to add more. Full implementation may be
achieved at some point in the future. For now, the implemented
parts of C99 can be enabled via an undocumented switch.
<end of quote>

I especially like the "enabled via an undocumented switch" part.
Finally, there are repeated claims that "I heard of a commercial
compiler from <XYZ Corporationthat claims to be fully conformant
with C99". I've even seen lists of them posted in various places.
But, to get back to Richard's question above, I have never seen or
heard any C developer claim "I am currently using a compiler from
<XYZ Corporation>, and it appears to be fully C99 conformant, as
advertised."

Apparently, as previously suggested, they are rumored to exist, but
nobody has ever seen one of these endangered species in the wild. If
they have, they're under such a tight NDA that they can't talk about
them publicly.

Taking a slightly different tack than Richard's question, can anyone
post a piece of C source code using a reasonable selection of "new
for C99" features (which must include at least VLAs) which will
compile and work equivalently across more than one C compiler, and
for more than one operating system? A set of test cases to validate
it is working equivalently on each would be worth bonus stars next to
your name.

If such code can be written, and people here can compile it and see
it run on multiple platforms and compilers, that would be a much more
convincing argument than "I heard it from a friend, who heard it from
a friend, that somewhere there is a real C99 compiler, so we should
all feel free to use C99 extensions".
--
Randy


Aug 25 '08 #195
Randy Howard wrote:
....
But, we can't pretend that gcc is what determines C99 availability
The vast majority of software development done for hire involves a
Windows platform of some flavor. Like it or not, it still has a huge
market share.
Microsoft has a huge share of the desktop market. However, there's a
lot more to the C programming world than the desktop market, and
Microsoft's share of the mainframe and embedded markets, for instance,
is much smaller (non-existent?). The embedded market, in particular,
is an area where C's simplicity and correspondingly small size gives
it a bigger advantage over C++ than in other environments, which has
made embedded processors one of the main areas in which new C
development occurs. There are many different types of embedded
processors. Each desktop CPU contains many different embedded
processors. I can't vouch personally for the truth of the claim that
more C code is written nowadays for embedded processors than is
written for all other purposes combined; but I can't think of any
reason to disbelieve it, either. Can you?

Aug 25 '08 #196
On Mon, 25 Aug 2008 14:05:40 -0500, ja*********@verizon.net wrote
(in article
<5f**********************************@d77g2000hsb. googlegroups.com>):
Randy Howard wrote:
...
>But, we can't pretend that gcc is what determines C99 availability
The vast majority of software development done for hire involves a
Windows platform of some flavor. Like it or not, it still has a huge
market share.

Microsoft has a huge share of the desktop market. However, there's a
lot more to the C programming world than the desktop market, and
Microsoft's share of the mainframe and embedded markets, for instance,
is much smaller (non-existent?).
You seem to be conveniently forgetting all the Windows servers out
there as well.
The embedded market, in particular,
is an area where C's simplicity and correspondingly small size gives
it a bigger advantage over C++ than in other environments, which has
made embedded processors one of the main areas in which new C
development occurs.
Sure. What this has to do with the existence of (or lack of) C99
compilers, I'm not quite sure.
There are many different types of embedded
processors. Each desktop CPU contains many different embedded
processors. I can't vouch personally for the truth of the claim that
more C code is written nowadays for embedded processors than is
written for all other purposes combined; but I can't think of any
reason to disbelieve it, either. Can you?
I fail to see what bearing all this has on C99 compiler availability.
Aug 25 '08 #197
On Mon, 25 Aug 2008 14:16:48 -0500, jacob navia wrote
(in article <g8**********@aioe.org>):
Randy Howard wrote:
>On Mon, 25 Aug 2008 06:11:07 -0500, Richard Heathfield wrote
(in article <yO******************************@bt.com>):

[lots of snipping here...]
>>For example, you could tell us whether you've actually encountered any C99
installations in the field (and note that I do not mean "not-quite-C99"...
>>... I have been using C since the summer of 1989. Obviously *nobody*
encountered any C99 implementations in the period from 1989 up to the
point where ISO finalised the Standard in late 1999, but I report that I
have never observed a single C99 installation, *ever*, including the
period
from 1999 to the present day. Not once. Every conforming C installation I
have seen has been C90-conforming but none of them has been C99-conforming.

Have you any counter-examples whatsoever? Have *you* ever encountered a
conforming C99 installation? Even one?

The above pretty much sums up what I've seen as well. I too have had
this sort of discussion -- on Usenet, email, in person with other
developer friends, and in production software development shops.
Invariably someone will say something like "Well, gcc is available
for pretty much every platform, and has -std=c99 !!!"

Then I or someone else points them at the gcc URL that shows all the
areas where gcc is /not/ a complete implementation of C99 and they
are crestfallen. Then they try to argue that "we" don't need those
other features anyway for various reasons, and ... <insert death
spiral here>

The features that gcc is missing are a few esoteric
features. Most of C99 is there.
So you readily admit that it is not a complete C99 compiler. I'm
still waiting to hear anyone list a specific C compiler that /is/ a
full C99 implementation that they have actually used, not just heard
of somewhere.
>So, what happens when a portion of gcc users start going to LLVM?
Last I checked, they use the front end of gcc to support C and C++,
so I guess it doesn't change.

But, we can't pretend that gcc is what determines C99 availability
The vast majority of software development done for hire involves a
Windows platform of some flavor. Like it or not, it still has a huge
market share. Of those shops, the few neanderthals that are still
using C for work other than system tools, internals or drivers are
using some variant of MSVC the majority of the time, which /clearly/
is not a C99 compiler and likely never will become one.

I am one of those "neanderthals" as you call the (apparently) stupid
people that use the C language.
I think you misread the above. I still use C every day. I don't use
it for developing GUI applications though. I use it for systems
level code. Some people still use assembler to write word processors
probably. They're not stupid, they're just into self-mutilation.
The above was more to do with using the right tool for the right job.
Your attitude is very representative of the people that
abound here. If I use a simple language and like that
conceptual simplicity, I am qualified as a neaderntal by
all the wanabees that believe that a huge increase of complexity
is the solution to everything.
Again, you misinterpreted the above, but either way, it has nothing
to do with the existence of C99 compilers.

I notice that you passed on the opportunity to demonstrate the
portability of C99 by posting some code that will compile on multiple
compilers that claim to support it.

Aug 25 '08 #198
Randy Howard wrote:
On Mon, 25 Aug 2008 14:05:40 -0500, ja*********@verizon.net wrote
(in article
<5f**********************************@d77g2000hsb. googlegroups.com>):
Randy Howard wrote:
...
But, we can't pretend that gcc is what determines C99 availability
The vast majority of software development done for hire involves a
Windows platform of some flavor. Like it or not, it still has a huge
market share.
Microsoft has a huge share of the desktop market. However, there's a
lot more to the C programming world than the desktop market, and
Microsoft's share of the mainframe and embedded markets, for instance,
is much smaller (non-existent?).

You seem to be conveniently forgetting all the Windows servers out
there as well.
No, I'm just remembering all of those Unix and Unix-like servers out
there. I can't give you any solid numbers for market shares - do you
have any?
The embedded market, in particular,
is an area where C's simplicity and correspondingly small size gives
it a bigger advantage over C++ than in other environments, which has
made embedded processors one of the main areas in which new C
development occurs.

Sure. What this has to do with the existence of (or lack of) C99
compilers, I'm not quite sure.
Nothing - it has only to do with your comment that "The vast majority
of software development done for hire involves a Windows platform of
some flavor." As you may have noticed, I'm arguing on the same side as
you with respect to the main issue; it's only this side topic where
I'm disagreeing with you.

I'm strongly in favor of not starting off-topic threads, and I'm
strongly in favor of re-directing them to a more appropriate forums
whenever someone does start an off-topic thread. However, thread
drift is a fact of usenet life. Once a thread has become well rooted
in one particular set of usenet groups, it's not really feasible to
remove it from any one of those groups. Follow-ups are often ignored,
and in any event some of the participants might be monitoring the
discussion only through the group(s) it has been removed from.

The best way to avoiding a discussion of whether or not Microsoft
dominates the C programming world is by not mentioning the idea in the
first place.
Aug 25 '08 #199
Randy Howard wrote:
On Mon, 25 Aug 2008 14:16:48 -0500, jacob navia wrote
(in article <g8**********@aioe.org>):
>Randy Howard wrote:
>>On Mon, 25 Aug 2008 06:11:07 -0500, Richard Heathfield wrote
(in article <yO******************************@bt.com>):

[lots of snipping here...]

For example, you could tell us whether you've actually encountered any C99
installations in the field (and note that I do not mean "not-quite-C99"...
... I have been using C since the summer of 1989. Obviously *nobody*
encountered any C99 implementations in the period from 1989 up to the
point where ISO finalised the Standard in late 1999, but I report that I
have never observed a single C99 installation, *ever*, including the
period
from 1999 to the present day. Not once. Every conforming C installation I
have seen has been C90-conforming but none of them has been C99-conforming.

Have you any counter-examples whatsoever? Have *you* ever encountered a
conforming C99 installation? Even one?
The above pretty much sums up what I've seen as well. I too have had
this sort of discussion -- on Usenet, email, in person with other
developer friends, and in production software development shops.
Invariably someone will say something like "Well, gcc is available
for pretty much every platform, and has -std=c99 !!!"

Then I or someone else points them at the gcc URL that shows all the
areas where gcc is /not/ a complete implementation of C99 and they
are crestfallen. Then they try to argue that "we" don't need those
other features anyway for various reasons, and ... <insert death
spiral here>
The features that gcc is missing are a few esoteric
features. Most of C99 is there.

So you readily admit that it is not a complete C99 compiler. I'm
still waiting to hear anyone list a specific C compiler that /is/ a
full C99 implementation that they have actually used, not just heard
of somewhere.
>>So, what happens when a portion of gcc users start going to LLVM?
Last I checked, they use the front end of gcc to support C and C++,
so I guess it doesn't change.

But, we can't pretend that gcc is what determines C99 availability
The vast majority of software development done for hire involves a
Windows platform of some flavor. Like it or not, it still has a huge
market share. Of those shops, the few neanderthals that are still
using C for work other than system tools, internals or drivers are
using some variant of MSVC the majority of the time, which /clearly/
is not a C99 compiler and likely never will become one.
I am one of those "neanderthals" as you call the (apparently) stupid
people that use the C language.

I think you misread the above. I still use C every day. I don't use
it for developing GUI applications though. I use it for systems
level code. Some people still use assembler to write word processors
probably. They're not stupid, they're just into self-mutilation.
The above was more to do with using the right tool for the right job.
>Your attitude is very representative of the people that
abound here. If I use a simple language and like that
conceptual simplicity, I am qualified as a neaderntal by
all the wanabees that believe that a huge increase of complexity
is the solution to everything.

Again, you misinterpreted the above, but either way, it has nothing
to do with the existence of C99 compilers.

I notice that you passed on the opportunity to demonstrate the
portability of C99 by posting some code that will compile on multiple
compilers that claim to support it.
#include <stdio.h>

int main(int argc,char *argv[])
{
int table[argc];

printf("C99 lives with a table of %d integers\n",argc);
}

VLAs are supported by
gcc
IBM xlc
Sun compiler
Intel C99 compiler
lcc-win
I note that you skipped THE LIST OF C99 COMPILERS I WROTE.

Besides, I use C for interfacing directly with the windows API
in my GUI programs. It has several advantages, and the biggest
one is that it is PORTABLE from windows 98 to windows VISTA.

You can't say the same from other combinations of libraries
and OSes.

--
jacob navia
jacob at jacob point remcomp point fr
logiciels/informatique
http://www.cs.virginia.edu/~lcc-win32
Aug 25 '08 #200

This discussion thread is closed

Replies have been disabled for this discussion.

By using this site, you agree to our Privacy Policy and Terms of Use.