This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Mistaken change in GCC (fwd)


> I have strong opinions on this issue.  They are:
>
> 1. The purpose of -traditional is exactly to simulate the limitations
>    of the historic pre-standard C compiler and preprocessor, and
>    therefore to make it possible to compile pre-standard C code on
>    modern systems.

This opinion is misinformed to the point of being downright ignorant,
because you are not taking into account what traditional C preprocessors
have been used for for the last 20 years.  Specifically, they've
been used to preprocess text that is, in no way, C.  This is the Unix
way, we reuse our tools.

Example: gcc itself has a mode where the C preprocessor is used on
Fortran; the -traditional flag is used.  Fortran users may want to write
different code depending on the CPU type.  Many logic designers doing chip
design are using the C preprocessor to process VHDL, which is a disaster
with a modern C preprocessor because of VHDL constructs that use a single
' character, like

	wait until clock'event and clock = '1';

(Verilog is less of a problem because it is much more C-like).

The GNU project, BSD, and GNU/Linux distributions are going to need a true
traditional preprocessor.  Not what you, in your arrogance, declare a
traditional preprocessor should be, but one that works.

We need to supply this functionality somehow.  Maybe it's a completely
separate executable, but it would be nicer not to have to maintain two
distinct pieces of code.

>    Ignore for the moment the fact that this is
>    impossible anyway because modern system headers won't cooperate.

Like I said, you are misinformed.  When someone uses gcc -traditional
in this way, s/he does not use C headers, because the code being
preprocessed is not C at all!  It is not a requirement that the standard
headers work with gcc -traditional.

> 2. Support for preprocessing things which are not C is much lower
>    priority than support for preprocessing C.

Says who?  You?  Why do you decide?  Processing non-C is important even
for GCC; as I said, Fortran uses it.

>  I do not care about historical precedent.

If this is really true, then you are not qualified to make design
decisions, despite your great skill as an implementer.

> I am working on a revision to the cpp manual which will clarify the
> questions about what -traditional does or does not do.

Don't waste your time rewriting the manual just yet.

You are confused about your role in this project.  You may make
contributions, and the steering committee may choose to accept or
reject such contributions.  I'm grateful for all of your contributions,
but if we have to take your attitude along with them, well ...

Documented features may not be removed from gcc without the agreement of
3/4 of the steering committee.  Period.  You are proposing to remove
features.  Are you sure that you have the votes?

Also, in effect you told the guy who wrote the original gcc and runs the
organization that legally owns it to go to hell.  This is not a good move.
I suggest that you apologize.





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]