good c compiler

R

Richard Nixon

Nothing is ever complete. Nor is a painting ever finished.

Jacob's lcc was the most complete C compiler I had used when I was intent
on getting C99 features. I was decompressing off of Microsoft products,
but notwithstanding.

His compiler is complete in a way that standard thumpers don't value: you
can make a window without reinventing the wheel, which for those who target
the world's most popular OS, is the window.

All of the implementations with which I have experience are having trouble
with, say, double complex. YMMV.

What important C99 feature does lcc lack?
 
K

Keith Thompson

Richard Nixon said:
[...]

Jacob's lcc was the most complete C compiler I had used when I was intent
on getting C99 features. I was decompressing off of Microsoft products,
but notwithstanding.

His compiler is complete in a way that standard thumpers don't value: you
can make a window without reinventing the wheel, which for those who target
the world's most popular OS, is the window.

Nobody said that's not valuable; I'm sure it is. There's nothing
wrong with making system-specific operations such as making a window
more convenient. The question we've discussed here is how well
lcc-win conforms to the C99 standard.

jacob frequently refers to his lcc-win as a C99 compiler, but he's
never claimed that it fully conforms to the C99 standard. As I
recall, it doesn't implement variadic macros, and there may be some
missing functionality in the C99 changes to initializers. I don't
have any details about the current status.
All of the implementations with which I have experience are having trouble
with, say, double complex. YMMV.

What important C99 feature does lcc lack?

An important note: lcc is a C90-only compiler. lcc-win (sometimes
also known as lcc-win32) is jacob navia's compiler, and is based on
lcc. lcc itself is still available.

Apparently it depends on what you mean by "important". jacob insists
that the only missing C99 features are unimportant ones, so his answer
would be "none". A question that might yield more meaningful results
would be: what important *or unimportant* features does lcc-win lack.
You can then decide for yourself which features are or are not
important to you.

Of course, if lcc-win suits your purposes, by all means use it.
 
T

Tim Rentsch

Because he's thinking as an implementor: "I've already implemented
32-bit floating-point arithmetic for float and 64-bit floating-point
arithmetic for double; I don't feel like implementing yet another kind
of floating-point arithmetic for long double, so I'll just use my 64-bit
implementation instead." In Jacob's mind, this lazy implementor has
just reused his double implementation instead of implementing long
double (correctly). While it's understandable in that context, you're
correct that it's very confusing to the rest of us.

I just want to offer some applause for a very nice
posting clarifying the two different mindsets here.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,764
Messages
2,569,566
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top