axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] 20081222.01.tpd.patch (algebra/Makefile add clique mec


From: daly
Subject: [Axiom-developer] 20081222.01.tpd.patch (algebra/Makefile add clique mechanism)
Date: Tue, 23 Dec 2008 04:49:23 -0600

The clique mechanism solves mutual dependencies in source files
======================================================================
diff --git a/changelog b/changelog
index fcdd260..3911cc9 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20081222 tpd src/axiom-website/patches.html 20081222.01.tpd.patch
+20081222 tpd src/algebra/Makefile add clique mechanism
 20081221 tpd src/axiom-website/patches.html 20081221.01.tpd.patch
 20081221 tpd readme add Gorka quote
 20081221 tpd src/axiom-website/download.html XTerm*metaSendsEscape: true
diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet
index e15ac4b..ae238bd 100644
--- a/src/algebra/Makefile.pamphlet
+++ b/src/algebra/Makefile.pamphlet
@@ -878,7 +878,7 @@ LAYER20=\
   ${OUT}/INTHERAL.o ${OUT}/INTPAF.o   ${OUT}/INTPM.o    ${OUT}/INTTOOLS.o \
   ${OUT}/ITRIGMNP.o ${OUT}/JORDAN.o   ${OUT}/KOVACIC.o  ${OUT}/LF.o       \
   ${OUT}/LIE.o      ${OUT}/LODOF.o    ${OUT}/LSQM.o     ${OUT}/OMEXPR.o   \
-  ${OUT}/MCMPLX.o   ${OUT}/MULTFACT.o ${OUT}/MYEXPR.o  \
+  ${OUT}/MCMPLX.o   ${OUT}/MULTFACT.o ${MID}/clique1.spad \
   ${OUT}/NAGD01.o   ${OUT}/NAGD02.o   \
   ${OUT}/NAGF01.o   ${OUT}/NAGF02.o   ${OUT}/NAGF04.o   ${OUT}/NCEP.o     \
   ${OUT}/NLINSOL.o  ${OUT}/NSMP.o     ${OUT}/NUMERIC.o  ${OUT}/OCT.o      \
@@ -932,7 +932,6 @@ LAYER21=\
   ${OUT}/FDIV.o     ${OUT}/FSCINT.o   ${OUT}/FSINT.o    ${OUT}/FS2EXPXP.o \
   ${OUT}/GSERIES.o  ${OUT}/HELLFDIV.o ${OUT}/INVLAPLA.o ${OUT}/IR2F.o     \
   ${OUT}/IRRF2F.o   ${OUT}/LAPLACE.o  ${OUT}/LIMITPS.o  ${OUT}/LODEEF.o   \
-  ${OUT}/MYUP.o \
   ${OUT}/NODE1.o    ${OUT}/ODECONST.o ${OUT}/ODEINT.o   ${OUT}/RECOP.o    \
   ${OUT}/REP.o      \
   ${OUT}/SOLVERAD.o ${OUT}/SULS.o     ${OUT}/SUPXS.o    ${OUT}/UFPS1.o \
@@ -1024,6 +1023,29 @@ ORDER=\
   ${LAYER22}  ${LAYER23} ${LAYER24} ${USERLAYER} ${LAYER0COPY}
 
 @
+\section{Cliques}
+The algebra code sometimes have circular references. The compiler can
+resolve these references directly if all of the required sources
+are in the same source file.
+
+So the idea to remove the BOOTSTRAP code is to cluster the spad
+sources into "cliqueN.spad" files and feed them all to the compiler
+at once.
+<<newcode>>=
+CLIQUE1DEPS = ${MID}/MYUP.spad ${MID}/MYEXPR.spad
+
+${MID}/clique1.spad: ${CLIQUE1DEPS}
+       @echo cl1 making ${OUT}/MYUP.o from ${MID}/clique1.spad
+       @echo cl1 making ${OUT}/MYEXPR.o from ${MID}/clique1.spad
+       @ (cd ${MID} ; \
+          cat ${CLIQUE1DEPS} >clique1.spad ; \
+          if [ -z "${NOISE}" ] ; then \
+           echo ")co clique1.spad" | ${INTERPSYS}  ; \
+           else \
+           echo ")co clique1.spad" | ${INTERPSYS} >${TMP}/trace ; \
+          fi )
+       
+@
 \section{New Algebra dependencies}
 
 New algebra files can depend on new algebra files. Since these files
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 16f1537..c42abc6 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -823,6 +823,8 @@ add guess package<br/>
 Float has exp: Float -> Float<br/>
 <a href="patches/20081221.01.wxh.patch">20081221.01.wxh.patch</a>
 bookvol10.3 add domains<br/>
+<a href="patches/20081222.01.tpd.patch">20081222.01.tpd.patch</a>
+algebra/Makefile add clique mechanism<br/>
 
  </body>
 </html>




reply via email to

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