diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet index 038128f..12cfc11 100644 --- a/books/bookvol9.pamphlet +++ b/books/bookvol9.pamphlet @@ -66,7 +66,7 @@ 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 +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTIUTE 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 @@ -22118,6 +22118,37 @@ preferred to the underlying representation -- RDJ 9/12/83 \end{chunk} +\defun{substituteIntoFunctorModemap}{substituteIntoFunctorModemap} +\calls{substituteIntoFunctorModemap}{nequal} +\calls{substituteIntoFunctorModemap}{keyedSystemError} +\calls{substituteIntoFunctorModemap}{eqsubstlist} +\calls{substituteIntoFunctorModemap}{compOrCroak} +\calls{substituteIntoFunctorModemap}{sublis} +\begin{chunk}{defun substituteIntoFunctorModemap} +(defun |substituteIntoFunctorModemap| (argl modemap env) + (let (dc sig tmp1 tl substitutionList) + (setq dc (caar modemap)) + (setq sig (cdar modemap)) + (cond + ((nequal (|#| dc) (|#| sig)) + (|keyedSystemError| 'S2GE0016 + (list "substituteIntoFunctorModemap" "Incompatible maps"))) + ((equal (|#| argl) (|#| (cdr sig))) + (setq sig (eqsubstlist argl (cdr dc) sig)) + (setq tl + (loop for a in argl for m in (rest sig) + collect (progn + (setq tmp1 (|compOrCroak| a m env)) + (setq env (caddr tmp1)) + tmp1))) + (setq substitutionList + (loop for x in (rest dc) for tt in tl + collect (cons x (car tt)))) + (list (sublis substitutionList modemap) env)) + (t nil)))) + +\end{chunk} + \defun{compFormPartiallyBottomUp}{compFormPartiallyBottomUp} \calls{compFormPartiallyBottomUp}{compForm3} \calls{compFormPartiallyBottomUp}{compFormMatch} @@ -23611,6 +23642,7 @@ The current input line. \getchunk{defun stripOffSubdomainConditions} \getchunk{defun subrname} \getchunk{defun substituteCategoryArguments} +\getchunk{defun substituteIntoFunctorModemap} \getchunk{defun substNames} \getchunk{defun substVars} \getchunk{defun s-process} diff --git a/changelog b/changelog index e440a30..a7dd1e7 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,7 @@ +20111113 tpd src/axiom-website/patches.html 20111113.01.tpd.patch +20111113 tpd src/interp/Makefile remove apply.lisp +20111113 tpd src/interp/apply.lisp removed, merged with bookvol9 +20111113 tpd books/bookvol9 treeshake compiler 20111112 tpd src/axiom-website/patches.html 20111112.01.tpd.patch 20111112 tpd src/interp/apply.lisp treeshake compiler 20111112 tpd books/bookvol9 treeshake compiler diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 0f90319..e667b7f 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -3678,5 +3678,7 @@ src/axiom-website/documentation.html add Knuth quote
books/bookvol5 treeshake interpreter
20111112.01.tpd.patch books/bookvol9 treeshake compiler
+20111113.01.tpd.patch +books/bookvol9 treeshake compiler, remove apply.lisp
diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet index 374b2f2..3f253dc 100644 --- a/src/interp/Makefile.pamphlet +++ b/src/interp/Makefile.pamphlet @@ -181,7 +181,7 @@ OBJS= ${OUT}/vmlisp.${O} \ ${OUT}/template.${O} ${OUT}/termrw.${O} \ ${OUT}/fortcall.${O} \ ${OUT}/parsing.${O} \ - ${OUT}/apply.${O} ${OUT}/c-doc.${O} \ + ${OUT}/c-doc.${O} \ ${OUT}/c-util.${O} ${OUT}/profile.${O} \ ${OUT}/category.${O} \ ${OUT}/functor.${O} \ @@ -723,29 +723,6 @@ ${DEBUGSYS}: ${MID}/debugsys.lisp \section{The Interpreter files} -<>= -${OUT}/apply.${O}: ${MID}/apply.lisp - @ echo 10 making ${OUT}/apply.${O} from ${MID}/apply.lisp - @ (cd ${MID} ; \ - if [ -z "${NOISE}" ] ; then \ - echo '(progn (compile-file "${MID}/apply.lisp"' \ - ':output-file "${OUT}/apply.${O}") (${BYE}))' | ${DEPSYS} ; \ - else \ - echo '(progn (compile-file "${MID}/apply.lisp"' \ - ':output-file "${OUT}/apply.${O}") (${BYE}))' | ${DEPSYS} \ - >${TMP}/trace ; \ - fi ) - -@ -<>= -${MID}/apply.lisp: ${IN}/apply.lisp.pamphlet - @ echo 11 making ${MID}/apply.lisp from ${IN}/apply.lisp.pamphlet - @( cd ${MID} ; \ - echo '(tangle "${IN}/apply.lisp.pamphlet" "*" "apply.lisp")' \ - | ${OBJ}/${SYS}/bin/lisp ) - -@ - \subsection{cfuns.lisp \cite{10}} <>= ${OUT}/cfuns.${O}: ${MID}/cfuns.lisp @@ -3045,9 +3022,6 @@ clean: <> <> -<> -<> - <> <> <> diff --git a/src/interp/apply.lisp.pamphlet b/src/interp/apply.lisp.pamphlet deleted file mode 100644 index cd1bbab..0000000 --- a/src/interp/apply.lisp.pamphlet +++ /dev/null @@ -1,104 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/interp apply.lisp} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\begin{chunk}{*} - -(in-package "BOOT" ) - -;substituteIntoFunctorModemap(argl,modemap is [[dc,:sig],:.],e) == -; #dc^=#sig => -; keyedSystemError("S2GE0016",['"substituteIntoFunctorModemap", -; '"Incompatible maps"]) -; #argl=#rest sig => -; --here, we actually have a functor form -; sig:= EQSUBSTLIST(argl,rest dc,sig) -; --make new modemap, subst. actual for formal parametersinto modemap -; Tl:= [[.,.,e]:= compOrCroak(a,m,e) for a in argl for m in rest sig] -; substitutionList:= [[x,:T.expr] for x in rest dc for T in Tl] -; [SUBLIS(substitutionList,modemap),e] -; nil - -(DEFUN |substituteIntoFunctorModemap| (|argl| |modemap| |e|) - (PROG (|dc| |sig| |LETTMP#1| |Tl| |substitutionList|) - (RETURN - (SEQ (PROGN - (SPADLET |dc| (CAAR |modemap|)) - (SPADLET |sig| (CDAR |modemap|)) - (COND - ((NEQUAL (|#| |dc|) (|#| |sig|)) - (|keyedSystemError| 'S2GE0016 - (CONS "substituteIntoFunctorModemap" - (CONS "Incompatible maps" NIL)))) - ((BOOT-EQUAL (|#| |argl|) (|#| (CDR |sig|))) - (SPADLET |sig| (EQSUBSTLIST |argl| (CDR |dc|) |sig|)) - (SPADLET |Tl| - (PROG (G167960) - (SPADLET G167960 NIL) - (RETURN - (DO ((G167969 |argl| (CDR G167969)) - (|a| NIL) - (G167970 (CDR |sig|) - (CDR G167970)) - (|m| NIL)) - ((OR (ATOM G167969) - (PROGN - (SETQ |a| (CAR G167969)) - NIL) - (ATOM G167970) - (PROGN - (SETQ |m| (CAR G167970)) - NIL)) - (NREVERSE0 G167960)) - (SEQ (EXIT - (SETQ G167960 - (CONS - (PROGN - (SPADLET |LETTMP#1| - (|compOrCroak| |a| |m| |e|)) - (SPADLET |e| - (CADDR |LETTMP#1|)) - |LETTMP#1|) - G167960)))))))) - (SPADLET |substitutionList| - (PROG (G167984) - (SPADLET G167984 NIL) - (RETURN - (DO ((G167990 (CDR |dc|) - (CDR G167990)) - (|x| NIL) - (G167991 |Tl| (CDR G167991)) - (T$ NIL)) - ((OR (ATOM G167990) - (PROGN - (SETQ |x| (CAR G167990)) - NIL) - (ATOM G167991) - (PROGN - (SETQ T$ (CAR G167991)) - NIL)) - (NREVERSE0 G167984)) - (SEQ (EXIT - (SETQ G167984 - (CONS (CONS |x| (CAR T$)) - G167984)))))))) - (CONS (SUBLIS |substitutionList| |modemap|) - (CONS |e| NIL))) - ('T NIL))))))) - -;--% APPLY MODEMAPS - - -\end{chunk} -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document}