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| (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| (|x|) + (prog (|x'|) + (return + (seq + (if (and (pairp |x|) (progn (spadlet |x'| (qcar |x|)) t)) + (exit (downcase |x'|))) + (exit (downcase |x|)))))) + +@ +<>= +(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| (|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| (|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| (|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| (args) + (|library| args)) + +@ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \cmdhead{workfiles} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{verbatim} +workfiles l == workfilesSpad2Cmd l +\end{verbatim} +<>= +(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| (|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| (|l|) + (|zsystemDevelopmentSpad2Cmd| |l|)) + +@ +\begin{verbatim} +zsystemDevelopmentSpad2Cmd l == zsystemdevelopment1 (l,$InteractiveMode) +\end{verbatim} +<>= +(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| (|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} <>= (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. <> <> +<> <> @@ -7636,6 +8190,7 @@ load the file \verb|exposed.lsp| to set up the exposure group information. <> <> +<> <> <> <> @@ -7744,6 +8299,13 @@ load the file \verb|exposed.lsp| to set up the exposure group information. <> <> +<> +<> +<> +<> +<> +<> +<> <> <> <> @@ -7753,6 +8315,9 @@ load the file \verb|exposed.lsp| to set up the exposure group information. <> +<> +<> +<> @ \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
bookvol10.4 add API ApplicationProgramInterface
20090302.03.tpd.patch bookvol10.4 add Nag documentation
+20090304.01.tpd.patch +bookvol5 add user level command roots
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)