diff --git a/changelog b/changelog index 929859f..7482db5 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,8 @@ +20090814 tpd src/axiom-website/patches.html 20090814.01.tpd.patch +20090814 tpd src/interp/Makefile move compress.boot to compress.lisp +20090814 tpd src/interp/debugsys.lisp change astr.clisp to compress.lisp +20090814 tpd src/interp/compress.lisp added, rewritten from compress.boot +20090814 tpd src/interp/compress.boot removed, rewritten to compress.lisp 20090813 tpd src/axiom-website/patches.html 20090813.03.tpd.patch 20090813 tpd src/interp/Makefile move compat.boot to compat.lisp 20090813 tpd src/interp/debugsys.lisp change astr.clisp to compat.lisp diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 62f8b3b..d91a712 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -1784,6 +1784,8 @@ clam.lisp rewrite from boot to lisp
clammed.lisp rewrite from boot to lisp
20090813.03.tpd.patch compat.lisp rewrite from boot to lisp
+20090814.01.tpd.patch +compress.lisp rewrite from boot to lisp
diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet index 6654d39..b455ce9 100644 --- a/src/interp/Makefile.pamphlet +++ b/src/interp/Makefile.pamphlet @@ -418,7 +418,6 @@ DOCFILES=${DOC}/as.boot.dvi \ ${DOC}/c-doc.boot.dvi \ ${DOC}/cfuns.lisp.dvi \ ${DOC}/compiler.boot.dvi \ - ${DOC}/compress.boot.dvi \ ${DOC}/cparse.boot.dvi ${DOC}/cstream.boot.dvi \ ${DOC}/c-util.boot.dvi ${DOC}/daase.lisp.dvi \ ${DOC}/database.boot.dvi \ @@ -2710,47 +2709,27 @@ ${DOC}/profile.boot.dvi: ${IN}/profile.boot.pamphlet @ -\subsection{compress.boot \cite{66}} +\subsection{compress.lisp} <>= -${OUT}/compress.${O}: ${MID}/compress.clisp - @ echo 239 making ${OUT}/compress.${O} from ${MID}/compress.clisp - @ (cd ${MID} ; \ +${OUT}/compress.${O}: ${MID}/compress.lisp + @ echo 136 making ${OUT}/compress.${O} from ${MID}/compress.lisp + @ ( cd ${MID} ; \ if [ -z "${NOISE}" ] ; then \ - echo '(progn (compile-file "${MID}/compress.clisp"' \ + echo '(progn (compile-file "${MID}/compress.lisp"' \ ':output-file "${OUT}/compress.${O}") (${BYE}))' | ${DEPSYS} ; \ else \ - echo '(progn (compile-file "${MID}/compress.clisp"' \ + echo '(progn (compile-file "${MID}/compress.lisp"' \ ':output-file "${OUT}/compress.${O}") (${BYE}))' | ${DEPSYS} \ >${TMP}/trace ; \ fi ) @ -<>= -${MID}/compress.clisp: ${IN}/compress.boot.pamphlet - @ echo 240 making ${MID}/compress.clisp \ - from ${IN}/compress.boot.pamphlet +<>= +${MID}/compress.lisp: ${IN}/compress.lisp.pamphlet + @ echo 137 making ${MID}/compress.lisp from \ + ${IN}/compress.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/compress.boot.pamphlet >compress.boot ; \ - if [ -z "${NOISE}" ] ; then \ - echo '(progn (boottran::boottocl "compress.boot") (${BYE}))' \ - | ${DEPSYS} ; \ - else \ - echo '(progn (boottran::boottocl "compress.boot") (${BYE}))' \ - | ${DEPSYS} >${TMP}/trace ; \ - fi ; \ - rm compress.boot ) - -@ -<>= -${DOC}/compress.boot.dvi: ${IN}/compress.boot.pamphlet - @echo 241 making ${DOC}/compress.boot.dvi \ - from ${IN}/compress.boot.pamphlet - @(cd ${DOC} ; \ - cp ${IN}/compress.boot.pamphlet ${DOC} ; \ - ${DOCUMENT} ${NOISE} compress.boot ; \ - rm -f ${DOC}/compress.boot.pamphlet ; \ - rm -f ${DOC}/compress.boot.tex ; \ - rm -f ${DOC}/compress.boot ) + ${TANGLE} ${IN}/compress.lisp.pamphlet >compress.lisp ) @ @@ -6787,8 +6766,7 @@ clean: <> <> -<> -<> +<> <> <> @@ -7350,7 +7328,6 @@ pp \bibitem{60} {\bf \$SPAD/src/interp/c-doc.boot.pamphlet} \bibitem{64} {\bf \$SPAD/src/interp/compiler.boot.pamphlet} \bibitem{65} {\bf \$SPAD/src/interp/profile.boot.pamphlet} -\bibitem{66} {\bf \$SPAD/src/interp/compress.boot.pamphlet} \bibitem{67} {\bf \$SPAD/src/interp/database.boot.pamphlet} \end{thebibliography} \end{document} diff --git a/src/interp/compress.boot.pamphlet b/src/interp/compress.boot.pamphlet deleted file mode 100644 index 31f75aa..0000000 --- a/src/interp/compress.boot.pamphlet +++ /dev/null @@ -1,87 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp compress.boot} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<>= --- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. --- All rights reserved. --- --- Redistribution and use in source and binary forms, with or without --- modification, are permitted provided that the following conditions are --- met: --- --- - Redistributions of source code must retain the above copyright --- notice, this list of conditions and the following disclaimer. --- --- - Redistributions in binary form must reproduce the above copyright --- notice, this list of conditions and the following disclaimer in --- the documentation and/or other materials provided with the --- distribution. --- --- - Neither the name of The Numerical ALgorithms Group Ltd. nor the --- names of its contributors may be used to endorse or promote products --- derived from this software without specific prior written permission. --- --- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS --- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED --- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER --- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, --- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, --- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR --- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF --- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING --- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS --- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -@ -<<*>>= -<> - --- This one is not currently in general use, but can be applied --- to various situations are required - -minimalise x == - $hash:local:=MAKE_-HASHTABLE 'UEQUAL - min x where - min x == - y:=HGET($hash,x) - y => y - PAIRP x => - x = '(QUOTE T) => '(QUOTE T) - -- copes with a particular Lucid-ism, God knows why - -- This circular way of doing things is an attempt to deal with Lucid - -- Who may place quoted cells in read-only memory - z:=min CAR x - if not EQ(z,CAR x) then RPLACA(x,z) - z:=min CDR x - if not EQ(z,CDR x) then RPLACD(x,z) - HashCheck x - REFVECP x => - for i in 0..MAXINDEX x repeat - x.i:=min (x.i) - HashCheck x - STRINGP x => HashCheck x - x - HashCheck x == - y:=HGET($hash,x) - y => y - HPUT($hash,x,x) - x - x - - -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} diff --git a/src/interp/compress.lisp.pamphlet b/src/interp/compress.lisp.pamphlet new file mode 100644 index 0000000..1699280 --- /dev/null +++ b/src/interp/compress.lisp.pamphlet @@ -0,0 +1,94 @@ +\documentclass{article} +\usepackage{axiom} +\begin{document} +\title{\$SPAD/src/interp compress.lisp} +\author{The Axiom Team} +\maketitle +\begin{abstract} +\end{abstract} +\eject +\tableofcontents +\eject +<<*>>= + +(IN-PACKAGE "BOOT" ) + +;minimalise x == +; $hash:local:=MAKE_-HASHTABLE 'UEQUAL +; min x where +; min x == +; y:=HGET($hash,x) +; y => y +; PAIRP x => +; x = '(QUOTE T) => '(QUOTE T) +; -- copes with a particular Lucid-ism, God knows why +; -- This circular way of doing things is an attempt to deal with Lucid +; -- Who may place quoted cells in read-only memory +; z:=min CAR x +; if not EQ(z,CAR x) then RPLACA(x,z) +; z:=min CDR x +; if not EQ(z,CDR x) then RPLACD(x,z) +; HashCheck x +; REFVECP x => +; for i in 0..MAXINDEX x repeat +; x.i:=min (x.i) +; HashCheck x +; STRINGP x => HashCheck x +; x +; HashCheck x == +; y:=HGET($hash,x) +; y => y +; HPUT($hash,x,x) +; x +; x +; +; + +(DEFUN |minimalise,HashCheck| (|x|) + (PROG (|y|) + (RETURN + (SEQ + (SPADLET |y| (HGET |$hash| |x|)) + (IF |y| (EXIT |y|)) + (HPUT |$hash| |x| |x|) + (EXIT |x|))))) + +(DEFUN |minimalise,min| (|x|) + (PROG (|y| |z|) + (RETURN + (SEQ + (SPADLET |y| (HGET |$hash| |x|)) + (IF |y| (EXIT |y|)) + (IF (PAIRP |x|) + (EXIT + (SEQ + (IF (BOOT-EQUAL |x| (QUOTE (QUOTE T))) (EXIT (QUOTE (QUOTE T)))) + (SPADLET |z| (|minimalise,min| (CAR |x|))) + (IF (NULL (EQ |z| (CAR |x|))) (RPLACA |x| |z|) NIL) + (SPADLET |z| (|minimalise,min| (CDR |x|))) + (IF (NULL (EQ |z| (CDR |x|))) (RPLACD |x| |z|) NIL) + (EXIT (|minimalise,HashCheck| |x|))))) + (IF (REFVECP |x|) + (EXIT + (SEQ + (DO ((#0=#:G166068 (MAXINDEX |x|)) (|i| 0 (QSADD1 |i|))) + ((QSGREATERP |i| #0#) NIL) + (SEQ (EXIT (SETELT |x| |i| (|minimalise,min| (ELT |x| |i|)))))) + (EXIT (|minimalise,HashCheck| |x|))))) + (IF (STRINGP |x|) (EXIT (|minimalise,HashCheck| |x|))) + (EXIT |x|))))) + +(DEFUN |minimalise| (|x|) + (PROG (|$hash|) + (DECLARE (SPECIAL |$hash|)) + (RETURN + (PROGN + (SPADLET |$hash| (MAKE-HASHTABLE (QUOTE UEQUAL))) + (|minimalise,min| |x|) |x|)))) + +@ +\eject +\begin{thebibliography}{99} +\bibitem{1} nothing +\end{thebibliography} +\end{document} diff --git a/src/interp/debugsys.lisp.pamphlet b/src/interp/debugsys.lisp.pamphlet index 24014d4..c78c59f 100644 --- a/src/interp/debugsys.lisp.pamphlet +++ b/src/interp/debugsys.lisp.pamphlet @@ -94,7 +94,7 @@ loaded by hand we need to establish a value. (thesymb "/int/interp/clam.lisp") (thesymb "/int/interp/clammed.lisp") (thesymb "/int/interp/compat.lisp") - (thesymb "/int/interp/compress.clisp") + (thesymb "/int/interp/compress.lisp") (thesymb "/int/interp/cparse.clisp") (thesymb "/int/interp/cstream.clisp") (thesymb "/int/interp/database.clisp")