Subject: A new compiler project to merge the existing GCC forks
A bunch of us (including Fortran, Linux, Intel and RTEMS hackers) have
decided to start a more experimental development project, just like
Cygnus and the FSF started the gcc2 project about 6 years ago. Only
this time the net community with which we are working is larger! We
are calling this project 'egcs' (pronounced 'eggs').
Why are we doing this? It's become increasingly clear in the course
of hacking events that the FSF's needs for gcc2 are at odds with the
objectives of many in the community who have done lots of hacking and
improvment over the years. GCC is part of the FSF's publicity for the
GNU project, as well as being the GNU system's compiler, so stability
is paramount for them. On the other hand, Cygnus, the Linux folks,
the pgcc folks, the Fortran folks and many others have done
development work which has not yet gone into the GCC2 tree despite
years of efforts to make it possible.
This situation has resulted in a lot of strong words on the gcc2
mailing list which really is a shame since at the heart we all want
the same thing: the continued success of gcc, the FSF, and Free
Software in general. Apart from ill will, this is leading to great
divergence which is increasingly making it harder for us all to work
together -- It is almost as if we each had a proprietary compiler!
Thus we are merging our efforts, building something that won't damage
the stability of gcc2, so that we can have the best of both worlds.
As you can see from the list below, we represent a diverse collection
of streams of GCC development. These forks are painful and waste
time; we are bringing our efforts together to simplify the development
of new features. We expect that the gcc2 and egcs communities will
continue to overlap to a great extent, since they're both working on
GCC and both working on Free Software. All code will continue to be
assigned to the FSF exactly as before and will be passed on to the
gcc2 maintainers for ultimate inclusion into the gcc2 tree.
Because the two projects have different objectives, there will be
different sets of maintainers. Provisionally we have agreed that Jim
Wilson is to act as the egcs maintainer and Jason Merrill as the
maintainer of the egcs C++ front end. Craig Burley will continue to
maintain the Fortran front end code in both efforts.
What new features will be coming up soon? There is such a backlog of
tested, un-merged-in features that we have been able to pick a useful
New alias analysis support from John F. Carr.
g77 (with some performance patches).
A C++ repository for G++.
A new instruction scheduler from IBM Haifa.
A regmove pass (2-address machine optimizations that in future
will help with compilation for the x86 and for now
will help with some RISC machines).
This will use the development snapshot of 3 August 97 as its base --
in other words we're not starting from the 18 month old gcc-2.7
release, but from a recent development snapshot with all the last 18
months' improvements, including major work on G++.
We plan an initial release for the end of August. The second release
will include some subset of the following:
global cse and partial redundancy elimination.
live range splitting.
More features of IBM Haifa's instruction scheduling,
including software pipelineing, and branch scheduling.
sibling call opts.
various new embedded targets.
Further work on regmove.
The egcs mailing list at cygnus.com will be used to discuss and
prioritize these features.
How to join: send mail to egcs-request at cygnus.com. That list is
We have a web page that describes the various mailing lists and has
this information at: http://www.cygnus.com/egcs.
Alternatively, look for these releases as they spread through other
projects such as RTEMS, Linux, etc.
Come join us!
(for the egcs members, who currently include, among others):
John F. Carr
Kaveh R. Ghazi
David S. Miller
Ian Lance Taylor