You seem to be incapable of understanding a simple argument. In general
a number smaller than 10 is not considered to be "many" and as there are
fewer than 10 C99 implementations there are not many C99 implementations.
You fail to understand that your considerations are not universal. But
whether 10 implementations are "many" or not isn't a very useful
subject. There are many implementations that have been ported to
several platforms, for example. So the interpretation of the term
"many" in this context depends heavily on how widely implemented those
implementations are. If, for example, all those 10 implementations
would be usable only in one platform, it would be irrelevant to
discuss whether 10 implementations are "many." What's relevant is how
the existence of those implementations directly affect portability.
Since there *are* fewer than 10 C99 implementations it is a ogical
conclusion.
Not if someone disagrees with you on what "many" is.
We also have the other evidence which you claim is not evidence. This
claim on your part is evidence that you do not understand what the term
"evidence" actually means.
What "other" evidence would that be?
I have not claimed it proves it. However, it *is* evidence and
reasonable people accept the possibility that what evidence suggests is
actually true especially when there is no counter-evidence available.
Perhaps, but in that case it's much of an irrelevant evidence
incapable of making a reasonable argument about this point.
They state EXPLICITLY that the reason GNU89 is not the default is that
the C99 implementations is not finished. To understand my point you do
have to understand that there is actually a relationship between GNU89
and C89 and another relationship between GNU99 and C99. However, you
seem to have difficulty understanding the relationships between things.
I haven't seen where they explicitly state that point, which is why I
said what I said. If it's true that they state that, then I take my
words back.
[...] 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.
You forgot the words "in Windows" in that last sentence.
No, I didn't. A piece of evidence on the state of one part of a field is
evidence of the state of all of the field. The more areas of the field
you have evidence from the more confident you can be about the state of
the entire field.
No, because most C new development in Windows doesn't constitute most
new C development in general.
The above applies to the fields farmers use, scientific fields,
engineering fields, computer fields, magnetic fields and all other
fields I can think of at the moment. So it applies to this discussion.
It would if the field you pointed out would constitute most actual new
C development.
Your point that other compilers are available for Windows is completely
irrelevant to the main argument as to which version of C most people are
using. That is what is proved by this point. So it is YOUR claim that is
irrelevant and the claim I've made that you have now accepted is what
shows it to be irrelevant.
It is relevant, since you claimed that most new C development in
Windows was not done in C99 because MSVC is the most widely used C
compiler on Windows. My claim that MSVC isn't the only C compiler on
Windows is therefore relevant.
Your first statement in the block of quote a little bit above was
disputing Richard's claim that most people don't have a C99
implementation. Your refutation was wrong.
Saying "your refutation is wrong" is not enough to demonstrate that it
is wrong. I'm afraid your opinion is irrelevant unless you make
arguments about why it is wrong.
It has been presented, the problem seems to be that you don't know what
the word "evidence" actually means. I'll give you a clue, it does not
mean conclusive proof otherwise there would be evidence to support the
"Laws of Thermodynamics".
The problem is actually that you talk about evidence without having
it. With this problem, it isn't even relevant whether people
understand what "evidence" means, since none is even presented.
So you claim that if A is made of B, C and D knowledge that C is broken
is not evidence that A (of which C is part) is not broken.
OK, I've got this car which is not broken that I would like to sell you.
You can tell it isn't broken because the horn works!
It depends on the case, of course, but what you claimed is that there
was some place where they mention that C99 support is broken, which
they don't.
Where is your evidence for this wild and unsupported claim? It is safe
to assume you are wrong since there is no evidence to support it.
Yes, it is safe to assume that. Likewise, it is safe to assume that
your claim is wrong, since it is also wild and unsupported.
It is pointing out that not everyone being like me (which I agree is
true) is not evidence that gcc users have access to some other compiler
that *is* a C99 compiler.
No, but neither is it an evidence that GCC users don't have access to
some other compiler that is a C99 compiler.
I.e. you completely failed to refute my point.
As I already demonstrated, I did refute your point, which had no
support or evidence.
Yes. Oh, and the reason a lot of people I have seen on this group have
been aware of C99 is that they were told about C99 *on* this group!
Then those are probably not very competent C programmers, are they?
I did not say that I was referring to the language defined by the first
edition of the book. I said K&R. OK, perhaps I should have spelled out
their names in full and said that what versions of their book people
know about was irrelevant.
Oh, and don't forget that the 2nd edition of the book K&R is about the
language as defined by C89 (this time I do mean the ANSI standard rather
than the technically identical ISO standard that followed). So someone
who knows the 2nd edition of the book knows C89, so more people knowing
about the book than knowing C99 implies that more people will be
programming in C89 than C99 because the only version of C they know is C89.
But you don't know whether most people have heard of the book or of
C99. Whichever is the case, people who know only of one book about C
wouldn't be very good programmers anyway, so making an argument about
them wouldn't be very useful.
There has been a lot of suggestion that C is mostly used in embedded
programming these days, so considering it to be a special case without
presenting a good reason is not sensible. Even if it is not used more in
embedded programming than non-embedded it is certainly used a *lot* as
evidenced the number of processor manufacturers who release a C compiler
for their embedded processors.
Well, it might be used a lot in embedded programming, but it seems
unrealistic to believe that it is used more in embedded systems than
in actual OSs.
Above is eye-witness evidence in support of this position. However, you
don't understand the term so it is no wonder you did not comment on it.
It's only evidence (if it's true what you said) that shows that a
particular company uses C for embedded systems and not for non-
embedded programming. It's irrelevant as to what *most* C development
takes place on, which is what we were talking about.
No, you completely refuse to define it.
I have defined it many times in this thread.
However, it seems to be that if
it is vaguely close to conforming then it is one. Most C90+extensions
compilers are closer to conforming to C90 than GNU is to conforming to
C99 (most extensions are written so as not to break conformance) so by
your definition most C90+extensions compilers are C90 compilers.
No, they're simply C90 + extensions compilers. (Though a C90 +
extensions compiler will probably also support C90 anyway.)
So
their use is evidence by your definition of what a Cxx compiler is that
C90 is used.
No, it isn't, and that sentence is completely unrelated to the rest of
your paragraph.
No, however *I* am arguing that use of C90+extensions is use of C90 by
your terms and that most people are using C90+extensions.
Sure, you're arguing that, but you're not supporting your claims in
any reasonable way, which leads to believe against you.
In that case either:
1) gcc is *not* a C99 compiler so people using it are not using C99
I agreed that C90 + extensions development is not C99 development;
that has nothing to do with GCC being or not being a C99 compiler.
and
as people using gcc seems to be your main argument for the popularity of
C99 your position is completely untenable.
It is not my main argument for the popularity of C99, and you do not
present any arguments as to why GCC isn't a C99 implementation.
Or:
2) The evidence I presented about people using C90+extensions (e.g.
Using gcc in its default mode) is evidence of people using C90.
The fact that GCC has a default mode of C90 + extensions shows no
evidence that people are using C90 + extensions, for two logical
reasons: (a) There are other compilers apart from GCC, and (b), people
don't always use the default mode.
However, both points are completely unrelated to what you quoted which
was my agreement that C90 + extensions development was not C99
development (which is only logical).
Most new posters to this group who use gcc use it in its default mode as
shown by their posts.
Those new posters are usually beginners. I don't think they would
constitute the majority of C programmers, let alone the most relevant
ones.
Also it is the mode that GNU encourage so it is
likely that most GNU SW (and there is a lot written by a lot of people)
is developed in this mode.
Not by people who are concerned with portability, since working in
that mode would limit the code to be compiled only under GCC.
OK, my memory is not perfect. Possibly I did say that.
However, we have now established that by your definition that woud count
as most C development being in C90 rather than C99.
You said that by my definition most C90 + extensions compilers are C90
compilers. Regardless of whether that's true, it has nothing to do
with development being in C90 or in C99.
Well, since that is the mode most people use because that is the mode
most compilers default to...
The fact that it's the mode most compilers default to does not mean
that it's the mode most people use.
Well, feel free to bet against the evidence. It must make you popular
with book-makers.
Actually, you have no evidence.
The problem here is that you do not understand what the term evidence
means. Well, not the only problem, another problem is that you do not
understand reasoned argument.
Neither one of those points are true, and if we are disagreeing on
what an "evidence" means, it's you the one who doesn't understand the
term. Let's see what the dictionary has to say about it:
1. that which tends to prove or disprove something; ground for belief;
proof.
2. something that makes plain or clear; an indication or sign.
You have not presented anything like that so far, and yet you continue
to claim so.
You need to learn what the word "argument" means.
I'll help, here are some quotes from dictionaries.
argument
2
a.A course of reasoning aimed at demonstrating truth or falsehood...
b.A fact or statement put forth as proof or evidence; a reason...
c.A set of statements in which one follows logically as a
conclusion from the others.
evidence
1. A thing of things helpful in forming a conclusion or judgement...
2. Something indicative; an outward sign...
Exactly.
Here is the quote for you. "broken". It appears several times on the page.
I'm afraid a single word does not demonstrate much. For example, I
could also claim they conform to C99 by saying that the page
explicitly mentions "conforming" (look around line five), but they do
not actually claim to conform. It's called "taking a word out of
context."
Oh, and do you accept that the vast majority of implementations are C90
implementations even if they are also C99 implementations?
Yes, that's what I've seen so far.
Well, that's gcc rules out as a C99 implementation.
No. I agreed that a broken compiler should be ruled out as being a
So we have it not fully supported and broken. Sounds like it is not
something that cannot be considered a C99 implementation to me.
Well, sure, to /you/.
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.
No, you haven't. Again you're making wild claims about having some
evidence, and it's only reasonable to assume you don't have it since
you don't present it.
It has been presented, you just don't understand what the word
"evidence" actually means.
As I demonstrated, it's you the one who doesn't understand that (look
at the dictionary definitions again).
More evidence that you don't know what the word "evidence" actually means.
Non sequitur. I said that what I mentioned *wasn't* an evidence (which
is also what you claimed), and then you respond by saying that I don't
know what "evidence" is.
All the evidence points towards it. Of course, as you don't know what
the word evidence means...
As I demonstrated, you are the on who doesn't know what evidence
means.
Can you not see that if management specify "use compiler X" then that
means that compiler Y is not available to those programmers?
No. The reason for specifying which compiler to use can be anything.
Here are some clues:
o Compiler X is cheaper than compiler Y
o Compiler X is better than compiler Y
o Management likes compiler X better than compiler Y
o Management simply picks whatever compiler is at hand
Compiler Y not being available would be just another possible such
reason.
It does. Anything management forbids you from using is not available to you.
As demonstrated above, management specifying some particular compiler
does not mean that anything else isn't available.
Awareness of C90 is irrelevant. Re-read the above and this time try to
actually understand it. You probably need to learn what "the aw of
averages" means though.
How can awareness of a free C90 implementation be irrelevant if
they're looking for a free C90 implementation? Try to make conclusions
that follow the premises; that way you might be able to speak
logically.
Actually, it is simple probability theory. If there are a lot more items
of type A in the bag than there are items of type B then someone is more
likely to select an item of type A. There are a lot more compilers that
support C90 than compilers that support C99 so a randomly selected
compiler is more likely to support C90 than C99. When you add the fact
that most C99 compilers are also C90 compilers the odds of *not* picking
a compiler that supports C90 drop to almost zero.
Yes, but you did not talk about choosing a random compiler and using
what it supports; you talked about being aware of free
implementations.
It has everything to do with what the compiler selected is likely to
support *unless* the compiler is selected specifically to support a
specific version of the standard.
Well, since now you're talking about randomly selected compilers: that
randomly selected compiler might not even be a free C90/C99
implementation!
No, but it very strongly relates to whether they are using a C99 compiler.
By that token, it relates to whether they are using _any_ compiler,
regardless of what standard.
No, it is relevant to the specific point you made.
But you admitted that it was irrelevant:
"It was an aside and nothing to do with the main point of this
thread."
A point about which
you were wrong.
You said I was wrong and then made a completely unrelated comment (by
your own admission). That does not demonstrate that I was wrong.
You are wrong to think that a C99 implementation is
likely to be of lower quality than a C90 implementation.
I don't think that, and have never claimed anything like that.
The reason
being that the C90 implementation might have stopped development 20
years ago when various compiler technologies were less well understood
where-as a C99 implementation has definitely been under development
since the late 90s.
Yes, and even though I haven't claimed that, it is a strong argument
as to why a C99 compiler might be of higher quality than a C90
compiler.
No, it shows that you have not understood the point.
It only shows that you made a claim of falsehood followed by a
completely unrelated comment.
The same argument applies more strongly to you. You have not even
presented any evidence, not even low quality evidence.
Neither have you.
Incorrect. A number of people have presented evidence. You just don't
understand what the word means.
I demonstrated above that, according to the dictionary, I do
understand it, unlike you.
Well, we have already established that you don't know what eye-witness
evidence is.
Is talking about your C development career what you consider "eye-
witness evidence"?
What you said had nothing to do with what was being discussed.
Unless they are forced to use a pre-ANSI compiler
(which obviously does not support C99 since C99 is a long way post-ANSI)
or they are forced to use the one and only compiler that supports C99
but not C89, then they are forced to use a compiler that definitely
supports C89. Note that if they are forced to use gcc they are forced to
use a compiler that supports C89 as just *one* example.
Yes, but, the question remains: what does that have to do with the
text you quoted, which was about the three points mentioned by Richard
and my claim that those apply to an implementation of any standard?
I'm talking about the compiler THEY ALREADY HAVE!
If they don't have a compiler and they cannot obtain one then they
cannot compile their code anyway so it is irrelevant.
You should keep in line with the points being discussed, since not
doing so only creates misunderstandings.
Now try re-reading the above and actually understand it rather than
doing what I can only assume is deliberately failing to understand it.
No, what I'm doing is interpreting your points that are supposedly in
relation to the text you quote above. But that's hard to do since you
don't actually follow the points of the discussion.
It is ENTIRELY relevant. There are more C89 compilers than C99
compilers, therefore throw all the C compilers in to a bag and pick one
out at random and it is more likely that you will get a C90 compiler
than a C99 compiler. Therefore any reason for selecting a compiler other
than for conformance to a specific standard is more likely to select a
C89 compiler than a C99 compiler.
It's great that you summarize what you meant; that way you might
actually see it now: That has nothing to do with the three points
being discussed and why they are or aren't applicable to an
implementation of any standard.
Anyway, your current point is unrealistic, since people don't actually
choose their compilers by throwing a bunch into a bag and randomly
selecting one.
Incorrect. It is entirely relevant to all your claims that reasons why
one might not end up with a C99 compiler as less likely to apply to C90.
See above.
My claims were not about why one might not end up with a C99 compiler
as less likely to apply to C90 (whatever that means). My claims were
about why the points being discussed would be applicable to an
implementation of any standard.
I still have not said you made that claim.
Yes, you did:
"Those to claims amount to a claim that you believe that Richard's
work is not used in embedded systems"
Don't say stuff if you're later going to deny you said it.
It is the logical conclusion.
Then this is evidence that your logic does not lead to reality, since
I never made that claim.
A leads to NOT B.
You claim B, therefore you are assuming NOT A.
If Richards customers are using his code for embedded systems then C99
is NOT acceptable.
You claim that C99 is likely to be acceptable.
For you claim to be true Richards customer cannot be using his code for
embedded systems (because if they were then C99 would not be acceptable.
Not necessarily. At the time I said that they would most likely find
C99 acceptable I wasn't considering what kinds of systems they were
using; I was just thinking in general, and in general, my claim was
true.
However, how you misinterpret my posts by assuming implicit claims is
not my problem.
Your knowledge is based on what Richard has said, and Richard has said
that C99 would be likely to be rejected. So you seem to be claiming to
know more about his customers than he does.
Richard told me enough in order to make that conclusion when he said
that they don't tell him about their systems, and that they just
assume that whatever he sends them will work on their systems. I then
said that he could send code of any kind and that it would be fine if
they didn't object, to which he agreed. Based on this, Richard's
claims about them not being able to accept C99 was an assumption made
only out of his opinions on C99 availability, which might well be
wrong.
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.htmlmakesitveryclear.
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.
You have no evidence since you're only making an inaccurate assumption
about an implicit implication on their website. I, on the other hand,
am only pointing out what they have *explicitly* stated. Therefore, my
point is stronger.
They explicitly state it is broken on their web site. This *is*
evidence. It may not *prove* the point, but it *is* evidence.
No, they don't explicitly state that, and you have not provided any
quote out of their website where they explicitly mention this (other
than the word "broken", which I demonstrated was taken out of
context).
Oh, and I have done a small amount of work on the GNU tool-chain, so to
a very small degree I am one of the developers. I would not claim to
speak for the majority, but...
Exactly.
Sebastian