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]
Other format: [Raw text]

Re: [RFC] Replace Java with Go in default languages


On 11/09/13 04:12, Eric Botcazou wrote:
Right now Go does not build on a range of targets, notably including
Windows, MacOS, AIX, and most embedded systems.  We would have to
disable it by default on targets that are not supported, which is
straightforward (we already have rules to disable java on targets it
does not support).  But to the extent that there are options like
-fnon-call-exceptions that are tested primarily by Java and Go, we
would get less coverage of those options, since we would not test them
on systems that Java supports but Go does not.

Let me make the case for Ada here: it's a general purpose, highly portable
language, which is regularly built and tested on a significant range of
platforms (I personally test it on x86/Linux, x86-64/Linux, PowerPC/Linux,
IA-64/Linux, SPARC/Solaris and SPARC64/Solaris).  It exercices some features
of the compiler that aren't exercised by other languages and stretches some
common features much more than the other languages.  It turns out that it also
enables -fnon-call-exceptions by default.  It seamlessly works with LTO.

While the fact that a big part of the front-end is written in Ada could be
seen as an annoyance (although GNAT has been largely available for about a
decade on many systems), it can also be seen a boon; for example, a LTO
bootstrap with Ada enabled really exercises cross-language optimizations.

Bootstrapping with Ada is marginally slower than with Go (a few percents) and
the testsuite is small (4-way parallelizable, testing time of 6 minutes on a
fast machine).
From what I can see, bootstrapping with Ada is slower than bootstapping with Java, by around 15%. Again this is on one of my slower boxes, but the results clearly show building Ada & its runtime takes a considerable amount of time:

default languages:    67 minutes
default - java:       51 minutes
default - java + go:  56 minutes
default - java + ada: 77 minutes

Some of this might be building Ada and its runtime during all three stages. Contrast to Java which builds the front-end during stage2/stage3 and the runtime just in stage3.

Hard to justify switching from Java to Ada given those results if one of the key goals is to reduce waiting time.

jeff


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