This is the mail archive of the gcc-patches@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]
Other format: [Raw text]

Re: 3.2 PATCH: Fully support parallel gnat1/gnatbind builds


> The usual way to handle such things is with configure-time tests: does
> the existing Ada compiler support pragma Unreferenced?  If so, use
> it, otherwise use pragma Warnings.  That way, developers, who will be
> using the latest tools, will get warnings treated as fatals, but users,
> who might have skipped one upgrade generation, will still be able to
> build the compiler.

YECH! What we are talking about here is replacing

  pragma Warnings (Off, entity)

by

  pragma Unreferenced (entity);

because the latter is neater, reads better, and is clearer as to why it
is there.

Ada is allergic to preprocessing (and if you ask me for good reason but
that's another story). The Ada requirements specifically required that
the language NOT contain preprocessing because it was felt that this was
a severe shortcoming of C. The idea of introducing preprocessing for
the GNAT sources is offensive from an Ada point of view, and annoying
from a pragmatic point of view, since it means running some kind of
separate preprocessor (there is no good integrated way of doing 
preprocessing in Ada, and as above, this is by design). So you would
complexify the build scripts consdierably this way.

Further more, the whole idea of making this change is to make the
sources cleaner. If we have to introduce some junk preprocessing
here, then the change is counter productive.

Furthermore, this was just one quick casual citation of what in fact are
a serious of changes of this type, where the clarity of the sources is
compromised by bootstrap kludges. At some point it is nice to clean
these up, and in the past we have aggresssively done so, and certainly
for our internal source tree we will continue to do so, since for us
it is a bad tradeoff to junk up the sources to allow compiling with
obsolete versions of GNAT.

It's interesting to note that if you look in the Ada newsgroup at the
discussions of building GNAT from sources, the issue of using old
versions is simply not on the radar screen. Yes, sure it would be nice
if everyone can build Ada easily all the time. As time goes by, and
GNAT compilers are around, this will be easier to achieve. To me it
seems perfectly reasonable to require GCC 3.1 to be around to build
GCC 3.2. 

I do agree with a comment that it would be good to have started binaries
available. One of our intentions was to provide such a set of starter
binaries on the libre site at Ada-Europe (we put that in Europe, since
we like libre better than free for the site name :-)


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