[Axiom-commit] SF.net SVN: axiom: [31] trunk/axiom
Brought to you by:
daly,
starseeker
From: <dos...@us...> - 2006-05-02 09:55:56
|
Revision: 31 Author: dos-reis Date: 2006-05-02 02:50:08 -0700 (Tue, 02 May 2006) ViewCVS: http://svn.sourceforge.net/axiom/?rev=31&view=rev Log Message: ----------- sync with gold branch Modified Paths: -------------- trunk/axiom/CHANGELOG trunk/axiom/ChangeLog trunk/axiom/FAQ trunk/axiom/Makefile trunk/axiom/Makefile.pamphlet trunk/axiom/README trunk/axiom/lsp/Makefile.pamphlet trunk/axiom/src/algebra/Makefile.pamphlet trunk/axiom/src/algebra/numtheor.spad.pamphlet trunk/axiom/src/algebra/sf.spad.pamphlet trunk/axiom/src/boot/Makefile.pamphlet trunk/axiom/src/doc/book.pamphlet trunk/axiom/src/doc/bookvol1.pamphlet trunk/axiom/src/doc/endpaper.pamphlet trunk/axiom/src/hyper/Makefile.pamphlet trunk/axiom/src/input/Makefile.pamphlet trunk/axiom/src/input/bug10069.input.pamphlet trunk/axiom/src/input/wester.input.pamphlet trunk/axiom/src/input/zimmer.input.pamphlet trunk/axiom/src/interp/bookvol5.pamphlet trunk/axiom/src/interp/foam_l.lisp.pamphlet trunk/axiom/src/interp/macros.lisp.pamphlet trunk/axiom/src/interp/pf2sex.boot.pamphlet trunk/axiom/src/interp/setq.lisp.pamphlet trunk/axiom/zips/ChangeLog Added Paths: ----------- trunk/axiom/lsp/ChangeLog trunk/axiom/src/algebra/ChangeLog trunk/axiom/src/boot/ChangeLog trunk/axiom/src/doc/ChangeLog trunk/axiom/src/hyper/ChangeLog trunk/axiom/src/input/ChangeLog trunk/axiom/src/input/mapleok.input.pamphlet trunk/axiom/zips/gcl-2.6.8pre.cmpnew.gcl_cmpcall.lsp.patch trunk/axiom/zips/gcl-2.6.8pre.cmpnew.gcl_cmpflet.lsp.patch trunk/axiom/zips/gcl-2.6.8pre.configure.in.patch trunk/axiom/zips/gcl-2.6.8pre.configure.patch trunk/axiom/zips/gcl-2.6.8pre.h.linux.defs.patch trunk/axiom/zips/gcl-2.6.8pre.tgz trunk/axiom/zips/gcl-2.6.8pre.unixport.init_gcl.lsp.in.patch trunk/axiom/zips/gcl-2.6.8pre.unixport.makefile.patch trunk/axiom/zips/noweb.src.awk.totex.nw.patch trunk/axiom/zips/noweb.src.awkname.patch trunk/axiom/zips/noweb.src.lib.toascii.nw.patch trunk/axiom/zips/noweb.src.lib.toascii.patch trunk/axiom/zips/noweb.src.shell.cpif.patch trunk/axiom/zips/noweb.src.shell.nonu.patch trunk/axiom/zips/noweb.src.shell.noroff.patch trunk/axiom/zips/noweb.src.shell.roff.mm.patch trunk/axiom/zips/noweb.src.shell.roff.nw.patch trunk/axiom/zips/noweb.src.shell.toroff.patch Removed Paths: ------------- trunk/axiom/zips/gcl-2.6.6.tgz Modified: trunk/axiom/CHANGELOG =================================================================== --- trunk/axiom/CHANGELOG 2006-05-02 05:52:40 UTC (rev 30) +++ trunk/axiom/CHANGELOG 2006-05-02 09:50:08 UTC (rev 31) @@ -1,3 +1,65 @@ +20060417 tpd --patch-49 +20060417 tpd zips/gcl-2.6.8pre.tgz updated +20060417 tpd zips/gcl-2.6.8pre.unixport.init_gcl.lsp.in.patch changed +20060417 tpd lsp/Makefile gcl-2.6.8pre.configure.patch reverted +20060417 tpd lsp/Makefile gcl-2.6.8pre.configure.in.patch reverted +20060417 rhx Ralf Hemmecke <ra...@he...> changed globally +20060417 tpd src/input/wester.input add )clear properties p +20060417 tpd src/input/Makefile fix dropt.input +20060417 tpd src/input/Makefile add zimmer.input +20060417 tpd src/input/zimmer.input fixed. +20060416 tpd --patch-48 +20060416 tpd Makefile remove gcl from lsp subdirectory when cleaning +20060416 tpd lsp/Makefile gcl-2.6.8pre.configure.patch applied +20060416 tpd Makefile noweb patches reverted due to missing tempfile fn +20060416 tpd src/input/Makefile add mapleok.input +20060416 tpd src/input/mapleok.input added +20060416 tpd Makefile noweb.src.shell.roff.mm.patch applied +20060416 tpd Makefile noweb.src.lib.toascii.nw.patch applied +20060416 tpd Makefile noweb.src.shell.toroff.patch applied +20060416 tpd Makefile noweb.src.shell.noroff.patch applied +20060416 tpd Makefile noweb.src.shell.roff.nw.patch applied +20060416 tpd Makefile noweb.src.shell.nonu.patch applied +20060416 tpd Makefile noweb.src.shell.cpif.patch applied +20060416 tpd Makefile noweb.src.lib.toascii.patch applied +20060416 tpd Makefile noweb.src.awk.totex.nw.patch applied +20060416 tpd Makefile noweb.src.awkname.patch applied +20060416 tpd lsp/Makefile gcl-2.6.8pre stanza created +20060416 tpd Makefile make litcmds conditional to stop duplicate copy +20060416 tpd Makefile GCLVERSION=gcl-2.6.8pre +20060416 tpd zips/gcl-2.6.8pre.cmpnew.gcl_cmpcall.lsp.patch created +20060416 tpd zips/gcl-2.6.8pre.cmpnew.gcl_cmpflet.lsp.patch created +20060416 tpd zips/gcl-2.6.8pre.unixport.init_gcl.lsp.in.patch created +20060416 tpd zips/gcl-2.6.8pre.unixport.makefile.patch created +20060416 tpd zips/gcl-2.6.8pre.h.linux.defs.patch created +20060416 tpd zips/gcl-2.6.8pre.configure.in.patch created +20060416 tpd zips/gcl-2.6.8pre.tgz created +20060412 gxv FAQ 40: Text entry fails in the hypertex browser window +20060412 fxl src/doc/endpaper removed 'final' option to hyperref +20060412 tpd Makefile fix clean stanza to delete subdirs +20060405 tpd src/input/bug10069 update documentation +20060405 tpd src/input/bug10069 remove duplicate cot(0.0) +20060404 tpd src/interp/bookvol5 *suppress-compiler-notes* t +20060404 tpd src/interp/bookvol5 *suppress-compiler-warnings* t +20060404 tpd src/interp/bookvol5 *compile-verbose* nil +20060402 gdr src/boot/Makefile \ennd -> \end typo fixed +20060331 gxv src/interp/macros.lisp fix bugs #114 and #196 +20060307 tpd src/algebra/numtheor.spad minor syntactic edit in explanation +20060302 gxv src/algebra/sf.spad add doubleFloatFormat function +20060302 gxv src/interp/pf2sex.boot handle $useBFasDefault in float2sex +20060302 fxl src/doc/bookvol1 typo fixes +20060302 fxl Frederic Lehobey <Fre...@fr...> +20060216 axh src/hyper/Makefile add execute bit to htsearch, presea +20060216 axh Antoine.Hersen <ant...@gm...> +20060211 gxv src/interp/foam_l.lisp fix PtrMagicEq final case +20060117 wsp lsp/Makefile missing quote mark in configure.in patch +20060116 mvz src/doc/book fix typo +20060116 mvz Matijs van Zuijlen <Mat...@xs...> +20060115 rhx src/interp/setq.lisp 2006 -> 2005 +20060115 rhx README 2006 -> 2005 +20060115 rhx src/algebra/Makefile add sort to findSpadFiles +20060115 rhx src/algebra/Makefile add sort to findBootstrapFiles +20060115 rhx Ralf Hemmecke <ra...@he...> 20060102 tpd src/interp/sys-pkg.lisp FOAD -> FOAM 20060102 tpd src/interp/bookvol5 add getenviron 20060102 tpd src/interp/bookvol5 add reclaim Modified: trunk/axiom/ChangeLog =================================================================== --- trunk/axiom/ChangeLog 2006-05-02 05:52:40 UTC (rev 30) +++ trunk/axiom/ChangeLog 2006-05-02 09:50:08 UTC (rev 31) @@ -1,3 +1,11 @@ +2006-05-02 Gabriel Dos Reis <gd...@cs...> + + * CHANGELOG: Sync with gold branch. + * FAQ: Likewise. + * Makefile: Likewise. + * Makefile.pamphlet: Likewise. + * README: Likewise. + 2006-05-02 Gabriel Dos Reis <gd...@ac...> * axiomlogo.jpg: Fix corruption inherited from the conversion to Modified: trunk/axiom/FAQ =================================================================== --- trunk/axiom/FAQ 2006-05-02 05:52:40 UTC (rev 30) +++ trunk/axiom/FAQ 2006-05-02 09:50:08 UTC (rev 31) @@ -35,9 +35,10 @@ FAQ 34: How can I find out about a domain? FAQ 35: Why do .axiom.input defined functions fail in axiom? FAQ 36: Axiom won't build on FC3 -FAQ 37: Axiom won't build on FC4 +FAQ 37: Axiom won't build on FC4 or FC5 FAQ 38: How can I debug algebra code? FAQ 39: How can I access lisp code from the Axiom command line? +FAQ 40: Text entry fails in the hypertex browser window =================================================================== FAQ 0: How do I use Axiom? @@ -1219,7 +1220,7 @@ =================================================================== -FAQ 37: Axiom won't build on FC4 +FAQ 37: Axiom won't build on FC4 or FC5 =================================================================== You need to turn off dynamic library load point randomization. As root do: @@ -1452,3 +1453,11 @@ BOOT>(restart) +=================================================================== +FAQ 40: Text entry fails in the hypertex browser window +=================================================================== + +Check that "Num Lock" is disabled. + +I appears that the Num Lock key prevents the text window +from accepting text. This is a known problem with no current fix. Modified: trunk/axiom/Makefile =================================================================== --- trunk/axiom/Makefile 2006-05-02 05:52:40 UTC (rev 30) +++ trunk/axiom/Makefile 2006-05-02 09:50:08 UTC (rev 31) @@ -1,4 +1,4 @@ -VERSION="Axiom (December 2005)" +VERSION="Axiom (April 2006)" SPD=$(shell pwd) SYS=$(notdir $(AXIOM)) SPAD=${SPD}/mnt/${SYS} @@ -13,7 +13,8 @@ #GCLVERSION=gcl-2.6.5 #GCLVERSION=gcl-2.6.6 #GCLVERSION=gcl-2.6.7pre -GCLVERSION=gcl-2.6.7 +#GCLVERSION=gcl-2.6.7 +GCLVERSION=gcl-2.6.8pre AWK=gawk GCLDIR=${LSP}/${GCLVERSION} SRC=${SPD}/src @@ -44,7 +45,7 @@ TANGLE=${TANGLE} VERSION=${VERSION} PATCH=${PATCH} DOCUMENT=${DOCUMENT} \ WEAVE=${WEAVE} -all: noweb litcmds +all: noweb ${MNT}/${SYS}/bin/Makefile.pamphlet @ echo 1 making a ${SYS} system, PART=${PART} SUBPART=${SUBPART} @ echo 2 Environment ${ENV} @ ${TANGLE} -t8 -RMakefile.${SYS} Makefile.pamphlet >Makefile.${SYS} @@ -54,7 +55,7 @@ @ ${ENV} $(MAKE) -f Makefile.${SYS} @echo 3 finished system build on `date` | tee >lastBuildDate -start: noweb litcmds +start: noweb ${MNT}/${SYS}/bin/Makefile.pamphlet book: @ echo 79 building the book as ${MNT}/${SYS}/doc/book.dvi @@ -98,7 +99,7 @@ @rm -rf ${OBJ}/noweb @rm -f noweb -litcmds: +${MNT}/${SYS}/bin/Makefile.pamphlet: @echo 0 ${ENV} @echo 10 copying ${SRC}/scripts to ${MNT}/${SYS}/bin @cp -pr ${SRC}/scripts/* ${MNT}/${SYS}/bin @@ -121,25 +122,27 @@ @echo -document: noweb litcmds +document: noweb ${MNT}/${SYS}/bin/Makefile.pamphlet @ echo 4 making a ${SYS} system, PART=${PART} SUBPART=${SUBPART} @ echo 5 Environment ${ENV} @ ${TANGLE} -t8 -RMakefile.${SYS} Makefile.pamphlet >Makefile.${SYS} @ ${ENV} $(MAKE) -f Makefile.${SYS} document @echo 6 finished system build on `date` | tee >lastBuildDate -clean: noweb litcmds +clean: @ echo 7 making a ${SYS} system, PART=${PART} SUBPART=${SUBPART} @ echo 8 Environment ${ENV} - @ mkdir -p ${MNT}/${SYS}/doc/src - @ ${TANGLE} -t8 -RMakefile.${SYS} Makefile.pamphlet >Makefile.${SYS} - @ ${ENV} $(MAKE) -f Makefile.${SYS} clean + @ rm -f lsp/Makefile.dvi @ rm -f lsp/Makefile - @ rm -f src/Makefile + @ rm -rf lsp/gcl* @ rm -f noweb @ rm -f trace - @ rm -f *~ @ rm -f Makefile.${SYS} - @ rm -rf ${MNT} - @echo 9 finished system build on `date` | tee >lastBuildDate + @ rm -f Makefile.dvi + @ rm -rf int + @ rm -rf obj + @ rm -rf mnt + @ for i in `find . -name "*~"` ; do rm -f $$i ; done + @ for i in `find src -name "Makefile"` ; do rm -f $$i ; done + @ for i in `find src -name "Makefile.dvi"` ; do rm -f $$i ; done Modified: trunk/axiom/Makefile.pamphlet =================================================================== --- trunk/axiom/Makefile.pamphlet 2006-05-02 05:52:40 UTC (rev 30) +++ trunk/axiom/Makefile.pamphlet 2006-05-02 09:50:08 UTC (rev 31) @@ -18,11 +18,16 @@ of their subdirectories. This forms a natural tree walk of the directory structure. Fourth, they have to explain all of the details about the directory, the files it manages and its subdirectories. + +The clean stanza has been modified to be more effective. Previously +it walked the Makefile hierarchy trying to clean subdirectories. This +method often fails for various reasons (e.g. permissions, incomplete +builds, etc). Now we simply remove the created files directly. \eject \subsection{The Top Level Makefile} <<*>>= <<environment>> -all: noweb litcmds +all: noweb ${MNT}/${SYS}/bin/Makefile.pamphlet @ echo 1 making a ${SYS} system, PART=${PART} SUBPART=${SUBPART} @ echo 2 Environment ${ENV} @ ${TANGLE} -t8 -RMakefile.${SYS} Makefile.pamphlet >Makefile.${SYS} @@ -32,42 +37,46 @@ @ ${ENV} $(MAKE) -f Makefile.${SYS} @echo 3 finished system build on `date` | tee >lastBuildDate -start: noweb litcmds +start: noweb ${MNT}/${SYS}/bin/Makefile.pamphlet <<book>> <<noweb>> <<literate commands>> <<install>> -document: noweb litcmds +document: noweb ${MNT}/${SYS}/bin/Makefile.pamphlet @ echo 4 making a ${SYS} system, PART=${PART} SUBPART=${SUBPART} @ echo 5 Environment ${ENV} @ ${TANGLE} -t8 -RMakefile.${SYS} Makefile.pamphlet >Makefile.${SYS} @ ${ENV} $(MAKE) -f Makefile.${SYS} document @echo 6 finished system build on `date` | tee >lastBuildDate -clean: noweb litcmds +clean: @ echo 7 making a ${SYS} system, PART=${PART} SUBPART=${SUBPART} @ echo 8 Environment ${ENV} - @ mkdir -p ${MNT}/${SYS}/doc/src - @ ${TANGLE} -t8 -RMakefile.${SYS} Makefile.pamphlet >Makefile.${SYS} - @ ${ENV} $(MAKE) -f Makefile.${SYS} clean + @ rm -f lsp/Makefile.dvi @ rm -f lsp/Makefile - @ rm -f src/Makefile + @ rm -rf lsp/gcl* @ rm -f noweb @ rm -f trace - @ rm -f *~ @ rm -f Makefile.${SYS} - @ rm -rf ${MNT} - @echo 9 finished system build on `date` | tee >lastBuildDate + @ rm -f Makefile.dvi + @ rm -rf int + @ rm -rf obj + @ rm -rf mnt + @ for i in `find . -name "*~"` ; do rm -f $$i ; done + @ for i in `find src -name "Makefile"` ; do rm -f $$i ; done + @ for i in `find src -name "Makefile.dvi"` ; do rm -f $$i ; done @ \subsection{Literate Commands} Since this is the first build message that gets generated we echo -the ENV variable for debugging purposes. +the ENV variable for debugging purposes. We use the specific file +[[${MNT}/${SYS}/bin/Makefile.pamphlet]] as the trigger to prevent +duplicate execution of this stanza. <<literate commands>>= -litcmds: +${MNT}/${SYS}/bin/Makefile.pamphlet: @echo 0 ${ENV} @echo 10 copying ${SRC}/scripts to ${MNT}/${SYS}/bin @cp -pr ${SRC}/scripts/* ${MNT}/${SYS}/bin @@ -282,7 +291,7 @@ to the [[$SPADBIN/document]] command. This will allow it to be changed on the command line. <<environment>>= -VERSION="Axiom (December 2005)" +VERSION="Axiom (April 2006)" SPD=$(shell pwd) SYS=$(notdir $(AXIOM)) SPAD=${SPD}/mnt/${SYS} @@ -328,7 +337,7 @@ systems, such as freebsd, we do not build noweb. The noweb stanza would normally create this but might not have been executed. <<rootdirs>>= -rootdirs: +rootdirs: ${MNT}/${SYS}/bin/Makefile.pamphlet @echo 11 checking directory structure @echo 12 Environment: ${ENV} @mkdir -p ${INT} @@ -395,6 +404,60 @@ We also patch the use of [[make]] to use [[${MAKE}]]. BSD style systems use [[gmake]] rather than [[make]] so we need to pass this information from above for the build to succeed. + +\subsection{Noweb patch skipped} +We tried to applied this noweb patch but the function [[tempfile]] +used in all of the patches does not exist therefore this patch +has been removed pending a fix. The referenced patch files still +exist in the zips directory. + +\begin{verbatim} +The [[mv noweb.src.awkname.patch]] file, +the [[noweb.src.awk.totex.nw.patch]] file, +the [[noweb.src.lib.toascii.patch]] file, +the [[noweb.src.shell.cpif.patch]] file, +the [[noweb.src.shell.nonu.patch]] file, +the [[noweb.src.shell.roff.nw.patch]] file, +the [[noweb.src.shell.noroff.patch]] file, +the [[noweb.src.shell.toroff.patch]] file, +the [[noweb.src.lib.toascii.nw.patch]] file, and +the [[noweb.src.shell.roff.mm.patch]] file remove the insecure temp file +problem. + +We removed the same patch to +[[noweb.src.lib.toascii.patch]] because this is not a source file. + +noweb: + @echo 13 making noweb + @mkdir -p ${OBJ}/noweb + @mkdir -p ${TMP} + @mkdir -p ${MNT}/${SYS}/bin/lib + @( cd ${OBJ}/noweb ; \ + tar -zxf ${ZIPS}/noweb-2.10a.tgz ; \ + cd ${OBJ}/noweb/src ; \ + ${PATCH} <${ZIPS}/noweb.src.Makefile.patch ; \ + ${PATCH} <${ZIPS}/noweb.src.awkname.patch ; \ + cd ${OBJ}/noweb/src/c ; \ + ${PATCH} <${ZIPS}/noweb.modules.c.patch ; \ + cd ${OBJ}/noweb/src/awk ; \ + ${PATCH} <${ZIPS}/noweb.src.awk.totex.nw.patch ; \ + cd ${OBJ}/noweb/src/lib ; \ + ${PATCH} <${ZIPS}/noweb.src.lib.toascii.nw.patch ; \ + cd ${OBJ}/noweb/src/shell ; \ + ${PATCH} <${ZIPS}/noweb.src.shell.cpif.patch ; \ + ${PATCH} <${ZIPS}/noweb.src.shell.nonu.patch ; \ + ${PATCH} <${ZIPS}/noweb.src.shell.roff.nw.patch ; \ + ${PATCH} <${ZIPS}/noweb.src.shell.noroff.patch ; \ + ${PATCH} <${ZIPS}/noweb.src.shell.toroff.patch ; \ + ${PATCH} <${ZIPS}/noweb.src.shell.roff.mm.patch ; \ + cd ${OBJ}/noweb/src ; \ + ./awkname ${AWK} ; \ + ${ENV} ${MAKE} BIN=${MNT}/${SYS}/bin/lib LIB=${MNT}/${SYS}/bin/lib \ + MAN=${MNT}/${SYS}/bin/man \ + TEXINPUTS=${MNT}/${SYS}/bin/tex all install >${TMP}/trace ) + @echo The file marks the fact that noweb has been made > noweb + +\end{verbatim} <<noweb>>= noweb: @echo 13 making noweb @@ -505,7 +568,7 @@ more efficient. The [[sys-proclaims]] file contains type information about standard common lisp function calls. <<lsp>>= -lspdir: rootdirs litcmds ${LSP}/Makefile +lspdir: rootdirs ${MNT}/${SYS}/bin/Makefile.pamphlet ${LSP}/Makefile @echo 19 making ${LSP} @mkdir -p ${OBJ}/${SYS}/bin @mkdir -p ${OBJ}/${SYS}/lsp @@ -565,15 +628,22 @@ @ \subsection{clean} <<clean>>= -clean: nowebclean libspadclean lspclean - @echo 23 all subdirectories cleaned - @rm -f Makefile.${SYS} - @rm -f Makefile.dvi - @rm -f lastBuildDate - @rm -f *~ - @rm -rf int - @rm -rf obj - @rm -rf mnt +clean: + @ echo 7 making a ${SYS} system, PART=${PART} SUBPART=${SUBPART} + @ echo 8 Environment ${ENV} + @ rm -f lsp/Makefile.dvi + @ rm -f lsp/Makefile + @ rm -f noweb + @ rm -f trace + @ rm -f *~ + @ rm -f Makefile.${SYS} + @ rm -rf ${MNT} + @ rm -rf int + @ rm -rf obj + @ rm -rf mnt + @ for i in `find src -name "Makefile"` ; do rm -f $i ; done + @ for i in `find src -name "Makefile.dvi"` ; do rm -f $i ; done + @ \section{The Platform Makefiles} @@ -698,7 +768,8 @@ #GCLVERSION=gcl-2.6.5 #GCLVERSION=gcl-2.6.6 #GCLVERSION=gcl-2.6.7pre -GCLVERSION=gcl-2.6.7 +#GCLVERSION=gcl-2.6.7 +GCLVERSION=gcl-2.6.8pre @ \subsubsection{The [[GCLOPTS]] configure variable} Modified: trunk/axiom/README =================================================================== --- trunk/axiom/README 2006-05-02 05:52:40 UTC (rev 30) +++ trunk/axiom/README 2006-05-02 09:50:08 UTC (rev 31) @@ -166,7 +166,7 @@ )credits at the axiom command prompt will prettyprint the list. -"An alphabetical listing of contributors to AXIOM (to November, 2006):" +"An alphabetical listing of contributors to AXIOM (to November, 2005):" "Cyril Alberga Roy Adler Richard Anderson" "George Andrews" "Henry Baker Stephen Balzac Yurij Baransky" Added: trunk/axiom/lsp/ChangeLog =================================================================== --- trunk/axiom/lsp/ChangeLog (rev 0) +++ trunk/axiom/lsp/ChangeLog 2006-05-02 09:50:08 UTC (rev 31) @@ -0,0 +1,4 @@ +2006-05-02 Gabriel Dos Reis <gd...@cs...> + + * Makefile.pamphlet: Keep in sync with gold branch. + Modified: trunk/axiom/lsp/Makefile.pamphlet =================================================================== --- trunk/axiom/lsp/Makefile.pamphlet 2006-05-02 05:52:40 UTC (rev 30) +++ trunk/axiom/lsp/Makefile.pamphlet 2006-05-02 09:50:08 UTC (rev 31) @@ -14,7 +14,14 @@ it is not rebuilt. We need to do this because we have no control over the gcl Makefiles. -Patches are applied to the distribution before we do the configure. +\section{Gnu Common Lisp 2.6.7} +There is a typo in configure.in that is only detected under some +versions of bash. The problem is a missing single-quote mark. +<<gcl-2.6.7.configure.in.patch>>= + @(cd ${GCLVERSION} ; \ + echo 28a applying configure.in patch ; \ + ${PATCH} <${SPD}/zips/${GCLVERSION}.configure.in.patch ) +@ \section{Gnu Common Lisp 2.6.7pre} \subsection{run-process patch} The gcl-2.6.6.h.linux.h.patch has been accepted into the mainline lisp @@ -184,6 +191,14 @@ touch ${OBJ}/${SYS}/lib/cfuns-c.ini ; \ touch ${OBJ}/${SYS}/lib/sockio-c.ini ) @ +<<gcl-2.6.8pre.socket.patch>>= + @(cd ${GCLVERSION}/h ; \ + echo 3 applying EXTRAS patch to h/linux.defs ; \ + ${PATCH} <${SPD}/zips/${GCLVERSION}.h.linux.defs.patch ) + @(echo 4 setup ini files for EXTRAS patch ; \ + touch ${OBJ}/${SYS}/lib/cfuns-c.ini ; \ + touch ${OBJ}/${SYS}/lib/sockio-c.ini ) +@ \subsubsection{fortran patch} Communication over sockets (basically to the NAG fortran library) requires us to have XDR enabled. @@ -255,6 +270,11 @@ echo 6 applying libspad.a patch to unixport/makefile ; \ ${PATCH} <${SPD}/zips/${GCLVERSION}.unixport.makefile.patch ) @ +<<gcl-2.6.8pre.libspad.patch>>= + @(cd ${GCLVERSION}/unixport ; \ + echo 6 applying libspad.a patch to unixport/makefile ; \ + ${PATCH} <${SPD}/zips/${GCLVERSION}.unixport.makefile.patch ) +@ \subsubsection{toploop patch} This patch turns off the banner display every time GCL starts. We could use the -batch flag but that would be a pervasive change. @@ -306,6 +326,13 @@ echo 7 applying toploop patch to unixport/init_gcl.lsp ; \ ${PATCH} <${SPD}/zips/${GCLVERSION}.unixport.init_gcl.lsp.in.patch ) @ +Now, for some reason, lisp needs to tell you what the temporary directory +for the compiler will be. We eliminate this noise as well as the banner. +<<gcl-2.6.8pre.toploop.patch>>= + @(cd ${GCLVERSION}/unixport ; \ + echo 7 applying toploop patch to unixport/init_gcl.lsp ; \ + ${PATCH} <${SPD}/zips/${GCLVERSION}.unixport.init_gcl.lsp.in.patch ) +@ \subsubsection{object to float patch} GCL 2.5.2 contains no reference to this function and it was removed. Axiom uses this function so we re-implement it here. @@ -438,6 +465,14 @@ echo 12 applying tail-recursive noise patch ; \ ${PATCH} <${SPD}/zips/${GCLVERSION}.cmpnew.gcl_cmpcall.lsp.patch ) @ +<<gcl-2.6.8pre.tail-recursive.patch>>= + @(cd ${GCLVERSION}/cmpnew ; \ + echo 11 applying tail-recursive noise patch ; \ + ${PATCH} <${SPD}/zips/${GCLVERSION}.cmpnew.gcl_cmpflet.lsp.patch ) + @(cd ${GCLVERSION}/cmpnew ; \ + echo 12 applying tail-recursive noise patch ; \ + ${PATCH} <${SPD}/zips/${GCLVERSION}.cmpnew.gcl_cmpcall.lsp.patch ) +@ \subsubsection{collectfn fix} GCL-2.6.1 renamed collectfn.lsp to gcl\_collectfn.lsp. We rename it back into place because we have later Makefiles @@ -518,6 +553,14 @@ echo 27 copy sys-proclaim.lisp to ${OBJ}/${SYS}/lsp/sys-proclaim.lisp ; \ cp sys-proclaim.lisp ${OBJ}/${SYS}/lsp/sys-proclaim.lisp ) @ +<<gcl-2.6.8pre.collectfn.fix>>= + @(cd ${GCLVERSION}/cmpnew ; \ + echo 26 copy gcl_collectfn.lsp to ${OBJ}/${SYS}/lsp/collectfn.lsp ; \ + cp gcl_collectfn.lsp ${OBJ}/${SYS}/lsp/collectfn.lsp ) + @(cd ${GCLVERSION}/lsp ; \ + echo 27 copy sys-proclaim.lisp to ${OBJ}/${SYS}/lsp/sys-proclaim.lisp ; \ + cp sys-proclaim.lisp ${OBJ}/${SYS}/lsp/sys-proclaim.lisp ) +@ \subsection{The GCL-2.5.2 stanza} \subsubsection{Configure and Make GCL} We enable several features of GCL. @@ -1014,6 +1057,7 @@ gcldir: @echo 2 building ${GCLVERSION} @tar -zxf ${ZIPS}/${GCLVERSION}.tgz +<<gcl-2.6.7.configure.in.patch>> <<gcl-2.6.7.socket.patch>> <<gcl-2.6.7.libspad.patch>> <<gcl-2.6.7.toploop.patch>> @@ -1042,6 +1086,48 @@ @( cd ccl ; ${ENV} ${MAKE} clean ) @ +\subsection{The GCL-2.6.8pre stanza} +This stanza will be written out when the GCLVERSION variable is +``gcl-2.6.8pre''. It will overwrite the default version. See the +top level Makefile.pamphlet. +<<gcl-2.6.8pre>>= +# gcl version 2.6.8pre +OUT=${OBJ}/${SYS}/bin + +all: + @echo 1 building ${LSP} ${GCLVERSION} + +gcldir: + @echo 2 building ${GCLVERSION} + @tar -zxf ${ZIPS}/${GCLVERSION}.tgz +<<gcl-2.6.8pre.socket.patch>> +<<gcl-2.6.8pre.libspad.patch>> +<<gcl-2.6.8pre.toploop.patch>> +<<gcl-2.6.8pre.tail-recursive.patch>> +<<gcl-2.6.8pre.collectfn.fix>> +<<gclConfigureMake>> + @echo 13 finished system build on `date` | tee >gcldir + +ccldir: ${LSP}/ccl/Makefile + @echo 14 building CCL + @mkdir -p ${INT}/ccl + @mkdir -p ${OBJ}/${SYS}/ccl + @( cd ccl ; ${ENV} ${MAKE} ) + +${LSP}/ccl/Makefile: ${LSP}/ccl/Makefile.pamphlet + @echo 15 making ${LSP}/ccl/Makefile from ${LSP}/ccl/Makefile.pamphlet + @( cd ccl ; ${DOCUMENT} ${NOISE} Makefile ) + +document: + @echo 16 making docs in ${LSP} + @mkdir -p ${INT}/doc/lsp/ccl + @( cd ccl ; ${ENV} ${MAKE} document ) + +clean: + @echo 17 cleaning ${LSP}/ccl + @( cd ccl ; ${ENV} ${MAKE} clean ) + +@ \section{Gnu Common Lisp 2.5} GCL 2.5 requires a different Makefile. In particular, GCL 2.5 has a different method of building the lisp image. And, just to Added: trunk/axiom/src/algebra/ChangeLog =================================================================== --- trunk/axiom/src/algebra/ChangeLog (rev 0) +++ trunk/axiom/src/algebra/ChangeLog 2006-05-02 09:50:08 UTC (rev 31) @@ -0,0 +1,6 @@ +2006-05-02 Gabriel Dos Reis <gd...@cs...> + + * Makefile.pamphlet: Sync with gold branch. + * numtheor.spad.pamphlet: Likewise. + * sf.spad.pamphlet: Likewise. + Modified: trunk/axiom/src/algebra/Makefile.pamphlet =================================================================== --- trunk/axiom/src/algebra/Makefile.pamphlet 2006-05-02 05:52:40 UTC (rev 30) +++ trunk/axiom/src/algebra/Makefile.pamphlet 2006-05-02 09:50:08 UTC (rev 31) @@ -1769,7 +1769,7 @@ <<findSpadFiles>>= -egrep '@<<(domain|package|category) .*>>=' *.spad.pamphlet | uniq | \ +egrep '@<<(domain|package|category) .*>>=' *.spad.pamphlet | sort | uniq | \ awk -F: '{ chunk=substr($2,3,length($2)-5); split(chunk,part," "); @@ -1832,7 +1832,7 @@ <<findBootstrapFiles>>= -egrep '@<<.*BOOTSTRAP>>=' *.spad.pamphlet | uniq | \ +egrep '@<<.*BOOTSTRAP>>=' *.spad.pamphlet | sort | uniq | \ awk -F: '{ chunk=substr($2,3,length($2)-5); split(chunk,part," "); Modified: trunk/axiom/src/algebra/numtheor.spad.pamphlet =================================================================== --- trunk/axiom/src/algebra/numtheor.spad.pamphlet 2006-05-02 05:52:40 UTC (rev 30) +++ trunk/axiom/src/algebra/numtheor.spad.pamphlet 2006-05-02 09:50:08 UTC (rev 31) @@ -25,7 +25,7 @@ \[13 = 2(5) + 3\] This gives a method of dividing integers. Specifically, if a and b are -positive integers, there exist integers unique non-negative integers q +positive integers, there exist unique non-negative integers q and r so that \[a = qb + r , {\rm\ where\ } 0 \le r < b\] q is called the quotient and r the remainder. @@ -52,6 +52,8 @@ \end{array} \] +So the greatest commmon divisor, the GCD(81,51)=3. + If the gcd(a, b) = r then there exist integers s and t so that \[s(a) + t(b) = r\] Modified: trunk/axiom/src/algebra/sf.spad.pamphlet =================================================================== --- trunk/axiom/src/algebra/sf.spad.pamphlet 2006-05-02 05:52:40 UTC (rev 30) +++ trunk/axiom/src/algebra/sf.spad.pamphlet 2006-05-02 09:50:08 UTC (rev 31) @@ -628,6 +628,148 @@ @ \section{domain DFLOAT DoubleFloat} +Greg Vanuxem has added some functionality to allow the user to modify +the printed format of floating point numbers. The format of the numbers +follows the common lisp format specification for floats. First we include +Greg's email to show the use of this feature: +\begin{verbatim} +PS: For those who use the Doublefloat domain + there is an another (undocumented) patch that adds a + lisp format to the DoubleFloat output routine. Copy + int/algebra/DFLOAT.spad to your working directory, + patch it, compile it and ")lib" it when necessary. + + +(1) -> )boot $useBFasDefault:=false + +(SPADLET |$useBFasDefault| NIL) +Value = NIL +(1) -> a:= matrix [ [0.5978,0.2356], [0.4512,0.2355] ] + + + 0.5978 0.2356 + + (1) | | + +0.45119999999999999 0.23549999999999999+ + Type: Matrix DoubleFloat +(2) -> )lib DFLOAT + DoubleFloat is now explicitly exposed in frame initial + DoubleFloat will be automatically loaded when needed +from /home/greg/Axiom/DFLOAT.NRLIB/code +(2) -> doubleFloatFormat("~,4,,F") + + (2) "~G" + Type: String +(3) -> a + + +0.5978 0.2356+ + (3) | | + +0.4512 0.2355+ + Type: Matrix DoubleFloat + +\end{verbatim} +So it is clear that he has added a new function called +{\tt doubleFloatFormat} which takes a string argument that +specifies the common lisp format control string (\"{}\~{},4,,F\"{}). +For reference we quote from the common lisp manual \cite{1}. +On page 582 we find: + +\begin{quote} +A format directive consists of a tilde (\~{}), optional prefix +parameters separated by commas, optional colon (:) and at-sign (@) +modifiers, and a single character indicating what kind of directive this is. +The alphabetic case of the directive character is ignored. The prefix +parameters are generally integers, notated as optionally signed decimal +numbers. + +X3J13 voted in June 1987 (80) to specify that if both colon and at-sign +modifiers are present, they may appear in either order; thus \~{}:@R +and \~{}@:R mean the same thing. However, it is traditional to put the +colon first, and all examples in the book put colon before at-signs. +\end{quote} + +\noindent +On page 588 we find: + +\begin{quote} +\~{}F + +{\sl Fixed-format floating-point}. The next {\sl arg} is printed as a +floating point number. + +The full form is {\sl \~{}w,d,k,overfowchar,padchar}F. The parameter +{\sl w} is the width of the filed to be printed; {\sl d} is the number +of digits to print after the decimal point; {\sl k} is a scale factor +that defaults to zero. + +Exactly {\sl w} characters will be output. First, leading copies of the +character {\sl padchar} (which defaults to a space) are printed, if +necessary, to pad the field on the left. If the {\sl arg} is negative, +then a minus sign is printed; if the {\sl arg} is not negative, then +a plus signed is printed if and only if the @ modifier was specified. +Then a sequence of digits, containing a single embedded decimal point, +is printed; this represents the magnitude of the value of {\sl arg} +times $10^k$, rounded to {\sl d} fractional digits. (When rounding up +and rounding down would produce printed values equidistant from the +scaled value of {\sl arg}, then the implementation is free to use +either one. For example, printing the argument 6.375 using the format +\~{}4.2F may correctly produce either 6.37 or 6.38.) Leading zeros are +not permitted, except that a single zero digit is output before the +decimal point if the printed value is less than 1, and this single zero +digit is not output after all if $w = d + 1$. + +If it is impossible to print the value in the required format in the +field of width {\sl w}, then one of two actions is taken. If the +parameter {\sl overflowchar} is specified, then {\sl w} copies of that +parameter are printed instead of the scaled value of {\sl arg}. If the +{\sl overflowchar} parameter is omitted, then the scaled value is +printed using more than {\sl w} characters, as many more as may be +needed. + +If the {\sl w} parameter is omitted, then the field is of variable width. +In effect, a value is chosen for {\sl w} in such a way that no leading pad +characters need to be printed and exactly {\sl d} characters will follow +the decimal point. For example, the directive \~{},2F will print exactly +two digits after the decimal point and as many as necessary before the +decimal point. + +If the parameter {\sl d} is omitted, then there is no constraint on the +number of digits to appear after the decimal point. A value is chosen +for {\sl d} in such a way that as many digits as possible may be printed +subject to the width constraint imposed by the parameter {\sl w} and the +constraint that no trailing zero digits may appear in the fraction, except +that if the fraction to be printed is zero, then a single zero digit should +appear after the decimal point if permitted by the width constraint. + +If both {\sl w} and {\sl d} are omitted, then the effect is to print the +value using ordinary free-format output; {\tt prin1} uses this format +for any number whose magnitude is either zero or between $10^{-3}$ +(inclusive) and $10^7$ (exclusive). + +If {\sl w} is omitted, then if the magnitude of {\sl arg} is so large +(or, if {\sl d} is also omitted, so small) that more than 100 digits +would have to be printed, then an implementation is free, at its +discretion, to print the number using exponential notation instead, +as if by the directive \~{}E (with all parameters of \~{}E defaulted, +not taking their valued from the \~{}F directive). + +If {\sl arg} is a rational number, then it is coerced to be a +{\tt single-float} and then printed. (Alternatively, an implementation +is permitted to process a rational number by any other method that has +essentially the same behavior but avoids such hazards as loss of +precision or overflow because of the coercion. However, note that if +{\sl w} and {\sl d} are unspecified and the number has no exact decimal +representation, for example 1/3, some precision cutoff must be chosen +by the implementation; only a finite number of digits may be printed.) + +If {\sl arg} is a complex number or some non-numeric object, then it +is printed using the format directive {\sl \~{}w}D, thereby printing +it in decimal radix and a minimum field width of {\sl w}. (If it is +desired to print each of the real part and imaginary part of a +complex number using a \~{}F directive, then this must be done explicitly +with two \~{}F directives and code to extract the two parts of the +complex number.) + + +\end{quote} <<domain DFLOAT DoubleFloat>>= )abbrev domain DFLOAT DoubleFloat ++ Author: Michael Monagan @@ -693,6 +835,8 @@ ++ Gamma(x) is the Euler Gamma function. Beta : (%,%) -> % ++ Beta(x,y) is \spad{Gamma(x) * Gamma(y)/Gamma(x+y)}. + doubleFloatFormat : String -> String + ++ change the output format for doublefloats using lisp format strings rationalApproximation: (%, NonNegativeInteger) -> Fraction Integer ++ rationalApproximation(f, n) computes a rational approximation ++ r to f with relative error \spad{< 10**(-n)}. @@ -702,10 +846,16 @@ ++ (that is, \spad{|(r-f)/f| < b**(-n)}). == add + format: String := "~G" MER ==> Record(MANTISSA:Integer,EXPONENT:Integer) manexp: % -> MER + doubleFloatFormat(s:String): String == + ss: String := format + format := s + ss + OMwrite(x: %): String == s: String := "" sp := OM_-STRINGTOSTRINGPTR(s)$Lisp @@ -763,7 +913,8 @@ -- rational approximation to e accurate to 23 digits exp1() == FLOAT(534625820200,MOST_-POSITIVE_-LONG_-FLOAT$Lisp)$Lisp / FLOAT(196677847971,MOST_-POSITIVE_-LONG_-FLOAT$Lisp)$Lisp pi() == PI$Lisp - coerce(x:%):OutputForm == outputForm(x pretend DoubleFloat) + coerce(x:%):OutputForm == + outputForm(FORMAT(NIL$Lisp,format,x)$Lisp pretend DoubleFloat) convert(x:%):InputForm == convert(x pretend DoubleFloat)$InputForm x < y == (x<y)$Lisp - x == (-x)$Lisp @@ -1246,6 +1397,7 @@ @ \eject \begin{thebibliography}{99} -\bibitem{1} nothing +\bibitem{1} Steele, Guy L. Jr. ``Common Lisp The Language'' +Second Edition 1990 ISBN 1-55558-041-6 Digital Press \end{thebibliography} \end{document} Added: trunk/axiom/src/boot/ChangeLog =================================================================== --- trunk/axiom/src/boot/ChangeLog (rev 0) +++ trunk/axiom/src/boot/ChangeLog 2006-05-02 09:50:08 UTC (rev 31) @@ -0,0 +1,4 @@ +2006-05-02 Gabriel Dos Reis <gd...@cs...> + + * Makefile.pamphlet: Sync with gold branch. + Modified: trunk/axiom/src/boot/Makefile.pamphlet =================================================================== --- trunk/axiom/src/boot/Makefile.pamphlet 2006-05-02 05:52:40 UTC (rev 30) +++ trunk/axiom/src/boot/Makefile.pamphlet 2006-05-02 09:50:08 UTC (rev 31) @@ -794,7 +794,7 @@ are both translated to name1 name2 DEF (pattern:=name2;where) -\ennd{verbatim} +\end{verbatim} similarly for patterns that occur as components of a list of variables. order Added: trunk/axiom/src/doc/ChangeLog =================================================================== --- trunk/axiom/src/doc/ChangeLog (rev 0) +++ trunk/axiom/src/doc/ChangeLog 2006-05-02 09:50:08 UTC (rev 31) @@ -0,0 +1,6 @@ +2006-05-02 Gabriel Dos Reis <gd...@cs...> + + * book.pamphlet: Sync with gold branch. + * bookvol1.pamphlet: Likewise. + * endpaper.pamphlet: Likewise. + Modified: trunk/axiom/src/doc/book.pamphlet =================================================================== --- trunk/axiom/src/doc/book.pamphlet 2006-05-02 05:52:40 UTC (rev 30) +++ trunk/axiom/src/doc/book.pamphlet 2006-05-02 09:50:08 UTC (rev 31) @@ -62233,7 +62233,7 @@ These commands return the state of the interactive environment to that immediately after step {\tt n}. If {\tt n} is a positive number, then {\tt n} refers to step nummber -{\tt n}. If {\tt n} is a negative number, it refers to the \tt n-th +{\tt n}. If {\tt n} is a negative number, it refers to the {\tt n}-th previous command (that is, undoes the effects of the last $-n$ commands). Modified: trunk/axiom/src/doc/bookvol1.pamphlet =================================================================== --- trunk/axiom/src/doc/bookvol1.pamphlet 2006-05-02 05:52:40 UTC (rev 30) +++ trunk/axiom/src/doc/bookvol1.pamphlet 2006-05-02 09:50:08 UTC (rev 31) @@ -12604,9 +12604,13 @@ \par\noindent{\bf Command Syntax:} \begin{list}{} \item {\tt )abbreviation query \lanb{}{\it nameOrAbbrev}\ranb{}} + \item {\tt )abbreviation category {\it abbrev fullname} \lanb{})quiet\ranb{}} + \item {\tt )abbreviation domain {\it abbrev fullname} \lanb{})quiet\ranb{}} + \item {\tt )abbreviation package {\it abbrev fullname} \lanb{})quiet\ranb{}} + \item {\tt )abbreviation remove {\it nameOrAbbrev}} \end{list} @@ -12698,7 +12702,7 @@ \par\noindent{\bf Command Syntax:} \begin{list}{} -\item {\tt )boot} {\it bootExpression} +\item {{\tt )boot} {\it bootExpression}} \end{list} \par\noindent{\bf Command Description:} @@ -12729,7 +12733,7 @@ \par\noindent{\bf Command Syntax:} \begin{list}{} -\item {\tt )cd} {\it directory} +\item {{\tt )cd} {\it directory}} \end{list} \par\noindent{\bf Command Description:} @@ -13309,7 +13313,7 @@ \par\noindent{\bf Command Syntax:} \begin{list}{} -\item{\tt )edit} [{\it filename}] +\item{{\tt )edit} [{\it filename}]} \end{list} \par\noindent{\bf Command Description:} @@ -13394,13 +13398,20 @@ \par\noindent{\bf Command Syntax:} \begin{list}{} \item{\tt )frame new {\it frameName}} + \item{\tt )frame drop [{\it frameName}]} + \item{\tt )frame next} + \item{\tt )frame last} + \item{\tt )frame names} + \item{\tt )frame import {\it frameName} {\it {\tt [}objectName1 {\tt [}objectName2 ...{\tt]]}}} + \item{\tt )set message frame on | off} + \item{\tt )set message prompt frame} \end{list} @@ -13574,17 +13585,29 @@ \par\noindent{\bf Command Syntax:} \begin{list}{} \item{\tt )history )on} + \item{\tt )history )off} -\item{\tt )history )write} {\it historyInputFileName} + +\item{{\tt )history )write} {\it historyInputFileName}} + \item{\tt )history )show [{\it n}] [both]} -\item{\tt )history )save} {\it savedHistoryName} -\item{\tt )history )restore} [{\it savedHistoryName}] + +\item{{\tt )history )save} {\it savedHistoryName}} + +\item{{\tt )history )restore} [{\it savedHistoryName}]} + \item{\tt )history )reset} -\item{\tt )history )change} {\it n} + +\item{{\tt )history )change} {\it n}} + \item{\tt )history )memory} + \item{\tt )history )file} + \item{\tt \%} + \item{\tt \%\%({\it n})} + \item{\tt )set history on | off} \end{list} @@ -13755,8 +13778,11 @@ \par\noindent{\bf Command Syntax:} \begin{list}{} \item{\tt )library {\it libName1 {\tt [}libName2 ...{\tt ]}}} + \item{\tt )library )dir {\it dirName}} + \item{\tt )library )only {\it objName1 {\tt [}objlib2 ...{\tt ]}}} + \item{\tt )library )noexpose} \end{list} @@ -13816,7 +13842,7 @@ \par\noindent{\bf Command Syntax:} \begin{list}{} -\item {\tt )lisp} [{\it lispExpression}] +\item {{\tt )lisp} [{\it lispExpression}]} \end{list} \par\noindent{\bf Command Description:} @@ -13969,8 +13995,9 @@ \par\noindent{\bf Command Syntax:} \begin{list}{} -\item {\tt )read} [{\it fileName}] -\item {\tt )read} [{\it fileName}] [{\tt )quiet}] [{\tt )ifthere}] +\item {{\tt )read} [{\it fileName}]} + +\item {{\tt )read} [{\it fileName}] [{\tt )quiet}] [{\tt )ifthere}]} \end{list} \par\noindent{\bf Command Description:} @@ -14076,7 +14103,9 @@ \par\noindent{\bf Command Syntax:} \begin{list}{} \item {\tt )show {\it nameOrAbbrev}} + \item {\tt )show {\it nameOrAbbrev} )operations} + \item {\tt )show {\it nameOrAbbrev} )attributes} \end{list} @@ -14133,7 +14162,7 @@ \par\noindent{\bf Command Syntax:} \begin{list}{} -\item{\tt )spool} [{\it fileName}] +\item{{\tt )spool} [{\it fileName}]} \item{\tt )spool} \end{list} @@ -14171,7 +14200,9 @@ \par\noindent{\bf Command Syntax:} \begin{list}{} \item{\tt )synonym} -\item{\tt )synonym} {\it synonym fullCommand} + +\item{{\tt )synonym} {\it synonym fullCommand}} + \item{\tt )what synonyms} \end{list} @@ -14220,7 +14251,7 @@ \par\noindent{\bf Command Syntax:} \begin{list}{} -\item{\tt )system} {\it cmdExpression} +\item{{\tt )system} {\it cmdExpression}} \end{list} \par\noindent{\bf Command Description:} @@ -14264,39 +14295,65 @@ \par\noindent{\bf Command Syntax:} \begin{list}{} \item{\tt )trace} + \item{\tt )trace )off} -\item{\tt )trace} {\it function {\tt [}options{\tt ]}} -\item{\tt )trace} {\it constructor {\tt [}options {\tt ]}} -\item{\tt )trace} {\it domainOrPackage {\tt [}options {\tt ]}} +\item{{\tt )trace} {\it function {\tt [}options{\tt ]}}} + +\item{{\tt )trace} {\it constructor {\tt [}options {\tt ]}}} + +\item{{\tt )trace} {\it domainOrPackage {\tt [}options {\tt ]}}} \end{list} % where options can be one or more of % \begin{list}{} -\item{\tt )after} {\it S-expression} -\item{\tt )before} {\it S-expression} +\item{{\tt )after} {\it S-expression}} + +\item{{\tt )before} {\it S-expression}} + \item{\tt )break after} + \item{\tt )break before} -\item{\tt )cond} {\it S-expression} + +\item{{\tt )cond} {\it S-expression}} + \item{\tt )count} -\item{\tt )count} {\it n} -\item{\tt )depth} {\it n} -\item{\tt )local} {\it op1 {\tt [}... opN {\tt ]}} + +\item{{\tt )count} {\it n}} + +\item{{\tt )depth} {\it n}} + +\item{{\tt )local} {\it op1 {\tt [}... opN {\tt ]}}} + \item{\tt )nonquietly} + \item{\tt )nt} + \item{\tt )off} -\item{\tt )only} {\it listOfDataToDisplay} + +\item{{\tt )only} {\it listOfDataToDisplay}} + \item{\tt )ops} -\item{\tt )ops} {\it op1 {\tt [}... opN {\tt ]}} + +\item{{\tt )ops} {\it op1 {\tt [}... opN {\tt ]}}} + \item{\tt )restore} + \item{\tt )stats} + \item{\tt )stats reset} + \item{\tt )timer} + \item{\tt )varbreak} -\item{\tt )varbreak} {\it var1 {\tt [}... varN {\tt ]}} + +\item{{\tt )varbreak} {\it var1 {\tt [}... varN {\tt ]}}} + \item{\tt )vars} -\item{\tt )vars} {\it var1 {\tt [}... varN {\tt ]}} + +\item{{\tt )vars} {\it var1 {\tt [}... varN {\tt ]}}} + \item{\tt )within} {\it executingFunction} \end{list} @@ -14560,6 +14617,7 @@ % \begin{list}{} \item{\tt )after} + \item{\tt )before} \end{list} @@ -14624,14 +14682,21 @@ \par\noindent{\bf Command Syntax:} \begin{list}{} -\item{\tt )what categories} {\it pattern1} [{\it pattern2 ...}] -\item{\tt )what commands } {\it pattern1} [{\it pattern2 ...}] -\item{\tt )what domains } {\it pattern1} [{\it pattern2 ...}] -\item{\tt )what operations} {\it pattern1} [{\it pattern2 ...}] -\item{\tt )what packages } {\it pattern1} [{\it pattern2 ...}] -\item{\tt )what synonym } {\it pattern1} [{\it pattern2 ...}] -\item{\tt )what things } {\it pattern1} [{\it pattern2 ...}] -\item{\tt )apropos } {\it pattern1} [{\it pattern2 ...}] +\item{{\tt )what categories} {\it pattern1} [{\it pattern2 ...}]} + +\item{{\tt )what commands } {\it pattern1} [{\it pattern2 ...}]} + +\item{{\tt )what domains } {\it pattern1} [{\it pattern2 ...}]} + +\item{{\tt )what operations} {\it pattern1} [{\it pattern2 ...}]} + +\item{{\tt )what packages } {\it pattern1} [{\it pattern2 ...}]} + +\item{{\tt )what synonym } {\it pattern1} [{\it pattern2 ...}]} + +\item{{\tt )what things } {\it pattern1} [{\it pattern2 ...}]} + +\item{{\tt )apropos } {\it pattern1} [{\it pattern2 ...}]} \end{list} \par\noindent{\bf Command Description:} Modified: trunk/axiom/src/doc/endpaper.pamphlet =================================================================== --- trunk/axiom/src/doc/endpaper.pamphlet 2006-05-02 05:52:40 UTC (rev 30) +++ trunk/axiom/src/doc/endpaper.pamphlet 2006-05-02 09:50:08 UTC (rev 31) @@ -1,6 +1,14 @@ \documentclass{book} %\usepackage{../../src/scripts/tex/axiom} -\usepackage[dvips,final,colorlinks=true,pdfstartview=FitH]{hyperref} +% +% 2006-04-08. The original (correct) usepackage line below +%\usepackage[dvips,final,colorlinks=true,pdfstartview=FitH]{hyperref} +% has been changed to the following one inorder to ease the +% compilation of axiom on distributions (like Debian sarge) that have +% an older version of hyperref TeX package (where the `final' option +% is missing). It should be restored once the latest version (>= +% 2003/11/30 v6.74m) of hyperref are more widespread. +\usepackage[dvips,colorlinks=true,pdfstartview=FitH]{hyperref} \usepackage{pstricks} \usepackage{pst-node} \begin{document} Added: trunk/axiom/src/hyper/ChangeLog =================================================================== --- trunk/axiom/src/hyper/ChangeLog (rev 0) +++ trunk/axiom/src/hyper/ChangeLog 2006-05-02 09:50:08 UTC (rev 31) @@ -0,0 +1,4 @@ +2006-05-02 Gabriel Dos Reis <gd...@cs...> + + * Makefile.pamphlet: Sync with gold branch. + Modified: trunk/axiom/src/hyper/Makefile.pamphlet =================================================================== --- trunk/axiom/src/hyper/Makefile.pamphlet 2006-05-02 05:52:40 UTC (rev 30) +++ trunk/axiom/src/hyper/Makefile.pamphlet 2006-05-02 09:50:08 UTC (rev 31) @@ -902,10 +902,12 @@ ${OUTLIB}/htsearch: ${IN}/search.pamphlet @echo 123 making ${OUTLIB}/htsearch from ${IN}/search.pamphlet @${TANGLE} -R"htsearch" ${IN}/search.pamphlet >${OUTLIB}/htsearch + @chmod a+x ${OUTLIB}/htsearch ${OUTLIB}/presea: ${IN}/search.pamphlet @echo 124 making ${OUTLIB}/presea from ${IN}/search.pamphlet @${TANGLE} -R"presea" ${IN}/search.pamphlet >${OUTLIB}/presea + @chmod a+x ${OUTLIB}/presea ${DOC}/search.dvi: ${IN}/search.pamphlet ${DOC}/axiom.sty @ echo 122 making ${DOC}/search.dvi from ${IN}/search.pamphlet Added: trunk/axiom/src/input/ChangeLog =================================================================== --- trunk/axiom/src/input/ChangeLog (rev 0) +++ trunk/axiom/src/input/ChangeLog 2006-05-02 09:50:08 UTC (rev 31) @@ -0,0 +1,8 @@ +2006-05-02 Gabriel Dos Reis <gd...@cs...> + + * mapleok.input.pamphlet: New, as per gold branch. + * Makefile.pamphlet: Sync with gold branch. + * bug10069.input.pamphlet: Likewise. + * wester.input.pamphlet: Likewise. + * zimmer.input.pamphlet: Likewise. + Modified: trunk/axiom/src/input/Makefile.pamphlet =================================================================== --- trunk/axiom/src/input/Makefile.pamphlet 2006-05-02 05:52:40 UTC (rev 30) +++ trunk/axiom/src/input/Makefile.pamphlet 2006-05-02 09:50:08 UTC (rev 31) @@ -328,7 +328,8 @@ lodof.output \ lpoly.output \ lupfact.output lword.output macbug.output macros.output \ - magma.output mappkg1.output marcbench.output matbug.output \ + magma.output mapleok.output \ + mappkg1.output marcbench.output matbug.output \ matrix1.output matrix22.output matrix.output \ mfinfact.output mkfunc.output mpoly.output \ mset2.output mset.output \ @@ -367,7 +368,7 @@ vector.output viewdef.output void.output \ wutset.output xpbwpoly.output \ xpoly.output xpr.output \ - zdsolve.output zlindep.output + zdsolve.output zimmer.output zlindep.output # new algebra tests based on documentation ALGEBRA=INTHEORY.output VIEW2D.output TESTFR.output @@ -524,7 +525,7 @@ ${OUT}/lump.input \ ${OUT}/lupfact.input ${OUT}/lword.input ${OUT}/macbug.input \ ${OUT}/macros.input ${OUT}/marcbench.input ${OUT}/magma.input \ - ${OUT}/mappkg1.input ${OUT}/matbug.input \ + ${OUT}/mapleok.input ${OUT}/mappkg1.input ${OUT}/matbug.input \ ${OUT}/matrix22.input ${OUT}/matrix.input ${OUT}/matrix1.input \ ${OUT}/mfinfact.input ${OUT}/mkfunc.input ${OUT}/mountain.input \ ${OUT}/mpoly.input ${OUT}/mset.input ${OUT}/mset2.input \ @@ -579,7 +580,7 @@ ${OUT}/void.input ${OUT}/wiggle.input \ ${OUT}/wutset.input \ ${OUT}/xpbwpoly.input ${OUT}/xpoly.input ${OUT}/xpr.input \ - ${OUT}/zdsolve.input ${OUT}/zlindep.input + ${OUT}/zdsolve.input ${OUT}/zimmer.input ${OUT}/zlindep.input FILES2=${OUT}/arith.input ${OUT}/bugs.input \ ${OUT}/calculus2.input \ @@ -603,18 +604,9 @@ BROKEN=${OUT}/as-eg1.input ${OUT}/as-eg2.input ${OUT}/as-eg3.input \ ${OUT}/as-eg4.input ${OUT}/as-eg5.input ${OUT}/as-eg6.input -#Error: SEC is invalid as a function. -SEC=${OUT}/dropt.input - # This viewport has already been closed! VIEWPORT=${OUT}/graphics.input -#Broken at |ODEEF;SOLVE;EBOSU;1| -EBOSU=${OUT}/zimmer.input \ - -# Broken at |DEFINTRF;INTEGRATE;FSBU;1| -FSBU=${OUT}/wester.input - # Error: Value stack overflow. VALUESTACK=${OUT}/images2a.input ${OUT}/images2.input ${OUT}/images5a.input \ ${OUT}/images5.input ${OUT}/images8a.input ${OUT}/images8.input \ @@ -792,7 +784,7 @@ ${DOC}/lump.input.dvi ${DOC}/lupfact.input.dvi \ ${DOC}/lword.input.dvi ${DOC}/macbug.input.dvi \ ${DOC}/macros.input.dvi ${DOC}/magma.input.dvi \ - ${DOC}/mappkg1.input.dvi \ + ${DOC}/mapleok.input.dvi ${DOC}/mappkg1.input.dvi \ ${DOC}/marcbench.input.dvi ${DOC}/matbug.input.dvi \ ${DOC}/matops.as.dvi ${DOC}/matrix1.input.dvi \ ${DOC}/matrix22.input.dvi ${DOC}/matrix.input.dvi \ Modified: trunk/axiom/src/input/bug10069.input.pamphlet =================================================================== --- trunk/axiom/src/input/bug10069.input.pamphlet 2006-05-02 05:52:40 UTC (rev 30) +++ trunk/axiom/src/input/bug10069.input.pamphlet 2006-05-02 09:50:08 UTC (rev 31) @@ -10,15 +10,21 @@ \eject \tableofcontents \eject +These functions were missing a case statement that handled the 'failed' +branch. This has been fixed. + +Since these functions are designed to fail during testing we +have to set the breakmode to resume so Axiom will continue reading +the input file. <<*>>= )cl all +)set break resume cot(0.0) csc(0.0) asec(0.0) acsc(0.0) asech(0.0) acsch(0.0) -cot(0.0) coth(0.0) acoth(0.0) @ Added: trunk/axiom/src/input/mapleok.input.pamphlet =================================================================== --- trunk/axiom/src/input/mapleok.input.pamphlet (rev 0) +++ trunk/axiom/src/input/mapleok.input.pamphlet 2006-05-02 09:50:08 UTC (rev 31) @@ -0,0 +1,5972 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/input mapleok.input} +\author{Timothy Daly} +\maketitle +\begin{abstract} +A set of test results that fail for Maple was published as a database +on the web by Vladimir Bondarenko. We looked at these equations in +detail, redesigned and rewrote them for Axiom where the equations +could be applied, and ran them thru the Axiom system. These are the +set of results that give answers in Axiom along with a summary of +the tests. +\end{abstract} +\eject +\tableofcontents +\eject +\section{Result} + +I've been working for some time to construct a Computer Algebra +Test Suite (CATS). The idea came about because it is clear that +there is a lack of time and attention on cross-platform testing. +We should have available a range of problems with associated +math theory and verified results that every computer algebra +system can use for testing purposes. To this end I've been +collecting test suites from various computer algebra systems and +running them thru Axiom. The lastest collection is the Maple bug +list posted by Vladimir. + +Of course there is no common syntax and so one of the problems +is that every integral has to be hand-written to match the likely +semantics of the original. This is a time consuming effort. +pFurthermore there is no general mechanism for collecting results +(although I have been looking at automating regression testing +in Axiom) so result collection and summary are also hand operations. +Nevertheless, the process has completed the first phase of testing +and I've attached some summary statistics. Detailed results will +be included with the next release of Axiom. + +For the next phase I've built a special purpose version of Axiom +with instrumentation in all of the integration routines. I plan to +classify each integral and associate it with the code as part of +the literate documentation. This will give us a basis for finding +bugs and corner cases. It will also give us working regression +test cases. + + +\subsection{Breakdown by category} + +There were 4865 integrals tested. Of these + +\begin{itemize} +\item (5 0.10\%) Missing Functions +\item (1206 24.78\%) Undefined Special Functions or untranslated functions +\item (84 1.72\%) Mismatched signatures of existing functions +\item (158 3.25\%) Badly Behaved Integrals +\item (7 0.14\%) Axiom Internal Errors +\item (279 5.73\%) Risch Algorithm Boundary Cases +\item (2331 47.91\%) Failed results +\item (490 10.07\%) Successful Results +\item (305 6.27\%) Indeterminate Results +\end{itemize} + +Of the 4865 integrals the first three cases would not run. That +leaves 3570 tests. Of these there were 3097 (73.38\%) integrals +that had a potential pole in the path of integration making them +rather more difficult to compute. + +We further break down the results. The number in parentheses is +the number of integrals of this class. One observation is that a +large number of these integrals involve the signum function. Axiom +does not have an integrable form of this function. Frankly, I'm not +sure how to integrate functions involving signum. It is hardly a +surprise that Maple gets these wrong. + +On some of the functions I've given example integrals that exhibit +the behavior of their category. + +Axiom has a robust implementation of the Risch algorithm done by +Barry Trager and Manuel Bronstein. Still, there are some corner +cases that are not implemented. We collected these under a +separate category so they will be useful for people who want to +investigate extending the algorithms. It is hardly a surprise that +Maple finds these hard to do. + +These tests have uncovered 3 internal errors involving a total of +6 of the integrals. These will be investigated and fixed in a future +release. + +Testing continues on the results that did not complete. Raising the +maximum time limit to 10 minutes has generated additional results. + + +\subsection{Missing Functions} + +These are apparently bogus function names. + +\begin{itemize} +\item (1) f +\item (1) op +\item (1) product +\item (2) elt +\end{itemize} + +\subsection{Undefined Special Functions or Untranslated Functions} + +Maple has these functios in different forms than Axiom. Some of the special +functions have equivalent Axiom representations but Maple is much stronger +in special functions. Axiom has single-argument forms of some of these +functions but the translations were not clear. + +\begin{itemize} +\item (2) airyAi -- 2 argument form +\item (1) airyBi -- 2 argument form +\item (2) argument +\item (57) atan -- 2 argument form +\item (26) ceil +\item (2) chebyshevT -- with fractional first argument +\item (1) chebyshevU -- with fractional first argument +\item (5) conjugate +\item (8) Chi +\item (78) csgn +\item (19) Dirac +\item (11) Ei +\item (2) EllipticE +\item (9) EllipticK +\item (4) EllipticPi +\item (1) erfc +\item (23) floor +\item (3) frac +\item (30) FresnelC +\item (3) Fresnelf +\item (1) Fresnelg +\item (26) FresnelS +\item (3) GegenbauerC +\item (6) HankelH1 +\item (8) HankelH2 +\item (22) Heaviside +\item (2) hermiteH -- with fractional first argument +\item (1) hypergeom +\item (4) KelvinKei +\item (4) KelvinKer +\item (4) KummerU +\item (3) LambertW +\item (2) legendreP -- having 3 arguments +\item (4) LegendreQ +\item (15) LerchPhi +\item (2) MeijerG +\item (31) polylog +\item (34) Psi +\item (1) Re +\item (1) RootOf +\item (25) round +\item (2) Shi +\item (3) Ssi +\item (669) signum +\item (11) StruveH +\item (10) StruveL +\item (12) trunc +\item (13) Zeta +\end{itemize} + +\subsection{Mismatched Signatures Of Existing Functions} + +Axiom's integration routines return a Union of several types. +In order to use the result in various other operations one branch +of the Union needs to be chosen. I have not done that here so these +are listed as though they were special functions with a missing +signature. + +\begin{itemize} +\item (1) + +\item (7) * +\item (1) / +\item (1) log +\item (73) integrate +\item (1) abs +\end{itemize} + + +\subsection{Badly Behaved Integrals} + +\begin{itemize} +\item (158) integrate: pole in path of integration +\end{itemize} + +\begin{verbatim} +integrate(legendreP(0, z)/(z^2+3*z), z= 0..3,"noPole") +\end{verbatim} + + +\subsection{Axiom Internal Errors} + +\begin{itemize} +\item (1) internal error +\end{itemize} + +\begin{verbatim} + >> Error detected within library code: + (construct (= left 0) (= right 2)) + is not a valid isolation interval for + (+ (+ (- (** ? 4)) (* 2 (** ? 2))) -1) +\end{verbatim} + +\begin{verbatim} +in961:=integrate(log(z-1)*z/(z^2-1)^2, z= 1..%plusInfinity) +\end{verbatim} + + +\begin{itemize} +\item (4) Cannot take first of an empty list +\end{itemize} + +\begin{verbatim} +integrate(sin(z)*csc(z)*(1-1/(%i*z)^(1/2))^(1/2), z= 0..1,"noPole") +\end{verbatim} + + +\begin{itemize} +\item (2) The function * with signature hashcode is missing from domain + Polynomial(OrderedCompletion (Integer)) +\end{itemize} + +\begin{verbatim} +integrate(a^z, z= 0..I*%plusInfinity) +integrate((1*z-3)/(2+(0*z-4)^2), z= %minusInfinity..1+I*%plusInfinity) +\end{verbatim} + + +\subsection{(279) Risch Algorithm Boundary Cases} + +\begin{itemize} +\item (3) PFO::possibleOrder: more than 1 algebraic constant +\end{itemize} + +\begin{verbatim} +integrate(tan(z)/sqrt(sin(z+%pi/4)), z= 0..1,"noPole") +\end{verbatim} + + +\begin{itemize} +\item (1) Not integrable (provided residues have no relations) +\end{itemize} + +\begin{verbatim} +integrate(((z^3-1)/(1+z))^(1/2)/z^2, z= 1..%plusInfinity,"noPole") +\end{verbatim} + + +\begin{itemize} +\item (35) integrate: implementation incomplete (non-algebraic residues) +\end{itemize} + +\begin{verbatim} +integrate(-(1-(I*z)^(1/2)/(1-I*z))^(1/2), z= -1..1,"noPole") +\end{verbatim} + + +\begin{itemize} +\item (177) integrate: implementation incomplete (constant residues) +\end{itemize} + +\begin{verbatim} +integrate(sin(z)^2*(1+z^(1/2))^(1/2), z= 0..1,"noPole") +\end{verbatim} + + +\begin{itemize} +\item (22) Imaginary part is nonzero. Cannot retract. +\end{itemize} + +\begin{verbatim} +integrate(sqrt(sin(2*z))/sqrt(cos(2*z)),z) +\end{verbatim} + + +\begin{itemize} +\item (29) Function not supported by Risch d.e. +\end{itemize} + +\begin{verbatim} +integrate(exp(-I*(I*z)^(1/2))/abs(z)^2, z= 0..1,"noPole") +\end{verbatim} + + +\begin{itemize} +\item (12) integrate: implementation incomplete (residue poly has multiple + non-linear factors) +\end{itemize} + +\begin{verbatim} +integrate(tanh(z)^(4/3), z = -1..1,"noPole") +\end{verbatim} + + +\begin{itemize} +\item (0) integralBasis: possible wild ramification +\end{itemize} + + +\subsection{(2331) Failed Results} + +\begin{itemize} +\item (2033) "failed" +\end{itemize} + +\begin{verbati... [truncated message content] |