axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] 20090212.02.tpd.patch (rewrite restart)


From: daly
Subject: [Axiom-developer] 20090212.02.tpd.patch (rewrite restart)
Date: Sat, 14 Feb 2009 17:17:34 -0600

The restart function was refactored, documented and simplified.

=======================================================================
diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet
index 4414f64..60c94d6 100644
--- a/books/bookvol5.pamphlet
+++ b/books/bookvol5.pamphlet
@@ -4,6 +4,83 @@
 \usepackage{makeidx}
 \makeindex
 \usepackage{graphicx}
+%%
+%% Note that this file will eventually generate a dvi file
+%% which will eventually be processed by dvipdfm to create a pdf.
+%% The categories/domains/packages will be placed in a graphviz graph.
+%% The graphviz dot syntax allows an href parameter.
+%% The href parameter will reference this file. 
+%% pdf href syntax allows named destinations.
+%% This macro creates a named destination using \special
+%% Thus, you reference http://thispdf#nameddest=ABBREV 
+%% and you end up at the right page.
+%% This macro is called implicitly by \pagehead so every 
+%% category/domain/package can be referenced by fullname or abbrev.
+%%
+%% dest will give the ability to use nameddest= in html pdfs
+%%
+\newcommand{\dest}[1]{% e.g. \dest{abb}
+\special{pdf:dest (#1) [ @thispage /FitH @ypos ]}}
+
+%%
+%% pagehead consolidates standard page indexing
+%%
+\newcommand{\pagehead}[2]{% e.g. \pagehead{name}{abb}
+\dest{#1}%
+\dest{#2}%
+\subsection{#1 (#2)}
+\label{#1}%
+\label{#2}%
+\index{{#1}}%
+\index{{#2}}}%
+
+%%
+%% pagepic adds an image and an index entry
+%%
+\newcommand{\pagepic}[3]{% e.g. \pagepic{pathandfile}{abb}{scale}
+\includegraphics[scale=#3]{#1}\\%
+\index{images!#2}}
+
+%%
+%% \refto is a link to a referenced page that returns it arg
+%%
+\newcommand{\refto}[1]{% e.g. \refto{name}
+(p\pageref{#1}) #1}
+
+%%
+%% pageto is a forward link to a referenced page
+%%
+\newcommand{\pageto}[2]{% e.g. \pageto{abb}{name}
+\ \\${\bf\Rightarrow{}}${``#1''} (#2) \ref{#1} on page~\pageref{#1}}
+
+%%
+%% pagefrom is a backward link to a referencing page
+%%
+\newcommand{\pagefrom}[2]{% e.g. \pagefrom{name}{abb}
+\ \\${\bf\Leftarrow{}}${``#1''} (#2) \ref{#1} on page~\pageref{#1}}
+
+
+%%
+%% fnref sets a reference link
+%%
+\newcommand{\fnref}[1]{% e.g. \fnref{functionname}
+``#1'' (\ref{#1} p~\pageref{#1})}
+
+%%
+%% varref sets a reference link
+%%
+\newcommand{\varref}[1]{% e.g. \varref{variablename}
+``#1'' (\ref{#1} p~\pageref{#1})}
+
+%% cross will put the category and function in the index
+%% cross will leave the funcname so it can be put inline.
+%%
+\newcommand{\cross}[2]{% e.g. \pagefrom{cat}{funcname}
+\index{#1!#2}%
+\index{#2!#1}%
+#2}
+
+
 % struggle with latex figure-floating behavior
 \renewcommand\floatpagefraction{.9}
 \renewcommand\topfraction{.9}
@@ -180,12 +257,10 @@ function which is the entry to the Axiom interpreter.
  )
 
 @
-\subsection{defun restart}
+\pagehead{restart}{restart}
+\pagepic{ps/v5restart.ps}{restart}{1.00}
 The restart function is the real root of the world. It sets up memory
-if we are working in a GCL/akcl version of the system. It sets the
-current package to be the ``BOOT'' package which is the standard
-package in which the interpreter runs. It calls initroot \cite{1}
-to set the \$spadroot variable (usually the \$AXIOM variable).
+if we are working in a GCL/akcl version of the system. 
 
 The [[compiler::*compile-verbose*]] flag has been set to nil globally.
 We do not want to know about the microsteps of GCL's compile facility.
@@ -195,6 +270,50 @@ We do not care that certain generated variables are not 
used.
 
 The [[compiler::*suppress-compiler-notes*]] flag has been set to t.
 We do not care that tail recursion occurs.
+
+It sets the
+current package to be the ``BOOT'' package which is the standard
+package in which the interpreter runs. 
+
+The \fnref{initroot} function sets global variables that depend on the
+AXIOM shell variable. These are needed to find basic files like s2-us.msgs,
+which contains the error message text.
+
+The \fnref{openserver} function tried to set up the socket connection
+used for things like hyperdoc. The \verb|$openServerIfTrue| variable
+starts true, which implies trying to start a server.
+
+The \verb|$IOindex| variable is the number associated with the input prompt.
+Every successful expression evaluated increments this number until a
+\verb|)clear all| resets it. Here we set it to the initial value.
+
+Axiom has multiple frames that contain independent information about a
+computation. There can be several frames at any one time and you can 
+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 enable this by default.
+It can be changed by using \verb|)set message autoload|.
+
+The \varref{current-directory} variable is set to the current directory.
+This is used by the \verb|)cd| function and some of the compile routines.
+
+The \fnref{loadExposureGroupData} function initializes several variables
+with the exposure groups. These lists limit the user visible names in
+order to keep the user and interpreter from being confused by names
+which are common but whose signatures are for internal algebra uses.
+
+The \fnref{statisticsInitialization} function initializes variables
+used to collect statistics. Currently, only the garbage collector
+information is initialized.
+
+
 <<defun restart>>=
 (defun restart ()
 #+:akcl
@@ -203,53 +322,22 @@ We do not care that tail recursion occurs.
 #+:akcl (setq compiler::*compile-verbose* nil)
 #+:akcl (setq compiler::*suppress-compiler-warnings* t)
 #+:akcl (setq compiler::*suppress-compiler-notes* t)
-#-:CCL
-  (in-package "BOOT")
-#+:CCL
-  (setq *package* (find-package "BOOT"))
-#+:CCL (setpchar "") ;; Turn off CCL read prompts
-#+(OR :akcl :CCL) (initroot)
 #+:akcl (system:gbc-time 0)
+  (in-package "BOOT")
+  (initroot)
 #+:akcl
-  (when (and $openServerIfTrue (fboundp '|openServer|))
-   (prog (os)
-    (setq os (|openServer| $SpadServerName))
-    (if (zerop os) 
-     (progn 
-      (setq $openServerIfTrue nil) 
-      (setq |$SpadServer| t)))))
-;; We do the following test at runtime to allow us to use the same images
-;; with Saturn and Sman.  MCD 30-11-95
-#+:CCL
-  (when 
-     (and (memq :unix *features*) $openServerIfTrue (fboundp '|openServer|))
-   (prog (os)
-    (setq os (|openServer| $SpadServerName))
-    (if (zerop os) 
-     (progn 
-      (setq $openServerIfTrue nil) 
-      (setq |$SpadServer| t)))))
+  (when (and $openServerIfTrue (zerop (openserver $SpadServerName)))
+    (setq $openServerIfTrue nil) 
+    (setq |$SpadServer| t))
   (setq |$IOindex| 1)
   (setq |$InteractiveFrame| (|makeInitialModemapFrame|))
   (setq |$printLoadMsgs| t)
-#+(and :lucid :ibm/370)
-  (setq *default-pathname-defaults* "")
-#+:CCL
-  (setq *default-pathname-defaults* (get-current-directory))
-#-(or :CCL (and :lucid :ibm/370))
-  (setq *default-pathname-defaults* (probe-file "./"))
-#+(and :lucid :ibm/370)
-  (setq vmlisp::$current-directory "")
-#-(and :lucid :ibm/370)
-  (setq vmlisp::$current-directory
-     (make-directory *default-pathname-defaults*))
+  (setq $current-directory (get-current-directory))
   (|loadExposureGroupData|)
   (|statisticsInitialization|)
   (|initHist|)
   (|initializeInterpreterFrameRing|)
-
-  (when |$displayStartMsgs| 
-   (|spadStartUpMsgs|))
+  (when |$displayStartMsgs| (|spadStartUpMsgs|))
   (setq |$currentLine| nil)
   (restart0)
   (|readSpadProfileIfThere|)
@@ -571,10 +659,12 @@ This function performs those setup commands.
 
 @
 
-\subsection{defun initroot}
+\pagehead{initroot}{initroot}
 Sets up the system to use the {\bf AXIOM} shell variable if we can
 and default to the {\bf \$spadroot} variable (which was the value
 of the {\bf AXIOM} shell variable at build time) if we can't.
+
+Called from \fnref{restart}.
 <<defun initroot>>=
 (defun initroot (&optional (newroot (BOOT::|getEnv| "AXIOM")))
   (reroot (or newroot $spadroot (error "setenv AXIOM or (setq $spadroot)"))))
@@ -594,28 +684,6 @@ minus any leading spaces.
     newwhole))))
 
 @
-\subsection{defun loadExposureGroupData}
-<<defun loadExposureGroupData>>=
-#+:AKCL
-(defun |loadExposureGroupData| ()
- (cond
-  ((load "./exposed" :verbose nil :if-does-not-exist nil)
-    '|done|)
-  ((load (concat (system:getenv "AXIOM") "/algebra/exposed")
-     :verbose nil :if-does-not-exist nil)
-   '|done|)
-  (t '|failed|) ))
-
-#+:CCL
-(defun |loadExposureGroupData| ()
- (cond
-  ((load "./exposed.lsp" :verbose NIL :if-does-not-exist NIL) '|done|)
-  ((load (concat (BOOT::|getEnv| "AXIOM") "/../../src/algebra/exposed.lsp") 
-    :verbose nil :if-does-not-exist nil) '|done|)
-  (t nil) ))
-
-@
-
 \subsection{make-absolute-filename}
 Prefix a filename with the {\bf AXIOM} shell variable.
 <<defun make-absolute-filename>>=
@@ -691,16 +759,14 @@ where the [[${SYS}]] variable is the same one set at 
build time.
 <<defun reroot>>=
 (defun reroot (dir)
   (setq $spadroot dir)
+  (setq $current-directory dir)
   (setq $directory-list
    (mapcar #'make-absolute-filename $relative-directory-list))
   (setq $library-directory-list
    (mapcar #'make-absolute-filename $relative-library-directory-list))
   (setq |$defaultMsgDatabaseName|
        (pathname (make-absolute-filename "/doc/msgs/s2-us.msgs")))
-  (setq |$msgDatabaseName| ())
-  (setq *default-pathname-defaults*
-       (pathname (make-absolute-filename "")))
-  (setq $current-directory $spadroot))
+  (setq |$msgDatabaseName| ()))
 
 @
 
@@ -734,7 +800,8 @@ this is what the current code does so I won't change it.
 
 @
 
-\subsection{defun statisticsInitialization}
+\chapter{System Statistics}
+\pagehead{statisticsInitialization}{statisticsInitialization}
 <<defun statisticsInitialization>>=
 (defun |statisticsInitialization| () 
  "initialize the garbage collection timer"
@@ -3506,8 +3573,8 @@ S2IH0038
 
 \chapter{The Frame Mechanism}
 \section{)frame}
-%\label{ugSysCmdframe}
-%\index{frame}
+\label{TheFrameMechanism}
+\index{TheFrameMechanism}
 \par\noindent{\bf Command Syntax:}
 \begin{list}{}
 \item{\tt )frame  new  {\it frameName}}
@@ -5188,6 +5255,14 @@ removeUndoLines u == --called by writeInputLines
 
 @
 
+\pagehead{openserver}{openserver}
+This is a cover function for the C code used for communication interface.
+<<defun openserver>>=
+(defun openserver (name)
+  (open_server name))
+
+@
+
 \chapter{The Help Browser Mechanism}
 The Axiom book on the help browser is a complete rewrite of the 
 hyperdoc mechanism. There are several components that were needed
@@ -5457,12 +5532,60 @@ DEBUGSYS=${OBJ}/${SYS}/bin/debugsys
 
 @
 
+\chapter{Exposure Groups}
+Exposure groups are a way of controlling the namespace available
+to the user. Certain algebra files are only useful for internal
+purposes but they contain functions have common names (like 
+``map''. In order to separate the user visible  functions
+from the internal functions the algebra files are collected into
+``exposure groups''. These large groups are grouped into sets in
+the file \verb|exposed.lsp| which lives in the algebra subdirectory.
+
+Exposure group information is kept in the local frame. For more
+information ``The Frame Mechanism'' \ref{TheFrameMechanism} on
+page~\pageref{TheFrameMechanism}.
+
+\pagehead{loadExposureGroupData}{loadExposureGroupData}
+This function is called from \fnref{restart} at system startup time to 
+load the file \verb|exposed.lsp| to set up the exposure group information.
+<<defun loadExposureGroupData>>=
+(defun |loadExposureGroupData| ()
+ (cond
+  ((load "./exposed" :verbose nil :if-does-not-exist nil)
+    '|done|)
+  ((load (concat (system:getenv "AXIOM") "/algebra/exposed")
+     :verbose nil :if-does-not-exist nil)
+   '|done|)
+  (t '|failed|) ))
+
+@
+
+\chapter{Support Functions from Lisp}
+\pagehead{current-directory}{current-directory}
+<<initvars>>=
+(defvar $current-directory "")
+
+@
+\pagehead{get-current-directory}{get-current-directory}
+This function returns a string representing the current directory.
+This is maintained in the \$current-directory variable. It is called 
+from the \fnref{restart} function.
+<<defun get-current-directory>>=
+#+:cmu
+(defun get-current-directory ()
+  (namestring (extensions::default-directory)))
+
+#+(or :akcl :gcl)
+(defun get-current-directory ()
+  (namestring (truename "")))
+
+@ 
+
 \chapter{The Interpreter}
 <<Interpreter>>=
 (in-package "BOOT")
 <<initvars>>
 
-
 <<defun addNewInterpreterFrame>>
 
 <<defun browse>>
@@ -5500,6 +5623,7 @@ DEBUGSYS=${OBJ}/${SYS}/bin/debugsys
 <<defun frameNames>>
 <<defun frameSpad2Cmd>>
 
+<<defun get-current-directory>>
 <<defun getenviron>>
 <<defun gensymInt>>
 
@@ -5538,6 +5662,7 @@ DEBUGSYS=${OBJ}/${SYS}/bin/debugsys
 <<defun nextInterpreterFrame>>
 
 <<defun oldHistFileName>>
+<<defun openserver>>
 
 <<defun previousInterpreterFrame>>
 <<defun putHist>>
@@ -5602,7 +5727,6 @@ DEBUGSYS=${OBJ}/${SYS}/bin/debugsys
 \section{Star Global Variables}
 \begin{tabular}{lll}
 NAME                        & SET              & USE \\
-*default-pathname-defaults* & reroot           & restart \\
 *eof*                       & ncTopLevel       & \\
 *features*                  &                  & restart \\
 *package*                   &                  & restart \\
@@ -5610,20 +5734,6 @@ NAME                        & SET              & USE \\
 *standard-output*           &                  & ncIntLoop \\
 *top-level-hook*            & set-restart-hook & \\
 \end{tabular}
-\subsection{*default-pathname-defaults*}
-The [[*default-pathname-defaults*]] variable is set by
-[[make-absolute-filename]] called on the empty string. This has
-the effect of setting the value to the [[AXIOM]] variable as this
-function just concatenates the [[AXIOM]] variable onto the given string.
-We pass this string to the common lisp [[pathname]] function to set it
-to a real pathname.
-
-The [[*default-pathname-defaults*]] defaults common lisp variable is
-set in [[restart]] to the current directory in most cases. If we are
-working in Lucid Common Lisp ([[:lucid]]) on an IBM/370 mainframe
-([[:ibm/370]]) then it is set to the empty string. Using Lucid on a 
-mainframe seems to use the variable [[vmlisp::$current-directory]].
-
 \subsection{*eof*}
 The [[*eof*]] variable is set to [[NIL]] in [[ncTopLevel]].
 \subsection{*features*}
@@ -5659,7 +5769,7 @@ NAME                         & SET                 & USE 
\\
 coerceFailure                &                     & runspad \\
 curinstream                  & ncIntLoop           & \\
 curoutstream                 & ncIntLoop           & \\
-vmlisp::\$current-directory  & restart             & \\
+\$current-directory          & restart             & \\
                              & reroot              & \\
 \$currentLine                & restart             & removeUndoLines \\
 \$dalymode                   &                     & intloopReadConsole \\
@@ -5763,19 +5873,10 @@ The [[curoutstream]] variable is set to the value of the
 [[*standard-output*]] common lisp variable in [[ncIntLoop]].
 While not using the ``dollar'' convention this variable is still ``global''.
 
-\subsection{vmlisp::\$current-directory}
-When running in Lucid Common Lisp ([[:lucid]]) on an IBM/370 mainframe
-([[:ibm/370]]) this variable is used in place of the 
-[[*default-pathname-defaults*]] common lisp variable. 
-Otherwise this variable is
-set to the empty string in [[restart]]. 
-
-The [[reroot]] function sets this variable to the value of
-[[$spadroot]] which itself has the value of the argument to the
-[[reroot]] function. Since the argument to the [[reroot]] function is
-an string which represents an absolute pathname pointing to AXIOM the
-net result is that the [[$current-directory]] is set to point to the
-shell [[AXIOM]] variable.
+\subsection{\$current-directory}
+This is set to the value returned by the \verb|get-current-directory| 
+function in \fnref{restart}. It is set to the argument of the 
+\verb|reroot| function.
 
 So during execute both [[$current-directory]] and [[$spadroot]] reflect
 the value of the [[AXIOM]] shell variable.
@@ -6032,7 +6133,7 @@ The [[$previousBindings]] is a copy of the
 compute the [[delta(i)]]s stored in [[$frameRecord]].
 This is part of the undo mechanism.
 
-\subsection{\$printLoadMsgs}
+\pagehead{printLoadMsgs}{printLoadMsgs}
 The [[$printLoadMsgs]] variable is set to [[T]] in [[restart]].
 
 \subsection{\$PrintCompilerMessageIfTrue}
diff --git a/books/ps/v5restart.ps b/books/ps/v5restart.ps
new file mode 100644
index 0000000..eefd825
--- /dev/null
+++ b/books/ps/v5restart.ps
@@ -0,0 +1,468 @@
+%!PS-Adobe-2.0
+%%Creator: Graphviz version 2.16.1 (Mon Jul  7 18:20:33 UTC 2008)
+%%For: (root) root
+%%Title: g
+%%Pages: (atend)
+%%BoundingBox: (atend)
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} 
bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {   % i j npages
+       /npages exch def
+       /j exch def
+       /i exch def
+       /str 10 string def
+       npages 1 gt {
+               gsave
+                       coordfont setfont
+                       0 0 moveto
+                       (\() show i str cvs show (,) show j str cvs show (\)) 
show
+               grestore
+       } if
+} bind def
+
+/set_font {
+       findfont exch
+       scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {                 % width text
+       /text exch def
+       /width exch def
+       gsave
+               width 0 gt {
+                       [] 0 setdash
+                       text stringwidth pop width exch sub text length div 0 
text ashow
+               } if
+       grestore
+} def
+
+/boxprim {                             % xcorner ycorner xsize ysize
+               4 2 roll
+               moveto
+               2 copy
+               exch 0 rlineto
+               0 exch rlineto
+               pop neg 0 rlineto
+               closepath
+} bind def
+
+/ellipse_path {
+       /ry exch def
+       /rx exch def
+       /y exch def
+       /x exch def
+       matrix currentmatrix
+       newpath
+       x y translate
+       rx ry scale
+       0 0 1 0 360 arc
+       setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+       [       % layer color sequence - darkest to lightest
+               [0 0 0]
+               [.2 .8 .8]
+               [.4 .8 .8]
+               [.6 .8 .8]
+               [.8 .8 .8]
+       ]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+       layercolorseq curlayer 1 sub layerlen mod get
+       aload pop sethsbcolor
+       /nodecolor {nopcolor} def
+       /edgecolor {nopcolor} def
+       /graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+       /myupper exch def
+       /mylower exch def
+       curlayer mylower lt
+       curlayer myupper gt
+       or
+       {invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 238 404
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 202 368 boxprim clip newpath
+1 1 set_scale 0 rotate 40 40 translate
+0.167 0.600 1.000 graphcolor
+newpath -4 -4 moveto
+-4 716 lineto
+536 716 lineto
+536 -4 lineto
+closepath fill
+1 setlinewidth
+0.167 0.600 1.000 graphcolor
+newpath -4 -4 moveto
+-4 716 lineto
+536 716 lineto
+536 -4 lineto
+closepath stroke
+% lisp
+gsave
+[ /Rect [ 68 304 126 352 ]
+  /Border [ 0 0 0 ]
+  /Action << /Subtype /URI /URI (bookvol5.pdf#nameddest=lisp) >>
+  /Subtype /Link
+/ANN pdfmark
+0.167 0.600 1.000 nodecolor
+newpath 126 352 moveto
+68 352 lineto
+68 304 lineto
+126 304 lineto
+closepath fill
+1 setlinewidth
+filled
+0.167 0.600 1.000 nodecolor
+newpath 126 352 moveto
+68 352 lineto
+68 304 lineto
+126 304 lineto
+closepath stroke
+0.537 0.247 0.902 nodecolor
+newpath 76 328 moveto
+76 348 lineto
+118 348 lineto
+118 328 lineto
+closepath fill
+1 setlinewidth
+solid
+0.537 0.247 0.902 nodecolor
+newpath 76 328 moveto
+76 348 lineto
+118 348 lineto
+118 328 lineto
+closepath stroke
+1 setlinewidth
+solid
+0.000 0.000 0.000 nodecolor
+newpath 76 328 moveto
+76 348 lineto
+118 348 lineto
+118 328 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14.00 /Times-Roman set_font
+79 334.733 moveto 20 (lisp) alignedtext
+1 setlinewidth
+solid
+0.000 0.000 0.000 nodecolor
+newpath 76 308 moveto
+76 328 lineto
+118 328 lineto
+118 308 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14.00 /Times-Roman set_font
+79 314.733 moveto 36 (restart) alignedtext
+grestore
+% restart
+gsave
+[ /Rect [ 0 0 194 268 ]
+  /Border [ 0 0 0 ]
+  /Action << /Subtype /URI /URI (bookvol5.pdf#nameddest=restart) >>
+  /Subtype /Link
+/ANN pdfmark
+0.167 0.600 1.000 nodecolor
+newpath 194 268 moveto
+5.68434e-14 268 lineto
+1.42109e-14 8.52651e-14 lineto
+194 0 lineto
+closepath fill
+1 setlinewidth
+filled
+0.167 0.600 1.000 nodecolor
+newpath 194 268 moveto
+5.68434e-14 268 lineto
+1.42109e-14 8.52651e-14 lineto
+194 0 lineto
+closepath stroke
+0.537 0.247 0.902 nodecolor
+newpath 8 244 moveto
+8 264 lineto
+186 264 lineto
+186 244 lineto
+closepath fill
+1 setlinewidth
+solid
+0.537 0.247 0.902 nodecolor
+newpath 8 244 moveto
+8 264 lineto
+186 264 lineto
+186 244 lineto
+closepath stroke
+1 setlinewidth
+solid
+0.000 0.000 0.000 nodecolor
+newpath 8 244 moveto
+8 264 lineto
+186 264 lineto
+186 244 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14.00 /Times-Roman set_font
+11 250.733 moveto 36 (restart) alignedtext
+1 setlinewidth
+solid
+0.000 0.000 0.000 nodecolor
+newpath 8 224 moveto
+8 244 lineto
+186 244 lineto
+186 224 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14.00 /Times-Roman set_font
+76.5 230.733 moveto 41 (initroot) alignedtext
+1 setlinewidth
+solid
+0.000 0.000 0.000 nodecolor
+newpath 8 204 moveto
+8 224 lineto
+186 224 lineto
+186 204 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14.00 /Times-Roman set_font
+65.5 210.733 moveto 63 (openserver) alignedtext
+1 setlinewidth
+solid
+0.000 0.000 0.000 nodecolor
+newpath 8 184 moveto
+8 204 lineto
+186 204 lineto
+186 184 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14.00 /Times-Roman set_font
+17.5 190.733 moveto 159 (makeInitialModemapFrame) alignedtext
+1 setlinewidth
+solid
+0.000 0.000 0.000 nodecolor
+newpath 8 164 moveto
+8 184 lineto
+186 184 lineto
+186 164 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14.00 /Times-Roman set_font
+37 170.733 moveto 120 (get-current-directory) alignedtext
+1 setlinewidth
+solid
+0.000 0.000 0.000 nodecolor
+newpath 8 144 moveto
+8 164 lineto
+186 164 lineto
+186 144 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14.00 /Times-Roman set_font
+25.5 150.733 moveto 143 (loadExposureGroupData) alignedtext
+1 setlinewidth
+solid
+0.000 0.000 0.000 nodecolor
+newpath 8 124 moveto
+8 144 lineto
+186 144 lineto
+186 124 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14.00 /Times-Roman set_font
+36 130.733 moveto 122 (statisticsInitialization) alignedtext
+1 setlinewidth
+solid
+0.000 0.000 0.000 nodecolor
+newpath 8 104 moveto
+8 124 lineto
+186 124 lineto
+186 104 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14.00 /Times-Roman set_font
+76.5 110.733 moveto 41 (initHist) alignedtext
+1 setlinewidth
+solid
+0.000 0.000 0.000 nodecolor
+newpath 8 84 moveto
+8 104 lineto
+186 104 lineto
+186 84 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14.00 /Times-Roman set_font
+11.5 90.7333 moveto 171 (initializeInterpreterFrameRing) alignedtext
+1 setlinewidth
+solid
+0.000 0.000 0.000 nodecolor
+newpath 8 64 moveto
+8 84 lineto
+186 84 lineto
+186 64 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14.00 /Times-Roman set_font
+45.5 70.7333 moveto 103 (spadStartUpMsgs) alignedtext
+1 setlinewidth
+solid
+0.000 0.000 0.000 nodecolor
+newpath 8 44 moveto
+8 64 lineto
+186 64 lineto
+186 44 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14.00 /Times-Roman set_font
+75 50.7333 moveto 44 (restart0) alignedtext
+1 setlinewidth
+solid
+0.000 0.000 0.000 nodecolor
+newpath 8 24 moveto
+8 44 lineto
+186 44 lineto
+186 24 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14.00 /Times-Roman set_font
+29.5 30.7333 moveto 135 (readSpadProfileIfThere) alignedtext
+1 setlinewidth
+solid
+0.000 0.000 0.000 nodecolor
+newpath 8 4 moveto
+8 24 lineto
+186 24 lineto
+186 4 lineto
+closepath stroke
+0.000 0.000 0.000 nodecolor
+14.00 /Times-Roman set_font
+83.5 10.7333 moveto 27 (spad) alignedtext
+grestore
+% lisp->restart
+gsave
+5 setlinewidth
+0.000 0.000 0.000 edgecolor
+newpath 97 308 moveto
+97 299 97 286 97 274 curveto
+stroke
+0.000 0.000 0.000 edgecolor
+newpath 100.5 274 moveto
+97 264 lineto
+93.5001 274 lineto
+closepath fill
+1 setlinewidth
+solid
+0.000 0.000 0.000 edgecolor
+newpath 100.5 274 moveto
+97 264 lineto
+93.5001 274 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 238 404
+end
+restore
+%%EOF
diff --git a/changelog b/changelog
index 5069ea7..1eb750a 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,7 @@
+20090212 tpd src/axiom-website/patches.html 20090212.02.tpd.patch
+20090212 tpd src/Makefile.pamphlet copy bookvol5
+20090212 tpd books/ps/v5restart.ps added
+20090212 tpd books/bookvol5.pamphlet rewrite/document restart function
 20090212 tpd src/axiom-website/patches.html 20090212.01.tpd.patch
 20090212 tpd src/interp/interp-proclaims.lisp update proclaims for changes
 20090212 tpd src/interp/sockio.lisp remove unused code
diff --git a/src/Makefile.pamphlet b/src/Makefile.pamphlet
index 34820b0..a48ac4b 100644
--- a/src/Makefile.pamphlet
+++ b/src/Makefile.pamphlet
@@ -259,6 +259,7 @@ interpdir: ${SRC}/interp/Makefile
        @mkdir -p ${MNT}/${SYS}/algebra
        @mkdir -p ${MNT}/${SYS}/doc/msgs
        @mkdir -p ${MNT}/${SYS}/doc/src/interp
+       @cp ${SPD}/books/bookvol5.pamphlet interp
        @(cd interp ; ${ENV} ${MAKE} )
 
 ${SRC}/interp/Makefile: ${SRC}/interp/Makefile.pamphlet
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 2fbdca2..140c90c 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -943,5 +943,7 @@ bookvol10.4 add exports<br/>
 bookvol10.4 add exports<br/>
 <a href="patches/20090212.01.tpd.patch">20090212.01.tpd.patch</a>
 remove unused code<br/>
+<a href="patches/20090212.02.tpd.patch">20090212.02.tpd.patch</a>
+rewrite restart<br/>
  </body>
 </html>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]