Sujet : Re: Endless complaints [was Re: do { quit; } else { }]
De : Keith.S.Thompson+u (at) *nospam* gmail.com (Keith Thompson)
Groupes : comp.lang.cDate : 11. Apr 2025, 20:26:06
Autres entêtes
Organisation : None to speak of
Message-ID : <87a58msdo1.fsf@nosuchdomain.example.com>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
User-Agent : Gnus/5.13 (Gnus v5.13)
bart <
bc@freeuk.com> writes:
On 11/04/2025 09:14, David Brown wrote:
On 11/04/2025 01:10, bart wrote:
On 10/04/2025 23:18, Janis Papanagnou wrote:
*If* you're really interested in the topic, and since all the other
posters obviously gave up to continue explaining their sight to you,
why don't you accept that suggestion and read the standard document
to have clarity about the topic? [FYI; this was a rhetoric question.]
>
I had certainly given up and moved on.
I've read the document, or the relevant section.
Finally! Now you too can move on.
According to that, DB was wrong, and TR was half-right.
>
Yes, it seems I was inaccurate about the compatibility - the names
of the struct and fields need to match across translation units, not
just the types of the fields. That's why it is important that /you/
read the standard.
>
But no one, absolutely no one, said outright that you were wrong. Only
Keith eventually agreed that one of you (and Tim) was right, but
didn't care who, and the next day admitted that one of you might be
wrong, but still didn't want to commit himself as to who it might be.
Somebody made a mistake. It wasn't immediately caught. It happens.
This is a very long thread, and IIRC by the time the two posters made
their contradictory posts, it wasn't clear exactly which code they were
referring to. I for one was not willing to dig through the thread to
find it.
Understanding the rules for type compatibility is important.
Determining whether two types posted in a long Usenet thread are
compatible is less so, and likely not worth the effort.
Later, you posted a summary of the relevant code and a paraphrase of
the statements about it. At that point, all the information was in one
place, and I commented.
I eventually made a post saying that the two types (in your summary) are
clearly not compatible.
On the other hand, I was the only one not to make a bold claim one way
or another (I said types were compatible enough for my test to work),
but Keith had no hesitation in telling me I was 100% wrong!
You claimed that people were saying that both contradictory claims were
right. Nobody said that. You have not withdrawn your claim.
I told you that you were wrong because the term "compatible enough"
doesn't make sense. I've explained that at some length. I think what
you meant is that the types (almost certainly) have the same
representation. That's a perfectly valid observation, but you explained
it incorrectly.
Do you now understand the difference between two types being compatible
and two types having the same representation?
That is what is very worrying to me, and makes this a toxic
environment (see my last post here where I remark on the contrast with
how KT treats me and how he treats TR.)
>
Tim was, as usual in these matters, entirely correct as far as I can
see. I don't see how he could be considered "half-right" here. Tim
has a communication style that some people find grating (to put it
mildly), but there is no question that his knowledge of the C
standards is outstanding.
>
I said half-right because as he put it, it sounded as though
compatibility depended entirely on struct tags.
That's your misinterpretation of what he wrote. The difference in tags
is *sufficient but not necessary* to determine that the types are
incompatible. Reread what he wrote with that in mind.
Your misinterpretation is understandable (his explanation was rather
terse), but it was an error on your part. Do you understand that?
[...]
-- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.comvoid Void(void) { Void(); } /* The recursive call of the void */