axiom-developer
[Top][All Lists]
Advanced

[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




reply via email to

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