Since you make no attempt to refute this point a reasonable person can
assume you accept it. So we can accept the position that there are NOT
many C99 implementations.
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.
By this argument *you* have not produced any evidence and you just
making wild unsupported claims. However, back in the real word, it is
evidence, as is the research other people have done with Google on this
issue and presented in this thread.
Since you have been presented with evidence that you are wrong you
should either accept it or find and present some counter-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.
They mention it is incomplete. Well, actually they clearly state it is
broken (their term not mine). I've also presented evidence that GNU do
not consider it to be suitable for use as a C99 implementation (i.e.
that they will not change the default until it is).
[...] 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.
I'll be clearer as you could not understand what I wrote. MS VCC is by
far the most used Windows C compiler, so whether it is the *only*
compiler is irrelevant to what most new C development is done in. MS VCC
has NO support for C99. Therefore most new C development on Windows is
NOT done in C99. This is a strong piece of evidence (but not the only
evidence) that most new C development is not done in C99.
There is no contradiction in my original paragraph.
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.
The most you can do is rule gcc out of this discussion completely in
that case. I.e. don't consider it to support either your claim or the
claim of everyone else currently participating in this thread. After
all, you have been presented with evidence for GNU not considering it to
be C99 implementation (i.e. the one place which mentions C99 support
states it is broken).
Not everybody is like you.
True. I have heard of both K&R and C99. Most C developers will have
heard of K&R but *not* C99.
*Eye witness evidence*
The only C developers I have come across who have heard of C99 *before*
I have mentioned it to them are people on this group.
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.
Well, it certainly is not evidence for your position. So shall we just
go on the compilers where there is no dispute then?
Are you certain that the majority of C programming takes place on
embedded systems? Could you prove it?
Where is your evidence that embedded systems development is a special
case? I know (because I used to work there) that BAE Systems uses C for
embedded systems works (it was still growing in popularity when I left),
but NONE of the non-embedded work was in C (C++, Delphi, VB etc but NO C).
You mentioned the words "C90 + extensions." If I missed the point,
it's because you failed to state your point.
Well, for a start by your definition of what a C99 implementation is a
"C90 + extensions" implementation is a C90 extension. So by your
arguments if people are working in C90+extensions (a lot of SW uses
extensions for at least some of the work) then they are using C90.
In any case, if the development is in C90+extensions then it is NOT in C99.
But you didn't talk about not enabling conformance; you talked about
C90 + extensions.
I talked about the mode most people have their compiles in, as evidenced
by the reports on this group whenever the question arises. If the
compiler supports C99 but the user is using it in a mode other than
either C99 or C99+extensions then they are definitely NOT using C99 so
whether it supports C99 is completely irrelevant to what language they
are using. Otherwise you can say that all gcc users are programming in
Fortran.
So why do you claim that most new C development is in C90 +
extensions?
No, I claimed that is the mode the compiler is in. If it is in
C90+extensions mode then the development is NOT being done in C99.
Can you prove that? Until you do, it's safe to assume that most people
*do* attempt to use anything approaching C99.
By that argument it is safe to assume that most people are using C90.
However, I have also presented evidence and arguments that justify my
position where as you just keep restating yours and denying (without
giving and sensible reason) the evidence.
I strongly do not believe that.
Several arguments have already been presented for why it would be the
case. The only argument put forward for your position has already has
already been refuted.
Where do I draw the border between a C89 and a C99 implementation?
Simple: a C89 implementation supports C89; a C99 implementation
supports C99.
OK, since I've only seen one implementation that makes no form of claim
to supporting C89 that means all implementations bar one are C89
implementations. Oh, and explicitly broken support (GNU claim their C99
support is broken) just means that it is a broken compiler (in that
mode) and so should be ruled out as being a said:
Well, you don't refute it so you obviously accept it.
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.
Well, several of us have "just pointed out" that you are wrong. The
difference is that we have actually presented evidence.
Neither does it mean that they aren't.
As it accept my point you should also accept the conclusion that your
claim (if true) that most C developers have a C99 is NOT evidence that
most C developers use a C99 implementations. Oops, you have just lost
your most claimed argument for your position.
Simple percentages disagree. There are more non-C99 compilers than C99
compilers (a point you have accepted) so the law of averages supports my
position.
Anyway, what does that have to do with
management specifying which compiler to use, even if there is C99
availability?
I stated that in the text you quote above.
By the same token, it is also a possible reason for not using a C90
implementation.
No. It is only a reason for not using a C90 implementation if they use
the ONE compiler which only "supports C99" (which does not provide
compete support) or they use an ancient K&R compiler which does not
support C99 or C90. So the simple law of averages says it is more likely
to mean they do not use C99 than that they do not use C90.
Alternatively, I'm going to toss a coin 50 times. Each time it lands on
its edge I will give you $1000 and each time it doesn't you give me
$100. You should accept since both outcomes are possible and you will
get 10 times more money that you have to give me!
That doesn't have anything to do with not being aware of free
implementations.
It has everything to do with whether they are using C99 which is the
point of the discussion.
Have I ever denied that a C99 compiler approaching conformance has
been under active development?
I was just pointing out that you were talking complete rubbish. It was
an aside and nothing to do with the main point of this thread.
I don't think this is true. Anyway, can you prove it? Until you do,
it's safe to assume that you're wrong.
You not being able to prove me wrong does not make it safe to assume I
am wrong. In fact, since my position is presented with evidence and
argument where-as yours is supported by wild assertions it is safer to
assume you are wrong.
Because you failed to find any problems with the rebuttal.
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.
Incorrect because there is only one compiler that has been identified
that has any kind of support for C99 (although it is incomplete) but no
support for C90. Therefore if they *have* a compiler (any compiler) it
*definitely* meets one of the following (unless they have that one
specific Windows compiler):
1) It supports K&R and does *not* support C99
2) It supports C90
I can think of only 4 compilers that do not support C90, three of those
do not support C99 and are used almost exclusively for one specific
purpose (recompiling Unix kernel modules to change parameters) and the
last is for Windows and is used on Windows far less than either gcc or
MS VCC.
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.
It is entirely related to your unfounded claims that anything true of
C90 (e.g. the chances of a randomly selected compiler supporting it) are
equally true of C99.
I.e. it refutes most of the attempts you just made at rebutting my points.
When have I said that Richard's work is for embedded systems?
You have accepted that embedded compilers are more likely to be C90 than
C99 and yet you claim that Richards customers are most likely to be able
to accept C99. Those to claims amount to a claim that you believe that
Richard's work is not used in embedded systems since they would not be
likely to accept C99 (by your own admission) if it was.
I also have no idea if Richard's SW is used in embedded systems, but I
am not the one claiming to know that his customers would find C99
acceptable.
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 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.
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.
There is enough of an implication for at least some people to read it
the way Richard and I have read it. Therefore that page does not prove
your point. In fact, we have more evidence for it refuting your point
than for it supporting your point.