> 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).

> More seriously, the Go sources live in a separate repository, and are
> copied to the GCC repo.  In practice this means that when Go breaks,
> it can't be fixed until I am online to fix it.  I don't think it would
> be good for GCC for a bootstrap break to depend on me.

In contrast to that, the FSF repository is the master repository for GNAT and 
breakages can be quickly fixed by anyone with write access.

-- 
Eric Botcazou

Reply via email to