[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] Building Axiom with unmodified noweb
From: |
Ralf Hemmecke |
Subject: |
[Axiom-developer] Building Axiom with unmodified noweb |
Date: |
Tue, 08 Aug 2006 15:20:07 +0200 |
User-agent: |
Thunderbird 1.5.0.5 (X11/20060719) |
I've grepped the silver/branches/build-improvements branch for the word
'notangle'.
grep -l -R 'notangle' * |grep -v 'svn-base'
The following files contain explicit reference to 'notangle'
build-setup.sh
reference to notangle will go away in the near future...
Makefile.pamphlet
sets the variables TANGLE/WEAVE (that should be OK)
TANGLE=${SPADBIN}/lib/notangle
WEAVE=${SPADBIN}/lib/noweave
src/scripts/document
Uses noweb by setting the following variables.
tangle=$AXIOM/bin/lib/notangle
weave=$AXIOM/bin/lib/noweave
src/algebra/Lattice.pamphlet
MANY lines like
${SPADBIN}/notangle -R"domain XPR XPolynomialRing" \
${IN}/xpoly.spad.pamphlet >XPR.spad
appear here.
The 'src/scripts/document' should get the TANGLE and WEAVE variables
from Makefile.pamphlet or the configure script. Gaby, is the latter
possible?
The file src/algebra/Lattice.pamphlet is just 1.7 MB and about 45,000
lines. My emacs dies when it automatically tries to font-lock that file. :-(
Anyway, I believe quite a lot of the Makefile code in there could be
made much shorter. In particular, lines like the one above could be
generated by looking into ${IN}/xpoly.spad.pamphlet.
>perl -n -e 'if
(/^<<(domain|category|package)\s+([^\s]+)\s+([^\s]+)>>=\s*$/){print
"[$1] ($2) <$3>\n"}' src/algebra/xpoly.spad.pamphlet
(that is just ONE line and it produces...)
[domain] (OFMONOID) <OrderedFreeMonoid>
[category] (FMCAT) <FreeModuleCat>
[domain] (FM1) <FreeModule1>
[category] (XALG) <XAlgebra>
[category] (XFALG) <XFreeAlgebra>
[category] (XPOLYC) <XPolynomialsCat>
[domain] (XPR) <XPolynomialRing>
[domain] (XDPOLY) <XDistributedPolynomial>
[domain] (XRPOLY) <XRecursivePolynomial>
[domain] (XPOLY) <XPolynomial>
In Lattice.pamphlet we find ...
cd ${MID};${SPADBIN}/notangle ${IN}/xpoly.spad.pamphlet >xpoly.spad
cp ${MID}/FMCAT.NRLIB/code.o ${OUT}/FMCAT.o
cd ${MID} ; echo ')co FMCAT.spad' | ${INTERPSYS}
${SPADBIN}/notangle -R"category FMCAT FreeModuleCat"
${IN}/xpoly.spad.pamphlet >FMCAT.spad
cp ${MID}/FM1.NRLIB/code.o ${OUT}/FM1.o
cd ${MID} ; echo ')co FM1.spad' | ${INTERPSYS}
${SPADBIN}/notangle -R"domain FM1 FreeModule1" ${IN}/xpoly.spad.pamphlet
>FM1.spad
etc.
I am quite sure that all the hundreds of targets in Lattice.pamphlet
follow exactly the same pattern. Shouldn't we have a short program that
replaces 40,000 Makefile lines???
Ralf
- [Axiom-developer] Building Axiom with unmodified noweb,
Ralf Hemmecke <=