diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet index 915c1f9..6284835 100644 --- a/books/bookvol9.pamphlet +++ b/books/bookvol9.pamphlet @@ -4368,6 +4368,95 @@ An angry JHD - August 15th., 1984 @ +\defplist{String}{compString} +<>= +(eval-when (eval load) + (setf (get '|String| 'special) '|compString|)) + +@ + +\defun{compString}{compString} +\calls{compString}{resolve} +\usesdollar{compString}{StringCategory} +<>= +(defun |compString| (x m e) + (declare (special |$StringCategory|)) + (list x (|resolve| |$StringCategory| m) e)) + +@ + +\defplist{SubDomain}{compSubDomain} +<>= +(eval-when (eval load) + (setf (get '|SubDomain| 'special) '|compSubDomain|)) + +@ + +\defun{compSubDomain}{compSubDomain} +\calls{compSubDomain}{compSubDomain1} +\calls{compSubDomain}{compCapsule} +\usesdollar{compSubDomain}{addFormLhs} +\usesdollar{compSubDomain}{NRTaddForm} +\usesdollar{compSubDomain}{addForm} +\usesdollar{compSubDomain}{addFormLhs} +<>= +(defun |compSubDomain| (arg m e) + (let (|$addFormLhs| |$addForm| domainForm predicate tmp1) + (declare (special |$addFormLhs| |$addForm| |$NRTaddForm| |$addFormLhs|)) + (setq domainForm (second arg)) + (setq predicate (third arg)) + (setq |$addFormLhs| domainForm) + (setq |$addForm| nil) + (setq |$NRTaddForm| domainForm) + (setq tmp1 (|compSubDomain1| domainForm predicate m e)) + (setq |$addForm| (first tmp1)) + (setq e (third tmp1)) + (|compCapsule| (list 'capsule) m e))) + +@ + +\defun{compSubDomain1}{compSubDomain1} +\calls{compSubDomain1}{compMakeDeclaration} +\calls{compSubDomain1}{addDomain} +\calls{compSubDomain1}{compOrCroak} +\calls{compSubDomain1}{stackSemanticError} +\calls{compSubDomain1}{lispize} +\calls{compSubDomain1}{evalAndRwriteLispForm} +\usesdollar{compSubDomain1}{CategoryFrame} +\usesdollar{compSubDomain1}{op} +\usesdollar{compSubDomain1}{lisplibSuperDomain} +\usesdollar{compSubDomain1}{Boolean} +\usesdollar{compSubDomain1}{EmptyMode} +<>= +(defun |compSubDomain1| (domainForm predicate m e) + (let (u prefixPredicate opp dFp) + (declare (special |$CategoryFrame| |$op| |$lisplibSuperDomain| |$Boolean| + |$EmptyMode|)) + (setq e (third + (|compMakeDeclaration| (list '|:| '|#1| domainForm) + |$EmptyMode| (|addDomain| domainForm e)))) + (setq u (|compOrCroak| predicate |$Boolean| e)) + (unless u + (|stackSemanticError| + (list '|predicate: | predicate + '| cannot be interpreted with #1: | domainForm) nil)) + (setq prefixPredicate (|lispize| (first u))) + (setq |$lisplibSuperDomain| (list domainForm predicate)) + (|evalAndRwriteLispForm| '|evalOnLoad2| + (list 'setq '|$CategoryFrame| + (list '|put| + (setq opp (list 'quote |$op|)) + ''|SuperDomain| + (setq dFp (list 'quote domainForm)) + (list '|put| dFp ''|SubDomain| + (list 'cons (list 'quote (cons |$op| prefixPredicate)) + (list 'delasc opp (list '|get| dFp ''|SubDomain| '|$CategoryFrame|))) + '|$CategoryFrame|)))) + (list domainForm m e))) + +@ + + \defplist{vector}{compVector} <>= (eval-when (eval load) @@ -11625,6 +11714,9 @@ if \verb|$InteractiveMode| then use a null outputstream <> <> <> +<> +<> +<> <> <> <> diff --git a/changelog b/changelog index f434b3b..10c373f 100644 --- a/changelog +++ b/changelog @@ -1,8 +1,13 @@ +20101206 tpd src/axiom-website/patches.html 20101206.03.tpd.patch +20101206 tpd src/interp/postprop.lisp treeshake compiler +20101206 tpd src/interp/define.lisp treeshake compiler +20101206 tpd src/interp/compiler.lisp treeshake compiler +20101206 tpd books/bookvol9 treeshake compiler 20101206 tpd src/axiom-website/patches.html 20101206.02.tpd.patch 20101206 tpd books/bookvolbib [Loe09], [Mar07], [Wei03], [Wei06] 20101206 tpd books/bookvol12 add discussion of GTFL 20101206 tpd src/axiom-website/patches.html 20101206.01.tpd.patch -20101206 tpd src/interp/postprop.lisp treeshake comiler +20101206 tpd src/interp/postprop.lisp treeshake compiler 20101206 tpd src/interp/compiler.lisp treeshake compiler 20101206 tpd books/bookvol9 treeshake compiler 20101205 tpd src/axiom-website/patches.html 20101205.02.tpd.patch diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 081707b..18f09db 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -3299,5 +3299,7 @@ books/bookvol9 treeshake compiler
books/bookvol9 treeshake compiler
20101206.02.tpd.patch books/bookvol12 add discussion of GTFL
+20101206.03.tpd.patch +books/bookvol9 treeshake compiler
diff --git a/src/interp/compiler.lisp.pamphlet b/src/interp/compiler.lisp.pamphlet index d1ed42f..0c13237 100644 --- a/src/interp/compiler.lisp.pamphlet +++ b/src/interp/compiler.lisp.pamphlet @@ -854,16 +854,6 @@ @ -\section{Special evaluation functions} -\subsection{compString} -<<*>>= -;compString(x,m,e) == [x,resolve($StringCategory,m),e] - -(DEFUN |compString| (|x| |m| |e|) - (declare (special |$StringCategory|)) - (CONS |x| (CONS (|resolve| |$StringCategory| |m|) (CONS |e| NIL)))) - -@ \subsection{compSubsetCategory} Compile SubsetCategory <<*>>= diff --git a/src/interp/define.lisp.pamphlet b/src/interp/define.lisp.pamphlet index d077ed5..66c404f 100644 --- a/src/interp/define.lisp.pamphlet +++ b/src/interp/define.lisp.pamphlet @@ -4868,113 +4868,6 @@ (CONS |i| (CONS |x| NIL))) G169701)))))))))))) -;compSubDomain(["SubDomain",domainForm,predicate],m,e) == -; $addFormLhs: local:= domainForm -; $addForm: local := nil -; $NRTaddForm := domainForm -; [$addForm,.,e]:= compSubDomain1(domainForm,predicate,m,e) -;--+ -; compCapsule(['CAPSULE],m,e) - -(DEFUN |compSubDomain| (G169740 |m| |e|) - (PROG (|$addFormLhs| |$addForm| |domainForm| |predicate| |LETTMP#1|) - (DECLARE (SPECIAL |$addFormLhs| |$addForm| |$NRTaddForm| |$addFormLhs|)) - (RETURN - (PROGN - (COND ((EQ (CAR G169740) '|SubDomain|) (CAR G169740))) - (SPADLET |domainForm| (CADR G169740)) - (SPADLET |predicate| (CADDR G169740)) - (SPADLET |$addFormLhs| |domainForm|) - (SPADLET |$addForm| NIL) - (SPADLET |$NRTaddForm| |domainForm|) - (SPADLET |LETTMP#1| - (|compSubDomain1| |domainForm| |predicate| |m| |e|)) - (SPADLET |$addForm| (CAR |LETTMP#1|)) - (SPADLET |e| (CADDR |LETTMP#1|)) - (|compCapsule| (CONS 'CAPSULE NIL) |m| |e|))))) - -;compSubDomain1(domainForm,predicate,m,e) == -; [.,.,e]:= -; compMakeDeclaration([":","#1",domainForm],$EmptyMode,addDomain(domainForm,e)) -; u:= -; compOrCroak(predicate,$Boolean,e) or -; stackSemanticError(["predicate: ",predicate, -; " cannot be interpreted with #1: ",domainForm],nil) -; prefixPredicate:= lispize u.expr -; $lisplibSuperDomain:= -; [domainForm,predicate] -; evalAndRwriteLispForm('evalOnLoad2, -; ['SETQ,'$CategoryFrame,['put,op':= ['QUOTE,$op],' -; (QUOTE SuperDomain),dF':= ['QUOTE,domainForm],['put,dF','(QUOTE SubDomain),[ -; 'CONS,['QUOTE,[$op,:prefixPredicate]],['DELASC,op',['get,dF',' -; (QUOTE SubDomain),'$CategoryFrame]]],'$CategoryFrame]]]) -; [domainForm,m,e] - -(DEFUN |compSubDomain1| (|domainForm| |predicate| |m| |e|) - (PROG (|LETTMP#1| |u| |prefixPredicate| |op'| |dF'|) - (declare (special |$CategoryFrame| |$op| |$lisplibSuperDomain| |$Boolean| - |$EmptyMode|)) - (RETURN - (PROGN - (SPADLET |LETTMP#1| - (|compMakeDeclaration| - (CONS '|:| (CONS '|#1| (CONS |domainForm| NIL))) - |$EmptyMode| (|addDomain| |domainForm| |e|))) - (SPADLET |e| (CADDR |LETTMP#1|)) - (SPADLET |u| - (OR (|compOrCroak| |predicate| |$Boolean| |e|) - (|stackSemanticError| - (CONS '|predicate: | - (CONS |predicate| - (CONS - '| cannot be interpreted with #1: | - (CONS |domainForm| NIL)))) - NIL))) - (SPADLET |prefixPredicate| (|lispize| (CAR |u|))) - (SPADLET |$lisplibSuperDomain| - (CONS |domainForm| (CONS |predicate| NIL))) - (|evalAndRwriteLispForm| '|evalOnLoad2| - (CONS 'SETQ - (CONS '|$CategoryFrame| - (CONS (CONS '|put| - (CONS - (SPADLET |op'| - (CONS 'QUOTE (CONS |$op| NIL))) - (CONS ''|SuperDomain| - (CONS - (SPADLET |dF'| - (CONS 'QUOTE - (CONS |domainForm| NIL))) - (CONS - (CONS '|put| - (CONS |dF'| - (CONS ''|SubDomain| - (CONS - (CONS 'CONS - (CONS - (CONS 'QUOTE - (CONS - (CONS |$op| - |prefixPredicate|) - NIL)) - (CONS - (CONS 'DELASC - (CONS |op'| - (CONS - (CONS '|get| - (CONS |dF'| - (CONS ''|SubDomain| - (CONS - '|$CategoryFrame| - NIL)))) - NIL))) - NIL))) - (CONS '|$CategoryFrame| - NIL))))) - NIL))))) - NIL)))) - (CONS |domainForm| (CONS |m| (CONS |e| NIL))))))) - ;--% PROCESS FUNCTOR CODE ; ;processFunctor(form,signature,data,localParList,e) == diff --git a/src/interp/postprop.lisp.pamphlet b/src/interp/postprop.lisp.pamphlet index 3302fcb..c7dcf06 100644 --- a/src/interp/postprop.lisp.pamphlet +++ b/src/interp/postprop.lisp.pamphlet @@ -87,8 +87,8 @@ ; (LET |compSetq|) ; (SETQ |compSetq|) ; (SEQ |compSeq|) - (|String| |compString|) - (|SubDomain| |compSubDomain|) +; (|String| |compString|) +; (|SubDomain| |compSubDomain|) (|SubsetCategory| |compSubsetCategory|) (\| |compSuchthat|) ; (VECTOR |compVector|)