[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] RE: algebra Makefiles with explicit dependencies, boot
From: |
Bill Page |
Subject: |
[Axiom-developer] RE: algebra Makefiles with explicit dependencies, bootstrap, fixed-points etc. |
Date: |
Fri, 7 Jan 2005 02:58:45 -0500 |
Tim,
I failed in my first simple attempts find any propagation of
dependencies during spad compilation. See for example
http://page.axiom-developer.org/zope/Plone/Members/billpage/CyclicDependenci
es
so I was beginning to think that this did not happen at least,
as you have suggested, not in the case where the signatures
stayed constant. But the Boolean and BasicType dependency case
that I looked at above is quite simple and much more complicated
things are possible in Axiom, so to be really sure I decided to
doing the following test.
1) I built Axiom from the archive in the normal way using 'make'.
2) I copied all of the int/algebra/*.NRLIB/code.lsp files to
where the bootstrap files are located int/algebra/*.lsp so
that I can compare any changes in these files later. All of
these lisp files were generated by the Axiom compiler.
3) Then I deleted all of the int/algebra/*.NRLIB's and touched
the int/algebra/*.spad files in order to force a full re-
compilation of all the spad files on the next 'make'.
4) I ran 'make' again to re-build the NRLIB's. The only difference
with this build is that it is loading the *.o files for the
bootstrap from the *.o's that were compiled from the spad
sources, rather than the bootstrap lisp.
5) Finally using diff I compared the old int/algebra/*.lsp files
to the newly generated int/algebra/*.NRLIB/code.lsp files.
Because of my first experiments, I did not expect to see any
differences, but to my surprize (or was it relief because of
my earlier convictions :) I did find some small but apparently
significant differences in the following files.
--- 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
None of these are bootstrap files.
I am now in the process of re-iterating the above steps to see
if these differences will disappear in the next cycle or if they
will propagate further to other files that depend on these. I
will let you know what happens a little later.
Here are the actual bash scripts that I am running.
----------
$ cat fixedPoint
# fixedPoint:
#
# This script attempts to find a "fixed point" in the Axiom
# algebra that is defined by repeating the build until there
# is no change in the generated lisp code.
#
# Author: Bill Page 6 Jan 2005.
echo "Axiom Fixed Point Build" | tee fixedPoint.log
# The first step is to build Axiom in the usual way starting
# with the bootstrap lisp files in int/algebra/*.lsp that are
# extracted from the *.spad.pamphlet files
# linux or windows
export AXIOM=`pwd`/mnt/linux
export PATH=$AXIOM/bin:$PATH
make clean
make
# At each iteration we copy all of the lisp files from
# int/algebra/*.NRLIB/code.lsp to int/algebra/*.lsp and
# then delete the int/algebra/*.NRLIB files and touch
# all of the int/algebra/*.spad files to force a complete
# re-compilation.
level=1
# The initial bootstrap *.lsp files are overwritten
mv2boot
touch int/algebra/*.spad
# The Axiom compiler will load the most recent algebra code
# from the ${MNT}/${SYS}/algebra/*.o files.
make
echo "***Iteration*** $level" | tee -a fixedPoint.log
# Then we compare the new int/algebra/*.NRLIB/code.lsp
# files to the previous versions at int/algebra/*.lsp
while ! cmp2boot>>fixedPoint.log; do
# Differences are written to a log, then we repeat
# the above steps if necessary
level=$((level+1))
mv2boot
touch int/algebra/*.spad
make
echo "***Iteration*** $level" | tee -a fixedPoint.log
done
--------
$ cat mv2boot
# mv2boot:
#
# This script copies all of the new lisp files back to
# the bootstrap
for i in int/algebra/*.NRLIB/code.lsp; do
cp $i ${i/.NRLIB\/code/};
rm -r ${i/\/code.lsp/}
done
---------
$ cat cmp2boot
# cmp2boot:
#
# This script compares the new lisp files to the old
# bootstrap lisp files. It outputs any differences and
# returns status 1 or 0 if there are no differences.
error=0
for i in int/algebra/*.NRLIB/code.lsp; do
if ! diff -au ${i/.NRLIB\/code/} $i; then error=1; fi
done
exit $error
----------
Does this test procedure make sense to you. Do you think
I have made any logical errors here?
If you have a machine to spare, I would be very interested
to see if you get the same results.
Regards,
Bill Page.
- [Axiom-developer] RE: algebra Makefiles with explicit dependencies, bootstrap, fixe d-points etc., Page, Bill, 2005/01/04
- [Axiom-developer] RE: algebra Makefiles with explicit dependencies, bootstrap, fixe d-points etc., Page, Bill, 2005/01/05
- [Axiom-developer] RE: algebra Makefiles with explicit dependencies, bootstrap, fixed-points etc.,
Bill Page <=
- RE: [Axiom-developer] RE: algebra Makefiles with explicit dependencies, bootstrap, fixed-points etc., Bill Page, 2005/01/07
- Re: [Axiom-developer] RE: algebra Makefiles with explicit dependencies, bootstrap, fixed-points etc., Stephen Wilson, 2005/01/07
- RE: [Axiom-developer] RE: algebra Makefiles with explicit dependencies, bootstrap, fixed-points etc., Bill Page, 2005/01/07
- Message not available
- Re: [Axiom-developer] RE: algebra Makefiles with explicit dependencies, bootstrap, fixed-points etc., root, 2005/01/07
- Message not available
- Re: [Axiom-developer] RE: algebra Makefiles with explicit dependencies, bootstrap, fixed-points etc., root, 2005/01/07
- RE: [Axiom-developer] RE: algebra Makefiles with explicit dependencies, bootstrap, fixed-points etc., Bill Page, 2005/01/07
- RE: [Axiom-developer] RE: algebra Makefiles with explicitdependencies, bootstrap, fixed-points etc., Bill Page, 2005/01/07
- Re: [Axiom-developer] RE: algebra Makefiles with explicitdependencies, bootstrap, fixed-points etc., Stephen Wilson, 2005/01/08
- Re: [Axiom-developer] RE: algebra Makefiles with explicitdependencies, bootstrap, fixed-points etc., Stephen Wilson, 2005/01/08
- Re: [Axiom-developer] RE: algebra Makefiles with explicitdependencies, bootstrap, fixed-points etc., Stephen Wilson, 2005/01/08