Subject: Re: Back to business [was: the Be thread]
From: Ian Lance Taylor <ian@airs.com>
Date: 24 Nov 1999 01:59:24 -0500

   From: "Stephen J. Turnbull" <turnbull@sk.tsukuba.ac.jp>
   Date: Wed, 24 Nov 1999 15:35:02 +0900 (JST)

       Crispin> The kernel is much easier to contribute to than GCC.  The
       Crispin> kernel is, in some sense, a very large library of
       Crispin> components, with a consistent (syscall) interface and
       Crispin> shared set of resources.  The rules one must follow to
       Crispin> play in the kernel are relatively simple.

       Crispin> To contribute to GCC, you have to grok a great deal of
       Crispin> abstraction and detail.  It takes a lot of spin-up time
       Crispin> to develop a working compiler patch.

I don't really agree with this, actually.  To contribute a significant
optimization or a new processor port to gcc, there's a fair amount you
have to learn.  On the other hand, the sources include a long manual
which is reasonably clear to a programmer and quite detailed.  It's
fairly easy to contribute a new warning, for example--that was my
first gcc patch (-Wmissing-prototypes).

   Obvious quick hack try: bazaar vs cathedral.  Is that still accurate
   with the change of maintainership to the EGCS steering committee?
   Does that account for past history?

In my opinion, it was very hard to get changes into gcc when Kenner
was maintaining it for the FSF.  egcs is being run much more freely,
and there is quite a range of contributors these days.

   Unfortunately for that idea, the obvious application and business that
   fits is ... GCC and Cygnus!  It works for Cygnus precisely because
   integrating new stuff into the compiler requires lots of "spin-up," I
   guess.  That leaves you in a position where nobody does it better, in
   fact it's really hard to catch up, for quite a while.  But it also
   looks like the comments on the palm computers and open source OSes.
   Hmmm ... maybe that's the synergy between Cygnus and RedHat.[1]

In my opinion, porting gcc to support a new conventional processor is
within the reach of any good programmer with some compiler background.
If you want to also port the entire toolchain--assembler, linker,
debugger--you will need a few people, or a goodly amount of time.

I don't think Cygnus depends on the amount of ``spin-up;'' I think it
depends more on being able to mobilize several people with experience
in the relevant areas, and being able to correctly estimate the time
required to do the work, and simply on doing a good job on schedule
time and time again and thus reducing the risk to the prospective
customer.

Building that kind of skill with any software package takes time.
Cygnus carved out a niche--embedded systems--where they were able to
develop and market that skill.

Cygnus does do more stuff than port the GNU toolchain to new systems,
but that was their bread-and-butter work for a while, and may still
be.

Ian