diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet index 6cafe86..a672cc8 100644 --- a/books/bookvol9.pamphlet +++ b/books/bookvol9.pamphlet @@ -1349,6 +1349,27 @@ preferred to the underlying representation -- RDJ 9/12/83 @ +\defun{compTypeOf}{compTypeOf} +\calls{compTypeOf}{eqsubstlist} +\calls{compTypeOf}{get} +\calls{compTypeOf}{put} +\calls{compTypeOf}{comp3} +\usesdollar{compTypeOf}{insideCompTypeOf} +\usesdollar{compTypeOf}{FormalMapVariableList} +<>= +(defun |compTypeOf| (x m e) + (let (|$insideCompTypeOf| op argl newModemap) + (declare (special |$insideCompTypeOf| |$FormalMapVariableList|)) + (setq op (car x)) + (setq argl (cdr x)) + (setq |$insideCompTypeOf| t) + (setq newModemap + (eqsubstlist argl |$FormalMapVariableList| (|get| op '|modemap| e))) + (setq e (|put| op '|modemap| newModemap e)) + (|comp3| x m e))) + +@ + \defun{compColon}{compColon} \begin{verbatim} ;compColon([":",f,t],m,e) == @@ -1629,6 +1650,29 @@ preferred to the underlying representation -- RDJ 9/12/83 @ +\defun{primitiveType}{primitiveType} +\usesdollar{primitiveType}{DoubleFloat} +\usesdollar{primitiveType}{NegativeInteger} +\usesdollar{primitiveType}{PositiveInteger} +\usesdollar{primitiveType}{NonNegativeInteger} +\usesdollar{primitiveType}{String} +\usesdollar{primitiveType}{EmptyMode} +<>= +(defun |primitiveType| (x) + (declare (special |$DoubleFloat| |$NegativeInteger| |$PositiveInteger| + |$NonNegativeInteger| |$String| |$EmptyMode|)) + (cond + ((null x) |$EmptyMode|) + ((stringp x) |$String|) + ((integerp x) + (cond + ((eql x 0) |$NonNegativeInteger|) + ((> x 0) |$PositiveInteger|) + (t |$NegativeInteger|))) + ((floatp x) |$DoubleFloat|) + (t nil))) + +@ \defun{compSymbol}{compSymbol} \calls{compSymbol}{getmode} \calls{compSymbol}{get} @@ -2546,6 +2590,7 @@ if \verb|$InteractiveMode| then use a null outputstream <> <> <> +<> <> <> <> @@ -2556,6 +2601,8 @@ if \verb|$InteractiveMode| then use a null outputstream <> +<> + <> <> <> diff --git a/changelog b/changelog index 2843451..52c3c8f 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,6 @@ +20100917 tpd src/axiom-website/patches.html 20100917.01.tpd.patch +20100917 tpd src/interp/compiler.lisp treeshake compiler +20100917 tpd books/bookvol9 treeshake compiler 20100916 tpd src/axiom-website/patches.html 20100916.01.tpd.patch 20100916 tpd src/interp/compiler.lisp treeshake compiler 20100916 tpd books/bookvol9 treeshake compiler diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 181287d..09161d3 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -3123,5 +3123,7 @@ books/bookvol9 treeshake compiler
src/input/manuel.input add Manuel's integral to test suite
20100916.01.tpd.patch books/bookvol9 treeshake compiler
+20100917.01.tpd.patch +books/bookvol9 treeshake compiler
diff --git a/src/interp/compiler.lisp.pamphlet b/src/interp/compiler.lisp.pamphlet index 4cf1c9d..1b88986 100644 --- a/src/interp/compiler.lisp.pamphlet +++ b/src/interp/compiler.lisp.pamphlet @@ -45,30 +45,6 @@ @ -\subsection{compTypeOf} -<<*>>= -;compTypeOf(x:=[op,:argl],m,e) == -; $insideCompTypeOf: local := true -; newModemap:= EQSUBSTLIST(argl,$FormalMapVariableList,get(op,'modemap,e)) -; e:= put(op,'modemap,newModemap,e) -; comp3(x,m,e) - -(DEFUN |compTypeOf| (|x| |m| |e|) - (PROG (|$insideCompTypeOf| |op| |argl| |newModemap|) - (DECLARE (SPECIAL |$insideCompTypeOf| |$FormalMapVariableList|)) - (RETURN - (PROGN - (SPADLET |op| (CAR |x|)) - (SPADLET |argl| (CDR |x|)) - (SPADLET |$insideCompTypeOf| 'T) - (SPADLET |newModemap| - (EQSUBSTLIST |argl| |$FormalMapVariableList| - (|get| |op| '|modemap| |e|))) - (SPADLET |e| (|put| |op| '|modemap| |newModemap| |e|)) - (|comp3| |x| |m| |e|))))) - -@ - \subsection{extractCodeAndConstructTriple} <<*>>= ;extractCodeAndConstructTriple(u, m, oldE) == @@ -105,33 +81,6 @@ @ -\subsection{primitiveType} -<<*>>= -;primitiveType x == -; x is nil => $EmptyMode -; STRINGP x => $String -; INTEGERP x => -; x=0 => $NonNegativeInteger -; x>0 => $PositiveInteger -; true => $NegativeInteger -; FLOATP x => $DoubleFloat -; nil - -(DEFUN |primitiveType| (|x|) - (declare (special |$DoubleFloat| |$NegativeInteger| |$PositiveInteger| - |$NonNegativeInteger| |$String| |$EmptyMode|)) - (COND - ((NULL |x|) |$EmptyMode|) - ((STRINGP |x|) |$String|) - ((INTEGERP |x|) - (COND - ((EQL |x| 0) |$NonNegativeInteger|) - ((> |x| 0) |$PositiveInteger|) - ('T |$NegativeInteger|))) - ((FLOATP |x|) |$DoubleFloat|) - ('T NIL))) - -@ \subsection{convertOrCroak} <<*>>= ;convertOrCroak(T,m) ==