This is the mail archive of the java@gcc.gnu.org mailing list for the Java 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: Reconsidering gcjx


On Fri, 2006-01-27 at 09:25 -0500, Kaveh R. Ghazi wrote:
>  > ecj is written in java.  This will complicate the bootstrap process.
>  > However, the situation will not be quite as severe as the Ada
>  > situation, in that it ought to be possible to bootstrap gcj using any
>  > java runtime, including mini ones such as JamVM -- at least, assuming
>  > that the suggested implementation route is taken.
> 
> I would really hesitate to follow Ada in this regard.
>
> IMHO, writing your frontend in the same language it's intended to
> compile causes it to be marginalized.  It no longer becomes part of
> the default bootstrap sequence and gets much less testing.  You'll
> find patches that were supposedly "bootstrapped and regtested" will
> quite often break java because it didn't get tested as part of the
> default.

It's a bit annoying but not really blocking: all GCC developpers do fix
regressions in Ada when they're properly attributed to a patch, and do
follow the project policy that exposing a latent bug elsewhere is not an
excuse (and of course if it's traced back to dubious front-end
behaviour, front-end maintainer do step in). The consequence is that you
have to test separately trunk and your development tree and merge and
submit patches only when they both work otherwise you might loose a lot
of time to unrelated issues (and that means batch submitting if you do
lots of development).

Also I believe not allowing new languages for new front-ends might
limit the increase of language front-ends in the GNU Compiler
Collection: not everyone likes coding parsing and tree algorithms in C
in 2006 and I assume a developper wanting to add a new language do like
to use this new language :).

Wether C++, Java or Ada, a new language requirement looks the same to
me: having a good enough base compiler and runtime installed for the
language, I do not see anything special to Java or Ada over C++ here.
The base compiler I use for building GCC has only c,ada (4.0) because
that's what is needed, if c++ is needed I'll add the recommanded c++
compiler, if java and some JVM is needed, I'll add java and the
recommanded JVM, no big difference.

Currently building trunk with --enable-checking and testing nearly all
languages (c,ada,c++,fortran,java,objc,treelang, so excluding Objective
C++) on a Pentium III 1GHz machine with 1GB of RAM takes between 11 and
12 hours. It could be more if some languages did have a more substantial
testsuite, which is desirable when a front-end matures. Restricting the
required number of languages for the default patch testing procedure is
unavoidable if we leave it to individual developpers to run on their
machine: in 12 hours, about 10 patches are commited to trunk on average.

Laurent



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