[Top][All Lists]

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

RE: [Axiom-developer] RE: algebra Makefiles with explicit dependencies,

From: Bill Page
Subject: RE: [Axiom-developer] RE: algebra Makefiles with explicit dependencies, bootstrap, fixed-points etc.
Date: Fri, 7 Jan 2005 22:50:43 -0500


No, NONE of the files with changes in the lisp code on the 1st
iteration are on the bootstrap list. Here's the list:

> --- int/algebra/BINFILE.lsp     Thu Jan  6 22:22:55 2005
> +++ int/algebra/BINFILE.NRLIB/code.lsp  Thu Jan  6 23:09:32 2005
> --- int/algebra/D01AGNT.lsp     Thu Jan  6 22:22:57 2005
> +++ int/algebra/D01AGNT.NRLIB/code.lsp  Fri Jan  7 00:23:04 2005
> --- int/algebra/FC.lsp  Thu Jan  6 22:23:00 2005
> +++ int/algebra/FC.NRLIB/code.lsp       Thu Jan  6 23:59:50 2005
> --- int/algebra/FFCGP.lsp       Thu Jan  6 22:23:01 2005
> +++ int/algebra/FFCGP.NRLIB/code.lsp    Thu Jan  6 23:39:00 2005
> --- int/algebra/FORTRAN.lsp     Thu Jan  6 22:23:02 2005
> +++ int/algebra/FORTRAN.NRLIB/code.lsp  Fri Jan  7 00:00:23 2005
> --- int/algebra/INBFF.lsp       Thu Jan  6 22:23:04 2005
> +++ int/algebra/INBFF.NRLIB/code.lsp    Fri Jan  7 00:23:21 2005
> --- int/algebra/OMENC.lsp       Thu Jan  6 22:23:10 2005
> +++ int/algebra/OMENC.NRLIB/code.lsp    Thu Jan  6 22:49:46 2005
> --- int/algebra/PATTERN.lsp     Thu Jan  6 22:23:11 2005
> +++ int/algebra/PATTERN.NRLIB/code.lsp  Thu Jan  6 23:45:01 2005
> --- int/algebra/PRIMELT.lsp     Thu Jan  6 22:23:13 2005
> +++ int/algebra/PRIMELT.NRLIB/code.lsp  Thu Jan  6 23:45:25 2005
> --- int/algebra/RECLOS.lsp      Thu Jan  6 22:23:14 2005
> +++ int/algebra/RECLOS.NRLIB/code.lsp   Thu Jan  6 23:45:39 2005
> --- int/algebra/ROIRC.lsp       Thu Jan  6 22:23:14 2005
> +++ int/algebra/ROIRC.NRLIB/code.lsp    Thu Jan  6 23:28:06 2005

There are subtle semantic differences (not formatting differences)
in all of the above files.

But yes ALL of the original bootstrap .lsp files from the
pamphlet files *are* outdated in the sense that they appear to
have been produced by a very different version of Axiom (or
maybe even hand-compiled in some cases?). The lisp code produced
by AXIOM from the spad files corresponding to the bootstrap
files (which is done as the last step in the Algebra build) is
formatted very differently than the original bootstrap lisp code.
A diff of the original bootstrap files shows them as entirely
different although a quick inspection shows that the semantic
content is at least VERY SIMILAR to what Axiom produces for
these files.

In my fixedPoint script, I do not bother to show the initial
differences of the bootstrap files after only the first build -
they are all different (different variable names, pretty
printing etc.) Only a hand-analysis could determine how different
they really are. And of course at this first step it is not
possible to compare any of the non-bootstrap files because we
do not have any lisp files other than those for the bootstrap.

What I do show in the fixedPoint.log file is the result AFTER
first replacing the bootstrap lisp files with the newly generated
lisp for ALL of the SPAD files and then running the make a 2nd
time (I called this the 1st iteration). This is where I find
differences in the generated lisp code in the 2nd pass compared
the lisp code from the first pass. None of these differences
are in the original bootstrap files. In this comparison the none
of the original bootstrap code is still present. It had all been
replaced with newly generated code in the previous step and did
not change in the 2nd step. However other files (non-bootstrap
files) did change. This is why I say that the differences in the
original bootstrap files seem to have "propagated along the
dependencies" to some of the files that directly depend on the
bootstrap files. This is what really had me worried.

In spite of the fact that the original bootstrap files are out
of date, I did (more or less) expect from your description of
the process that on the 2nd pass with all newly generated lisp
files, that the next generation of lisp files would not change,
but they do. On the 3rd pass, finally all of the lisp files
match with the lisp files from the 2nd pass. (I called this the
"fixed point" since no further change can take place after that.)

If I were to replace all of the bootstrap lisp code in the
current pamphlet files with the newly generated lisp code then
it seems likely (unless I am missing something rather basic)
that the build should immediately converge to the fixed point
on the first pass. This is, of course what we should do in the
SHORT TERM. But the longer term question for me is: Do changes
in the spad files really propagate like this from one file to
the next in the dependency chain? If the answer is yes, then
this means that every time we make a change in ANY of the
algebra spad files (not just the spad files that have bootstrap
lisp code), then we will have to run the fixedPoint script in
order to make sure that we have new bootstrap lisp code that
is consistent with the spad code (the system of spad and lisp
files must "converge"). We need to do this because the dependencies
are really cyclic - they really do loop back on themselves. So
changes deeper down in the "lattice" (not really a lattice) can
potentially propagate back around to the bootstrap lisp code.


I am sorry that this email had become so long. I am trying
hard to make sure that my reasoning here is clear to everyone.

Bill Page.

> -----Original Message-----
> From: root [mailto:address@hidden 
> Sent: Friday, January 07, 2005 5:59 PM
> To: address@hidden
> Cc: address@hidden; address@hidden; address@hidden
> Subject: Re: [Axiom-developer] RE: algebra Makefiles with 
> explicit dependencies, bootstrap, fixed-points etc.
> Bill,
> Are any of the "different" files in the bootstrap list?
> Perhaps one of the BOOTSTRAP lisp stanzas is outdated?
> If this were so then the recompile might propagate changes.
> t

reply via email to

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