diff --git a/changelog b/changelog index 80d006c..8a96ab3 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,22 @@ +20110109 tpd src/axiom-website/patches.html 20110109.03.tpd.patch +20110109 tpd src/interp/Makefile move to lisp tangle +20110109 tpd src/interp/i-coerfn.lisp move to lisp tangle +20110109 tpd src/interp/i-eval.lisp move to lisp tangle +20110109 tpd src/interp/i-funsel.lisp move to lisp tangle +20110109 tpd src/interp/i-intern.lisp move to lisp tangle +20110109 tpd src/interp/i-map.lisp move to lisp tangle +20110109 tpd src/interp/i-output.lisp move to lisp tangle +20110109 tpd src/interp/i-resolv.lisp move to lisp tangle +20110109 tpd src/interp/i-spec1.lisp move to lisp tangle +20110109 tpd src/interp/i-spec2.lisp move to lisp tangle +20110109 tpd src/interp/i-util.lisp move to lisp tangle +20110109 tpd src/interp/info.lisp move to lisp tangle +20110109 tpd src/interp/interop.lisp move to lisp tangle +20110109 tpd src/interp/iterator.lisp move to lisp tangle +20110109 tpd src/interp/lisplib.lisp move to lisp tangle +20110109 tpd src/interp/match.lisp move to lisp tangle +20110109 tpd src/interp/modemap.lisp move to lisp tangle +20110109 tpd src/interp/msgdb.lisp move to lisp tangle 20110109 tpd src/axiom-website/patches.html 20110109.02.tpd.patch 20110109 tpd src/interp/Makefile move to lisp tangle 20110109 tpd src/interp/c-util.lisp move to lisp tangle diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index dc3fbd3..6276759 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -3339,5 +3339,7 @@ books/bookvol5 convert to lisp tangle
*.lisp.pamphlet moving to lisp tangle
20110109.02.tpd.patch *.lisp.pamphlet moving to lisp tangle
+20110109.03.tpd.patch +*.lisp.pamphlet moving to lisp tangle
diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet index 745cb6b..fa19fa8 100644 --- a/src/interp/Makefile.pamphlet +++ b/src/interp/Makefile.pamphlet @@ -2058,7 +2058,8 @@ ${MID}/i-coerfn.lisp: ${IN}/i-coerfn.lisp.pamphlet @ echo 137 making ${MID}/i-coerfn.lisp from \ ${IN}/i-coerfn.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/i-coerfn.lisp.pamphlet >i-coerfn.lisp ) + echo '(tangle "${IN}/i-coerfn.lisp.pamphlet" "*" "i-coerfn.lisp")' \ + | ${OBJ}/${SYS}/bin/lisp ) @ @@ -2082,7 +2083,8 @@ ${MID}/i-eval.lisp: ${IN}/i-eval.lisp.pamphlet @ echo 137 making ${MID}/i-eval.lisp from \ ${IN}/i-eval.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/i-eval.lisp.pamphlet >i-eval.lisp ) + echo '(tangle "${IN}/i-eval.lisp.pamphlet" "*" "i-eval.lisp")' \ + | ${OBJ}/${SYS}/bin/lisp ) @ @@ -2106,7 +2108,8 @@ ${MID}/i-funsel.lisp: ${IN}/i-funsel.lisp.pamphlet @ echo 137 making ${MID}/i-funsel.lisp from \ ${IN}/i-funsel.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/i-funsel.lisp.pamphlet >i-funsel.lisp ) + echo '(tangle "${IN}/i-funsel.lisp.pamphlet" "*" "i-funsel.lisp")' \ + | ${OBJ}/${SYS}/bin/lisp ) @ @@ -2219,7 +2222,8 @@ ${MID}/i-intern.lisp: ${IN}/i-intern.lisp.pamphlet @ echo 137 making ${MID}/i-intern.lisp from \ ${IN}/i-intern.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/i-intern.lisp.pamphlet >i-intern.lisp ) + echo '(tangle "${IN}/i-intern.lisp.pamphlet" "*" "i-intern.lisp")' \ + | ${OBJ}/${SYS}/bin/lisp ) @ @@ -2243,7 +2247,8 @@ ${MID}/i-map.lisp: ${IN}/i-map.lisp.pamphlet @ echo 137 making ${MID}/i-map.lisp from \ ${IN}/i-map.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/i-map.lisp.pamphlet >i-map.lisp ) + echo '(tangle "${IN}/i-map.lisp.pamphlet" "*" "i-map.lisp")' \ + | ${OBJ}/${SYS}/bin/lisp ) @ @@ -2267,7 +2272,8 @@ ${MID}/i-output.lisp: ${IN}/i-output.lisp.pamphlet @ echo 137 making ${MID}/i-output.lisp from \ ${IN}/i-output.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/i-output.lisp.pamphlet >i-output.lisp ) + echo '(tangle "${IN}/i-output.lisp.pamphlet" "*" "i-output.lisp")' \ + | ${OBJ}/${SYS}/bin/lisp ) @ @@ -2291,7 +2297,8 @@ ${MID}/i-resolv.lisp: ${IN}/i-resolv.lisp.pamphlet @ echo 137 making ${MID}/i-resolv.lisp from \ ${IN}/i-resolv.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/i-resolv.lisp.pamphlet >i-resolv.lisp ) + echo '(tangle "${IN}/i-resolv.lisp.pamphlet" "*" "i-resolv.lisp")' \ + | ${OBJ}/${SYS}/bin/lisp ) @ @@ -2315,7 +2322,8 @@ ${MID}/i-spec1.lisp: ${IN}/i-spec1.lisp.pamphlet @ echo 137 making ${MID}/i-spec1.lisp from \ ${IN}/i-spec1.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/i-spec1.lisp.pamphlet >i-spec1.lisp ) + echo '(tangle "${IN}/i-spec1.lisp.pamphlet" "*" "i-spec1.lisp")' \ + | ${OBJ}/${SYS}/bin/lisp ) @ @@ -2339,7 +2347,8 @@ ${MID}/i-spec2.lisp: ${IN}/i-spec2.lisp.pamphlet @ echo 137 making ${MID}/i-spec2.lisp from \ ${IN}/i-spec2.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/i-spec2.lisp.pamphlet >i-spec2.lisp ) + echo '(tangle "${IN}/i-spec2.lisp.pamphlet" "*" "i-spec2.lisp")' \ + | ${OBJ}/${SYS}/bin/lisp ) @ @@ -2363,7 +2372,8 @@ ${MID}/i-util.lisp: ${IN}/i-util.lisp.pamphlet @ echo 137 making ${MID}/i-util.lisp from \ ${IN}/i-util.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/i-util.lisp.pamphlet >i-util.lisp ) + echo '(tangle "${IN}/i-util.lisp.pamphlet" "*" "i-util.lisp")' \ + | ${OBJ}/${SYS}/bin/lisp ) @ @@ -2386,7 +2396,8 @@ ${OUT}/info.${O}: ${MID}/info.lisp ${MID}/info.lisp: ${IN}/info.lisp.pamphlet @ echo 137 making ${MID}/info.lisp from ${IN}/info.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/info.lisp.pamphlet >info.lisp ) + echo '(tangle "${IN}/info.lisp.pamphlet" "*" "info.lisp")' \ + | ${OBJ}/${SYS}/bin/lisp ) @ @@ -2410,7 +2421,8 @@ ${MID}/iterator.lisp: ${IN}/iterator.lisp.pamphlet @ echo 137 making ${MID}/iterator.lisp from \ ${IN}/iterator.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/iterator.lisp.pamphlet >iterator.lisp ) + echo '(tangle "${IN}/iterator.lisp.pamphlet" "*" "iterator.lisp")' \ + | ${OBJ}/${SYS}/bin/lisp ) @ @@ -2433,7 +2445,8 @@ ${OUT}/lisplib.${O}: ${MID}/lisplib.lisp ${MID}/lisplib.lisp: ${IN}/lisplib.lisp.pamphlet @ echo 137 making ${MID}/lisplib.lisp from ${IN}/lisplib.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/lisplib.lisp.pamphlet >lisplib.lisp ) + echo '(tangle "${IN}/lisplib.lisp.pamphlet" "*" "lisplib.lisp")' \ + | ${OBJ}/${SYS}/bin/lisp ) @ @@ -2456,7 +2469,8 @@ ${OUT}/match.${O}: ${MID}/match.lisp ${MID}/match.lisp: ${IN}/match.lisp.pamphlet @ echo 137 making ${MID}/match.lisp from ${IN}/match.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/match.lisp.pamphlet >match.lisp ) + echo '(tangle "${IN}/match.lisp.pamphlet" "*" "match.lisp")' \ + | ${OBJ}/${SYS}/bin/lisp ) @ @@ -2479,7 +2493,8 @@ ${OUT}/modemap.${O}: ${MID}/modemap.lisp ${MID}/modemap.lisp: ${IN}/modemap.lisp.pamphlet @ echo 137 making ${MID}/modemap.lisp from ${IN}/modemap.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/modemap.lisp.pamphlet >modemap.lisp ) + echo '(tangle "${IN}/modemap.lisp.pamphlet" "*" "modemap.lisp")' \ + | ${OBJ}/${SYS}/bin/lisp ) @ @@ -2502,7 +2517,8 @@ ${OUT}/msgdb.${O}: ${MID}/msgdb.lisp ${MID}/msgdb.lisp: ${IN}/msgdb.lisp.pamphlet @ echo 137 making ${MID}/msgdb.lisp from ${IN}/msgdb.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/msgdb.lisp.pamphlet >msgdb.lisp ) + echo '(tangle "${IN}/msgdb.lisp.pamphlet" "*" "msgdb.lisp")' \ + | ${OBJ}/${SYS}/bin/lisp ) @ @@ -3194,7 +3210,8 @@ ${OUT}/interop.${O}: ${MID}/interop.lisp ${MID}/interop.lisp: ${IN}/interop.lisp.pamphlet @ echo 137 making ${MID}/interop.lisp from ${IN}/interop.lisp.pamphlet @ (cd ${MID} ; \ - ${TANGLE} ${IN}/interop.lisp.pamphlet >interop.lisp ) + echo '(tangle "${IN}/interop.lisp.pamphlet" "*" "interop.lisp")' \ + | ${OBJ}/${SYS}/bin/lisp ) @ diff --git a/src/interp/i-coerfn.lisp.pamphlet b/src/interp/i-coerfn.lisp.pamphlet index 68a4dfe..86299e4 100755 --- a/src/interp/i-coerfn.lisp.pamphlet +++ b/src/interp/i-coerfn.lisp.pamphlet @@ -72,7 +72,7 @@ all these coercion functions have the following result: coerceByTable \end{verbatim} -<<*>>= +\begin{chunk}{*} (in-package "BOOT") ;SETANDFILEQ($coerceFailure,GENSYM()) @@ -6875,7 +6875,7 @@ all these coercion functions have the following result: (CONS |target| (CONS |target| NIL)))) (SPADCALL (SPADCALL |lc'| |lm'| |multfun|) |rd'| |plusfun|)))))))) -@ +\end{chunk} \begin{verbatim} Format for alist member is: domain coercionType function @@ -6892,7 +6892,7 @@ all these coercion functions have the following result: a function like deconstructTower. RSS 8-1-85 \end{verbatim} -<<*>>= +\begin{chunk}{*} ;SETANDFILEQ($CoerceTable, '( _ ; (Complex . ( _ ; (Expression indeterm Complex2Expr) _ @@ -7414,7 +7414,7 @@ all these coercion functions have the following result: (|SparseUnivariatePolynomial| |commute| |commuteSm1|) (|UnivariatePolynomial| |commute| |commuteSm2|)))) -@ +\end{chunk} \eject \begin{thebibliography}{99} \bibitem{1} nothing diff --git a/src/interp/i-eval.lisp.pamphlet b/src/interp/i-eval.lisp.pamphlet index 1fdbf6f..8edb61d 100644 --- a/src/interp/i-eval.lisp.pamphlet +++ b/src/interp/i-eval.lisp.pamphlet @@ -125,7 +125,7 @@ the alternate polynomial types of Symbols. \item {\bf \$localVars}: list of local variables in a map body \item {\bf \$MapArgumentTypeList}: hack for stream compilation \end{itemize} -<<*>>= +\begin{chunk}{*} (IN-PACKAGE "BOOT" ) ;--% Constructor Evaluation @@ -1476,7 +1476,7 @@ the alternate polynomial types of Symbols. ((BOOT-EQUAL |x| |$coerceFailure|) NIL) ((QUOTE T) |x|))) -@ +\end{chunk} \eject \begin{thebibliography}{99} \bibitem{1} nothing diff --git a/src/interp/i-funsel.lisp.pamphlet b/src/interp/i-funsel.lisp.pamphlet index 8c9f46f..866b731 100644 --- a/src/interp/i-funsel.lisp.pamphlet +++ b/src/interp/i-funsel.lisp.pamphlet @@ -34,11 +34,12 @@ the following flags are used: constant [[$EmptyMode]] (defined in bootfuns.lisp) evaluates to [[|$EmptyMode|]]. This constants is inserted in a modemap during compile time if the modemap is not yet complete. -<>= +\begin{chunk}{isPartialMode} isPartialMode m == CONTAINED($EmptyMode,m) -<<*>>= +\end{chunk} +\begin{chunk}{*} (IN-PACKAGE "BOOT" ) @@ -2166,7 +2167,7 @@ isPartialMode m == (t (setq |mmS| (CONS |mm| |mmS|))))))))) (NREVERSE |mmS|)))))) -@ +\end{chunk} mmCost assigns a penalty to each signature according to the following formula: \begin{verbatim} @@ -2190,7 +2191,7 @@ targets is done at the very end. In particular, note that if we have two signatures taking types A and B, and the given argument does not match exactly but has to be coerced, then the types A and B themselves are not sorted by preference. -<<*>>= +\begin{chunk}{*} ;mmCost(name, sig,cond,tar,args1,args2) == ; cost := mmCost0(name, sig,cond,tar,args1,args2) ; res := CADR sig @@ -6711,7 +6712,7 @@ the types A and B themselves are not sorted by preference. (t NIL))) (t NIL)))))) -@ +\end{chunk} \eject \begin{thebibliography}{99} \bibitem{1} nothing diff --git a/src/interp/i-intern.lisp.pamphlet b/src/interp/i-intern.lisp.pamphlet index 1e23d5a..c276f4c 100644 --- a/src/interp/i-intern.lisp.pamphlet +++ b/src/interp/i-intern.lisp.pamphlet @@ -32,7 +32,7 @@ slot & description\\ 3 & modeset: list of single computed mode of subtree\\ 4 & prop list for extra things\\ \end{tabular} -<<*>>= +\begin{chunk}{*} (IN-PACKAGE "BOOT" ) @@ -43,10 +43,10 @@ slot & description\\ (SETANDFILEQ |$transferParserSrcPos| NIL) -@ +\end{chunk} \section{Making trees} \subsection{mkAtreeNode} -<<*>>= +\begin{chunk}{*} ;mkAtreeNode x == ; -- maker of attrib tree node ; v := MAKE_-VEC 5 @@ -57,18 +57,18 @@ slot & description\\ (PROG (|v|) (RETURN (PROGN (SPADLET |v| (make-array 5)) (SETELT |v| 0 |x|) |v|)))) -@ +\end{chunk} \subsection{mkAtree} Maker of attrib tree from parser form -<<*>>= +\begin{chunk}{*} ;mkAtree x == ; mkAtree1 mkAtreeExpandMacros x (DEFUN |mkAtree| (|x|) (|mkAtree1| (|mkAtreeExpandMacros| |x|))) -@ +\end{chunk} \subsection{mkAtreeWithSrcPos} -<<*>>= +\begin{chunk}{*} ;mkAtreeWithSrcPos(form, posnForm) == ; posnForm and $useParserSrcPos => pf2Atree(posnForm) ; transferSrcPosInfo(posnForm, mkAtree form) @@ -79,27 +79,27 @@ Maker of attrib tree from parser form ((AND |posnForm| |$useParserSrcPos|) (|pf2Atree| |posnForm|)) ((QUOTE T) (|transferSrcPosInfo| |posnForm| (|mkAtree| |form|))))) -@ +\end{chunk} \subsection{mkAtree1WithSrcPos} -<<*>>= +\begin{chunk}{*} ;mkAtree1WithSrcPos(form, posnForm) == ; transferSrcPosInfo(posnForm, mkAtree1 form) (DEFUN |mkAtree1WithSrcPos| (|form| |posnForm|) (|transferSrcPosInfo| |posnForm| (|mkAtree1| |form|))) -@ +\end{chunk} \subsection{mkAtreeNodeWithSrcPos} -<<*>>= +\begin{chunk}{*} ;mkAtreeNodeWithSrcPos(form, posnForm) == ; transferSrcPosInfo(posnForm, mkAtreeNode form) (DEFUN |mkAtreeNodeWithSrcPos| (|form| |posnForm|) (|transferSrcPosInfo| |posnForm| (|mkAtreeNode| |form|))) -@ +\end{chunk} \subsection{transferSrcPosInfo} -<<*>>= +\begin{chunk}{*} ;transferSrcPosInfo(pf, atree) == ; not (pf and $transferParserSrcPos) => atree ; pos := pfPosOrNopos(pf) @@ -134,11 +134,11 @@ Maker of attrib tree from parser form (|pfCharPosn| |pos|)) |atree|))))))) -@ +\end{chunk} \subsection{mkAtreeExpandMacros} Handle macro expansion. if the macros have args we require that we match the correct number of args -<<*>>= +\begin{chunk}{*} ;mkAtreeExpandMacros x == ; if x isnt ['MDEF,:.] and x isnt ['DEF,['macro,:.],:.] then ; atom x and (m := isInterpMacro x) => @@ -247,9 +247,9 @@ we match the correct number of args (SPADLET |x| (CONS (|mkAtreeExpandMacros| |op|) |argl|)))))))))) |x|))))) -@ +\end{chunk} \subsection{mkAtree1} -<<*>>= +\begin{chunk}{*} ;mkAtree1 x == ; -- first special handler for making attrib tree ; null x => throwKeyedMsg("S2IP0005",['"NIL"]) @@ -302,10 +302,10 @@ we match the correct number of args (|mkAtree2| |x| |op| |argl|)) ((QUOTE T) (|systemErrorHere| "mkAtree1")))))) -@ +\end{chunk} \subsection{mkAtree2} mkAtree2 and mkAtree3 were created because mkAtree1 got so big -<<*>>= +\begin{chunk}{*} ;mkAtree2(x,op,argl) == ; nargl := #argl ; (op= '_-) and (nargl = 1) and (INTEGERP CAR argl) => @@ -635,10 +635,10 @@ mkAtree2 and mkAtree3 were created because mkAtree1 got so big (CONS "$" (CONS |argl| (CONS "not qualifying an operator" NIL))))))) ((QUOTE T) (|mkAtree3| |x| |op| |argl|)))))))) -@ +\end{chunk} \subsection{mkAtree3} mkAtree2 and mkAtree3 were created because mkAtree1 got so big -<<*>>= +\begin{chunk}{*} ;mkAtree3(x,op,argl) == ; op='REDUCE and argl is [op1,axis,body] => ; [mkAtreeNode op,axis,mkAtree1 op1,mkAtree1 body] @@ -1115,7 +1115,7 @@ mkAtree2 and mkAtree3 were created because mkAtree1 got so big (NREVERSE0 #12#)) (SEQ (EXIT (SETQ #12# (CONS (|mkAtree1| |y|) #12#)))))))))))))) -@ +\end{chunk} \subsection{collectDefTypesAndPreds} Given an arglist to a DEF-like form, this function returns a vector of three things: @@ -1124,7 +1124,7 @@ a vector of three things: \item slot 1: the type declarations on the variables \item slot 2: a predicate for all arguments \end{itemize} -<<*>>= +\begin{chunk}{*} ;collectDefTypesAndPreds args == ; pred := types := vars := NIL ; junk := @@ -1270,9 +1270,9 @@ a vector of three things: (SPADLET |vars| (CONS |args| NIL))))) (VECTOR |vars| |types| |pred|)))))) -@ +\end{chunk} \subsection{mkAtreeValueOf} -<<*>>= +\begin{chunk}{*} ;mkAtreeValueOf l == ; -- scans for ['valueOf,atom] ; not CONTAINED('valueOf,l) => l @@ -1283,9 +1283,9 @@ a vector of three things: ((NULL (CONTAINED (QUOTE |valueOf|) |l|)) |l|) ((QUOTE T) (|mkAtreeValueOf1| |l|)))) -@ +\end{chunk} \subsection{mkAtreeValueOf1} -<<*>>= +\begin{chunk}{*} ;mkAtreeValueOf1 l == ; null l or atom l or null rest l => l ; l is ['valueOf,u] and IDENTP u => @@ -1326,19 +1326,19 @@ a vector of three things: ((OR (ATOM #1#) (PROGN (SETQ |x| (CAR #1#)) NIL)) (NREVERSE0 #0#)) (SEQ (EXIT (SETQ #0# (CONS (|mkAtreeValueOf1| |x|) #0#))))))))))))) -@ +\end{chunk} \subsection{mkLessOrEqual} -<<*>>= +\begin{chunk}{*} ;mkLessOrEqual(lhs,rhs) == ['not,['_<,rhs,lhs]] (DEFUN |mkLessOrEqual| (|lhs| |rhs|) (CONS (QUOTE |not|) (CONS (CONS (QUOTE <) (CONS |rhs| (CONS |lhs| NIL))) NIL))) -@ +\end{chunk} \subsection{emptyAtree} Remove mode, value, and misc. info from attrib tree -<<*>>= +\begin{chunk}{*} ;emptyAtree expr == ; VECP expr => ; $immediateDataSymbol = expr.0 => nil @@ -1364,10 +1364,10 @@ Remove mode, value, and misc. info from attrib tree ((OR (ATOM #0#) (PROGN (SETQ |e| (CAR #0#)) NIL)) NIL) (SEQ (EXIT (|emptyAtree| |e|)))))))) -@ +\end{chunk} \subsection{unVectorize} Transforms from an atree back into a tree -<<*>>= +\begin{chunk}{*} ;unVectorize body == ; VECP body => ; name := getUnname body @@ -1412,10 +1412,10 @@ Transforms from an atree back into a tree (CONS |newOp| (|unVectorize| |argl|))) ((QUOTE T) (|systemErrorHere| "unVectorize")))))) -@ +\end{chunk} \section{Stuffing and Getting Info} \subsection{putAtree} -<<*>>= +\begin{chunk}{*} ;putAtree(x,prop,val) == ; x is [op,:.] => ; -- only willing to add property if op is a vector @@ -1441,9 +1441,9 @@ Transforms from an atree back into a tree ((QUOTE T) (SETELT |x| 4 (|insertShortAlist| |prop| |val| (ELT |x| 4))) |x|))))) -@ +\end{chunk} \subsection{getAtree} -<<*>>= +\begin{chunk}{*} ;getAtree(x,prop) == ; x is [op,:.] => ; -- only willing to get property if op is a vector @@ -1467,9 +1467,9 @@ Transforms from an atree back into a tree (ELT |x| |n|)) ((QUOTE T) (QLASSQ |prop| (ELT |x| 4))))))) -@ +\end{chunk} \subsection{putTarget} -<<*>>= +\begin{chunk}{*} ;putTarget(x, targ) == ; -- want to put nil modes perhaps to clear old target ; if targ = $EmptyMode then targ := nil @@ -1481,16 +1481,16 @@ Transforms from an atree back into a tree (COND ((BOOT-EQUAL |targ| |$EmptyMode|) (SPADLET |targ| NIL))) (|putAtree| |x| (QUOTE |target|) |targ|))) -@ +\end{chunk} \subsection{getTarget} -<<*>>= +\begin{chunk}{*} ;getTarget(x) == getAtree(x,'target) (DEFUN |getTarget| (|x|) (|getAtree| |x| (QUOTE |target|))) -@ +\end{chunk} \subsection{insertShortAlist} -<<*>>= +\begin{chunk}{*} ;insertShortAlist(prop,val,al) == ; pair := QASSQ(prop,al) => ; RPLACD(pair,val) @@ -1504,9 +1504,9 @@ Transforms from an atree back into a tree ((SPADLET |pair| (QASSQ |prop| |al|)) (RPLACD |pair| |val|) |al|) ((QUOTE T) (CONS (CONS |prop| |val|) |al|)))))) -@ +\end{chunk} \subsection{transferPropsToNode} -<<*>>= +\begin{chunk}{*} ;transferPropsToNode(x,t) == ; propList := getProplist(x,$env) ; QLASSQ('Led,propList) or QLASSQ('Nud,propList) => nil @@ -1561,17 +1561,17 @@ Transforms from an atree back into a tree (SPADLET |am| (|get| |x| (QUOTE |automode|) |$env|))) (|putModeSet| |t| (CONS |am| NIL)) (|putMode| |t| |am|))) |t|))))))) -@ +\end{chunk} \subsection{isLeaf} May be a number or a vector -<<*>>= +\begin{chunk}{*} ; isLeaf x == atom x (DEFUN |isLeaf| (|x|) (ATOM |x|)) -@ +\end{chunk} \subsection{getMode} -<<*>>= +\begin{chunk}{*} ;getMode x == ; x is [op,:.] => getMode op ; VECP x => x.1 @@ -1588,9 +1588,9 @@ May be a number or a vector ((SPADLET |m| (|getBasicMode| |x|)) |m|) ((QUOTE T) (|keyedSystemError| (QUOTE S2II0001) (CONS |x| NIL))))))) -@ +\end{chunk} \subsection{putMode} -<<*>>= +\begin{chunk}{*} ;putMode(x,y) == ; x is [op,:.] => putMode(op,y) ; null VECP x => keyedSystemError("S2II0001",[x]) @@ -1605,9 +1605,9 @@ May be a number or a vector ((NULL (VECP |x|)) (|keyedSystemError| (QUOTE S2II0001) (CONS |x| NIL))) ((QUOTE T) (SETELT |x| 1 |y|)))))) -@ +\end{chunk} \subsection{getValue} -<<*>>= +\begin{chunk}{*} ;getValue x == ; VECP x => x.2 ; atom x => @@ -1626,9 +1626,9 @@ May be a number or a vector ((QUOTE T) (|keyedSystemError| (QUOTE S2II0001) (CONS |x| NIL))))) ((QUOTE T) (|getValue| (CAR |x|))))))) -@ +\end{chunk} \subsection{putValue} -<<*>>= +\begin{chunk}{*} ;putValue(x,y) == ; x is [op,:.] => putValue(op,y) ; null VECP x => keyedSystemError("S2II0001",[x]) @@ -1643,18 +1643,18 @@ May be a number or a vector ((NULL (VECP |x|)) (|keyedSystemError| (QUOTE S2II0001) (CONS |x| NIL))) ((QUOTE T) (SETELT |x| 2 |y|)))))) -@ +\end{chunk} \subsection{putValueValue} -<<*>>= +\begin{chunk}{*} ;putValueValue(vec,val) == ; putValue(vec,val) ; vec (DEFUN |putValueValue| (|vec| |val|) (PROGN (|putValue| |vec| |val|) |vec|)) -@ +\end{chunk} \subsection{getUnnameIfCan} -<<*>>= +\begin{chunk}{*} ;getUnnameIfCan x == ; VECP x => x.0 ; x is [op,:.] => getUnnameIfCan op @@ -1670,9 +1670,9 @@ May be a number or a vector (|getUnnameIfCan| |op|)) ((ATOM |x|) |x|) ((QUOTE T) NIL))))) -@ +\end{chunk} \subsection{getUnname} -<<*>>= +\begin{chunk}{*} ;getUnname x == ; x is [op,:.] => getUnname op ; getUnname1 x @@ -1685,9 +1685,9 @@ May be a number or a vector (|getUnname| |op|)) ((QUOTE T) (|getUnname1| |x|)))))) -@ +\end{chunk} \subsection{getUnname1} -<<*>>= +\begin{chunk}{*} ;getUnname1 x == ; VECP x => x.0 ; null atom x => keyedSystemError("S2II0001",[x]) @@ -1699,9 +1699,9 @@ May be a number or a vector ((NULL (ATOM |x|)) (|keyedSystemError| (QUOTE S2II0001) (CONS |x| NIL))) ((QUOTE T) |x|))) -@ +\end{chunk} \subsection{computedMode} -<<*>>= +\begin{chunk}{*} ;computedMode t == ; getModeSet t is [m] => m ; keyedSystemError("S2GE0016",['"computedMode",'"non-singleton modeset"]) @@ -1721,9 +1721,9 @@ May be a number or a vector (|keyedSystemError| (QUOTE S2GE0016) (CONS "computedMode" (CONS "non-singleton modeset" NIL)))))))) -@ +\end{chunk} \subsection{putModeSet} -<<*>>= +\begin{chunk}{*} ;putModeSet(x,y) == ; x is [op,:.] => putModeSet(op,y) ; not VECP x => keyedSystemError("S2II0001",[x]) @@ -1739,9 +1739,9 @@ May be a number or a vector ((NULL (VECP |x|)) (|keyedSystemError| (QUOTE S2II0001) (CONS |x| NIL))) ((QUOTE T) (SETELT |x| 3 |y|) |y|))))) -@ +\end{chunk} \subsection{getModeOrFirstModeSetIfThere} -<<*>>= +\begin{chunk}{*} ;getModeOrFirstModeSetIfThere x == ; x is [op,:.] => getModeOrFirstModeSetIfThere op ; VECP x => @@ -1777,9 +1777,9 @@ May be a number or a vector ((QUOTE T) NIL))) ((SPADLET |m| (|getBasicMode| |x|)) |m|) ((QUOTE T) NIL))))) -@ +\end{chunk} \subsection{getModeSet} -<<*>>= +\begin{chunk}{*} ;getModeSet x == ; x and PAIRP x => getModeSet first x ; VECP x => @@ -1820,9 +1820,9 @@ May be a number or a vector (|keyedSystemError| (QUOTE S2GE0016) (CONS "getModeSet" (CONS "not an attributed tree" NIL)))))))) -@ +\end{chunk} \subsection{getModeSetUseSubdomain} -<<*>>= +\begin{chunk}{*} ;getModeSetUseSubdomain x == ; x and PAIRP x => getModeSetUseSubdomain first x ; VECP(x) => @@ -1891,16 +1891,16 @@ May be a number or a vector (|keyedSystemError| (QUOTE S2GE0016) (CONS "getModeSetUseSubomain" (CONS "not an attributed tree" NIL)))))))) -@ +\end{chunk} \subsection{atree2EvaluatedTree} -<<*>>= +\begin{chunk}{*} ;atree2EvaluatedTree x == atree2Tree1(x,true) (DEFUN |atree2EvaluatedTree| (|x|) (|atree2Tree1| |x| (QUOTE T))) -@ +\end{chunk} \subsection{atree2Tree1} -<<*>>= +\begin{chunk}{*} ;atree2Tree1(x,evalIfTrue) == ; (triple := getValue x) and objMode(triple) ^= $EmptyMode => ; coerceOrCroak(triple,$OutputForm,$mapName) @@ -1930,10 +1930,10 @@ May be a number or a vector (EXIT (SETQ #0# (CONS (|atree2Tree1| |y| |evalIfTrue|) #0#))))))))))))) -@ +\end{chunk} \section{Environment Utilities} \subsection{getValueFromEnvironment} -<<*>>= +\begin{chunk}{*} ;getValueFromEnvironment(x,mode) == ; $failure ^= (v := getValueFromSpecificEnvironment(x,mode,$env)) => v ; $failure ^= (v := getValueFromSpecificEnvironment(x,mode,$e)) => v @@ -1960,9 +1960,9 @@ May be a number or a vector (|throwKeyedMsg| (QUOTE S2IE0001) (CONS |x| NIL))) ((QUOTE T) (|objValUnwrap| |v|)))))) -@ +\end{chunk} \subsection{getValueFromSpecificEnvironment} -<<*>>= +\begin{chunk}{*} ;getValueFromSpecificEnvironment(id,mode,e) == ; PAIRP e => ; u := get(id,'value,e) => @@ -2034,10 +2034,10 @@ May be a number or a vector ((QUOTE T) |$failure|))) ((QUOTE T) |$failure|))))) -@ -@ +\end{chunk} +\end{chunk} \subsection{augProplistInteractive} -<<*>>= +\begin{chunk}{*} ;augProplistInteractive(proplist,prop,val) == ; u := ASSQ(prop,proplist) => ; RPLACD(u,val) @@ -2051,18 +2051,18 @@ May be a number or a vector ((SPADLET |u| (ASSQ |prop| |proplist|)) (RPLACD |u| |val|) |proplist|) ((QUOTE T) (CONS (CONS |prop| |val|) |proplist|)))))) -@ +\end{chunk} \subsection{getFlag} -<<*>>= +\begin{chunk}{*} ;getFlag x == get("--flags--",x,$e) (DEFUN |getFlag| (|x|) (declare (special |$e|)) (|get| (QUOTE |--flags--|) |x| |$e|)) -@ +\end{chunk} \subsection{putFlag} -<<*>>= +\begin{chunk}{*} ;putFlag(flag,value) == ; $e := put ("--flags--", flag, value, $e) @@ -2070,9 +2070,9 @@ May be a number or a vector (declare (special |$e|)) (SPADLET |$e| (|put| (QUOTE |--flags--|) |flag| |value| |$e|))) -@ +\end{chunk} \subsection{get} -<<*>>= +\begin{chunk}{*} ;get(x,prop,e) == ; $InteractiveMode => get0(x,prop,e) ; get1(x,prop,e) @@ -2083,9 +2083,9 @@ May be a number or a vector (|$InteractiveMode| (|get0| |x| |prop| |e|)) ((QUOTE T) (|get1| |x| |prop| |e|)))) -@ +\end{chunk} \subsection{get0} -<<*>>= +\begin{chunk}{*} ;get0(x,prop,e) == ; null atom x => get(QCAR x,prop,e) ; u:= QLASSQ(x,CAR QCAR e) => QLASSQ(prop,u) @@ -2104,12 +2104,12 @@ May be a number or a vector (QLASSQ |prop| |u|)) ((QUOTE T) NIL))))) -@ +\end{chunk} \subsection{get1} We try to avoid lookups in the environment if it is clear that the lookup will fail. The \verb|$envHashTable| was populated in addBinding (see g-util.boot.pamphlet). -<<*>>= +\begin{chunk}{*} ;get1(x,prop,e) == ; --this is the old get ; negHash := nil @@ -2165,9 +2165,9 @@ addBinding (see g-util.boot.pamphlet). (CONS |x| (CONS |prop| (CONS (AND |ress| (QUOTE T)) NIL))))))) |ress|)))))))) -@ +\end{chunk} \subsection{get2} -<<*>>= +\begin{chunk}{*} ;get2(x,prop,e) == ; prop="modemap" and constructor? x => ; (u := getConstructorModemap(x)) => [u] @@ -2185,36 +2185,36 @@ addBinding (see g-util.boot.pamphlet). ((QUOTE T) NIL))) ((QUOTE T) NIL))))) -@ +\end{chunk} \subsection{getI} -<<*>>= +\begin{chunk}{*} ;getI(x,prop) == get(x,prop,$InteractiveFrame) (DEFUN |getI| (|x| |prop|) (declare (special |$InteractiveFrame|)) (|get| |x| |prop| |$InteractiveFrame|)) -@ +\end{chunk} \subsection{putI} -<<*>>= +\begin{chunk}{*} ;putI(x,prop,val) == ($InteractiveFrame := put(x,prop,val,$InteractiveFrame)) (DEFUN |putI| (|x| |prop| |val|) (declare (special |$InteractiveFrame|)) (SPADLET |$InteractiveFrame| (|put| |x| |prop| |val| |$InteractiveFrame|))) -@ +\end{chunk} \subsection{getIProplist} -<<*>>= +\begin{chunk}{*} ;getIProplist x == getProplist(x,$InteractiveFrame) (DEFUN |getIProplist| (|x|) (declare (special |$InteractiveFrame|)) (|getProplist| |x| |$InteractiveFrame|)) -@ +\end{chunk} \subsection{removeBindingI} -<<*>>= +\begin{chunk}{*} ;removeBindingI x == ; RPLAC(CAAR $InteractiveFrame,deleteAssocWOC(x,CAAR $InteractiveFrame)) @@ -2223,9 +2223,9 @@ addBinding (see g-util.boot.pamphlet). (CAAR |$InteractiveFrame|) (|deleteAssocWOC| |x| (CAAR |$InteractiveFrame|)))) -@ +\end{chunk} \subsection{rempropI} -<<*>>= +\begin{chunk}{*} ;rempropI(x,prop) == ; id:= ; atom x => x @@ -2249,9 +2249,9 @@ addBinding (see g-util.boot.pamphlet). (SPADLET |$InteractiveFrame| (|remprop| |id| |prop| |$InteractiveFrame|))))))))) -@ +\end{chunk} \subsection{remprop} -<<*>>= +\begin{chunk}{*} ;remprop(x,prop,e) == ; u:= ASSOC(prop,pl:= getProplist(x,e)) => ; e:= addBinding(x,DELASC(first u,pl),e) @@ -2267,9 +2267,9 @@ addBinding (see g-util.boot.pamphlet). |e|) ((QUOTE T) |e|))))) -@ +\end{chunk} \subsection{fastSearchCurrentEnv} -<<*>>= +\begin{chunk}{*} ;fastSearchCurrentEnv(x,currentEnv) == ; u:= QLASSQ(x,CAR currentEnv) => u ; while (currentEnv:= QCDR currentEnv) repeat @@ -2289,9 +2289,9 @@ addBinding (see g-util.boot.pamphlet). (COND ((SPADLET |u| (QLASSQ |x| (CAR |currentEnv|))) (EXIT |u|)))))))))))) -@ +\end{chunk} \subsection{put} -<<*>>= +\begin{chunk}{*} ;put(x,prop,val,e) == ; $InteractiveMode and not EQ(e,$CategoryFrame) => ; putIntSymTab(x,prop,val,e) @@ -2329,9 +2329,9 @@ addBinding (see g-util.boot.pamphlet). |e|) ((QUOTE T) (|addBinding| |x| |newProplist| |e|)))))))) -@ +\end{chunk} \subsection{putIntSymTab} -<<*>>= +\begin{chunk}{*} ;putIntSymTab(x,prop,val,e) == ; null atom x => putIntSymTab(first x,prop,val,e) ; pl0 := pl := search(x,e) @@ -2366,9 +2366,9 @@ addBinding (see g-util.boot.pamphlet). ((EQ |pl0| |pl|) |e|) ((QUOTE T) (|addIntSymTabBinding| |x| |pl| |e|)))))))) -@ +\end{chunk} \subsection{addIntSymTabBinding} -<<*>>= +\begin{chunk}{*} ;addIntSymTabBinding(var,proplist,e is [[curContour,:.],:.]) == ; -- change proplist of var in e destructively ; u := ASSQ(var,curContour) => @@ -2387,7 +2387,7 @@ addBinding (see g-util.boot.pamphlet). ((QUOTE T) (RPLAC (CAAR |e|) (CONS (CONS |var| |proplist|) |curContour|)) |e|)))))) -@ +\end{chunk} \section{Source and position information} In the following, src is a string containing an original input line, line is the line number of the string within the source file, @@ -2395,63 +2395,63 @@ and col is the index within src of the start of the form represented by x. x is a VAT. \subsection{putSrcPos} -<<*>>= +\begin{chunk}{*} ;putSrcPos(x, file, src, line, col) == ; putAtree(x, 'srcAndPos, srcPos_New(file, src, line, col)) (DEFUN |putSrcPos| (|x| |file| |src| |line| |col|) (|putAtree| |x| (QUOTE |srcAndPos|) (|srcPosNew| |file| |src| |line| |col|))) -@ +\end{chunk} \subsection{getSrcPos} -<<*>>= +\begin{chunk}{*} ;getSrcPos(x) == getAtree(x, 'srcAndPos) (DEFUN |getSrcPos| (|x|) (|getAtree| |x| (QUOTE |srcAndPos|))) -@ +\end{chunk} \subsection{srcPosNew} -<<*>>= +\begin{chunk}{*} ;srcPosNew(file, src, line, col) == LIST2VEC [file, src, line, col] (DEFUN |srcPosNew| (|file| |src| |line| |col|) (LIST2VEC (CONS |file| (CONS |src| (CONS |line| (CONS |col| NIL)))))) -@ +\end{chunk} \subsection{srcPosFile} -<<*>>= +\begin{chunk}{*} ;srcPosFile(sp) == ; if sp then sp.0 else nil (DEFUN |srcPosFile| (|sp|) (COND (|sp| (ELT |sp| 0)) ((QUOTE T) NIL))) -@ +\end{chunk} \subsection{srcPosSource} -<<*>>= +\begin{chunk}{*} ;srcPosSource(sp) == ; if sp then sp.1 else nil (DEFUN |srcPosSource| (|sp|) (COND (|sp| (ELT |sp| 1)) ((QUOTE T) NIL))) -@ +\end{chunk} \subsection{srcPosLine} -<<*>>= +\begin{chunk}{*} ;srcPosLine(sp) == ; if sp then sp.2 else nil (DEFUN |srcPosLine| (|sp|) (COND (|sp| (ELT |sp| 2)) ((QUOTE T) NIL))) -@ +\end{chunk} \subsection{srcPosColumn} -<<*>>= +\begin{chunk}{*} ;srcPosColumn(sp) == ; if sp then sp.3 else nil (DEFUN |srcPosColumn| (|sp|) (COND (|sp| (ELT |sp| 3)) ((QUOTE T) NIL))) -@ +\end{chunk} \subsection{srcPosDisplay} -<<*>>= +\begin{chunk}{*} ;srcPosDisplay(sp) == ; null sp => nil ; s := STRCONC('"_"", srcPosFile sp, '"_", line ", @@ -2483,7 +2483,7 @@ by x. x is a VAT. (CONS (|fillerSpaces| (|#| |s|) " ") (CONS |dots| (CONS "^" NIL)))) (QUOTE T)))))) -@ +\end{chunk} \section{Functions on interpreter objects} Interpreter objects used to be called triples because they had the structure [value, type, environment]. For many years, the environment @@ -2501,126 +2501,126 @@ code, e.g., parts of a function that is being constructed. These are the new structure functions. \subsection{mkObj} -<<*>>= +\begin{chunk}{*} ;mkObj(val, mode) == CONS(mode,val) -- old names (DEFUN |mkObj| (|val| |mode|) (CONS |mode| |val|)) -@ +\end{chunk} \subsection{mkObjWrap} -<<*>>= +\begin{chunk}{*} ;mkObjWrap(val, mode) == CONS(mode,wrap val) (DEFUN |mkObjWrap| (|val| |mode|) (CONS |mode| (|wrap| |val|))) -@ +\end{chunk} \subsection{mkObjCode} -<<*>>= +\begin{chunk}{*} ;mkObjCode(val, mode) == ['CONS, MKQ mode,val ] (DEFUN |mkObjCode| (|val| |mode|) (CONS (QUOTE CONS) (CONS (MKQ |mode|) (CONS |val| NIL)))) -@ +\end{chunk} \subsection{objNew} -<<*>>= +\begin{chunk}{*} ;objNew(val, mode) == CONS(mode,val) -- new names as of 10/14/93 (DEFUN |objNew| (|val| |mode|) (CONS |mode| |val|)) -@ +\end{chunk} \subsection{objNewWrap} -<<*>>= +\begin{chunk}{*} ;objNewWrap(val, mode) == CONS(mode,wrap val) (DEFUN |objNewWrap| (|val| |mode|) (CONS |mode| (|wrap| |val|))) -@ +\end{chunk} \subsection{objNewCode} -<<*>>= +\begin{chunk}{*} ;objNewCode(val, mode) == ['CONS, MKQ mode,val ] (DEFUN |objNewCode| (|val| |mode|) (CONS (QUOTE CONS) (CONS (MKQ |mode|) (CONS |val| NIL)))) -@ +\end{chunk} \subsection{objSetVal} -<<*>>= +\begin{chunk}{*} ;objSetVal(obj,val) == RPLACD(obj,val) (DEFUN |objSetVal| (|obj| |val|) (RPLACD |obj| |val|)) -@ +\end{chunk} \subsection{objSetMode} -<<*>>= +\begin{chunk}{*} ;objSetMode(obj,mode) == RPLACA(obj,mode) (DEFUN |objSetMode| (|obj| |mode|) (RPLACA |obj| |mode|)) -@ +\end{chunk} \subsection{objVal} -<<*>>= +\begin{chunk}{*} ;objVal obj == CDR obj (DEFUN |objVal| (|obj|) (CDR |obj|)) -@ +\end{chunk} \subsection{objValUnwrap} -<<*>>= +\begin{chunk}{*} ;objValUnwrap obj == unwrap CDR obj (DEFUN |objValUnwrap| (|obj|) (|unwrap| (CDR |obj|))) -@ +\end{chunk} \subsection{objMode} -<<*>>= +\begin{chunk}{*} ;objMode obj == CAR obj (DEFUN |objMode| (|obj|) (CAR |obj|)) -@ +\end{chunk} \subsection{objEnv} -<<*>>= +\begin{chunk}{*} ;objEnv obj == $NE (DEFUN |objEnv| (|obj|) (declare (special $NE) (ignore |obj|)) $NE) -@ +\end{chunk} \subsection{objCodeVal} -<<*>>= +\begin{chunk}{*} ;objCodeVal obj == CADDR obj (DEFUN |objCodeVal| (|obj|) (CADDR |obj|)) -@ +\end{chunk} \subsection{objCodeMode} -<<*>>= +\begin{chunk}{*} ;objCodeMode obj == CADR obj (DEFUN |objCodeMode| (|obj|) (CADR |obj|)) -@ +\end{chunk} \section{Library compiler structures needed by the interpreter} Tuples and Crosses \subsection{asTupleNew} -<<*>>= +\begin{chunk}{*} ;asTupleNew(size, listOfElts) == CONS(size, LIST2VEC listOfElts) (DEFUN |asTupleNew| (SIZE |listOfElts|) (CONS SIZE (LIST2VEC |listOfElts|))) -@ +\end{chunk} \subsection{asTupleNew0} -<<*>>= +\begin{chunk}{*} ;asTupleNew0(listOfElts) == CONS(#listOfElts, LIST2VEC listOfElts) (DEFUN |asTupleNew0| (|listOfElts|) (CONS (|#| |listOfElts|) (LIST2VEC |listOfElts|))) -@ +\end{chunk} \subsection{asTupleNewCode} -<<*>>= +\begin{chunk}{*} ;asTupleNewCode(size, listOfElts) == ["asTupleNew", size, ['LIST, :listOfElts]] (DEFUN |asTupleNewCode| (SIZE |listOfElts|) @@ -2628,36 +2628,36 @@ Tuples and Crosses (QUOTE |asTupleNew|) (CONS SIZE (CONS (CONS (QUOTE LIST) |listOfElts|) NIL)))) -@ +\end{chunk} \subsection{asTupleNewCode0} -<<*>>= +\begin{chunk}{*} ;asTupleNewCode0(listForm) == ["asTupleNew0", listForm] (DEFUN |asTupleNewCode0| (|listForm|) (CONS (QUOTE |asTupleNew0|) (CONS |listForm| NIL))) -@ +\end{chunk} \subsection{asTupleSize} -<<*>>= +\begin{chunk}{*} ;asTupleSize(at) == CAR at (DEFUN |asTupleSize| (|at|) (CAR |at|)) -@ +\end{chunk} \subsection{asTupleAsVector} -<<*>>= +\begin{chunk}{*} ;asTupleAsVector(at) == CDR at (DEFUN |asTupleAsVector| (|at|) (CDR |at|)) -@ +\end{chunk} \subsection{asTupleAsList} -<<*>>= +\begin{chunk}{*} ;asTupleAsList(at) == VEC2LIST asTupleAsVector at (DEFUN |asTupleAsList| (|at|) (VEC2LIST (|asTupleAsVector| |at|))) -@ +\end{chunk} \eject \begin{thebibliography}{99} \bibitem{1} nothing diff --git a/src/interp/i-map.lisp.pamphlet b/src/interp/i-map.lisp.pamphlet index 6069d24..39644b7 100644 --- a/src/interp/i-map.lisp.pamphlet +++ b/src/interp/i-map.lisp.pamphlet @@ -9,7 +9,7 @@ \eject \tableofcontents \eject -<<*>>= +\begin{chunk}{*} (IN-PACKAGE "BOOT" ) @@ -4145,7 +4145,7 @@ ;-- $e:= putHist(op,'mapBody,body:= combineMapParts mapDef,$e) ;-- body -@ +\end{chunk} \begin{verbatim} DO NOT BELIEVE ALL OF THE FOLLOWING (IT IS OLD) VARIABLES. Variables may or may not have a mode property. If @@ -4230,7 +4230,7 @@ with modemap ((dummy target source ..) (T f;1)) so that the next time f is applied to arguments which coerce to the source arguments of this local modemap, f;1 will be invoked. \end{verbatim} -<<*>>= +\begin{chunk}{*} ;getLocalVars(op,body) == ; -- looks in $e for local vars; if not found, computes then stores them ; get(op,'localVars,$e) or @@ -4250,7 +4250,7 @@ arguments of this local modemap, f;1 will be invoked. |lv|))))) -@ +\end{chunk} \eject \begin{thebibliography}{99} \bibitem{1} nothing diff --git a/src/interp/i-output.lisp.pamphlet b/src/interp/i-output.lisp.pamphlet index b15695b..9f5dbef 100644 --- a/src/interp/i-output.lisp.pamphlet +++ b/src/interp/i-output.lisp.pamphlet @@ -9,7 +9,7 @@ \eject \tableofcontents \eject -<<*>>= +\begin{chunk}{*} (IN-PACKAGE "BOOT" ) (SPADLET |$collectOutput| NIL) @@ -161,7 +161,7 @@ ((STRINGP |x|) |x|) ('T (|stringer| |x|)))) -@ +\end{chunk} \begin{verbatim} General convention in the ``app...'' functions: Added from an attempt to fix bugs by JHD: 2 Aug 89 @@ -174,7 +174,7 @@ The arguments are: \end{itemize} these functions return an updated ``layout so far'' in general \end{verbatim} -<<*>>= +\begin{chunk}{*} ;appChar(string,x,y,d) == ; if CHARP string then string := PNAME string ; line:= LASSOC(y,d) => @@ -1081,12 +1081,12 @@ these functions return an updated ``layout so far'' in general (|mkSuperSub| |op| |l|)) ('T (CONS (|outputTran| |op|) |l|))))))))))) -@ +\end{chunk} The next two functions are designed to replace successive instances of binary functions with the n-ary equivalent, cutting down on recursion in outputTran and in partciular allowing big polynomials to be printed without stack overflow. MCD. -<<*>>= +\begin{chunk}{*} ;flattenOps l == ; [op, :args ] := l ; op in ['"+",'"*","+","*"] => @@ -6588,8 +6588,8 @@ NIL (DEFUN ASSOCIATER (FN LST) (COND ((NULL LST) NIL) - ((NULL (CDR LST)) (CAR LST)) - ((LIST FN (CAR LST) (ASSOCIATER FN (CDR LST)))))) + ((NULL (CDR LST)) (CAR LST)) + ((LIST FN (CAR LST) (ASSOCIATER FN (CDR LST)))))) (DEFUN |bracketagglist| (|u| |start| |linelength| |tchr| |open| |close|) (PROG (|lastx| |s| |nextu| |x| |ichr|) @@ -7529,7 +7529,7 @@ NIL NIL))))))))) -@ +\end{chunk} \eject \begin{thebibliography}{99} \bibitem{1} nothing diff --git a/src/interp/i-resolv.lisp.pamphlet b/src/interp/i-resolv.lisp.pamphlet index 7b636ce..f836cec 100644 --- a/src/interp/i-resolv.lisp.pamphlet +++ b/src/interp/i-resolv.lisp.pamphlet @@ -47,7 +47,7 @@ this symmetric resolution is done the following way: e.g. resolve P I and G I to P G I \end{verbatim} -<<*>>= +\begin{chunk}{*} (IN-PACKAGE "BOOT" ) @@ -2725,7 +2725,7 @@ this symmetric resolution is done the following way: (CGREATERP (princ-to-string (|opOf| |t1|)) (princ-to-string (|opOf| |t2|))))))) -@ +\end{chunk} \eject \begin{thebibliography}{99} \bibitem{1} nothing diff --git a/src/interp/i-spec1.lisp.pamphlet b/src/interp/i-spec1.lisp.pamphlet index 9f02e1f..3e9d322 100644 --- a/src/interp/i-spec1.lisp.pamphlet +++ b/src/interp/i-spec1.lisp.pamphlet @@ -52,7 +52,7 @@ There are several special modes used in these functions: 2) $NoValueMode and $ThrowAwayMode used to be used in situations where Void is now used, and are being phased out completely. \end{verbatim} -<<*>>= +\begin{chunk}{*} (IN-PACKAGE "BOOT" ) @@ -5095,7 +5095,7 @@ There are several special modes used in these functions: ((BOOT-EQUAL |x| (CAR |l|)) (|deleteAll| |x| (CDR |l|))) ('T (CONS (CAR |l|) (|deleteAll| |x| (CDR |l|)))))) -@ +\end{chunk} \eject \begin{thebibliography}{99} \bibitem{1} nothing diff --git a/src/interp/i-spec2.lisp.pamphlet b/src/interp/i-spec2.lisp.pamphlet index 4fa3a2f..7c470ca 100644 --- a/src/interp/i-spec2.lisp.pamphlet +++ b/src/interp/i-spec2.lisp.pamphlet @@ -52,7 +52,7 @@ There are several special modes used in these functions: 2) $NoValueMode and $ThrowAwayMode used to be used in situations where Void is now used, and are being phased out completely. \end{verbatim} -<<*>>= +\begin{chunk}{*} (IN-PACKAGE "BOOT" ) @@ -4083,7 +4083,7 @@ There are several special modes used in these functions: (MAKEPROP |name| '|up| |functionName|) (EXIT |functionName|)))) -@ +\end{chunk} \eject \begin{thebibliography}{99} \bibitem{1} nothing diff --git a/src/interp/i-util.lisp.pamphlet b/src/interp/i-util.lisp.pamphlet index 394d236..5f77dd3 100644 --- a/src/interp/i-util.lisp.pamphlet +++ b/src/interp/i-util.lisp.pamphlet @@ -18,7 +18,7 @@ that just happed to evaluate to themselves. Typically generated lisp code is unwrapped. \end{verbatim} -<<*>>= +\begin{chunk}{*} (IN-PACKAGE "BOOT" ) ;wrap x == @@ -736,7 +736,7 @@ lisp code is unwrapped. ((AND (PAIRP |x|) (EQ (QCAR |x|) 'QUOTE)) 'T) ('T NIL))) -@ +\end{chunk} \eject \begin{thebibliography}{99} \bibitem{1} nothing diff --git a/src/interp/info.lisp.pamphlet b/src/interp/info.lisp.pamphlet index 57e5115..469838a 100644 --- a/src/interp/info.lisp.pamphlet +++ b/src/interp/info.lisp.pamphlet @@ -34,7 +34,7 @@ The use of two representations is admitted to be clumsy modemap is of the form : ((op (targ arg1 arg2 ... argn)) pred (elt $ n)) \end{verbatim} -<<*>>= +\begin{chunk}{*} (IN-PACKAGE "BOOT" ) @@ -1095,7 +1095,7 @@ modemap is of the form : ((op (targ arg1 arg2 ... argn)) pred (elt $ n)) (CONS " is not bound in the current environment" NIL)))))))) -@ +\end{chunk} \eject \begin{thebibliography}{99} \bibitem{1} nothing diff --git a/src/interp/interop.lisp.pamphlet b/src/interp/interop.lisp.pamphlet index 310030e..e256109 100644 --- a/src/interp/interop.lisp.pamphlet +++ b/src/interp/interop.lisp.pamphlet @@ -9,7 +9,7 @@ \eject \tableofcontents \eject -<<*>>= +\begin{chunk}{*} (IN-PACKAGE "BOOT" ) ;-- note domainObjects are now (dispatchVector hashCode . domainVector) @@ -1014,7 +1014,7 @@ (SETQ |coerceConvertMmSelection;AL| (MAKE-HASHTABLE 'UEQUAL)) -@ +\end{chunk} \eject \begin{thebibliography}{99} \bibitem{1} nothing diff --git a/src/interp/iterator.lisp.pamphlet b/src/interp/iterator.lisp.pamphlet index 7015ad7..31abeed 100644 --- a/src/interp/iterator.lisp.pamphlet +++ b/src/interp/iterator.lisp.pamphlet @@ -9,7 +9,7 @@ \eject \tableofcontents \eject -<<*>>= +\begin{chunk}{*} (IN-PACKAGE "BOOT" ) ;getIdentity(x,e) == @@ -538,7 +538,7 @@ 'T))))))) (CONS |m| (CONS R NIL)))))))))) -@ +\end{chunk} \eject \begin{thebibliography}{99} \bibitem{1} nothing diff --git a/src/interp/lisplib.lisp.pamphlet b/src/interp/lisplib.lisp.pamphlet index 7017589..f5f7104 100644 --- a/src/interp/lisplib.lisp.pamphlet +++ b/src/interp/lisplib.lisp.pamphlet @@ -9,7 +9,7 @@ \eject \tableofcontents \eject -<<*>>= +\begin{chunk}{*} (IN-PACKAGE "BOOT" ) ;isExistingFile f == @@ -2397,7 +2397,7 @@ (|get| |op| '|isFunctor| |$CategoryFrame|)))) ('T NIL)))))) -@ +\end{chunk} \eject \begin{thebibliography}{99} \bibitem{1} nothing diff --git a/src/interp/match.lisp.pamphlet b/src/interp/match.lisp.pamphlet index 54a299f..1bd7815 100644 --- a/src/interp/match.lisp.pamphlet +++ b/src/interp/match.lisp.pamphlet @@ -9,7 +9,7 @@ \eject \tableofcontents \eject -<<*>>= +\begin{chunk}{*} (IN-PACKAGE "BOOT" ) @@ -649,7 +649,7 @@ (COND ((> |m| |n|) (RETURN NIL))) (|substring?| |s| |t| (SPADDIFFERENCE |n| |m|)))))) -@ +\end{chunk} \eject \begin{thebibliography}{99} \bibitem{1} nothing diff --git a/src/interp/modemap.lisp.pamphlet b/src/interp/modemap.lisp.pamphlet index 3319575..19353b7 100644 --- a/src/interp/modemap.lisp.pamphlet +++ b/src/interp/modemap.lisp.pamphlet @@ -9,7 +9,7 @@ \eject \tableofcontents \eject -<<*>>= +\begin{chunk}{*} (IN-PACKAGE "BOOT" ) @@ -1097,7 +1097,7 @@ (SPADLET |$CapsuleDomainsInScope| |newValue|) |e|) ('T (|put| '|$DomainsInScope| 'special |newValue| |e|))))))) -@ +\end{chunk} \eject \begin{thebibliography}{99} \bibitem{1} nothing diff --git a/src/interp/msgdb.lisp.pamphlet b/src/interp/msgdb.lisp.pamphlet index 491860c..5c7e0b8 100644 --- a/src/interp/msgdb.lisp.pamphlet +++ b/src/interp/msgdb.lisp.pamphlet @@ -9,7 +9,7 @@ \eject \tableofcontents \eject -<<*>>= +\begin{chunk}{*} (IN-PACKAGE "BOOT" ) @@ -2581,7 +2581,7 @@ (DEFUN |dbSpecialDisplayOpChar?| (|c|) (BOOT-EQUAL |c| (|char| '~))) -@ +\end{chunk} \eject \begin{thebibliography}{99} \bibitem{1} nothing