[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] 20090304.01.tpd.patch (bookvol5 add user level command
From: |
daly |
Subject: |
[Axiom-developer] 20090304.01.tpd.patch (bookvol5 add user level command roots) |
Date: |
Thu, 5 Mar 2009 05:39:41 -0600 |
The root code for the zsystemdevelopment, workfiles, with, and what commands
were moved to bookvol5. These multiple roots will be used to tree-shake
the rest of the system for live code.
Tim.
===========================================================================
diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet
index 5f323e0..33d51d4 100644
--- a/books/bookvol10.4.pamphlet
+++ b/books/bookvol10.4.pamphlet
@@ -3678,7 +3678,7 @@ difference(getDomains 'IndexedAggregate,getDomains
'Collection)
--R ApplicationProgramInterface is a package constructor
--R Abbreviation for ApplicationProgramInterface is API
--R This constructor is exposed in this frame.
---R Issue )edit bookvol10.4.pamphlet to see algebra source code for API
+--R Issue )edit bookvol10.4.spad.pamphlet to see algebra source code for API
--R
--R------------------------------- Operations --------------------------------
--R getDomains : Symbol -> Set Symbol
diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet
index c2c2f17..2b28252 100644
--- a/books/bookvol5.pamphlet
+++ b/books/bookvol5.pamphlet
@@ -1543,6 +1543,42 @@ system function and constructor caches.
\cmdhead{close}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\par\noindent{\bf User Level Required:} interpreter
+
+\par\noindent{\bf Command Syntax:}
+\begin{list}{}
+\item{\tt )close}
+\item{\tt )close )quietly}
+\end{list}
+\par\noindent{\bf Command Description:}
+
+This command is used to close down interpreter client processes.
+Such processes are started by HyperDoc to run Axiom examples
+when you click on their text. When you have finished examining or modifying the
+example and you do not want the extra window around anymore, issue
+\begin{verbatim}
+)close
+\end{verbatim}
+to the Axiom prompt in the window.
+
+If you try to close down the last remaining interpreter client
+process, Axiom will offer to close down the entire Axiom
+session and return you to the operating system by displaying something
+like
+\begin{verbatim}
+ This is the last AXIOM session. Do you want to kill AXIOM?
+\end{verbatim}
+Type ``{\tt y}'' (followed by the Return key) if this is what you had in mind.
+Type ``{\tt n}'' (followed by the Return key) to cancel the command.
+
+You can use the {\tt )quietly} option to force Axiom to
+close down the interpreter client process without closing down
+the entire Axiom session.
+
+\par\noindent{\bf Also See:}
+\fnref{quit} and
+\fnref{pquit}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cmdhead{compiler}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -2243,7 +2279,6 @@ next brace but the problem does not arise in practice.
\cmdhead{edit}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
\par\noindent{\bf User Level Required:} interpreter
\par\noindent{\bf Command Syntax:}
@@ -5970,7 +6005,6 @@ executed when you press, say, a function key.
\cmdhead{read}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
\par\noindent{\bf User Level Required:} interpreter
\par\noindent{\bf Command Syntax:}
@@ -6010,6 +6044,35 @@ The {\tt )quiet} option suppresses output while the file
is being read.
\cmdhead{savesystem}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\par\noindent{\bf User Level Required:} interpreter
+
+\par\noindent{\bf Command Syntax:}
+\begin{list}{}
+\item {\tt )savesystem filename}
+\end{list}
+\par\noindent{\bf Command Description:}
+
+This command is used to save an AXIOM image to disk. This creates an
+executable file which, when started, has everything loaded into it
+that was there when the image was saved. Thus, after executing commands
+which cause the loading of some packages, the command:
+
+\begin{verbatim}
+)savesystem /tmp/savesys
+\end{verbatim}
+
+will create an image that can be restarted with the UNIX command:
+
+\begin{verbatim}
+axiom -ws /tmp/savesys
+\end{verbatim}
+
+This new system will not need to reload the packages and domains that
+were already loaded when the system was saved.
+
+There is currently a restriction that only systems started with the
+command "AXIOMsys" may be saved.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cmdhead{set}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -6705,11 +6768,11 @@ undo(l) ==
(eq (qcdr tmp1) nil)
(progn (spadlet key (qcar tmp1)) t)))
(cond
- ((|stringPrefix?| (spadlet s (pname key)) (makestring "redo"))
+ ((|stringPrefix?| (spadlet s (pname key)) "redo")
(spadlet |$options| nil)
(|read| '(|redo.input|)))
- ((null (|stringPrefix?| s (makestring "before")))
- (|userError| (makestring "only option to undo is \")redo\"")))
+ ((null (|stringPrefix?| s "before"))
+ (|userError| "only option to undo is \")redo\""))
(t
(spadlet undoWhen '|before|)))))
(if (null l)
@@ -6719,7 +6782,7 @@ undo(l) ==
(spadlet n (parse-integer (pname n)))
(cond
((null (fixp n))
- (|userError| (makestring "undo argument must be an integer")))
+ (|userError| "undo argument must be an integer"))
(t
nil)))
(spadlet |$InteractiveFrame| (|undoSteps| (|undoCount| n) undoWhen))
@@ -6978,7 +7041,7 @@ reportUndo acc ==
(exit
(progn
(|sayBrightly|
- (strconc '|Properties of | (pname name) (makestring " ::")))
+ (strconc '|Properties of | (pname name) " ::"))
(spadlet curproplist (lassoc name (caar |$InteractiveFrame|)))
(do ((tmp2 proplist (cdr tmp2)) (tmp3 nil))
((or (atom tmp2)
@@ -6994,14 +7057,10 @@ reportUndo acc ==
(exit
(progn
(|sayBrightlyNT|
- (cons
- (makestring " ")
- (cons prop (cons (makestring " was: ") nil))))
+ (cons " " (cons prop (cons " was: " nil))))
(|pp| value)
(|sayBrightlyNT|
- (cons
- (makestring " ")
- (cons prop (cons (makestring " is: ") nil))))
+ (cons " " (cons prop (cons " is: " nil))))
(|pp| (lassoc prop curproplist))))))))))))))
@
@@ -7045,10 +7104,8 @@ undoCount(n) == --computes the number of undo's, given
$IOindex
(cond
((>= m |$IOindex|)
(|userError|
- (strconc
- (makestring
- "Magnitude of undo argument must be less than step number (")
- (stringimage |$IOindex|) (makestring ")."))))
+ (strconc "Magnitude of undo argument must be less than step number ("
+ (stringimage |$IOindex|) ").")))
(t m))))))
@
@@ -7304,7 +7361,7 @@ removeUndoLines u == --called by writeInputLines
(seq
(exit
(cond
- ((null (|stringPrefix?| (makestring ")history") x))
+ ((null (|stringPrefix?| ")history" x))
(setq tmp0 (cons x tmp0))))))))))
(spadlet u (append u xtra))
(cond
@@ -7317,7 +7374,7 @@ removeUndoLines u == --called by writeInputLines
(seq
(exit
(setq tmp2
- (or tmp2 (|stringPrefix?| (makestring ")undo") x))))))))) u)
+ (or tmp2 (|stringPrefix?| ")undo" x))))))))) u)
(t
(spadlet savedIOindex |$IOindex|)
(spadlet |$IOindex| 1)
@@ -7328,11 +7385,11 @@ removeUndoLines u == --called by writeInputLines
(cond
((boot-equal (elt (spadlet x (car y)) 0) (|char| '|)|))
(cond
- ((|stringPrefix?| (makestring ")undo")
+ ((|stringPrefix?| ")undo"
(spadlet s (|trimString| x)))
(spadlet s1 (|trimString| (substring s 5 nil)))
(cond
- ((nequal s1 (makestring ")redo"))
+ ((nequal s1 ")redo")
(spadlet m (|charPosition| (|char| '|)|) s1 0))
(spadlet code
(cond
@@ -7341,13 +7398,13 @@ removeUndoLines u == --called by writeInputLines
(spadlet s2 (|trimString| (substring s1 0 m)))))
(spadlet n
(cond
- ((boot-equal s1 (makestring ")redo"))
+ ((boot-equal s1 ")redo")
0)
- ((nequal s2 (makestring ""))
+ ((nequal s2 "")
(|undoCount| (parse-integer s2)))
(t (spaddifference 1))))
(rplaca y
- (concat (makestring ">") code (stringimage n))))
+ (concat ">" code (stringimage n))))
(t nil)))
(t (spadlet |$IOindex| (plus |$IOindex| 1)))))))
(spadlet acc nil)
@@ -7380,7 +7437,7 @@ removeUndoLines u == --called by writeInputLines
(spadlet acc (cons c acc)))))
(t (spadlet acc (cons x acc)))))))
(spadlet |$IOindex| savedIOindex)
- acc)))))))
+ acc)))))))
@
@@ -7478,18 +7535,514 @@ The command synonym {\tt )apropos} is equivalent to
\fnref{set}, and
\fnref{show}
+\begin{verbatim}
+what l == whatSpad2Cmd l
+\end{verbatim}
+<<defun what>>=
+(defun |what| (l)
+ (|whatSpad2Cmd| l))
+
+@
+
+\begin{verbatim}
+whatSpad2Cmd l ==
+ $e:local := $EmptyEnvironment
+ null l => reportWhatOptions()
+ [key0,:args] := l
+ key := selectOptionLC(key0,$whatOptions,nil)
+ null key => sayKeyedMsg("S2IZ0043",NIL)
+ args := [fixpat p for p in args] where
+ fixpat x ==
+ x is [x',:.] => DOWNCASE x'
+ DOWNCASE x
+ key = 'things =>
+ for opt in $whatOptions repeat
+ not MEMQ(opt,'(things)) => whatSpad2Cmd [opt,:args]
+ key = 'categories =>
+ filterAndFormatConstructors('category,'"Categories",args)
+ key = 'commands =>
+ whatCommands(args)
+ key = 'domains =>
+ filterAndFormatConstructors('domain,'"Domains",args)
+ key = 'operations =>
+ apropos args
+ key = 'packages =>
+ filterAndFormatConstructors('package,'"Packages",args)
+ key = 'synonyms =>
+ printSynonyms(args)
+\end{verbatim}
+
+<<defun whatSpad2Cmd,fixpat>>=
+(defun |whatSpad2Cmd,fixpat| (|x|)
+ (prog (|x'|)
+ (return
+ (seq
+ (if (and (pairp |x|) (progn (spadlet |x'| (qcar |x|)) t))
+ (exit (downcase |x'|)))
+ (exit (downcase |x|))))))
+
+@
+<<defun whatSpad2Cmd>>=
+(defun |whatSpad2Cmd| (|l|)
+ (prog (|$e| |key0| |key| |args|)
+ (declare (special |$e|))
+ (return
+ (seq
+ (progn
+ (spadlet |$e| |$EmptyEnvironment|)
+ (cond
+ ((null |l|) (|reportWhatOptions|))
+ (t
+ (spadlet |key0| (car |l|))
+ (spadlet |args| (cdr |l|))
+ (spadlet |key| (|selectOptionLC| |key0| |$whatOptions| nil))
+ (cond
+ ((null |key|) (|sayKeyedMsg| 's2iz0043 nil))
+ (t
+ (spadlet |args|
+ (prog (t0)
+ (spadlet t0 nil)
+ (return
+ (do ((t1 |args| (cdr t1)) (|p| nil))
+ ((or (atom t1)
+ (progn (setq |p| (car t1)) nil))
+ (nreverse0 t0))
+ (seq
+ (exit
+ (setq t0 (cons (|whatSpad2Cmd,fixpat| |p|) t0))))))))
+ (seq
+ (cond
+ ((boot-equal |key| '|things|)
+ (do ((t2 |$whatOptions| (cdr t2)) (|opt| nil))
+ ((or (atom t2) (progn (setq |opt| (CAR t2)) nil)) nil)
+ (seq
+ (exit
+ (cond
+ ((null (memq |opt| '(|things|)))
+ (exit (|whatSpad2Cmd| (cons |opt| |args|)))))))))
+ ((boot-equal |key| '|categories|)
+ (|filterAndFormatConstructors| '|category| "Categories" |args|))
+ ((boot-equal |key| '|commands|) (|whatCommands| |args|))
+ ((boot-equal |key| '|domains|)
+ (|filterAndFormatConstructors| '|domain| "Domains" |args|))
+ ((boot-equal |key| '|operations|)
+ (|apropos| |args|))
+ ((boot-equal |key| '|packages|)
+ (|filterAndFormatConstructors| '|package| "Packages" |args|))
+ (t
+ (cond ((boot-equal |key| '|synonyms|)
+ (|printSynonyms| |args|)))))))))))))))
+
+@
+\begin{verbatim}
+filterAndFormatConstructors(constrType,label,patterns) ==
+ centerAndHighlight(label,$LINELENGTH,specialChar 'hbar)
+ l := filterListOfStringsWithFn(patterns,whatConstructors constrType,
+ function CDR)
+ if patterns then
+ null l =>
+ sayMessage ['" No ",label,'" with names matching patterns:",
+ '%l,'" ",'%b,:blankList patterns,'%d]
+ sayMessage [label,'" with names matching patterns:",
+ '%l,'" ",'%b,:blankList patterns,'%d]
+ l => pp2Cols l
+\end{verbatim}
+
+<<defun filterAndFormatConstructors>>=
+(defun |filterAndFormatConstructors| (|constrType| |label| |patterns|)
+ (prog (|l|)
+ (return
+ (progn (|centerAndHighlight| |label| $linelength
+ (|specialChar| '|hbar|))
+ (spadlet |l|
+ (|filterListOfStringsWithFn| |patterns|
+ (|whatConstructors| |constrType|)
+ (|function| cdr)))
+ (cond (|patterns|
+ (cond
+ ((null |l|)
+ (|sayMessage|
+ (cons " No "
+ (cons |label|
+ (cons " with names matching patterns:"
+ (cons '|%l|
+ (cons " "
+ (cons '|%b|
+ (append (|blankList| |patterns|)
+ (cons '|%d| nil))))))))))
+ (t
+ (|sayMessage|
+ (cons |label|
+ (cons " with names matching patterns:"
+ (cons '|%l|
+ (cons " "
+ (cons '|%b|
+ (append (|blankList| |patterns|)
+ (cons '|%d| nil))))))))))))
+ (cond (|l| (|pp2Cols| |l|)))))))
+
+@
+
+\begin{verbatim}
+whatConstructors constrType ==
+ -- here constrType should be one of 'category, 'domain, 'package
+ MSORT [CONS(GETDATABASE(con,'ABBREVIATION), STRING(con))
+ for con in allConstructors()
+ | GETDATABASE(con,'CONSTRUCTORKIND) = constrType]
+\end{verbatim}
+
+<<defun whatConstructors>>=
+(defun |whatConstructors| (|constrType|)
+ (prog nil
+ (return
+ (seq
+ (msort
+ (prog (t0)
+ (spadlet t0 nil)
+ (return
+ (do ((t1 (|allConstructors|) (cdr t1)) (|con| nil))
+ ((or (atom t1) (progn (setq |con| (car t1)) nil)) (nreverse0 t0))
+ (seq
+ (exit
+ (cond
+ ((boot-equal (getdatabase |con| 'constructorkind)
+ |constrType|)
+ (setq t0
+ (cons
+ (cons
+ (getdatabase |con| 'abbreviation)
+ (string |con|))
+ t0))))))))))))))
+
+@
+\begin{verbatim}
+apropos l ==
+ -- l is a list of operation name fragments
+ -- this displays all operation names containing these fragments
+ ops :=
+ null l => allOperations()
+ filterListOfStrings([(DOWNCASE STRINGIMAGE p) for p in l],allOperations())
+ ops =>
+ sayMessage '"Operations whose names satisfy the above pattern(s):"
+ sayAsManyPerLineAsPossible MSORT ops
+ sayKeyedMsg("S2IF0011",[first ops])
+ sayMessage '" There are no operations containing those patterns"
+ NIL
+\end{verbatim}
+
+<<defun apropos>>=
+(defun |apropos| (|l|)
+ (prog (|ops|)
+ (return
+ (seq
+ (progn
+ (spadlet |ops|
+ (cond
+ ((null |l|) (|allOperations|))
+ (t
+ (|filterListOfStrings|
+ (prog (t0)
+ (spadlet t0 nil)
+ (return
+ (do ((t1 |l| (cdr t1)) (|p| nil))
+ ((or (atom t1) (progn (setq |p| (car t1)) nil))
+ (nreverse0 t0))
+ (seq (exit (setq t0 (cons (downcase (stringimage |p|)) t0)))))))
+ (|allOperations|)))))
+ (cond
+ (|ops|
+ (|sayMessage| "Operations whose names satisfy the above pattern(s):")
+ (|sayAsManyPerLineAsPossible| (msort |ops|))
+ (|sayKeyedMsg| 's2if0011 (cons (car |ops|) nil)))
+ (t
+ (|sayMessage| " There are no operations containing those patterns")
+ nil)))))))
+
+@
+
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cmdhead{with}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+; )library top level command -- soon to be obsolete
+
+<<defun with>>=
+(defun |with| (args)
+ (|library| args))
+
+@
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cmdhead{workfiles}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{verbatim}
+workfiles l == workfilesSpad2Cmd l
+\end{verbatim}
+<<defun workfiles>>=
+(defun |workfiles| (l)
+ (|workfilesSpad2Cmd| l))
+
+@
+\begin{verbatim}
+workfilesSpad2Cmd args ==
+ args => throwKeyedMsg("S2IZ0047",NIL)
+ deleteFlag := nil
+ for [type,:.] in $options repeat
+ type1 := selectOptionLC(type,'(boot lisp meta delete),nil)
+ null type1 => throwKeyedMsg("S2IZ0048",[type])
+ type1 = 'delete => deleteFlag := true
+ for [type,:flist] in $options repeat
+ type1 := selectOptionLC(type,'(boot lisp meta delete),nil)
+ type1 = 'delete => nil
+ for file in flist repeat
+ fl := pathname [file,type1,'"*"]
+ deleteFlag => SETQ($sourceFiles,DELETE(fl,$sourceFiles))
+ null (MAKE_-INPUT_-FILENAME fl) => sayKeyedMsg("S2IZ0035",[namestring
fl])
+ updateSourceFiles fl
+ SAY " "
+ centerAndHighlight(" User-specified work files ",$LINELENGTH,specialChar
'hbar)
+ SAY " "
+ null $sourceFiles => SAY '" no files specified"
+ SETQ($sourceFiles,SORTBY('pathnameType,$sourceFiles))
+ for fl in $sourceFiles repeat sayBrightly [" " ,namestring fl]
+\end{verbatim}
+<<defun workfilesSpad2Cmd>>=
+(defun |workfilesSpad2Cmd| (|args|)
+ (prog (|deleteFlag| |type| |flist| |type1| |fl|)
+ (return
+ (seq
+ (cond
+ (|args| (|throwKeyedMsg| 's2iz0047 nil))
+ (t
+ (spadlet |deleteFlag| nil)
+ (do ((t0 |$options| (cdr t0)) (t1 nil))
+ ((or (atom t0)
+ (progn (setq t1 (car t0)) nil)
+ (progn (progn (spadlet |type| (car t1)) t1) nil))
+ nil)
+ (seq
+ (exit
+ (progn
+ (spadlet |type1|
+ (|selectOptionLC| |type| '(|boot| |lisp| |meta| |delete|) nil))
+ (cond
+ ((null |type1|)
+ (|throwKeyedMsg| 's2iz0048 (cons |type| nil)))
+ ((boot-equal |type1| '|delete|)
+ (spadlet |deleteFlag| t)))))))
+ (do ((t2 |$options| (cdr t2)) (t3 NIL))
+ ((or (atom t2)
+ (progn (setq t3 (CAR t2)) nil)
+ (progn
+ (progn
+ (spadlet |type| (car t3))
+ (spadlet |flist| (cdr t3)) t3)
+ nil))
+ nil)
+ (seq
+ (exit
+ (progn
+ (spadlet |type1|
+ (|selectOptionLC| |type| '(|boot| |lisp| |meta| |delete|) nil))
+ (cond
+ ((boot-equal |type1| '|delete|) nil)
+ (t
+ (do ((t4 |flist| (CDR t4)) (|file| nil))
+ ((or (atom t4) (progn (setq |file| (car t4)) nil)) nil)
+ (seq
+ (exit
+ (progn
+ (spadlet |fl|
+ (|pathname|
+ (cons |file| (cons |type1| (cons "*" nil)))))
+ (cond
+ (|deleteFlag|
+ (setq |$sourceFiles| (|delete| |fl| |$sourceFiles|)))
+ ((null (make-input-filename |fl|))
+ (|sayKeyedMsg|
+ 's2iz0035 (cons (|namestring| |fl|) nil)))
+ (t (|updateSourceFiles| |fl|)))))))))))))
+ (say " ")
+ (|centerAndHighlight|
+ '| User-specified work files |
+ $linelength
+ (|specialChar| '|hbar|))
+ (say " ")
+ (cond
+ ((null |$sourceFiles|)
+ (say " no files specified"))
+ (t
+ (setq |$sourceFiles| (sortby '|pathnameType| |$sourceFiles|))
+ (do ((t5 |$sourceFiles| (cdr t5)) (|fl| nil))
+ ((or (atom t5) (progn (setq |fl| (car t5)) nil)) nil)
+ (seq
+ (exit
+ (|sayBrightly|
+ (cons " " (cons (|namestring| |fl|) nil))))))))))))))
+
+@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cmdhead{zsystemdevelopment}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{verbatim}
+zsystemdevelopment l == zsystemDevelopmentSpad2Cmd l
+\end{verbatim}
+<<defun zsystemdevelopment>>=
+(defun |zsystemdevelopment| (|l|)
+ (|zsystemDevelopmentSpad2Cmd| |l|))
+
+@
+\begin{verbatim}
+zsystemDevelopmentSpad2Cmd l == zsystemdevelopment1 (l,$InteractiveMode)
+\end{verbatim}
+<<defun zsystemDevelopmentSpad2Cmd>>=
+(defun |zsystemDevelopmentSpad2Cmd| (|l|)
+ (|zsystemdevelopment1| |l| |$InteractiveMode|))
+
+@
+\begin{verbatim}
+zsystemdevelopment1(l,im) ==
+ $InteractiveMode : local := im
+ fromopt := nil
+ -- cycle through once to see if )from is mentioned
+ for [opt,:optargs] in $options repeat
+ opt1 := selectOptionLC(opt,'(from),nil)
+ opt1 = 'from => fromopt := [['FROM,:optargs]]
+ for [opt,:optargs] in $options repeat
+ if null optargs then optargs := l
+ newopt := APPEND(optargs,fromopt)
+ opt1 := selectOptionLC(opt,'(from),nil)
+ opt1 = 'from => nil
+ opt = "c" => _/D_,1 (newopt ,_/COMP(),NIL,NIL)
+ opt = "d" => _/D_,1 (newopt ,'DEFINE,NIL,NIL)
+ opt = "dt" => _/D_,1 (newopt ,'DEFINE,NIL,true)
+ opt = "ct" => _/D_,1 (newopt ,_/COMP(),NIL,true)
+ opt = "ctl" => _/D_,1 (newopt ,_/COMP(),NIL,'TRACELET)
+ opt = "ec" => _/D_,1 (newopt ,_/COMP(),true,NIL)
+ opt = "ect" => _/D_,1 (newopt ,_/COMP(),true,true)
+ opt = "e" => _/D_,1 (newopt ,NIL,true,NIL)
+ opt = "version" => version()
+ opt = "pause" =>
+ conStream := DEFIOSTREAM ('((DEVICE . CONSOLE) (QUAL . V)),120,0)
+ NEXT conStream
+ SHUT conStream
+ opt = "update" or opt = "patch" =>
+ $InteractiveMode := nil
+ upf := [KAR optargs or _/VERSION, KADR optargs or _/WSNAME,
+ KADDR optargs or '_*]
+ fun := (opt = "patch" => '_/UPDATE_-LIB_-1; '_/UPDATE_-1)
+ CATCH('FILENAM, FUNCALL(fun, upf))
+ sayMessage '" Update/patch is completed."
+ null optargs =>
+ sayBrightly ['" An argument is required for",:bright opt]
+ sayMessage ['" Unknown option:",:bright opt," ",'%l,
+ '" Available options are", _
+ :bright '"c ct e ec ect cls pause update patch compare record"]
+\end{verbatim}
+<<defun zsystemdevelopment1>>=
+(defun |zsystemdevelopment1| (|l| |im|)
+ (prog (|$InteractiveMode| |fromopt| |opt| |optargs| |newopt| |opt1|
+ |conStream| |upf| |fun|)
+ (declare (special |$InteractiveMode|))
+ (return
+ (seq
+ (progn
+ (spadlet |$InteractiveMode| |im|)
+ (spadlet |fromopt| NIL)
+ (do ((t0 |$options| (cdr t0)) (t1 NIL))
+ ((or (atom t0)
+ (progn (setq t1 (car t0)) nil)
+ (progn
+ (progn
+ (spadlet |opt| (CAR t1))
+ (spadlet |optargs| (CDR t1))
+ t1)
+ nil))
+ nil)
+ (seq
+ (exit
+ (progn
+ (spadlet |opt1| (|selectOptionLC| |opt| '(|from|) nil))
+ (cond
+ ((boot-equal |opt1| '|from|)
+ (spadlet |fromopt| (cons (cons 'from |optargs|) nil))))))))
+ (do ((t2 |$options| (cdr t2)) (t3 NIL))
+ ((or (atom t2)
+ (progn (setq t3 (car t2)) nil)
+ (progn
+ (progn
+ (spadlet |opt| (car t3))
+ (spadlet |optargs| (cdr t3))
+ t3)
+ nil))
+ nil)
+ (seq
+ (exit
+ (progn
+ (cond ((null |optargs|) (spadlet |optargs| |l|)))
+ (spadlet |newopt| (append |optargs| |fromopt|))
+ (spadlet |opt1| (|selectOptionLC| |opt| '(|from|) nil))
+ (cond
+ ((boot-equal |opt1| '|from|)
+ nil)
+ ((boot-equal |opt| '|c|)
+ (|/D,1| |newopt| (/COMP) nil nil))
+ ((boot-equal |opt| '|d|)
+ (|/D,1| |newopt| 'define nil nil))
+ ((boot-equal |opt| '|dt|)
+ (|/D,1| |newopt| 'define nil t))
+ ((boot-equal |opt| '|ct|)
+ (|/D,1| |newopt| (/COMP) nil t))
+ ((boot-equal |opt| '|ctl|)
+ (|/D,1| |newopt| (/COMP) nil 'tracelet))
+ ((boot-equal |opt| '|ec|)
+ (|/D,1| |newopt| (/COMP) t nil))
+ ((boot-equal |opt| '|ect|)
+ (|/D,1| |newopt| (/COMP) t t))
+ ((boot-equal |opt| '|e|)
+ (|/D,1| |newopt| nil t nil))
+ ((boot-equal |opt| '|version|)
+ (|version|))
+ ((boot-equal |opt| '|pause|)
+ (spadlet |conStream|
+ (defiostream '((device . console) (qual . v)) 120 0))
+ (next |conStream|)
+ (shut |conStream|))
+ ((or
+ (boot-equal |opt| '|update|)
+ (boot-equal |opt| '|patch|))
+ (spadlet |$InteractiveMode| nil)
+ (spadlet |upf|
+ (cons
+ (or (kar |optargs|) /version)
+ (cons
+ (or (kadr |optargs|) /wsname)
+ (cons (or (kaddr |optargs|) '*) nil))))
+ (spadlet |fun|
+ (cond
+ ((boot-equal |opt| '|patch|) '/update-lib-1)
+ (t '/update-1)))
+ (catch 'filenam (funcall |fun| |upf|))
+ (|sayMessage| " Update/patch is completed."))
+ ((null |optargs|)
+ (|sayBrightly|
+ (cons
+ " An argument is required for"
+ (|bright| |opt|))))
+ (t
+ (|sayMessage|
+ (cons
+ " Unknown option:"
+ (append
+ (|bright| |opt|)
+ (cons '| | (cons '|%l| (cons " Available options are"
+ (|bright|
+ "c ct e ec ect cls pause update patch compare record")
+ )))))))))))))))))
+@
\chapter{The Spad Server Mechanism}
<<initvars>>=
(defvar $openServerIfTrue t "t means try starting an open server")
@@ -7611,6 +8164,7 @@ load the file \verb|exposed.lsp| to set up the exposure
group information.
<<initvars>>
<<defun addNewInterpreterFrame>>
+<<defun apropos>>
<<defun browse>>
@@ -7636,6 +8190,7 @@ load the file \verb|exposed.lsp| to set up the exposure
group information.
<<defun emptyInterpreterFrame>>
<<defun fetchOutput>>
+<<defun filterAndFormatConstructors>>
<<defun findFrameInRing>>
<<defun frame>>
<<defun frameEnvironment>>
@@ -7744,6 +8299,13 @@ load the file \verb|exposed.lsp| to set up the exposure
group information.
<<defun updateHist>>
<<defun updateInCoreHist>>
+<<defun what>>
+<<defun whatConstructors>>
+<<defun whatSpad2Cmd>>
+<<defun whatSpad2Cmd,fixpat>>
+<<defun with>>
+<<defun workfiles>>
+<<defun workfilesSpad2Cmd>>
<<defun writify>>
<<defun writify,writifyInner>>
<<defun writifyComplain>>
@@ -7753,6 +8315,9 @@ load the file \verb|exposed.lsp| to set up the exposure
group information.
<<defun yesanswer>>
+<<defun zsystemdevelopment>>
+<<defun zsystemdevelopment1>>
+<<defun zsystemDevelopmentSpad2Cmd>>
@
\chapter{The Global Variables}
\section{Star Global Variables}
diff --git a/changelog b/changelog
index 6d8ab58..eda3d93 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,11 @@
+20090304 tpd src/axiom-website/patches.html 20090304.01.tpd.patch
+20090304 tpd books/bookvol10.4 fix typo
+20090304 tpd books/bookvol5 add user level command roots
+20090304 tpd src/input/Makefile add unittest1
+20090304 tpd src/input/unittest1.input unit test axiom commands
+20090304 tpd src/interp/daase.lisp move commands to bookvol5
+20090304 tpd src/interp/i-syscmd.boot move commands to bookvol5
+20090303 tpd books/bookvol10.4 fix API failing regression test
20090302 tpd src/axiom-website/patches.html 20090302.03.tpd.patch
20090302 tpd src/algebra/Makefile add Nag help files
20090302 tpd books/bookvol10.4 add Nag documentation
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 8ac75a0..18722ce 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -985,5 +985,7 @@ bookvol5 add user command documentation<br/>
bookvol10.4 add API ApplicationProgramInterface<br/>
<a href="patches/20090302.03.tpd.patch">20090302.03.tpd.patch</a>
bookvol10.4 add Nag documentation<br/>
+<a href="patches/20090304.01.tpd.patch">20090304.01.tpd.patch</a>
+bookvol5 add user level command roots<br/>
</body>
</html>
diff --git a/src/input/Makefile.pamphlet b/src/input/Makefile.pamphlet
index f373c0f..57c7c6b 100644
--- a/src/input/Makefile.pamphlet
+++ b/src/input/Makefile.pamphlet
@@ -378,7 +378,8 @@ REGRES= algaggr.regress algbrbf.regress algfacob.regress
alist.regress \
tanhcoth.regress tanatan.regress tbagg.regress test.regress \
textfile.regress torus.regress \
triglim.regress tsetcatvermeer.regress tutchap1.regress \
- typetower.regress void.regress uniseg.regress
+ typetower.regress void.regress uniseg.regress \
+ unittest1.regress
IN= ${SRC}/input
MID= ${INT}/input
@@ -687,7 +688,7 @@ FILES= ${OUT}/algaggr.input ${OUT}/algbrbf.input
${OUT}/algfacob.input \
${OUT}/tutchap1.input ${OUT}/tutchap2.input ${OUT}/tutchap3.input \
${OUT}/tutchap4.input ${OUT}/tutchap67.input ${OUT}/typetower.input \
${OUT}/typo.input \
- ${OUT}/uniseg.input ${OUT}/up.input \
+ ${OUT}/uniseg.input ${OUT}/up.input ${OUT}/unittest1.input \
${OUT}/vector.input ${OUT}/vectors.input ${OUT}/viewdef.input \
${OUT}/void.input ${OUT}/wiggle.input \
${OUT}/wutset.input \
@@ -1044,7 +1045,8 @@ DOCFILES= \
${DOC}/tutchap3.input.dvi ${DOC}/tutchap4.input.dvi \
${DOC}/tutchap67.input.dvi ${DOC}/typetower.input.dvi \
${DOC}/typo.input.dvi \
- ${DOC}/uniseg.input.dvi ${DOC}/up.input.dvi \
+ ${DOC}/uniseg.input.dvi ${DOC}/unittest1.input.dvi \
+ ${DOC}/up.input.dvi \
${DOC}/vector.input.dvi ${DOC}/vectors.input.dvi \
${DOC}/viewdef.input.dvi ${DOC}/void.input.dvi \
${DOC}/wester.input.dvi ${DOC}/wiggle.input.dvi \
diff --git a/src/input/unittest1.input.pamphlet
b/src/input/unittest1.input.pamphlet
new file mode 100644
index 0000000..8a94acc
--- /dev/null
+++ b/src/input/unittest1.input.pamphlet
@@ -0,0 +1,769 @@
+\documentclass{article}
+\usepackage{axiom}
+\begin{document}
+\title{\$SPAD/src/input unittest1.input}
+\author{Timothy Daly}
+\maketitle
+\begin{abstract}
+Unit test the user level commands
+\end{abstract}
+\eject
+\tableofcontents
+\eject
+<<*>>=
+)set break resume
+)sys rm -f unittest1.output
+)spool unittest1.output
+)set mes auto off
+)clear all
+
+@
+The )with command is the same as the )library command and really
+should be a synonym.
+<<*>>=
+--S 1
+)with API
+--R )library cannot find the file API.
+--E 1
+
+@
+
+The )apropos command is the same as a )what command
+<<*>>=
+--S 2
+)apropos matrix
+--R
+--ROperations whose names satisfy the above pattern(s):
+--R
+--RbezoutMatrix createGenericMatrix
+--RcreateMultiplicationMatrix diagonalMatrix
+--ReigenMatrix firstUncouplingMatrix
+--RgetMultiplicationMatrix idealiserMatrix
+--RidentityMatrix identitySquareMatrix
+--RintegralDerivationMatrix integralMatrix
+--RintegralMatrixAtInfinity inverseIntegralMatrix
+--RinverseIntegralMatrixAtInfinity leftTraceMatrix
+--RlinearMatrix mapMatrixIfCan
+--Rmatrix matrixConcat3D
+--RmatrixDimensions matrixGcd
+--RrectangularMatrix rightTraceMatrix
+--RscalarMatrix setsubMatrix!
+--RsquareMatrix subMatrix
+--RsylvesterMatrix traceMatrix
+--RwronskianMatrix zeroMatrix
+--RzeroSquareMatrix
+--R
+--R To get more information about an operation such as identityMatrix
+--R , issue the command )display op identityMatrix
+--R------------------------------- Categories --------------------------------
+--R
+--RCategories with names matching patterns:
+--R matrix
+--R
+--R FMC FortranMatrixCategory
+--R FMFUN FortranMatrixFunctionCategory
+--R MATCAT MatrixCategory RMATCAT RectangularMatrixCategory
+--R SMATCAT SquareMatrixCategory
+--R--------------------------------- Domains ---------------------------------
+--R
+--RDomains with names matching patterns:
+--R matrix
+--R
+--R DHMATRIX DenavitHartenbergMatrix DPMM DirectProductMatrixModule
+--R IMATRIX IndexedMatrix LSQM LieSquareMatrix
+--R M3D ThreeDimensionalMatrix MATCAT- MatrixCategory&
+--R MATRIX Matrix RMATCAT- RectangularMatrixCategory&
+--R RMATRIX RectangularMatrix SMATCAT- SquareMatrixCategory&
+--R SQMATRIX SquareMatrix
+--R-------------------------------- Packages ---------------------------------
+--R
+--RPackages with names matching patterns:
+--R matrix
+--R
+--R BEZOUT BezoutMatrix CVMP CoerceVectorMatrixPackage
+--R IMATLIN InnerMatrixLinearAlgebraFunctions
+--R IMATQF InnerMatrixQuotientFieldFunctions
+--R LSMP LinearSystemMatrixPackage LSMP1 LinearSystemMatrixPackage1
+--R MATCAT2 MatrixCategoryFunctions2 MATLIN MatrixLinearAlgebraFunctions
+--R MATSTOR StorageEfficientMatrixOperations
+--R MCDEN MatrixCommonDenominator NAGF01 NagMatrixOperationsPackage
+--R RMCAT2 RectangularMatrixCategoryFunctions2
+--R TRIMAT TriangularMatrixOperations
+--R--------------- System Commands for User Level: development ---------------
+--R
+--RNo system commands at this level matching patterns:
+--R matrix
+--R
+--R------------------------- System Command Synonyms -------------------------
+--R
+--R No user-defined synonyms satisfying patterns:
+--R matrix
+--R
+--E 2
+
+--S 3
+)what categories set
+--R------------------------------- Categories --------------------------------
+--R
+--RCategories with names matching patterns:
+--R set
+--R
+--R CACHSET CachableSet FSAGG FiniteSetAggregate
+--R MSETAGG MultisetAggregate
+--R NTSCAT NormalizedTriangularSetCategory
+--R OMSAGG OrderedMultisetAggregate ORDSET OrderedSet
+--R PSETCAT PolynomialSetCategory RSETCAT RegularTriangularSetCategory
+--R SETAGG SetAggregate SETCAT SetCategory
+--R SFRTCAT SquareFreeRegularTriangularSetCategory
+--R SNTSCAT SquareFreeNormalizedTriangularSetCategory
+--R TSETCAT TriangularSetCategory
+--E 3
+
+--S 4
+)what commands set
+--R--------------- System Commands for User Level: development ---------------
+--R
+--RSystem commands at this level matching patterns:
+--R set
+--R
+--Rset
+--R
+--E 4
+
+--S 5
+)what domains set
+--R--------------------------------- Domains ---------------------------------
+--R
+--RDomains with names matching patterns:
+--R set
+--R
+--R FSAGG- FiniteSetAggregate& GPOLSET GeneralPolynomialSet
+--R GSTBL GeneralSparseTable GTSET GeneralTriangularSet
+--R MKCHSET MakeCachableSet MSET Multiset
+--R ORDSET- OrderedSet& OSI OrdSetInts
+--R PSETCAT- PolynomialSetCategory& QALGSET QuasiAlgebraicSet
+--R REGSET RegularTriangularSet
+--R RSETCAT- RegularTriangularSetCategory&
+--R RULESET Ruleset SAOS SingletonAsOrderedSet
+--R SET Set SETAGG- SetAggregate&
+--R SETCAT- SetCategory& SETMN SetOfMIntegersInOneToN
+--R SREGSET SquareFreeRegularTriangularSet
+--R STBL SparseTable TSETCAT- TriangularSetCategory&
+--R WUTSET WuWenTsunTriangularSet
+--E 5
+
+--S 6
+)what operations set
+--R
+--ROperations whose names satisfy the above pattern(s):
+--R
+--ROMsetEncoding
+--RbasicSet
+--RcharacteristicSet
+--RcrushedSet
+--Rfactorset
+--RfirstSubsetGray
+--RinternalSubPolSet?
+--RinternalZeroSetSplit
+--RinvertibleSet
+--RmedialSet
+--Rminset
+--Rmultiset
+--RnextSubsetGray
+--Roverset?
+--Rqsetelt!
+--RquasiAlgebraicSet
+--Rreset
+--RresetAttributeButtons
+--RresetBadValues
+--RresetNew
+--RresetVariableOrder
+--RrewriteSetByReducingWithParticularGenerators
+--RrewriteSetWithReduction
+--RroughBasicSet
+--Rruleset
+--Rset
+--RsetAdaptive
+--RsetAdaptive3D
+--RsetAttributeButtonStep
+--RsetButtonValue
+--RsetClipValue
+--RsetClosed
+--RsetColumn!
+--RsetCondition!
+--RsetDifference
+--RsetEmpty!
+--RsetEpilogue!
+--RsetErrorBound
+--RsetFieldInfo
+--RsetFormula!
+--RsetImagSteps
+--RsetIntersection
+--RsetLabelValue
+--RsetLegalFortranSourceExtensions
+--RsetMaxPoints
+--RsetMaxPoints3D
+--RsetMinPoints
+--RsetMinPoints3D
+--RsetOfMinN
+--RsetOrder
+--RsetPoly
+--RsetPosition
+--RsetPredicates
+--RsetPrologue!
+--RsetProperties
+--RsetProperty
+--RsetRealSteps
+--RsetRow!
+--RsetScreenResolution
+--RsetScreenResolution3D
+--RsetStatus
+--RsetStatus!
+--RsetTex!
+--RsetTopPredicate
+--RsetUnion
+--RsetValue!
+--RsetVariableOrder
+--Rsetchildren!
+--Rsetelt
+--Rsetelt!
+--Rsetfirst!
+--Rsetlast!
+--Rsetleaves!
+--Rsetleft!
+--Rsetnext!
+--Rsetprevious!
+--Rsetref
+--Rsetrest!
+--Rsetright!
+--RsetsubMatrix!
+--Rsetvalue!
+--RstartTableInvSet!
+--RstopTableInvSet!
+--RstoseInvertibleSet
+--RstoseInvertibleSetreg
+--RstoseInvertibleSetsqfreg
+--RsubPolSet?
+--RsubSet
+--RsubTriSet?
+--Rsubset?
+--RtoseInvertibleSet
+--RzeroSetSplit
+--RzeroSetSplitIntoTriangularSystems
+--R
+--R To get more information about an operation such as setMaxPoints ,
+--R issue the command )display op setMaxPoints
+--E 6
+
+--S 7
+)what packages set
+--R-------------------------------- Packages ---------------------------------
+--R
+--RPackages with names matching patterns:
+--R set
+--R
+--R FSAGG2 FiniteSetAggregateFunctions2 LAZM3PK LazardSetSolvingPackage
+--R PSETPK PolynomialSetUtilitiesPackage
+--R QALGSET2 QuasiAlgebraicSet2
+--R RSDCMPK RegularSetDecompositionPackage
+--R RSETGCD RegularTriangularSetGcdPackage
+--R SFRGCD SquareFreeRegularTriangularSetGcdPackage
+--R SRDCMPK SquareFreeRegularSetDecompositionPackage
+--E 7
+
+--S 8
+)what synonym set
+--R------------------------- System Command Synonyms -------------------------
+--R
+--R No user-defined synonyms satisfying patterns:
+--R set
+--R
+--E 8
+
+--S 9
+)what things set
+--R
+--ROperations whose names satisfy the above pattern(s):
+--R
+--ROMsetEncoding
+--RbasicSet
+--RcharacteristicSet
+--RcrushedSet
+--Rfactorset
+--RfirstSubsetGray
+--RinternalSubPolSet?
+--RinternalZeroSetSplit
+--RinvertibleSet
+--RmedialSet
+--Rminset
+--Rmultiset
+--RnextSubsetGray
+--Roverset?
+--Rqsetelt!
+--RquasiAlgebraicSet
+--Rreset
+--RresetAttributeButtons
+--RresetBadValues
+--RresetNew
+--RresetVariableOrder
+--RrewriteSetByReducingWithParticularGenerators
+--RrewriteSetWithReduction
+--RroughBasicSet
+--Rruleset
+--Rset
+--RsetAdaptive
+--RsetAdaptive3D
+--RsetAttributeButtonStep
+--RsetButtonValue
+--RsetClipValue
+--RsetClosed
+--RsetColumn!
+--RsetCondition!
+--RsetDifference
+--RsetEmpty!
+--RsetEpilogue!
+--RsetErrorBound
+--RsetFieldInfo
+--RsetFormula!
+--RsetImagSteps
+--RsetIntersection
+--RsetLabelValue
+--RsetLegalFortranSourceExtensions
+--RsetMaxPoints
+--RsetMaxPoints3D
+--RsetMinPoints
+--RsetMinPoints3D
+--RsetOfMinN
+--RsetOrder
+--RsetPoly
+--RsetPosition
+--RsetPredicates
+--RsetPrologue!
+--RsetProperties
+--RsetProperty
+--RsetRealSteps
+--RsetRow!
+--RsetScreenResolution
+--RsetScreenResolution3D
+--RsetStatus
+--RsetStatus!
+--RsetTex!
+--RsetTopPredicate
+--RsetUnion
+--RsetValue!
+--RsetVariableOrder
+--Rsetchildren!
+--Rsetelt
+--Rsetelt!
+--Rsetfirst!
+--Rsetlast!
+--Rsetleaves!
+--Rsetleft!
+--Rsetnext!
+--Rsetprevious!
+--Rsetref
+--Rsetrest!
+--Rsetright!
+--RsetsubMatrix!
+--Rsetvalue!
+--RstartTableInvSet!
+--RstopTableInvSet!
+--RstoseInvertibleSet
+--RstoseInvertibleSetreg
+--RstoseInvertibleSetsqfreg
+--RsubPolSet?
+--RsubSet
+--RsubTriSet?
+--Rsubset?
+--RtoseInvertibleSet
+--RzeroSetSplit
+--RzeroSetSplitIntoTriangularSystems
+--R
+--R To get more information about an operation such as setMaxPoints ,
+--R issue the command )display op setMaxPoints
+--R------------------------------- Categories --------------------------------
+--R
+--RCategories with names matching patterns:
+--R set
+--R
+--R CACHSET CachableSet FSAGG FiniteSetAggregate
+--R MSETAGG MultisetAggregate
+--R NTSCAT NormalizedTriangularSetCategory
+--R OMSAGG OrderedMultisetAggregate ORDSET OrderedSet
+--R PSETCAT PolynomialSetCategory RSETCAT RegularTriangularSetCategory
+--R SETAGG SetAggregate SETCAT SetCategory
+--R SFRTCAT SquareFreeRegularTriangularSetCategory
+--R SNTSCAT SquareFreeNormalizedTriangularSetCategory
+--R TSETCAT TriangularSetCategory
+--R--------------------------------- Domains ---------------------------------
+--R
+--RDomains with names matching patterns:
+--R set
+--R
+--R FSAGG- FiniteSetAggregate& GPOLSET GeneralPolynomialSet
+--R GSTBL GeneralSparseTable GTSET GeneralTriangularSet
+--R MKCHSET MakeCachableSet MSET Multiset
+--R ORDSET- OrderedSet& OSI OrdSetInts
+--R PSETCAT- PolynomialSetCategory& QALGSET QuasiAlgebraicSet
+--R REGSET RegularTriangularSet
+--R RSETCAT- RegularTriangularSetCategory&
+--R RULESET Ruleset SAOS SingletonAsOrderedSet
+--R SET Set SETAGG- SetAggregate&
+--R SETCAT- SetCategory& SETMN SetOfMIntegersInOneToN
+--R SREGSET SquareFreeRegularTriangularSet
+--R STBL SparseTable TSETCAT- TriangularSetCategory&
+--R WUTSET WuWenTsunTriangularSet
+--R-------------------------------- Packages ---------------------------------
+--R
+--RPackages with names matching patterns:
+--R set
+--R
+--R FSAGG2 FiniteSetAggregateFunctions2 LAZM3PK LazardSetSolvingPackage
+--R PSETPK PolynomialSetUtilitiesPackage
+--R QALGSET2 QuasiAlgebraicSet2
+--R RSDCMPK RegularSetDecompositionPackage
+--R RSETGCD RegularTriangularSetGcdPackage
+--R SFRGCD SquareFreeRegularTriangularSetGcdPackage
+--R SRDCMPK SquareFreeRegularSetDecompositionPackage
+--R--------------- System Commands for User Level: development ---------------
+--R
+--RSystem commands at this level matching patterns:
+--R set
+--R
+--Rset
+--R
+--R------------------------- System Command Synonyms -------------------------
+--R
+--R No user-defined synonyms satisfying patterns:
+--R set
+--R
+--E 9
+
+--S 10
+)apropos set
+--R
+--ROperations whose names satisfy the above pattern(s):
+--R
+--ROMsetEncoding
+--RbasicSet
+--RcharacteristicSet
+--RcrushedSet
+--Rfactorset
+--RfirstSubsetGray
+--RinternalSubPolSet?
+--RinternalZeroSetSplit
+--RinvertibleSet
+--RmedialSet
+--Rminset
+--Rmultiset
+--RnextSubsetGray
+--Roverset?
+--Rqsetelt!
+--RquasiAlgebraicSet
+--Rreset
+--RresetAttributeButtons
+--RresetBadValues
+--RresetNew
+--RresetVariableOrder
+--RrewriteSetByReducingWithParticularGenerators
+--RrewriteSetWithReduction
+--RroughBasicSet
+--Rruleset
+--Rset
+--RsetAdaptive
+--RsetAdaptive3D
+--RsetAttributeButtonStep
+--RsetButtonValue
+--RsetClipValue
+--RsetClosed
+--RsetColumn!
+--RsetCondition!
+--RsetDifference
+--RsetEmpty!
+--RsetEpilogue!
+--RsetErrorBound
+--RsetFieldInfo
+--RsetFormula!
+--RsetImagSteps
+--RsetIntersection
+--RsetLabelValue
+--RsetLegalFortranSourceExtensions
+--RsetMaxPoints
+--RsetMaxPoints3D
+--RsetMinPoints
+--RsetMinPoints3D
+--RsetOfMinN
+--RsetOrder
+--RsetPoly
+--RsetPosition
+--RsetPredicates
+--RsetPrologue!
+--RsetProperties
+--RsetProperty
+--RsetRealSteps
+--RsetRow!
+--RsetScreenResolution
+--RsetScreenResolution3D
+--RsetStatus
+--RsetStatus!
+--RsetTex!
+--RsetTopPredicate
+--RsetUnion
+--RsetValue!
+--RsetVariableOrder
+--Rsetchildren!
+--Rsetelt
+--Rsetelt!
+--Rsetfirst!
+--Rsetlast!
+--Rsetleaves!
+--Rsetleft!
+--Rsetnext!
+--Rsetprevious!
+--Rsetref
+--Rsetrest!
+--Rsetright!
+--RsetsubMatrix!
+--Rsetvalue!
+--RstartTableInvSet!
+--RstopTableInvSet!
+--RstoseInvertibleSet
+--RstoseInvertibleSetreg
+--RstoseInvertibleSetsqfreg
+--RsubPolSet?
+--RsubSet
+--RsubTriSet?
+--Rsubset?
+--RtoseInvertibleSet
+--RzeroSetSplit
+--RzeroSetSplitIntoTriangularSystems
+--R
+--R To get more information about an operation such as setMaxPoints ,
+--R issue the command )display op setMaxPoints
+--R------------------------------- Categories --------------------------------
+--R
+--RCategories with names matching patterns:
+--R set
+--R
+--R CACHSET CachableSet FSAGG FiniteSetAggregate
+--R MSETAGG MultisetAggregate
+--R NTSCAT NormalizedTriangularSetCategory
+--R OMSAGG OrderedMultisetAggregate ORDSET OrderedSet
+--R PSETCAT PolynomialSetCategory RSETCAT RegularTriangularSetCategory
+--R SETAGG SetAggregate SETCAT SetCategory
+--R SFRTCAT SquareFreeRegularTriangularSetCategory
+--R SNTSCAT SquareFreeNormalizedTriangularSetCategory
+--R TSETCAT TriangularSetCategory
+--R--------------------------------- Domains ---------------------------------
+--R
+--RDomains with names matching patterns:
+--R set
+--R
+--R FSAGG- FiniteSetAggregate& GPOLSET GeneralPolynomialSet
+--R GSTBL GeneralSparseTable GTSET GeneralTriangularSet
+--R MKCHSET MakeCachableSet MSET Multiset
+--R ORDSET- OrderedSet& OSI OrdSetInts
+--R PSETCAT- PolynomialSetCategory& QALGSET QuasiAlgebraicSet
+--R REGSET RegularTriangularSet
+--R RSETCAT- RegularTriangularSetCategory&
+--R RULESET Ruleset SAOS SingletonAsOrderedSet
+--R SET Set SETAGG- SetAggregate&
+--R SETCAT- SetCategory& SETMN SetOfMIntegersInOneToN
+--R SREGSET SquareFreeRegularTriangularSet
+--R STBL SparseTable TSETCAT- TriangularSetCategory&
+--R WUTSET WuWenTsunTriangularSet
+--R-------------------------------- Packages ---------------------------------
+--R
+--RPackages with names matching patterns:
+--R set
+--R
+--R FSAGG2 FiniteSetAggregateFunctions2 LAZM3PK LazardSetSolvingPackage
+--R PSETPK PolynomialSetUtilitiesPackage
+--R QALGSET2 QuasiAlgebraicSet2
+--R RSDCMPK RegularSetDecompositionPackage
+--R RSETGCD RegularTriangularSetGcdPackage
+--R SFRGCD SquareFreeRegularTriangularSetGcdPackage
+--R SRDCMPK SquareFreeRegularSetDecompositionPackage
+--R--------------- System Commands for User Level: development ---------------
+--R
+--RSystem commands at this level matching patterns:
+--R set
+--R
+--Rset
+--R
+--R------------------------- System Command Synonyms -------------------------
+--R
+--R No user-defined synonyms satisfying patterns:
+--R set
+--R
+--E 10
+
+--S 11
+)prompt
+--R---------------------------- The prompt Option ----------------------------
+--R
+--R Description: set type of input prompt to display
+--R
+--R The prompt option may be followed by any one of the following:
+--R
+--R none
+--R frame
+--R plain
+--R -> step
+--R verbose
+--R
+--R The current setting is indicated within the list.
+--R
+--E 11
+
+--S 12
+)version
+--R
+--IValue = "Saturday February 21, 2009 at 17:59:27 "
+--E 12
+
+--S 13
+)zsys )from )c
+--R
+--R
+--R >> System error:
+--I Cannot open the file /research/test/mnt/fedora10/../../src/interp/TAGS.
+--R
+--R Continuing to read the file...
+--R
+--E 13
+
+--S 14
+)zsys )from )d
+--R
+--R
+--R >> System error:
+--I Cannot open the file /research/test/mnt/fedora10/../../src/interp/TAGS.
+--R
+--R Continuing to read the file...
+--R
+--E 14
+
+--S 15
+)zsys )from )dt
+--R
+--R
+--R >> System error:
+--I Cannot open the file /research/test/mnt/fedora10/../../src/interp/TAGS.
+--R
+--R Continuing to read the file...
+--R
+--E 15
+
+--S 16
+)zsys )from )ct
+--R
+--R
+--R >> System error:
+--I Cannot open the file /research/test/mnt/fedora10/../../src/interp/TAGS.
+--R
+--R Continuing to read the file...
+--R
+--E 16
+
+--S 17
+)zsys )from )ctl
+--R
+--R
+--R >> System error:
+--I Cannot open the file /research/test/mnt/fedora10/../../src/interp/TAGS.
+--R
+--R Continuing to read the file...
+--R
+--E 17
+
+--S 18
+)zsys )from )ec
+--R
+--R
+--R >> System error:
+--I Cannot open the file /research/test/mnt/fedora10/../../src/interp/TAGS.
+--R
+--R Continuing to read the file...
+--R
+--E 18
+
+--S 19
+)zsys )from )ect
+--R
+--R
+--R >> System error:
+--I Cannot open the file /research/test/mnt/fedora10/../../src/interp/TAGS.
+--R
+--R Continuing to read the file...
+--R
+--E 19
+
+--S 20
+)zsys )from )e
+--R
+--R
+--R >> System error:
+--I Cannot open the file /research/test/mnt/fedora10/../../src/interp/TAGS.
+--R
+--R Continuing to read the file...
+--R
+--E 20
+
+--S 21
+)zsys )from )version
+--R
+--E 21
+
+--S 22
+)zsys )from )update
+--R
+--R
+--R >> System error:
+--R /UPDATE-1 [or a callee] requires more than one argument.
+--R
+--R Continuing to read the file...
+--R
+--E 22
+
+--S 23
+)zsys )from )patch
+--R
+--R
+--R >> System error:
+--R The function /UPDATE-LIB-1 is undefined.
+--R
+--R Continuing to read the file...
+--R
+--E 23
+
+--S 24
+)zsys )from )there 1
+--R
+--R
+--R Unknown option: there
+--R Available options are c ct e ec ect cls pause update patch compare
record
+--R
+--E 24
+
+--S 25
+)zsys )from )compare
+--R
+--R An argument is required for compare
+--E 25
+
+--S 26
+)zsys )from )record
+--R
+--R An argument is required for record
+--E 26
+
+)spool
+)lisp (bye)
+
+@
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} nothing
+\end{thebibliography}
+\end{document}
diff --git a/src/interp/daase.lisp.pamphlet b/src/interp/daase.lisp.pamphlet
index ccf699b..c9498a3 100644
--- a/src/interp/daase.lisp.pamphlet
+++ b/src/interp/daase.lisp.pamphlet
@@ -806,11 +806,6 @@ database.
(setq data (concatenate 'string $spadroot "/algebra/" data ".o")))))))
data))
-; )library top level command -- soon to be obsolete
-
-(defun |with| (args)
- (|library| args))
-
; )library top level command
(defun |library| (args)
diff --git a/src/interp/i-syscmd.boot.pamphlet
b/src/interp/i-syscmd.boot.pamphlet
index b9a20d3..997c527 100644
--- a/src/interp/i-syscmd.boot.pamphlet
+++ b/src/interp/i-syscmd.boot.pamphlet
@@ -1440,69 +1440,6 @@ processSynonymLine line ==
line.j ^= " " => return (SUBSTRING (line, j, nil)))
[key, :value]
---% )what
-
-
-what l == whatSpad2Cmd l
-
-whatSpad2Cmd l ==
- $e:local := $EmptyEnvironment
- null l => reportWhatOptions()
- [key0,:args] := l
- key := selectOptionLC(key0,$whatOptions,nil)
- null key => sayKeyedMsg("S2IZ0043",NIL)
- args := [fixpat p for p in args] where
- fixpat x ==
- x is [x',:.] => DOWNCASE x'
- DOWNCASE x
- key = 'things =>
- for opt in $whatOptions repeat
- not MEMQ(opt,'(things)) => whatSpad2Cmd [opt,:args]
- key = 'categories =>
- filterAndFormatConstructors('category,'"Categories",args)
- key = 'commands =>
- whatCommands(args)
- key = 'domains =>
- filterAndFormatConstructors('domain,'"Domains",args)
- key = 'operations =>
- apropos args
- key = 'packages =>
- filterAndFormatConstructors('package,'"Packages",args)
- key = 'synonyms =>
- printSynonyms(args)
-
-filterAndFormatConstructors(constrType,label,patterns) ==
- centerAndHighlight(label,$LINELENGTH,specialChar 'hbar)
- l := filterListOfStringsWithFn(patterns,whatConstructors constrType,
- function CDR)
- if patterns then
- null l =>
- sayMessage ['" No ",label,'" with names matching patterns:",
- '%l,'" ",'%b,:blankList patterns,'%d]
- sayMessage [label,'" with names matching patterns:",
- '%l,'" ",'%b,:blankList patterns,'%d]
- l => pp2Cols l
-
-whatConstructors constrType ==
- -- here constrType should be one of 'category, 'domain, 'package
- MSORT [CONS(GETDATABASE(con,'ABBREVIATION), STRING(con))
- for con in allConstructors()
- | GETDATABASE(con,'CONSTRUCTORKIND) = constrType]
-
-apropos l ==
- -- l is a list of operation name fragments
- -- this displays all operation names containing these fragments
- ops :=
- null l => allOperations()
- filterListOfStrings([(DOWNCASE STRINGIMAGE p) for p in l],allOperations())
- ops =>
- sayMessage '"Operations whose names satisfy the above pattern(s):"
- sayAsManyPerLineAsPossible MSORT ops
- sayKeyedMsg("S2IF0011",[first ops])
- sayMessage '" There are no operations containing those patterns"
- NIL
-
-
printSynonyms(patterns) ==
centerAndHighlight("System Command Synonyms",$LINELENGTH,specialChar 'hbar)
ls := filterListOfStringsWithFn(patterns, [[STRINGIMAGE a,:b]
@@ -1590,76 +1527,6 @@ satisfiesRegularExpressions(name,patterns) ==
--% )with ... defined in daase.lisp (boot won't parse it)
---% )workfiles
-
-workfiles l == workfilesSpad2Cmd l
-
-workfilesSpad2Cmd args ==
- args => throwKeyedMsg("S2IZ0047",NIL)
- deleteFlag := nil
- for [type,:.] in $options repeat
- type1 := selectOptionLC(type,'(boot lisp meta delete),nil)
- null type1 => throwKeyedMsg("S2IZ0048",[type])
- type1 = 'delete => deleteFlag := true
- for [type,:flist] in $options repeat
- type1 := selectOptionLC(type,'(boot lisp meta delete),nil)
- type1 = 'delete => nil
- for file in flist repeat
- fl := pathname [file,type1,'"*"]
- deleteFlag => SETQ($sourceFiles,DELETE(fl,$sourceFiles))
- null (MAKE_-INPUT_-FILENAME fl) => sayKeyedMsg("S2IZ0035",[namestring
fl])
- updateSourceFiles fl
- SAY " "
- centerAndHighlight(" User-specified work files ",$LINELENGTH,specialChar
'hbar)
- SAY " "
- null $sourceFiles => SAY '" no files specified"
- SETQ($sourceFiles,SORTBY('pathnameType,$sourceFiles))
- for fl in $sourceFiles repeat sayBrightly [" " ,namestring fl]
-
---% )zsystemdevelopment
-
-zsystemdevelopment l == zsystemDevelopmentSpad2Cmd l
-
-zsystemDevelopmentSpad2Cmd l == zsystemdevelopment1 (l,$InteractiveMode)
-
-zsystemdevelopment1(l,im) ==
- $InteractiveMode : local := im
- fromopt := nil
- -- cycle through once to see if )from is mentioned
- for [opt,:optargs] in $options repeat
- opt1 := selectOptionLC(opt,'(from),nil)
- opt1 = 'from => fromopt := [['FROM,:optargs]]
- for [opt,:optargs] in $options repeat
- if null optargs then optargs := l
- newopt := APPEND(optargs,fromopt)
- opt1 := selectOptionLC(opt,'(from),nil)
- opt1 = 'from => nil
- opt = "c" => _/D_,1 (newopt ,_/COMP(),NIL,NIL)
- opt = "d" => _/D_,1 (newopt ,'DEFINE,NIL,NIL)
- opt = "dt" => _/D_,1 (newopt ,'DEFINE,NIL,true)
- opt = "ct" => _/D_,1 (newopt ,_/COMP(),NIL,true)
- opt = "ctl" => _/D_,1 (newopt ,_/COMP(),NIL,'TRACELET)
- opt = "ec" => _/D_,1 (newopt ,_/COMP(),true,NIL)
- opt = "ect" => _/D_,1 (newopt ,_/COMP(),true,true)
- opt = "e" => _/D_,1 (newopt ,NIL,true,NIL)
- opt = "version" => version()
- opt = "pause" =>
- conStream := DEFIOSTREAM ('((DEVICE . CONSOLE) (QUAL . V)),120,0)
- NEXT conStream
- SHUT conStream
- opt = "update" or opt = "patch" =>
- $InteractiveMode := nil
- upf := [KAR optargs or _/VERSION, KADR optargs or _/WSNAME,
- KADDR optargs or '_*]
- fun := (opt = "patch" => '_/UPDATE_-LIB_-1; '_/UPDATE_-1)
- CATCH('FILENAM, FUNCALL(fun, upf))
- sayMessage '" Update/patch is completed."
- null optargs =>
- sayBrightly ['" An argument is required for",:bright opt]
- sayMessage ['" Unknown option:",:bright opt," ",'%l,
- '" Available options are", _
- :bright '"c ct e ec ect cls pause update patch compare record"]
-
--% Synonym File Reader
--------------------> NEW DEFINITION (override in util.lisp.pamphlet)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Axiom-developer] 20090304.01.tpd.patch (bookvol5 add user level command roots),
daly <=