This is the mail archive of the
mailing list for the GCC project.
Re: 3.2 PATCH: Fully support parallel gnat1/gnatbind builds
- From: dewar at gnat dot com (Robert Dewar)
- To: gcc-patches at gcc dot gnu dot org, gcc at gcc dot gnu dot org, starner at okstate dot edu
- Date: Sat, 25 May 2002 12:23:57 -0400 (EDT)
- Subject: Re: 3.2 PATCH: Fully support parallel gnat1/gnatbind builds
> It's interesting that C will bootstrap on pretty much any junk C compiler
> someone might want to use, but Ada requires one specific version of
> one compiler, and that's reasonable.
Not so surprising, C is a very simple language (imagine if all of g++ was
implemented in C++ :-)
Also, the sources are a bit junked up to deliberately achieve this goal.
For example, to me the PROTO calls are annoying noise in the sources, and
there are a number of places where the use of nested functions would
help readability and maintainability, but we accept the noise and
restrictions precisely to achieve the "bootstrap on pretty much any
junk C compiler".
In the case of Ada, we early on decided that it was pointless to try
to maintain compatibility with other proprietary Ada compilers, and
indeed I have not seen anyone here impeded by that decision.
And after all, if we had required that GNAT be compilable with any
earlier version of GNAT, it would be in a very small subset of
Ada 95 that would be very restrictive, and hamper maintainability.
One interesting approach would be to have a mode in which GNAT generates
ANSI C (or actually GNU C would be more reasonable). Then the C sources
could be used to do a bootstrap. It would be otherwise valuable to have
a C generating backend for Ada (to bring Ada to machines with a C but
no Ada), so that would be an interesting project.