diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet index 8ef1abf..e95ce54 100644 --- a/books/bookvol5.pamphlet +++ b/books/bookvol5.pamphlet @@ -5562,10 +5562,6 @@ shift back and forth between the frames. By default, the system starts in ``frame0'' (try the \verb|)frame names| command). See the Frame Mechanism chapter (\ref{TheFrameMechanism} page~\pageref{TheFrameMechanism}). -The \verb|$InteractiveFrame| variable contains the state information -related to the current frame, which includes things like the last value, -the value of all of the variables, etc. - The \varref{printLoadMsgs} variable controls whether load messages will be output as library routines are loaded. We disnable this by default. It can be changed by using \verb|)set message autoload|. @@ -5688,6 +5684,13 @@ information is initialized. \end{chunk} +\defdollar{PrintCompilerMessageIfTrue} +The \verb|$PrintCompilerMessageIfTrue| variable is set to NIL in spad. +\begin{chunk}{initvars} +(defvar |$PrintCompilerMessageIfTrue| nil) + +\end{chunk} + \defunsec{spad}{Starts the interpreter but do not read in profiles} \calls{spad}{setOutputAlgebra} \calls{spad}{runspad} @@ -5795,6 +5798,54 @@ While not using the ``dollar'' convention this variable is still ``global''. \end{chunk} +There are several different environments used in the interpreter: + +{\bf \verb|$InteractiveFrame|} is the environment where the user +values are stored. Any side effects of evaluation of a top-level +expression are stored in this environment. It is always used as +the starting environment for interpretation. + +{\bf \$e} is the name used for \verb|$InteractiveFrame| while interpreting. + +{\bf \verb|$env|} is local environment used by the interpreter. +Only temporary information (such as types of local variables is +stored in \verb|$env|. It is thrown away after evaluation of each expression. + +\defdollar{InteractiveFrame} +The \verb|$InteractiveFrame| is set in the restart function +to the value of the call to the makeInitialModemapFrame function. +This function simply returns a copy of the variable \verb|$InitialModemapFrame| + +The \verb|$InteractiveFrame| variable contains the state information +related to the current frame, which includes things like the last value, +the value of all of the variables, etc. +\begin{chunk}{initvars} +(defvar |$InteractiveMode| (list (list nil)) "top level environment") + +\end{chunk} + +\defdollar{env} +\begin{chunk}{initvars} +(defvar |$env| nil "checked in isDomainValuedVariable") + +\end{chunk} + +\defdollar{e} +The \verb|$e| variable is set to the value of \verb|$InteractiveFrame| +which is set in restart to the value of the call to the +makeInitialModemapFrame function. This function simply returns a copy +of the variable \verb|$InitialModemapFrame|. + +Prints out the value x which is of type m, and records the changes +in environment \verb|$e| into \verb|$InteractiveFrame| +Thus \verb|$e| is a copy of the variable \verb|$InitialModemapFrame|. + +This variable is used in the undo mechanism. +\begin{chunk}{initvars} +(defvar |$e| nil "the environment?") + +\end{chunk} + \defdollar{InteractiveMode} \begin{chunk}{initvars} (defvar |$InteractiveMode| t) @@ -5807,6 +5858,14 @@ While not using the ``dollar'' convention this variable is still ``global''. \end{chunk} +\subsection{\$newspad} +The \verb|$newspad| is set to T in ncTopLevel. +\defdollar{newspad} +\begin{chunk}{initvars} +(defvar $newspad nil) + +\end{chunk} + \defunsec{ncTopLevel}{Top-level read-parse-eval-print loop} Top-level read-parse-eval-print loop for the interpreter. Uses the Bill Burge's parser. @@ -6814,6 +6873,20 @@ a top level command \end{chunk} +\defdollar{compilingMap} +{\bf \verb|$compilingMap|}: true when compiling a map, used to +detect where to THROW when interpret-only is invoked +\begin{chunk}{initvars} +(defvar |$compilingMap| ()) + +\end{chunk} + +\defdollar{instantRecord} +\begin{chunk}{initvars} +(setq |$instantRecord| (make-hash-table :test #'eq)) + +\end{chunk} + \defun{processInteractive}{processInteractive} Parser Output {\tt -->} Interpreter @@ -7051,6 +7124,12 @@ modeset otherwise. It creates the attributed tree. \end{chunk} +\defdollar{ThrowAwayMode} +\begin{chunk}{initvars} +(defvar |$ThrowAwayMode| '|$ThrowAwayMode| "interp constant") + +\end{chunk} + \defun{interpret2}{interpret2} This is the late interpretCoerce. I removed the call to coerceInteractive, so it only does the JENKS cases ALBI @@ -7092,6 +7171,22 @@ coerceInteractive, so it only does the JENKS cases ALBI \end{chunk} +\defdollar{runTestFlag} +This is referenced by maPrin to stash output by recordAndPrint to not +print type/time +\begin{chunk}{initvars} +(defvar |$runTestFlag| nil) + +\end{chunk} + +\defdollar{mkTestFlag} +This referenced by READLN to stash input by maPrin to stash output +by recordAndPrint to write i/o onto \verb|$testStream| +\begin{chunk}{initvars} +(defvar |$mkTestFlag| nil) + +\end{chunk} + \defun{recordAndPrint}{Result Output Printing} Prints out the value x which is of type m, and records the changes in environment \verb|$e| into \verb|$InteractiveFrame| @@ -7215,7 +7310,6 @@ It is controlled with the {\tt )se me any} command. \calls{printTypeAndTimeNormal}{msgText} \calls{printTypeAndTimeNormal}{sayKeyedMsg} \calls{printTypeAndTimeNormal}{justifyMyType} -\usesdollar{printTypeAndTimeNormal}{outputLines} \usesdollar{printTypeAndTimeNormal}{collectOutput} \usesdollar{printTypeAndTimeNormal}{printTypeIfTrue} \usesdollar{printTypeAndTimeNormal}{printTimeIfTrue} @@ -7381,7 +7475,6 @@ sameUnionBranch(uArg, m) == \end{chunk} \defunsec{intloopInclude}{Include a file into the stream} -\calls{intloopInclude}{ST} \calls{intloopInclude}{intloopInclude0} \begin{chunk}{defun intloopInclude} (defun |intloopInclude| (name n) @@ -7825,6 +7918,7 @@ contiguous comment spanning enough lines to overflow the stack. \defun{incZip}{incZip} Axiom ``zips'' a function together with two delays into a delay. + \calls{incZip}{Delay} \calls{incZip}{incZip1} \label{incZip} @@ -7930,6 +8024,7 @@ This function takes \item {\bf states} -- a list of integers \end{enumerate} and constructs a call to \bfref{Delay}. + \calls{incLude}{Delay} \calls{include}{incLude1} \label{incLude} @@ -7953,48 +8048,56 @@ and constructs a call to \bfref{Delay}. (defvar |Top| 1 "used in incLude1 for parsing") \end{chunk} + \defvar{IfSkipToEnd} \begin{chunk}{initvars} (defvar |IfSkipToEnd| 10 "used in incLude1 for parsing") \end{chunk} + \defvar{IfKeepPart} \begin{chunk}{initvars} (defvar |IfKeepPart| 11 "used in incLude1 for parsing") \end{chunk} + \defvar{IfSkipPart} \begin{chunk}{initvars} (defvar |IfSkipPart| 12 "used in incLude1 for parsing") \end{chunk} + \defvar{ElseifSkipToEnd} \begin{chunk}{initvars} (defvar |ElseifSkipToEnd| 20 "used in incLude1 for parsing") \end{chunk} + \defvar{ElseifKeepPart} \begin{chunk}{initvars} (defvar |ElseifKeepPart| 21 "used in incLude1 for parsing") \end{chunk} + \defvar{ElseifSkipPart} \begin{chunk}{initvars} (defvar |ElseifSkipPart| 22 "used in incLude1 for parsing") \end{chunk} + \defvar{ElseSkipToEnd} \begin{chunk}{initvars} (defvar |ElseSkipToEnd| 30 "used in incLude1 for parsing") \end{chunk} + \defvar{ElseKeepPart} \begin{chunk}{initvars} (defvar |ElseKeepPart| 31 "used in incLude1 for parsing") \end{chunk} -\defvar{Top?} +\defun{Top?}{Top?} \calls{Top?}{quotient} \begin{chunk}{defun Top? 0} (defun |Top?| (|st|) @@ -8002,7 +8105,8 @@ and constructs a call to \bfref{Delay}. (eql (quotient |st| 10) 0)) \end{chunk} -\defvar{If?} + +\defun{If?}{If?} \calls{If?}{quotient} \begin{chunk}{defun If?} (defun |If?| (|st|) @@ -8010,15 +8114,17 @@ and constructs a call to \bfref{Delay}. (eql (quotient |st| 10) 1)) \end{chunk} -\defvar{Elseif?} -\calls{Elseif?}{QUOTIENT} + +\defun{Elseif?}{Elseif?} +\calls{Elseif?}{quotient} \begin{chunk}{defun Elseif?} (defun |Elseif?| (|st|) "used in incLude1 for parsing" (eql (quotient |st| 10) 2)) \end{chunk} -\defvar{Else?} + +\defun{Else?}{Else?} \calls{Else?}{QUOTIENT} \begin{chunk}{defun Else?} (defun |Else?| (|st|) @@ -8026,7 +8132,8 @@ and constructs a call to \bfref{Delay}. (eql (quotient |st| 10) 3)) \end{chunk} -\defvar{SkipEnd?} + +\defun{SkipEnd?}{SkipEnd?} \calls{SkipEnd?}{remainder} \begin{chunk}{defun SkipEnd?} (defun |SkipEnd?| (|st|) @@ -8034,7 +8141,8 @@ and constructs a call to \bfref{Delay}. (eql (remainder |st| 10) 0)) \end{chunk} -\defvar{KeepPart?} + +\defun{KeepPart?}{KeepPart?} \calls{KeepPart?}{remainder} \begin{chunk}{defun KeepPart?} (defun |KeepPart?| (|st|) @@ -8042,7 +8150,8 @@ and constructs a call to \bfref{Delay}. (eql (remainder |st| 10) 1)) \end{chunk} -\defvar{SkipPart?} + +\defun{SkipPart?}{SkipPart?} \calls{SkipPart?}{remainder} \begin{chunk}{defun SkipPart?} (defun |SkipPart?| (|st|) @@ -8050,7 +8159,8 @@ and constructs a call to \bfref{Delay}. (eql (remainder |st| 10) 2)) \end{chunk} -\defvar{Skipping?} + +\defun{Skipping?}{Skipping?} \calls{Skipping?}{KeepPart?} \begin{chunk}{defun Skipping?} (defun |Skipping?| (|st|) @@ -8289,7 +8399,7 @@ and constructs a call to \bfref{Delay}. \end{chunk} \defun{xlOK}{xlOK} -\calls{xlOK}{lxOK1} +\calls{xlOK}{xlOK1} \begin{chunk}{defun xlOK} (defun |xlOK| (extrablanks string localnum fileobj) (|xlOK1| extrablanks string string localnum fileobj)) @@ -8349,7 +8459,7 @@ and constructs a call to \bfref{Delay}. \end{chunk} \defun{inclmsgPrematureEOF}{inclmsgPrematureEOF} -\calls{inclmsgPrematureEOF}{origin} +\calls{inclmsgPrematureEOF}{theorigin} \begin{chunk}{defun inclmsgPrematureEOF 0} (defun |inclmsgPrematureEOF| (ufo) (list 'S2CI0002 (list (|theorigin| ufo)))) @@ -8363,7 +8473,7 @@ and constructs a call to \bfref{Delay}. \end{chunk} \defun{porigin}{porigin} -\calls{porigin}{stringp} +\calls{porigin}{pfname} \begin{chunk}{defun porigin} (defun |porigin| (x) (if (stringp x) @@ -8388,7 +8498,7 @@ and constructs a call to \bfref{Delay}. \defun{xlSkip}{xlSkip} \calls{xlSkip}{incLine} -\calls{xlSkip}{CONCAT} +\calls{xlSkip}{concat} \begin{chunk}{defun xlSkip} (defun |xlSkip| (extrablanks str localnum fileobj) (let ((string (concat "-- Omitting:" str)) (globalnum -1)) @@ -8408,7 +8518,7 @@ and constructs a call to \bfref{Delay}. \end{chunk} \defun{inclmsgSay}{inclmsgSay} -\calls{inclmsgSay}{id} +\calls{inclmsgSay}{theid} \begin{chunk}{defun inclmsgSay} (defun |inclmsgSay| (str) (list 'S2CI0001 (list (|theid| str)))) @@ -8489,7 +8599,7 @@ and constructs a call to \bfref{Delay}. \end{verbatim} \calls{inclmsgFileCycle}{porigin} -\calls{inclmsgFileCycle}{id} +\calls{inclmsgFileCycle}{theid} \begin{chunk}{defun inclmsgFileCycle} (defun |inclmsgFileCycle| (ufos fn) (let (cycle f1 flist) @@ -8530,7 +8640,7 @@ and constructs a call to \bfref{Delay}. \end{chunk} \defun{inclmsgConActive}{inclmsgConActive} -\calls{inclmsgConActive}{id} +\calls{inclmsgConActive}{theid} \begin{chunk}{defun inclmsgConActive} (defun |inclmsgConActive| (n) (list 'S2CI0006 (list (|theid| n)))) @@ -8547,7 +8657,7 @@ and constructs a call to \bfref{Delay}. \end{chunk} \defun{inclmsgConStill}{inclmsgConStill} -\calls{inclmsgConStill}{id} +\calls{inclmsgConStill}{theid} \begin{chunk}{defun inclmsgConStill} (defun |inclmsgConStill| (n) (list 'S2CI0007 (list (|theid| n)))) @@ -8598,7 +8708,7 @@ and constructs a call to \bfref{Delay}. \end{chunk} \defun{inclmsgPrematureFin}{inclmsgPrematureFin} -\calls{inclmsgPrematureFin}{origin} +\calls{inclmsgPrematureFin}{theorigin} \begin{chunk}{defun inclmsgPrematureFin} (defun |inclmsgPrematureFin| (ufo) (list 'S2CI0003 (list (|theorigin| ufo)))) @@ -8643,8 +8753,8 @@ and constructs a call to \bfref{Delay}. \defun{inclmsgIfSyntax}{inclmsgIfSyntax} \calls{inclmsgIfSyntax}{concat} -\calls{inclmsgIfSyntax}{id} -\calls{inclmsgIfSyntax}{origin} +\calls{inclmsgIfSyntax}{theid} +\calls{inclmsgIfSyntax}{theorigin} \begin{chunk}{defun inclmsgIfSyntax} (defun |inclmsgIfSyntax| (ufo found context) (setq found (concat ")" found)) @@ -8780,8 +8890,6 @@ b ==> 7 \end{chunk} \defun{incCommand?}{incCommand?} -\calls{incCommand?}{char} -\label{incCommand?} \sig{incCommand?}{String}{Boolean} \begin{chunk}{defun incCommand? 0} (defun |incCommand?| (s) @@ -8885,6 +8993,7 @@ b ==> 7 \defun{incRgen}{incRgen} Note that incRgen1 recursively calls this function. + \calls{incRgen}{Delay} \calls{incRgen}{incRgen1} \begin{chunk}{defun incRgen} @@ -20442,6 +20551,215 @@ Get the entry for key k on x's association list \end{chunk} +\subsection{Special Category Names} + +\defdollar{EmptyMode} +The CONTAINED predicate is used to walk internal structures +such as modemaps to see if the $X$ object occurs within $Y$. One +particular use is in a function called isPartialMode to decide +if a modemap is only partially complete. If this is true then the +modemap will contain the constant \verb|$EmptyMode|. So the call +ends up being CONTAINED \verb|$EmptyMode| Y. +\begin{chunk}{initvars} +(defvar |$EmptyMode| '|$EmptyMode|) + +\end{chunk} + +\defdollar{AnonymousFunction} +\begin{chunk}{initvars} +(defvar |$AnonymousFunction| '(|AnonymousFunction|)) + +\end{chunk} + +\defdollar{Any} +\begin{chunk}{initvars} +(defvar |$Any| '(|Any|)) + +\end{chunk} + +\defdollar{BFtag} +\begin{chunk}{initvars} +(defvar |$BFtag| '|:BF:|) + +\end{chunk} + +\defdollar{Boolean} +\begin{chunk}{initvars} +(defvar |$Boolean| '(|Boolean|)) + +\end{chunk} + +\defdollar{Category} +\begin{chunk}{initvars} +(defvar |$Category| '(|Category|)) + +\end{chunk} + +\defdollar{Domain} +\begin{chunk}{initvars} +(defvar |$Domain| '(|Domain|)) + +\end{chunk} + +\defdollar{Exit} +\begin{chunk}{initvars} +(defvar |$Exit| '(|Exit|)) + +\end{chunk} + +\defdollar{Expression} +\begin{chunk}{initvars} +(defvar |$Expression| '(|OutputForm|)) + +\end{chunk} + +\defdollar{OutputForm} +\begin{chunk}{initvars} +(defvar |$OutputForm| '(|OutputForm|)) + +\end{chunk} + +\defdollar{BigFloat} +\begin{chunk}{initvars} +(defvar |$BigFloat| '(|Float|)) + +\end{chunk} + +\defdollar{Float} +\begin{chunk}{initvars} +(defvar |$Float| '(|Float|)) + +\end{chunk} + +\defdollar{DoubleFloat} +\begin{chunk}{initvars} +(defvar |$DoubleFloat| '(|DoubleFloat|)) + +\end{chunk} + +\defdollar{FontTable} +\begin{chunk}{initvars} +(defvar |$FontTable| '(|FontTable|)) + +\end{chunk} + +\defdollar{Integer} +\begin{chunk}{initvars} +(defvar |$Integer| '(|Integer|)) + +\end{chunk} + +\defdollar{ComplexInteger} +\begin{chunk}{initvars} +(defvar |$ComplexInteger| (LIST '|Complex| |$Integer|)) + +\end{chunk} + +\defdollar{Mode} +\begin{chunk}{initvars} +(defvar |$Mode| '(|Mode|)) + +\end{chunk} + +\defdollar{NegativeInteger} +\begin{chunk}{initvars} +(defvar |$NegativeInteger| '(|NegativeInteger|)) + +\end{chunk} + +\defdollar{NonNegativeInteger} +\begin{chunk}{initvars} +(defvar |$NonNegativeInteger| '(|NonNegativeInteger|)) + +\end{chunk} + +\defdollar{NonPositiveInteger} +\begin{chunk}{initvars} +(defvar |$NonPositiveInteger| '(|NonPositiveInteger|)) + +\end{chunk} + +\defdollar{PositiveInteger} +\begin{chunk}{initvars} +(defvar |$PositiveInteger| '(|PositiveInteger|)) + +\end{chunk} + +\defdollar{RationalNumber} +\begin{chunk}{initvars} +(defvar |$RationalNumber| '(|Fraction| (|Integer|))) + +\end{chunk} + +\defdollar{String} +\begin{chunk}{initvars} +(defvar |$String| '(|String|)) + +\end{chunk} + +\defdollar{StringCategory} +\begin{chunk}{initvars} +(defvar |$StringCategory| '(|StringCategory|)) + +\end{chunk} + +\defdollar{Symbol} +\begin{chunk}{initvars} +(defvar |$Symbol| '(|Symbol|)) + +\end{chunk} + +\defdollar{Void} +\begin{chunk}{initvars} +(defvar |$Void| '(|Void|)) + +\end{chunk} + +\defdollar{QuotientField} +\begin{chunk}{initvars} +(defvar |$QuotientField| '|Fraction|) + +\end{chunk} + +\defdollar{FunctionalExpression} +\begin{chunk}{initvars} +(defvar |$FunctionalExpression| '|Expression|) + +\end{chunk} + +\defdollar{defaultFunctionTargets} +\begin{chunk}{initvars} +(defvar |$defaultFunctionTargets| '(())) + +\end{chunk} + +;; Old names +\defdollar{SmallInteger} +\begin{chunk}{initvars} +(defvar |$SmallInteger| '(|SingleInteger|)) + +\end{chunk} + +;; New Names +\defdollar{SingleFloat} +\begin{chunk}{initvars} +(defvar |$SingleFloat| '(|SingleFloat|)) + +\end{chunk} + +\defdollar{DoubleFloat} +\begin{chunk}{initvars} +(defvar |$DoubleFloat| '(|DoubleFloat|)) + +\end{chunk} + +\defdollar{SingleInteger} +\begin{chunk}{initvars} +(defvar |$SingleInteger| '(|SingleInteger|)) + +\end{chunk} + + \chapter{Function Selection} \begin{verbatim} New Selection of Modemaps @@ -39846,20 +40164,6 @@ nodes during the bottom up phase. This is the declared type of an identifier. \end{itemize} -There are several different environments used in the interpreter: -\begin{itemize} -\item {\bf \verb|$InteractiveFrame|:} this is the environment where the user -values are stored. Any side effects of evaluation of a top-level -expression are stored in this environment. It is always used as -the starting environment for interpretation. -\item {\bf \$e:} -This is the name used for \verb|$InteractiveFrame| while interpreting. -\item {\bf \verb|$env|:} This is local environment used by the interpreter. -Only temporary information (such as types of local variables is -stored in \verb|$env|. -It is thrown away after evaluation of each expression. -\end{itemize} - Frequently used global variables: \begin{itemize} \item {\bf \verb|$genValue|}: if true then evaluate generated code, @@ -39869,8 +40173,6 @@ we are compiling. (unused except in map printing) \item {\bf \verb|$mapList|}: list of maps being type analyzed, used in recursive map type anlysis. -\item {\bf \verb|$compilingMap|}: true when compiling a map, used to -detect where to THROW when interpret-only is invoked \item {\bf \verb|$compilingLoop|}: true when compiling a loop body, used to control nesting level of interp-only loop CATCH points \item {\bf \verb|$interpOnly|}: true when in interpret only mode, used @@ -60897,16 +61199,6 @@ It is used in removeUndoLines in the undo mechanism. The \verb|$displayStartMsgs| variable is used in restart but is not set so this is likely a bug. -\subsection{\$e} -The \verb|$e| variable is set to the value of -\verb|$InteractiveFrame| which is set in restart to the value of the -call to the makeInitialModemapFrame function. This function simply -returns a copy of the variable \verb|$InitialModemapFrame|. - -Thus \verb|$e| is a copy of the variable \verb|$InitialModemapFrame|. - -This variable is used in the undo mechanism. - \subsection{\$erMsgToss} The \verb|$erMsgToss| variable is set to NIL in SpadInterpretStream. @@ -60993,12 +61285,6 @@ move around the ring. The \verb|$interpreterFrameRing| is set to a pair whose car is set to the result of emptyInterpreterFrame -\subsection{\$InteractiveFrame} -The \verb|$InteractiveFrame| is set in the restart function -to the value of the -call to the makeInitialModemapFrame function. This function simply -returns a copy of the variable \verb|$InitialModemapFrame| - \subsection{\$intRestart} The \verb|$intRestart| variable is used in intloop but has no value. This is probably a bug. While the variable's value is unchanged the @@ -61040,9 +61326,6 @@ The \verb|$ncMsgList| is set to NIL in SpadInterpretStream. \subsection{\$newcompErrorCount} The \verb|$newcompErrorCount| is set to 0 in SpadInterpretStream. -\subsection{\$newspad} -The \verb|$newspad| is set to T in ncTopLevel. - \subsection{\$nopos} The \verb|$nopos| variable is used in SpadInterpretStream but does not appear to have a value and is likely a bug. @@ -61077,9 +61360,6 @@ The \verb|$previousBindings| is a copy of the compute the delta(i)s stored in \verb|$frameRecord|. This is part of the undo mechanism. -\subsection{\$PrintCompilerMessageIfTrue} -The \verb|$PrintCompilerMessageIfTrue| variable is set to NIL in spad. - \subsection{\$reportundo} The \verb|$reportundo| variable is used in diffAlist. It was not normally bound but has been set to T in initvars. If the variable is set diff --git a/changelog b/changelog index 987038a..7943c4f 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,5 @@ +20141215 tpd src/axiom-website/patches.html 20141215.01.tpd.patch +20141215 tpd books/bookvol5 merge from vmlisp.lisp, treeshake 20141214 rrr src/axiom-website/patches.html 20141214.01.rrr.patch 20141214 rrr buglist: bug 7272: )savesystem does not build a restorable session 20141214 rrr Raymond Rogers diff --git a/patch b/patch index 764ba11..091a543 100644 --- a/patch +++ b/patch @@ -1,9 +1,4 @@ -buglist: bug 7272: )savesystem does not build a restorable session +books/bookvol5 merge from vmlisp.lisp, treeshake -Raymond Rogers reports that - -a:=4 -)savesystem foo - -./foo -a <=== should be 4 but is a Variable +Move some code from vmlisp.lisp to bookvol5. +Find missing functions and variables, add them to bookvol5 diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index c45f061..f87d24d 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -4810,6 +4810,8 @@ books/bookvol5 merge and remove regress.lisp
projects: progress report for week ending 12/13/14
20141214.01.rrr.patch buglist: bug 7272: )savesystem does not build a restorable session
+20141215.01.tpd.patch +books/bookvol5 merge from vmlisp.lisp, treeshake
diff --git a/src/interp/vmlisp.lisp.pamphlet b/src/interp/vmlisp.lisp.pamphlet index fb7acc1..ba70dd2 100644 --- a/src/interp/vmlisp.lisp.pamphlet +++ b/src/interp/vmlisp.lisp.pamphlet @@ -11,7 +11,6 @@ documentclass{article} \begin{chunk}{*} - ; VM LISP EMULATION PACKAGE ; Lars Ericson, Barry Trager, Martial Schor, tim daly, LVMCL, et al ; IBM Thomas J. Watson Research Center @@ -2185,8 +2184,6 @@ do the compile, and then rename the result back to code.o. (def-boot-val |$EmptyList| () "???") \end{chunk} \begin{chunk}{*} -;(def-boot-val |$EmptyMode| '|$EmptyMode| "compiler constant") -;(def-boot-val |$EM| |$EmptyMode| "???") (def-boot-val |$EmptyString| "" "???") (def-boot-val |$EmptyVector| '#() "???") (def-boot-val |$Expression| '(|Expression|) "???") @@ -2220,9 +2217,6 @@ do the compile, and then rename the result back to code.o. (def-boot-var |$hasYield| "???") (def-boot-var |$ignoreCommentsIfTrue| "???") (def-boot-var |$Index| "???") -;(def-boot-val |$InitialDomainsInScope| -; '((|Boolean|) |$EmptyMode| |$NoValueMode|) -; "???") (def-boot-var |$insideCapsuleFunctionIfTrue| "???") (def-boot-var |$insideCategoryIfTrue| "???") (def-boot-var |$insideCoerceInteractiveHardIfTrue| "???") @@ -2231,11 +2225,8 @@ do the compile, and then rename the result back to code.o. (def-boot-var |$insideExpressionIfTrue| "???") (def-boot-var |$insideFunctorIfTrue| "???") (def-boot-var |$insideWhereIfTrue| "???") -(def-boot-val |$instantRecord| (MAKE-HASHTABLE 'ID) "???") (def-boot-val |$Integer| '(|Integer|) "???") (def-boot-val |$IntegerOpt| '(|Integer| . OPT) "???") -(def-boot-val |$InteractiveFrame| '((NIL)) "top level environment") -(def-boot-var |$InteractiveMode| "Interactive>System.boot") (def-boot-val |$InteractiveModemapFrame| '((NIL)) "???") (def-boot-var |$InteractiveTimingStatsIfTrue| "???") (def-boot-var |$LastCxArg| "???") @@ -2316,7 +2307,6 @@ for primitive domains. Also used by putInLocalDomainReferences and optCal |SmallInteger| |String| |Boolean| |Symbol| |BooleanFunctions|) "used in optCall to decide which domains can be optimized") (def-boot-val |$PrintBox| '(|PrintBox|) "???") -(def-boot-var |$PrintCompilerMessagesIfTrue| "???") (def-boot-val |$printConStats| nil "display constructor cache totals") (def-boot-val |$printLoadMsgs| 't "Interpreter>SetVarT.boot") (def-boot-var |$PrintOnly| "Compiler>LispLib.boot") @@ -2367,7 +2357,6 @@ for primitive domains. Also used by putInLocalDomainReferences and optCal (def-boot-val |$Symbol| '(|Symbol|) "???") (def-boot-val |$SymbolOpt| '(|Symbol| . OPT) "???") (def-boot-val |$tempCategoryTable| (MAKE-HASHTABLE 'UEQUAL) "???") -(def-boot-val |$ThrowAwayMode| '|$ThrowAwayMode| "interp constant") (def-boot-val |$timerOn| t "???") (def-boot-var |$topOp| "See displayPreCompilationErrors") (def-boot-var |$tokenCommands| "???") @@ -2409,7 +2398,6 @@ for primitive domains. Also used by putInLocalDomainReferences and optCal (def-boot-val |$useDCQnotLET| () "checked in DEF-LET for use of DCQ") (def-boot-fun BUMPCOMPERRORCOUNT () "errorSupervisor1") (def-boot-var |$VariableCount| "???") -(def-boot-val |$Void| '(|Void|) "compiler constant") (def-boot-var |$warningStack| "???") (def-boot-val |$whereList| () "referenced in format boot formDecl2String") (def-boot-var |$xCount| "???") @@ -2425,7 +2413,6 @@ for primitive domains. Also used by putInLocalDomainReferences and optCal (def-boot-val |$inputPromptType| '|step| "checked in MKPROMPT") (def-boot-val |$IOindex| 0 "step counter") -(defvar |$compilingMap| ()) (defvar |$definingMap| nil) (defmacro KAR (ARG) `(ifcar ,arg)) @@ -2821,7 +2808,6 @@ for primitive domains. Also used by putInLocalDomainReferences and optCal (defmacro SUCHTHATCLAUSE (&rest L) (LIST 'COND (LIST (CADR L) (CAR L)))) -(defvar $NEWSPAD NIL) (defvar $BOOT NIL) (defmacro spadDO (&rest OL) @@ -5379,7 +5365,6 @@ now the function is defined but does nothing. (defvar |$newCompCompare| nil "compare new compiler with old") (defvar |$compileOnlyCertainItems| nil "list of functions to compile") (defvar |$doNotCompileJustPrint| nil "switch for compile") -(defvar |$PrintCompilerMessageIfTrue| t) (defvar |$Rep| '|$Rep| "should be bound to gensym? checked in coerce") ;; the following initialization of $ must not be a defvar ;; since that make $ special @@ -5388,8 +5373,6 @@ now the function is defined but does nothing. (defvar |$Representation| nil "checked in compNoStacking") (defvar |$definition| nil "checked in DomainSubstitutionFunction") (defvar |$Attributes| nil "global attribute list used in JoinInner") -(defvar |$env| nil "checked in isDomainValuedVariable") -(defvar |$e| nil "checked in isDomainValuedVariable") (defvar |$getPutTrace| nil) (defvar |$specialCaseKeyList| nil "checked in optCall") (defvar |$formulaFormat| nil "if true produce script formula output") @@ -5598,7 +5581,6 @@ now the function is defined but does nothing. (SETQ |$updateCatTableIfTrue| 'T) (SETQ |$ConstructorCache| (MAKE-HASHTABLE 'ID)) -(SETQ |$instantRecord| (MAKE-HASHTABLE 'ID)) (SETQ |$immediateDataSymbol| '|--immediateData--|) (SETQ |$useIntegerSubdomain| 'T) @@ -5693,7 +5675,6 @@ now the function is defined but does nothing. (|SETQ| |$BasicDomains| '(|Integer| |Float| |Symbol| |Boolean| |String|)) -(SETQ |$PrintCompilerMessagesIfTrue| NIL) (SETQ |$printStorageIfTrue| NIL) ;; storage info disabled in common lisp (SETQ |$mostRecentOpAlist| NIL) (SETQ |$noEnv| NIL) @@ -5715,12 +5696,10 @@ now the function is defined but does nothing. (SETQ |$Domain| '(|Domain|)) (SETQ |$Exit| '(|Exit|)) (SETQ |$Expression| '(|OutputForm|)) - (SETQ |$OutputForm| '(|OutputForm|)) (SETQ |$BigFloat| '(|Float|)) (SETQ |$Float| '(|Float|)) (SETQ |$DoubleFloat| '(|DoubleFloat|)) - (SETQ |$FontTable| '(|FontTable|)) (SETQ |$Integer| '(|Integer|)) (SETQ |$ComplexInteger| (LIST '|Complex| |$Integer|)) @@ -5737,24 +5716,19 @@ now the function is defined but does nothing. (SETQ |$QuotientField| '|Fraction|) (SETQ |$FunctionalExpression| '|Expression|) (SETQ |$defaultFunctionTargets| '(())) - -;; Old names (SETQ |$SmallInteger| '(|SingleInteger|)) - -;; New Names (SETQ |$SingleFloat| '(|SingleFloat|)) (SETQ |$DoubleFloat| '(|DoubleFloat|)) (SETQ |$SingleInteger| '(|SingleInteger|)) (SETQ $TOP_LEVEL T) (SETQ $NE (LIST (LIST NIL))) -(SETQ |$InteractiveFrame| (LIST (LIST NIL))) (SETQ |$gauss01| '(|gauss| 0 1)) (SETQ |$LocalFrame| (LIST (LIST NIL))) (SETQ |$DomainsInScope| (LIST NIL)) (SETQ |$EmptyEnvironment| '((NIL))) (SETQ |$NETail| (CONS |$EmptyEnvironment| NIL)) -(SETQ |$EmptyMode| '|$EmptyMode|) + (SETQ |$DummyFunctorNames| '(|Mapping|)) (SETQ |$form| NIL) (SETQ |$DoubleQuote| '"\"") @@ -5830,9 +5804,6 @@ now the function is defined but does nothing. ))) )))) -;(SETQ |$InitialDomainsInScope| -; '(|$EmptyMode| |$NoValueMode|)) - (SETQ |$NRTflag| T) (SETQ |$NRTaddForm| NIL) (SETQ |$NRTdeltaList| NIL) @@ -5876,13 +5847,6 @@ now the function is defined but does nothing. (SETQ |$testOutputLineStack| NIL) ;; saves lines to be printed ;; (needed to convert lines for use ;; in hypertex) -(SETQ |$runTestFlag| NIL) ;; referenced by maPrin to stash - ;; output by recordAndPrint to not - ;; print type/time -(SETQ |$mkTestFlag| NIL) ;; referenced by READLN to stash input - ;; by maPrin to stash output - ;; by recordAndPrint to write i/o - ;; onto $testStream (SETQ |$mkTestInputStack| NIL) ;; saves input for $testStream ;; (see READLN) (SETQ |$mkTestOutputStack| NIL) ;; saves output for $testStream