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

2013-11-09 Thread Eric Botcazou
> 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


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

2013-11-09 Thread Alec Teal
If Java must go, and it must have a replacement Ada makes sense. The 
issues with Go (sadly, you guys are doing superb work) do make sense.


I don't know enough about Java (the GCC front end and such) to know if 
it should go, if it does go why should it be replaced?


Alec

On 09/11/13 11:55, 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).


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.





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

2013-11-09 Thread Andrew Haley
On 11/09/2013 03:44 PM, Alec Teal wrote:
> If Java must go, and it must have a replacement Ada makes sense. The 
> issues with Go (sadly, you guys are doing superb work) do make sense.
> 
> I don't know enough about Java (the GCC front end and such) to know if 
> it should go, if it does go why should it be replaced?

It always was very useful for detecting bugs in GCC: the code flow tends
to trigger bugs that don't get detected by the usual GCC testsuites.

Andrew.




Bootstrap broken on x86_64 Linux?

2013-11-09 Thread FX
Trying to build trunk rev. 204619 with --enable-languages=c,c++,fortran on 
x86_64-unknown-linux-gnu, I get a build error in stage1-target-libsanitizer:

> ../../../../trunk/libsanitizer/sanitizer_common/sanitizer_linux.cc: Assembler 
> messages:
> ../../../../trunk/libsanitizer/sanitizer_common/sanitizer_linux.cc:821: 
> Error: .cfi_endproc without corresponding .cfi_startproc
> :21806: Error: open CFI at the end of file; missing .cfi_endproc directive

I’m building with binutils 2.17.50.0.6, which is a bit old but I cannot find 
any mention of needing later binutils on the installation notes.

Is bootstrap broken, or am I missing something?

FX

Re: Bootstrap broken on x86_64 Linux?

2013-11-09 Thread FX
> I’m building with binutils 2.17.50.0.6, which is a bit old but I cannot find 
> any mention of needing later binutils on the installation notes.
> Is bootstrap broken, or am I missing something?

Second build, this time with trunk binutils. Still fails in libsanitizer at 
stage1, this time with:

> ../../../../trunk/libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc:25:30:
>  fatal error: linux/perf_event.h: No such file or directory

I run a Linux 2.6.18, with kernel headers installed. Are there stricter 
requirements on the linux version in GCC? Where is it documented?
I don’t remember that bootstraping used to be so hard :(

Thanks for any help,
FX