jacob navia said:
Keith Thompson ([...]) said:
I was actually hoping you'd prove me wrong by giving a straight
answer, not by refusing to answer the question at all.
You've made a claim. Please back it up.
[...]
I made several claims:
(1) That lcc-win has an assembler, a linker, and a debugger, in
contrast to the original lcc that has none. Nobody has denied this
since it would be difficult anyway.
A linker, or something like it, is a required part of any C
implementation; it's what implements translation phase 8. I've never
used lcc. I'm guessing that what you mean here is that lcc depends on
some externally provided linker, whereas lcc-win provides its own.
Apparently lcc is just a compiler, whereas lcc-win is a full C
implementation (it includes a runtime library as well, as I recall).
Both aproaches are valid. I have no opinion on which is better; the
lcc approach is fine as long as a working linker is available.
(2) That lcc follows the C89 standard. Nobody discusses that.
(3) That lcc doesn't implement long long. Nobody discussed that.
There wasn't really anything to discuss; as far as I know, the above
claims are all true and uncontroversial.
(4) That lcc doesn't implement long double. This is the same as saying
that MSVC doesn't implement it since it considers long double as
the same length as double. I clarified that lcc does consider long
double as a distinct type but did not implement it in the code
generation.
And there's where you went wrong. lcc, as I understand it, does
implement long double, and your claim that it doesn't is quite simply
factually incorrect. It implements it as a distinct type with the
same characteristics as double, which is specifically permitted by the
standard.
If you want to say that lcc's implementation of long double is of
unacceptably low quality, I won't argue with you. I agree that having
a long double type with greater range and/or precision than double is
A Good Thing. It's just not required by the standard.
DO YOU UNDERSTAND THE DISTINCTION?
I did not insult your precious compiler. I did not criticize your
compiler's implementation of long double. *You* falsely criticized
lcc's implementation of long double, and I called you on it. This
doesn't mean that there are no valid criticisms of lcc's
implementation of long double, merely that your criticism of it was
factually incorrect.
lcc implements long double in a manner that conforms to the C90 and
C99 standards; it satisfies both the letter and the intent of both
standards. What you're actually complaining about, I suspect, is that
lcc doesn't support an extended floating-point format -- but that's
not what you said.
[...]
I implemented long double within lcc-win. And that means implementing
a really different type, i.e. changing the code generation to
accommodate two floating point types that are used with the same
register set, writing the rules, testing the generated code, adding
the library modifications for printf, etc etc.
Implementing long double as a type with wider range and precision than
double is certainly valid. And as a practical matter, I agree
(again!) that it's better than the lcc approach (though the lcc
implementers probably had good reasons for their choice).
The implementation of "%Lg" will print a denormalized number correctly
even if it means using a multi-precision package.
That's great. Seriously.
But the specific claim I asked you to back up was this one:
| Heathfield will still spit nonsense when my compiler makes a
| perfectly C99 compatible extension but will not complain about other
| compilers modifying syntax to implement design by contract. As long
| as it is NOT lcc-win everything is accepted.
And my subsequent request was:
| Name one instance in which Richard Heathfield has complained about a
| "perfectly C99 compatible extension" provided by lcc-win.
You have yet to provide an example of this.
That is NOTHING for those people. They will just blindly repeat the only
things they know: legalese legalese and more of that shit.
It is a pity that so many people keep silent when this stuff happens,
maybe because they have succeeded in making all reasonable people
drop this discussion group so that laugh at the expenses of newbees
alone.
TO HELL WITH THEM!
Calm down, you're making a fool of yourself.