axiom-developer
[Top][All Lists]
Advanced

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

Re: [Axiom-developer] letting my mud settle


From: root
Subject: Re: [Axiom-developer] letting my mud settle
Date: Wed, 9 Nov 2005 12:56:44 -0500

> > 
> > On Tue, Nov 08, 2005 at 12:09:23PM -0500, Bill Page wrote:
> > ...
> > > Building Axiom from sources only, which was apparently a
> > > requirement imposed by restrictive licensing conditions which
> > > apparently prevented any of the previously commercial binary
> > > versions of Axiom to be distributed along with the Axiom source
> > > code, was certainly a challenge because of the way that Axiom
> > > had been designed to be "bootstrapped" from an existing running
> > > copy. But this is no different than the situation with most
> > > compilers and in particular GNU C (gcc).
> >
> > Just for the record this is not true.  Arthur Norman offered to
> > provide an open-source version of CCL to the project which would
> > have allowed you to build and distribute a Unix version of Axiom
> > from the original NAG sources without any modifications.
> 
> Thank you for the correction, Mike. My quip about "restrictive
> licensing conditions" was not intended in any way to be a criticism
> of NAG's agreement to make Axiom open source. I think it was the
> right thing to do and was done in an open and professional manner.
> 
> In fact I was aware through discussions with Arthur that building
> Axiom based on CCL was possible. There is indeed an open source
> version of CCL available through the web. At one point before we
> had an operational version of Axiom on Windows, I was very seriously
> considering this path to a Windows executable.

Arthur worked hard to pull together a version of CCL he could
freely distribute and I thank him for that.

> I think it is a pity that Tim did not follow-through with an initial
> release of Axiom based on CCL. But that was up to him, I guess. His
> priorities were obviously different - wanting to introduce some
> kind of documentation/literate programming system first before making
> Axiom widely available. I think the CCL code is still contained
> in the Axiom source archive but is not in a runable state because
> the complete original make scripts are not included and of course
> none of it was converted to literate programming form.

The first 3 months after I got the sources from NAG were spent trying
to get a Axiom on CCL. That effort failed. I built CCL but was unable
to understand how to build Axiom on top of it. It introduces "yet
another layer" of optimization that would have to be performed as
part of the build process. Since CCL is byte-interpreted the optimizations
are necessary for Axiom to perform well. I never figured out how to
automate the whole process which required a large amount of CCL
expertise.

In frustration I moved to AKCL (never released but i was one of the
"contributing authors" to Schelter's work so I understood the code)
and built Axiom. (AKCL became GCL)

All of the original CCL sources are in the source tree. They are
tar/gzipped in the latest distribution (in zips) but were fully
expanding in versions prior to about --patch-40. Look at 
lsp/ccl/src. 

In fact, you'll see that I WAS doing literate programming on the
CCL sources. See lsp/ccl/src/cslbase/*.pamphlet, for instance.
One early pushback from Norman was that this was the wrong thing
to do. He could not immediately port back patches to his sources.
The discussion is logged in the original mailing lists (some of
which predate getting Axiom on savannah). Rewriting CCL (and Axiom)
in literate form caused a huge debate. This was probably before 
your time. I can understand Arthur's position and it was reasonable
from his point of view. Unfortunately I had no documentation for 
the CCL sources and did not understand how they worked and how to
modify them so I started reading the sources and documenting them.

The Makefile.pamphlet files are in the lsp/ccl/src subtree which
contains all of the files provided with CCL.

> 
> > I provided copies of the Axiom product to several people on the
> > list so you would have had no problem bootstrapping the first
> > open-source versions from the NAG code.
> 
> Do you mean that this original "Axiom product" binary - as distinct
> from the commercial binary version - could have been distributed
> as part of the original open source distribution? If that is true,
> it makes me sad that Tim went to all the trouble to embed bootstrap
> lisp code into the build process.

Bill, we had this discussion. I asked Mike for permission to
distribute the commercial version to you and because of contract
issues the answer was no. There is no "Axiom product" binary distinct
from the commercial version that I'm aware of. In fact, we had a
discussion about getting a single commercial copy just for you.

Mike provided me a copy of the commercial version for development
purposes but I was unable to distribute it due to contract issues.
We have him to thank for early progress.

> 
> > 
> > Eliminating the need for a running Axiom was a good thing to 
> > do, but if anything forced you to do it it was probably the
> > decision to develop on GCL rather than CCL.
> > 
> 
> Thanks. I really appreciate your input on this.

And this is a red herring anyway. Open Source is more than just the
source code. It implies a way of working. Open Source people expect
to type:

   ./configure
   make
   make install

from the sources. But if we needed to distribute a binary product
as part of the 'make' step then we'd have to build binaries that
ran on every possible system so people could build axiom. But if
we're going to distribute a binary axiom in order to build the
system then why distribute the sources? Why rebuild?

And if we don't distribute the binaries then nobody can build it.

So the Axiom build needed to be restructured so it could be built
from scratch. The commercial version of Axiom was useful for A/B
testing but would never have become part of the open source platform.

It has nothing to do with CCL/GCL.

t





reply via email to

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