axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] Bootstrapping


From: C Y
Subject: [Axiom-developer] Bootstrapping
Date: Wed, 9 Nov 2005 12:14:53 -0800 (PST)

--- Bill Page <address@hidden> wrote:

> More specific to this discussion is:
> 
> http://en.wikipedia.org/wiki/Bootstrapping_%28compilers%29
> 
> The design of bootstrapping compilers has a long and
> venerable history and Axiom happens to be one of these
> types of systems.

Right, but the chicken-egg problem remains.  The article on
Bootstrapping compilers mentions several solutions for this, all but
one of which depend on other compilers being available.  The only
solution offered that didn't involve another compiler was the one I
expected, which was to hand translate the code into machine code the
first time around.  This produces a non-optimal but working compiler
without requiring a compiler, which is the interesting and important
step.  Iterating from there to improve the compiler is important and a
fascinating field of study but it can't get anywhere without that all
important first compile by hand.

I think Bill I'm actually focused on a somewhat different problem, and
one which I admit is probably not really a valid one in this day and
age and not really an issue for Axiom.  I would like the capability to
exist for someday, a thousand years from now, someone with only the
bare electronics and the source code to be able to re-create a running
system.   To the best of my knowledge this is doable only one of two
ways - implement a compiler in hardware which which translates a human
readable/writeable language into something the machine can understand
(which I think is what assembly code is actually all about), or define
the smallest possible viable compiler in machine language and implement
it by hand (I think the very first systems did this by flipping
switches - I don't know how matters proceeded from there) and proceed
to bootstrap using that.  Symbolics machines were actually very
interesting in this respect, since IIRC they actually DID implement
Lisp at a machine level, but they unfortunately didn't survive
commercially.

I think this resonates in some way with the open source community, or
at least a subset of it.  The ideal is that, starting from nothing but
freely available source code and bare hardware, you can create a fully
functional system.  Obviously this is not something one would want to
do often, but I think the potential ability to do it appeals.  This
might be one of the reasons people prefer to rely only on bootstrapping
from gcc as much as possible - in theory, once you get gcc running,
you're done with bootstrapping because most other software can be
compiled with that one tool.  There are a variety of compilers that
aren't like this of course - cmucl and sbcl among them, IIRC, but I
think there has been some consideration of developing the possibility
of using clisp, which CAN be bootstrapped with gcc, to build cmucl and
sbcl.

Basically, I think there is kind of a mantra that the fewer
bootstrapped software dependencies a system has, the better.  No one
denies gcc is such a dependency, but the introduction of other such
dependencies is not a popular idea, because of the reliance of such
systems on some available system being able to run the original binary.
 That's an unpopular assumption, just on principle.

> > It would be nice not to have to worry about such issues
> > for Axiom - why not keep the design goal of building Axiom
> > using only a working ANSI Lisp?
> 
> Because that means having to maintain two versions - a lisp
> version and a spad version of quite a few Axiom library
> modules. And if changes are made to any of the spad code in
> one of these modules, the lisp code must be re-generated.
> All of this is well described in Tim's documentation.

I'll try and read through that part Tim, but would the re-generation of
this lisp code be automatic in future systems?

> > I worry about a case in the future in which the Axiom code
> > might have to be built without any working binaries of Axiom -
> > what happens then? We've already seen the pain this situation
> > caused once.
> 
> Axiom is open source, like gcc and gcl. So you might as well be
> saying: what happens if we want to build Axiom and we have no C
> compiler or lisp system?

As I mentioned, I do actually consider this a valid question, although
perhaps one that should be addressed below the Axiom level.

Cheers,
CY


                
__________________________________ 
Yahoo! FareChase: Search multiple travel sites in one click.
http://farechase.yahoo.com




reply via email to

[Prev in Thread] Current Thread [Next in Thread]