axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] Re: bootstrap Meta/Boot


From: Bill Page
Subject: [Axiom-developer] Re: bootstrap Meta/Boot
Date: Thu, 9 Aug 2007 22:19:12 -0400

On 8/9/07, Tim Daly wrote:
>
> In the IBM/NAG days you needed a running Axiom to build Axiom.
>

I believe that is one of the things that allowed Axiom to become so
advanced so quickly (relatively speaking). Axiom's library code is
highly circularly-dependent as a result. This structure makes Spad a
very expressive language indeed. (Probably even more expressive than
Python by most common measures.)

That you need a running Axiom to build Axiom is still true in the all
branches of the Axiom project. You need a consistent copy of the
databases before you can even compile the associated Spad code. But
the databases must be created by compiling the Spad code in an already
running Axiom. You also needed a running Axiom to generate the
bootstrap Lisp  necessary to break the dependency cycles. Apparently
these problems can be solved but only with a radically different build
approach than is used now in Axiom, as demonstrated by the Axiom fork
project.

> Meta, like Boot, was cleverly written in itself. Thus if you have a
> running Meta, you can have a running Meta. And you need to get Meta
> running before all else. If you have a running Boot you can make a
> running Boot.
>

That is nothing strange or clever. If you have a running gcc then you
can make a running gcc. The is true of many other languages, e.g.
Haskell. We have discussed this ad infinitum in this email list.

> Such a trend leads you back to the point where you need a running
> Axiom to build a running Axiom.  It is an interesting, but academic,
> problem which is elegantly sidestepped by lisp code.
>

What do you think is being side-stepped by lisp code? It could just as
easily by solved by writing everything in C (gcc bootstrapping not
withstanding). If you write everything at the same linguistic level
(i.e. in the same language) then of course this problem does not
arise. But you also severely limit your design options.  The
consequences seem obvious in systems like Maxima, Maple and
Mathematica. This difference in design methodology is one of the
things that sets Axiom apart.

> Fortunately in the brave new world we seem to inhabit, there is no
> sticking place for your objection.  You can create your own branch and
> thus reconstruct Meta in Meta and Boot in Boot.
>

Indeed I could had I the time and skill. Luckly there are some other
motivated people more qualified than I, which leaves my remaining time
available for answering emails such as these. ;-)

Regards,
Bill Page.




reply via email to

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