diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet index bb71ebd..2842ac6 100644 --- a/books/bookvol9.pamphlet +++ b/books/bookvol9.pamphlet @@ -433,45 +433,139 @@ Given the top level command: \end{verbatim} The default call chain looks like: \begin{verbatim} - 1> (|compiler| (PR)) - 2> (|compileSpad2Cmd| ("/research/test/int/algebra/PR.spad")) - 3> (|compilerDoit| NIL (|rq| |lib|)) - 4> (/RF-1 NIL) - 5> (SPAD "/research/test/int/algebra/PR.spad") - 6> (S-PROCESS (|where| ... - 7> (|compTopLevel| (|where| (DEF ... - 8> (|compOrCroak| (|where| (DEF ... - 9> (|compOrCroak| (CATEGORY |domain| ... - <9 (|compOrCroak| ((|DomainSubstitutionMacro| # #) ... -... - 10> (|compOrCroak| (|FreeModule| R E) |$EmptyMode| ((#))) - <10 (|compOrCroak| ((|FreeModule| R E) (|Join| # # #) (#))) -... - 11> (|compOrCroak| (|construct| (|construct| # #)) $ ((#))) - <11 (|compOrCroak| ((LIST #) $ (#))) -... - <9 (|compOrCroak| ((PROGN ... $) #1=(|Join| # #) (#))) - <8 (|compOrCroak| (|PolynomialRing| (|Mapping| ... - <7 (|compTopLevel| (|PolynomialRing| ... - <6 (S-PROCESS NIL) - <5 (SPAD T) - <4 (/RF-1 T) - <3 (|compilerDoit| T) -(1) -> +1> (|compiler| ...) + 2> (|compileSpad2Cmd| ...) + Compiling AXIOM source code from file /tmp/A.spad using old system + compiler. + 3> (|compilerDoit| ...) + 4> (|/RQ,LIB|) + 5> (/RF-1 ...) + 6> (SPAD ...) + AXSERV abbreviates package AxiomServer + 7> (S-PROCESS ...) + 8> (|compTopLevel| ...) + 9> (|compOrCroak| ...) + 10> (|compOrCroak1| ...) + 11> (|comp| ...) + 12> (|compNoStacking| ...) + 13> (|comp2| ...) + 14> (|comp3| ...) + 15> (|compExpression| ...) +* 16> (|compWhere| ...) + 17> (|comp| ...) + 18> (|compNoStacking| ...) + 19> (|comp2| ...) + 20> (|comp3| ...) + 21> (|compExpression| ...) + 22> (|compSeq| ...) + 23> (|compSeq1| ...) + 24> (|compSeqItem| ...) + 25> (|comp| ...) + 26> (|compNoStacking| ...) + 27> (|comp2| ...) + 28> (|comp3| ...) + 29> (|compExpression| ...) + <29 (|compExpression| ...) + <28 (|comp3| ...) + <27 (|comp2| ...) + <26 (|compNoStacking| ...) + <25 (|comp| ...) + <24 (|compSeqItem| ...) + 24> (|compSeqItem| ...) + 25> (|comp| ...) + 26> (|compNoStacking| ...) + 27> (|comp2| ...) + 28> (|comp3| ...) + 29> (|compExpression| ...) + 30> (|compExit| ...) + 31> (|comp| ...) + 32> (|compNoStacking| ...) + 33> (|comp2| ...) + 34> (|comp3| ...) + 35> (|compExpression| ...) + <35 (|compExpression| ...) + <34 (|comp3| ...) + <33 (|comp2| ...) + <32 (|compNoStacking| ...) + <31 (|comp| ...) + 31> (|modifyModeStack| ...) + <31 (|modifyModeStack| ...) + <30 (|compExit| ...) + <29 (|compExpression| ...) + <28 (|comp3| ...) + <27 (|comp2| ...) + <26 (|compNoStacking| ...) + <25 (|comp| ...) + <24 (|compSeqItem| ...) + 24> (|replaceExitEtc| ...) + 25> (|replaceExitEtc,fn| ...) + 26> (|replaceExitEtc| ...) + 27> (|replaceExitEtc,fn| ...) + 28> (|replaceExitEtc| ...) + 29> (|replaceExitEtc,fn| ...) + <29 (|replaceExitEtc,fn| ...) + <28 (|replaceExitEtc| ...) + 28> (|replaceExitEtc| ...) + 29> (|replaceExitEtc,fn| ...) + <29 (|replaceExitEtc,fn| ...) + <28 (|replaceExitEtc| ...) + <27 (|replaceExitEtc,fn| ...) + <26 (|replaceExitEtc| ...) + 26> (|replaceExitEtc| ...) + 27> (|replaceExitEtc,fn| ...) + 28> (|replaceExitEtc| ...) + 29> (|replaceExitEtc,fn| ...) + 30> (|replaceExitEtc| ...) + 31> (|replaceExitEtc,fn| ...) + 32> (|replaceExitEtc| ...) + 33> (|replaceExitEtc,fn| ...) + <33 (|replaceExitEtc,fn| ...) + <32 (|replaceExitEtc| ...) + 32> (|replaceExitEtc| ...) + 33> (|replaceExitEtc,fn| ...) + <33 (|replaceExitEtc,fn| ...) + <32 (|replaceExitEtc| ...) + <31 (|replaceExitEtc,fn| ...) + <30 (|replaceExitEtc| ...) + 30> (|convertOrCroak| ...) + 31> (|convert| ...) + <31 (|convert| ...) + <30 (|convertOrCroak| ...) + <29 (|replaceExitEtc,fn| ...) + <28 (|replaceExitEtc| ...) + 28> (|replaceExitEtc| ...) + 29> (|replaceExitEtc,fn| ...) + <29 (|replaceExitEtc,fn| ...) + <28 (|replaceExitEtc| ...) + <27 (|replaceExitEtc,fn| ...) + <26 (|replaceExitEtc| ...) + <25 (|replaceExitEtc,fn| ...) + <24 (|replaceExitEtc| ...) + <23 (|compSeq1| ...) + <22 (|compSeq| ...) + <21 (|compExpression| ...) + <20 (|comp3| ...) + <19 (|comp2| ...) + <18 (|compNoStacking| ...) + <17 (|comp| ...) + 17> (|comp| ...) + 18> (|compNoStacking| ...) + 19> (|comp2| ...) + 20> (|comp3| ...) + 21> (|compExpression| ...) + 22> (|comp| ...) + 23> (|compNoStacking| ...) + 24> (|comp2| ...) + 25> (|comp3| ...) + 26> (|compColon| ...) + <26 (|compColon| ...) + <25 (|comp3| ...) + <24 (|comp2| ...) + <23 (|compNoStacking| ...) + <22 (|comp| ...) \end{verbatim} \subsection{Aldor compiler} -This command compiles files with file extensions {\it .as, .ao} and -{\it .al} with the Aldor compiler. It also can compile files -with file extension {\it .lsp}. These are assumed to be Lisp files -genererated by the Aldor compiler. - -The general description of Aldor command line arguments is in -the Aldor documentation. -The default options used by the {\tt )compile} command can be -viewed and set using the {\tt )set compiler args} Axiom -system command. -The current defaults are \begin{verbatim} -O -Fasy -Fao -Flsp -laxiom -Mno-AXL_W_WillObsolete -DAxiom \end{verbatim} @@ -2510,6 +2604,43 @@ preferred to the underlying representation -- RDJ 9/12/83 @ +\defun{compWhere}{compWhere} +\calls{compWhere}{comp} +\calls{compWhere}{macroExpand} +\calls{compWhere}{deltaContour} +\calls{compWhere}{addContour} +\usesdollar{compWhere}{insideExpressionIfTrue} +\usesdollar{compWhere}{insideWhereIfTrue} +\usesdollar{compWhere}{EmptyMode} +<>= +(defun |compWhere| (arg0 m eInit) + (let (|$insideExpressionIfTrue| |$insideWhereIfTrue| form exprList e u + eBefore tmp1 x eAfter del eFinal) + (declare (special |$insideExpressionIfTrue| |$insideWhereIfTrue| + |$EmptyMode|)) + (setq form (second arg0)) + (setq exprlist (cddr arg0)) + (setq |$insideExpressionIfTrue| nil) + (setq |$insideWhereIfTrue| t) + (setq e eInit) + (when (dolist (item exprList t) + (setq tmp1 (|comp| item |$EmptyMode| e)) + (unless tmp1 (return nil)) + (setq e (third tmp1))) + (setq |$insideWhereIfTrue| nil) + (setq tmp1 (|comp| (|macroExpand| form (setq eBefore e)) m e)) + (when tmp1 + (setq x (first tmp1)) + (setq m (second tmp1)) + (setq eAfter (third tmp1)) + (setq del (|deltaContour| eAfter eBefore)) + (if del + (setq eFinal (|addContour| del eInit)) + (setq eFinal eInit)) + (list x m eFinal))))) + +@ + \defun{argsToSig}{argsToSig} <>= (defun |argsToSig| (args) @@ -2857,6 +2988,7 @@ if \verb|$InteractiveMode| then use a null outputstream <> <> <> +<> <> <> <> diff --git a/changelog b/changelog index 12bd525..463ee25 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,6 @@ +20100928 tpd src/axiom-website/patches.html 20100928.01.tpd.patch +20100928 tpd src/interp/compiler.lisp treeshake compiler +20100928 tpd books/bookvol9.pamphlet treeshake compiler 20100927 tpd src/axiom-website/patches.html 20100927.02.tpd.patch 20100927 tpd src/axiom-website/download.html add fedora, debian 20100927 tpd src/axiom-website/patches.html 20100927.01.tpd.patch diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 4d52c85..a9ab314 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -3162,5 +3162,7 @@ src/axiom-website/download.html add opensuse, vector
books/bookvolbib add Eric Weisstein [Wein]
20100927.02.tpd.patch src/axiom-website/download.html add fedora, debian
+20100928.01.tpd.patch +books/bookvol9.pamphlet treeshake compiler
diff --git a/src/interp/compiler.lisp.pamphlet b/src/interp/compiler.lisp.pamphlet index a705b10..dd02c39 100644 --- a/src/interp/compiler.lisp.pamphlet +++ b/src/interp/compiler.lisp.pamphlet @@ -1663,73 +1663,6 @@ Compile setelt NIL))))))))))))) @ -\subsection{compWhere} -Compile where -<<*>>= -;compWhere([.,form,:exprList],m,eInit) == -; $insideExpressionIfTrue: local:= false -; $insideWhereIfTrue: local:= true -; e:= eInit -; u:= -; for item in exprList repeat -; [.,.,e]:= comp(item,$EmptyMode,e) or return "failed" -; u="failed" => return nil -; $insideWhereIfTrue:= false -; [x,m,eAfter]:= comp(macroExpand(form,eBefore:= e),m,e) or return nil -; eFinal:= -; del:= deltaContour(eAfter,eBefore) => addContour(del,eInit) -; eInit -; [x,m,eFinal] - -(DEFUN |compWhere| (G168571 |m| |eInit|) - (PROG (|$insideExpressionIfTrue| |$insideWhereIfTrue| |form| - |exprList| |e| |u| |eBefore| |LETTMP#1| |x| |eAfter| |del| - |eFinal|) - (DECLARE (SPECIAL |$insideExpressionIfTrue| |$insideWhereIfTrue| - |$EmptyMode|)) - (RETURN - (SEQ (PROGN - (SPADLET |form| (CADR G168571)) - (SPADLET |exprList| (CDDR G168571)) - (SPADLET |$insideExpressionIfTrue| NIL) - (SPADLET |$insideWhereIfTrue| 'T) - (SPADLET |e| |eInit|) - (SPADLET |u| - (DO ((G168594 |exprList| (CDR G168594)) - (|item| NIL)) - ((OR (ATOM G168594) - (PROGN - (SETQ |item| (CAR G168594)) - NIL)) - NIL) - (SEQ (EXIT (PROGN - (SPADLET |LETTMP#1| - (OR - (|comp| |item| |$EmptyMode| |e|) - (RETURN '|failed|))) - (SPADLET |e| (CADDR |LETTMP#1|)) - |LETTMP#1|))))) - (COND - ((BOOT-EQUAL |u| '|failed|) (RETURN NIL)) - ('T (SPADLET |$insideWhereIfTrue| NIL) - (SPADLET |LETTMP#1| - (OR (|comp| (|macroExpand| |form| - (SPADLET |eBefore| |e|)) - |m| |e|) - (RETURN NIL))) - (SPADLET |x| (CAR |LETTMP#1|)) - (SPADLET |m| (CADR |LETTMP#1|)) - (SPADLET |eAfter| (CADDR |LETTMP#1|)) - (SPADLET |eFinal| - (COND - ((SPADLET |del| - (|deltaContour| |eAfter| - |eBefore|)) - (|addContour| |del| |eInit|)) - ('T |eInit|))) - (CONS |x| (CONS |m| (CONS |eFinal| NIL)))))))))) - -@ \subsection{compConstruct} Compile construct <<*>>=