On Wed, Feb 2, 2011 at 10:03 AM, erik quanstrom <quans...@labs.coraid.com>wrote:

> > Where did your C compiler come from?  Someone probably compiled it with a
> C
> > compiler.  Bootstrapping is a fact of life as a new compiler can't just
> be
> > culled from /dev/random or willed into existence otherwise.  It takes a
> plan
> > 9 system to build plan 9 right?  (This was not always true for infinitely
> > recursive reasons)
>
> ah, but where did your go compiler come from?
>
> - erik
>
> Well my Go compiler came from a plan 9 C compiler that came from a gcc
compiler, that came from the operating system distribution CD that shipped
with Mac OS X.

Someone at apple presumably bootstrapped that gcc build for Mac OS X from
another GCC build for Mac OS X, and that one probably goes back to some
version of OpenStep, all the way back to NeXTStep, and before that some
version of Unix most likely that bootstrapped NeXTStep.

A lot of that lineage was a guess.  It's really difficult, for instance, to
bootstrap the GHC (Haskell) compiler from the intermediate C files it
generates these days, and you pretty much need a port of Haskell to your
platform in order get a port of haskell to your platform.  It's a bit of an
undocumented black art as far as I can tell, but it was supposed to be
simpler :-).

Many lisp compilers/systems need a lisp compiler or system in place in order
to bootstrap them too.

Dave

Reply via email to