[RFC] Replace Java with Go in default languages
Jeff Law
law@redhat.com
Tue Nov 12 05:38:00 GMT 2013
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
More information about the Gcc
mailing list