axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] 20070822.02.tpd.patch applied to silver


From: daly
Subject: [Axiom-developer] 20070822.02.tpd.patch applied to silver
Date: Mon, 27 Aug 2007 02:44:20 -0500

diff --git a/changelog b/changelog
index 4d1e56e..e981cf7 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,6 @@
+20070822 tpd src/doc/spadhelp add language help
+20070822 tpd src/doc/Makefile add spadhelp
+20070822 tpd src/doc/spadhelp created
 20070822 tpd src/lib/openpty.c document the openpty.c functions
 20070821 tpd src/sman/bookvol6 document the axiom shell script
 20070821 tpd src/sman/bookvol6 add axiom command
diff --git a/src/doc/Makefile.pamphlet b/src/doc/Makefile.pamphlet
index 1120c5f..c5af55b 100644
--- a/src/doc/Makefile.pamphlet
+++ b/src/doc/Makefile.pamphlet
@@ -129,6 +129,26 @@ ${INT}/booklet.c: ${IN}/booklet.c.pamphlet
          ${TANGLE} ${IN}/booklet.c.pamphlet >booklet.c )
          
 @
+\section{The )help files}
+<<helpspad>>=
+HELPSPAD=abbreviation boot cd clear close compile display edit fin frame \
+         help history \
+         language library lisp load ltrace \
+         nclef pquit quit read \
+         savesystem set show spool synonym system trace undo what
+
+@
+<<helpspad.files>>=
+${DVI}/spadhelp/helpspad.files: ${IN}/spadhelp.pamphlet
+       @echo 9 making ${DVI}/spadhelp from ${IN}/spadhelp.pamphlet
+       @mkdir ${DVI}/spadhelp
+       @(cd ${DVI}/spadhelp ; \
+          for i in ${HELPSPAD} ; do \
+            ${TANGLE} -R"$$i" ${IN}/spadhelp.pamphlet >$$i.help ; \
+          done ; \
+          ls *.help >helpspad.files )
+
+@
 \section{The Makefile}
 We need to document the commands.
 <<*>>=
@@ -141,10 +161,12 @@ DOC=${INT}/doc
 
 FILES= ${MID}/axiom.bib ${STY}/axiom.sty ${DVI}/bookvol4.dvi \
        ${DVI}/book.dvi ${DVI}/bookvol1.dvi ${DVI}/endpaper.dvi \
-       ${DVI}/rosetta.dvi
+       ${DVI}/rosetta.dvi ${DVI}/spadhelp/helpspad.files
 
 CMDS=${OUT}/booklet
 
+<<helpspad>>
+
 all: ${FILES} ${CMDS}
        @echo 9 finished ${IN}
 
@@ -156,6 +178,8 @@ all: ${FILES} ${CMDS}
 <<bookvol1>>
 <<Endpapers>>
 <<rosetta>>
+<<helpspad.files>>
+
 
 document:
        @echo 10 documenting ${SRC}/doc
diff --git a/src/doc/spadhelp.pamphlet b/src/doc/spadhelp.pamphlet
new file mode 100644
index 0000000..77f0027
--- /dev/null
+++ b/src/doc/spadhelp.pamphlet
@@ -0,0 +1,2007 @@
+\documentclass{article}
+\usepackage{axiom}
+\begin{document}
+\title{\$SPAD/src/doc spadhelp}
+\author{Timothy Daly}
+\maketitle
+\begin{abstract}
+This is a collection of the help commands available to the Axiom
+command line )help command.
+\end{abstract}
+\eject
+\tableofcontents
+\eject
+\section{abbreviation}
+<<abbreviation>>=
+====================================================================
+A.2.  )abbreviation
+====================================================================
+ 
+User Level Required:  compiler
+ 
+Command Syntax: 
+ 
+  -  )abbreviation query  [nameOrAbbrev]
+  -  )abbreviation category  abbrev  fullname [)quiet]
+  -  )abbreviation domain  abbrev  fullname   [)quiet]
+  -  )abbreviation package  abbrev  fullname  [)quiet]
+  -  )abbreviation remove  nameOrAbbrev
+ 
+Command Description: 
+ 
+This command is used to query, set and remove abbreviations for category,
+domain and package constructors. Every constructor must have a unique
+abbreviation. This abbreviation is part of the name of the subdirectory under
+which the components of the compiled constructor are stored. Furthermore, by
+issuing this command you let the system know what file to load automatically
+if you use a new constructor. Abbreviations must start with a letter and then
+be followed by up to seven letters or digits. Any letters appearing in the
+abbreviation must be in uppercase.
+ 
+When used with the query argument, this command may be used to list the name
+associated with a particular abbreviation or the abbreviation for a
+constructor. If no abbreviation or name is given, the names and corresponding
+abbreviations for all constructors are listed.
+ 
+The following shows the abbreviation for the constructor List:
+ 
+)abbreviation query List
+ 
+The following shows the constructor name corresponding to the abbreviation
+NNI:
+ 
+)abbreviation query NNI
+ 
+The following lists all constructor names and their abbreviations.
+ 
+)abbreviation query
+ 
+To add an abbreviation for a constructor, use this command with category,
+domain or package. The following add abbreviations to the system for a
+category, domain and package, respectively:
+ 
+)abbreviation domain   SET Set
+)abbreviation category COMPCAT  ComplexCategory
+)abbreviation package  LIST2MAP ListToMap
+ 
+If the )quiet option is used, no output is displayed from this command. You
+would normally only define an abbreviation in a library source file. If this
+command is issued for a constructor that has already been loaded, the
+constructor will be reloaded next time it is referenced. In particular, you
+can use this command to force the automatic reloading of constructors.
+ 
+To remove an abbreviation, the remove argument is used. This is usually only
+used to correct a previous command that set an abbreviation for a constructor
+name. If, in fact, the abbreviation does exist, you are prompted for
+confirmation of the removal request. Either of the following commands will
+remove the abbreviation VECTOR2 and the constructor name VectorFunctions2
+from the system:
+ 
+)abbreviation remove VECTOR2
+)abbreviation remove VectorFunctions2
+ 
+Also See: 
+o )compile
+ 
+@
+
+\section{boot}
+<<boot>>=
+====================================================================
+A.3.  )boot
+====================================================================
+ 
+User Level Required:  development
+ 
+Command Syntax: 
+ 
+  -  )boot bootExpression
+ 
+Command Description: 
+ 
+This command is used by AXIOM system developers to execute expressions
+written in the BOOT language. For example,
+ 
+)boot times3(x) == 3*x
+ 
+creates and compiles the Lisp function ``times3'' obtained by translating the
+BOOT code.
+ 
+Also See: 
+o )fin
+o )lisp
+o )set
+o )system
+ 
+@
+
+\section{cd}
+<<cd>>=
+====================================================================
+A.4.  )cd
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  -  )cd directory
+ 
+Command Description: 
+ 
+This command sets the AXIOM working current directory. The current directory
+is used for looking for input files (for )read), AXIOM library source files
+(for )compile), saved history environment files (for )history )restore),
+compiled AXIOM library files (for )library), and files to edit (for )edit).
+It is also used for writing spool files (via )spool), writing history input
+files (via )history )write) and history environment files (via )history
+)save),and compiled AXIOM library files (via )compile).
+ 
+If issued with no argument, this command sets the AXIOM current directory to
+your home directory. If an argument is used, it must be a valid directory
+name. Except for the ``)'' at the beginning of the command, this has the same
+syntax as the operating system cd command.
+ 
+Also See: 
+o )compile
+o )edit
+o )history
+o )library
+o )read
+o )spool
+ 
+@
+
+\section{clear}
+<<clear>>=
+====================================================================
+A.6.  )clear
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  - )clear all
+  - )clear completely
+  - )clear properties all
+  - )clear properties  obj1 [obj2 ...]
+  - )clear value      all
+  - )clear value     obj1 [obj2 ...]
+  - )clear mode       all
+  - )clear mode      obj1 [obj2 ...]
+ 
+Command Description: 
+ 
+This command is used to remove function and variable declarations,
+definitions and values from the workspace. To empty the entire workspace and
+reset the step counter to 1, issue
+ 
+)clear all
+ 
+To remove everything in the workspace but not reset the step counter, issue
+ 
+)clear properties all
+ 
+To remove everything about the object x, issue
+ 
+)clear properties x
+ 
+To remove everything about the objects x, y and f, issue
+ 
+)clear properties x y f
+ 
+The word properties may be abbreviated to the single letter ``p''.
+ 
+)clear p all
+)clear p x
+)clear p x y f
+ 
+All definitions of functions and values of variables may be removed by either
+ 
+)clear value all
+)clear v all
+ 
+This retains whatever declarations the objects had. To remove definitions and
+values for the specific objects x, y and f, issue
+ 
+)clear value x y f
+)clear v x y f
+ 
+To remove the declarations of everything while leaving the definitions and
+values, issue
+ 
+)clear mode  all
+)clear m all
+ 
+To remove declarations for the specific objects x, y and f, issue
+ 
+)clear mode x y f
+)clear m x y f
+ 
+The )display names and )display properties commands may be used to see what
+is currently in the workspace.
+ 
+The command
+ 
+)clear completely
+ 
+does everything that )clear all does, and also clears the internal system
+function and constructor caches.
+ 
+Also See: 
+o )display
+o )history
+o )undo
+ 
+@
+
+\section{close}
+<<close>>=
+====================================================================
+A.5.  )close
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  - )close
+  - )close )quietly
+ 
+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
+ 
+)close
+ 
+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
+ 
+   This is the last AXIOM session. Do you want to kill AXIOM?
+ 
+Type "y" (followed by the Return key) if this is what you had in mind. Type
+"n" (followed by the Return key) to cancel the command.
+ 
+You can use the )quietly option to force AXIOM to close down the interpreter
+client process without closing down the entire AXIOM session.
+ 
+Also See: 
+o )quit
+o )pquit
+ 
+@
+
+\section{compile}
+<<compile>>=
+====================================================================
+A.7.  )compile
+====================================================================
+ 
+User Level Required:  compiler
+ 
+Command Syntax: 
+ 
+  -  )compile
+  -  )compile fileName
+  -  )compile fileName.as
+  -  )compile directory/fileName.as
+  -  )compile fileName.ao
+  -  )compile directory/fileName.ao
+  -  )compile fileName.al
+  -  )compile directory/fileName.al
+  -  )compile fileName.lsp
+  -  )compile directory/fileName.lsp
+  -  )compile fileName.spad
+  -  )compile directory/fileName.spad
+  -  )compile fileName )new
+  -  )compile fileName )old
+  -  )compile fileName )translate
+  -  )compile fileName )quiet
+  -  )compile fileName )noquiet
+  -  )compile fileName )moreargs
+  -  )compile fileName )onlyargs
+  -  )compile fileName )break
+  -  )compile fileName )nobreak
+  -  )compile fileName )library
+  -  )compile fileName )nolibrary
+  -  )compile fileName )vartrace
+  -  )compile fileName )constructor nameOrAbbrev
+ 
+Command Description: 
+ 
+You use this command to invoke the new AXIOM library compiler or the old
+AXIOM system compiler. The )compile system command is actually a combination
+of AXIOM processing and a call to the AXIOM-XL compiler. It is performing
+double-duty, acting as a front-end to both the AXIOM-XL compiler and the old
+AXIOM system compiler. (The old AXIOM system compiler was written in Lisp and
+was an integral part of the AXIOM environment. The AXIOM-XL compiler is
+written in C and executed by the operating system when called from within
+AXIOM.)
+ 
+The command compiles files with file extensions .as, .ao and .al with the
+AXIOM-XL compiler and files with file extension .spad with the old AXIOM
+system compiler. It also can compile files with file extension .lsp. These
+are assumed to be Lisp files genererated by the AXIOM-XL compiler. If you
+omit the file extension, the command looks to see if you have specified the
+)new or )old option. If you have given one of these options, the
+corresponding compiler is used. Otherwise, the command first looks in the
+standard system directories for files with extension .as, .ao and .al and
+then files with extension .spad. The first file found has the appropriate
+compiler invoked on it. If the command cannot find a matching file, an error
+message is displayed and the command terminates.
+ 
+The )translate option is used to invoke a special version of the old system
+compiler that will translate a .spad file to a .as file. That is, the .spad
+file will be parsed and analyzed and a file using the new syntax will be
+created. By default, the .as file is created in the same directory as the
+.spad file. If that directory is not writable, the current directory is used.
+If the current directory is not writable, an error message is given and the
+command terminates. Note that )translate implies the )old option so the file
+extension can safely be omitted. If )translate is given, all other options
+are ignored. Please be aware that the translation is not necessarily one
+hundred percent complete or correct. You should attempt to compile the output
+with the AXIOM-XL compiler and make any necessary corrections.
+ 
+We now describe the options for the new AXIOM-XL compiler.
+ 
+The first thing )compile does is look for a source code filename among its
+arguments. Thus
+ 
+)compile mycode.as
+)compile /u/jones/as/mycode.as
+)compile mycode
+ 
+all invoke )compiler on the file /u/jones/as/mycode.as if the current AXIOM
+working directory is /u/jones/as. (Recall that you can set the working
+directory via the )cd command. If you don't set it explicitly, it is the
+directory from which you started AXIOM.)
+ 
+This is frequently all you need to compile your file. This simple command:
+ 
+  -  Invokes the AXIOM-XL compiler and produces Lisp output.
+  -  Calls the Lisp compiler if the AXIOM-XL compilation was
+  successful.
+  -  Use the )library command to tell AXIOM about
+  the contents of your compiled file and arrange to have those contents
+  loaded on demand.
+ 
+Should you not want the )library command automatically invoked, call )compile
+with the )nolibrary option. For example,
+ 
+)compile mycode.as )nolibrary
+ 
+The general description of AXIOM-XL command line arguments is in the AXIOM-XL
+documentation. The default options used by the )compile command can be viewed
+and set using the )set compiler args AXIOM system command. The current
+defaults are
+ 
+-O -Fasy -Fao -Flsp -laxiom -Mno-AXL_W_WillObsolete -DAxiom
+ 
+These options mean:
+ 
+  -  -O: perform all optimizations,
+  -  -Fasy: generate a .asy file,
+  -  -Fao: generate a .ao file,
+  -  -Flsp: generate a .lsp (Lisp)
+  file,
+  -  -laxiom: use the axiom library libaxiom.al,
+  -  -Mno-AXL_W_WillObsolete: do not display messages
+  about older generated files becoming obsolete, and
+  -  -DAxiom: define the global assertion Axiom so that the
+  AXIOM-XL libraries for generating stand-alone code are not accidentally
+  used with AXIOM.
+ 
+To supplement these default arguments, use the )moreargs option on )compile.
+For example,
+ 
+)compile mycode.as )moreargs "-v"
+ 
+uses the default arguments and appends the -v (verbose) argument flag. The
+additional argument specification must be enclosed in double quotes.
+ 
+To completely replace these default arguments for a particular use of
+)compile, use the )onlyargs option. For example,
+ 
+)compile mycode.as )onlyargs "-v -O"
+ 
+only uses the -v (verbose) and -O (optimize) arguments. The argument
+specification must be enclosed in double quotes. In this example, Lisp code
+is not produced and so the compilation output will not be available to AXIOM.
+ 
+To completely replace the default arguments for all calls to )compile within
+your AXIOM session, use )set compiler args. For example, to use the above
+arguments for all compilations, issue
+ 
+)set compiler args "-v -O"
+ 
+Make sure you include the necessary -l and -Y arguments along with those
+needed for Lisp file creation. As above, the argument specification must be
+enclosed in double quotes.
+ 
+By default, the )library system command exposes all domains and categories it
+processes. This means that the AXIOM intepreter will consider those domains
+and categories when it is trying to resolve a reference to a function.
+Sometimes domains and categories should not be exposed. For example, a domain
+may just be used privately by another domain and may not be meant for
+top-level use. The )library command should still be used, though, so that the
+code will be loaded on demand. In this case, you should use the )nolibrary
+option on )compile and the )noexpose option in the )library command. For
+example,
+ 
+)compile mycode.as )nolibrary
+)library mycode )noexpose
+ 
+Once you have established your own collection of compiled code, you may find
+it handy to use the )dir option on the )library command. This causes )library
+to process all compiled code in the specified directory. For example,
+ 
+)library )dir /u/jones/as/quantum
+ 
+You must give an explicit directory after )dir, even if you want all compiled
+code in the current working directory processed.
+ 
+)library )dir .
+ 
+The )compile command works with several file extensions. We saw above what
+happens when it is invoked on a file with extension .as. A .ao file is a
+portable binary compiled version of a .as file, and )compile simply passes
+the .ao file onto AXIOM-XL. The generated Lisp file is compiled and )library
+is automatically called, just as if you had specified a .as file.
+ 
+A .al file is an archive file containing .ao files. The archive is created
+(on Unix systems) with the ar program. When )compile is given a .al file, it
+creates a directory whose name is based on that of the archive. For example,
+if you issue
+ 
+)compile mylib.al
+ 
+the directory mylib.axldir is created. All members of the archive are
+unarchived into the directory and )compile is called on each .ao file found.
+It is your responsibility to remove the directory and its contents, if you
+choose to do so.
+ 
+A .lsp file is a Lisp source file, presumably, in our context, generated by
+AXIOM-XL when called with the -Flsp option. When )compile is used with a .lsp
+file, the Lisp file is compiled and )library is called. You must also have
+present a .asy generated from the same source file.
+ 
+The following are descriptions of options for the old system compiler.
+ 
+You can compile category, domain, and package constructors contained in files
+with file extension .spad. You can compile individual constructors or every
+constructor in a file.
+ 
+The full filename is remembered between invocations of this command and )edit
+commands. The sequence of commands
+ 
+)compile matrix.spad
+)edit
+)compile
+ 
+will call the compiler, edit, and then call the compiler again on the file
+matrix.spad. If you do not specify a directory, the working current directory
+(see description of command )cd ) is searched for the file. If the file is
+not found, the standard system directories are searched.
+ 
+If you do not give any options, all constructors within a file are compiled.
+Each constructor should have an )abbreviation command in the file in which it
+is defined. We suggest that you place the )abbreviation commands at the top
+of the file in the order in which the constructors are defined. The list of
+commands serves as a table of contents for the file.
+ 
+The )library option causes directories containing the compiled code for each
+constructor to be created in the working current directory. The name of such
+a directory consists of the constructor abbreviation and the .NRLIB file
+extension. For example, the directory containing the compiled code for the
+MATRIX constructor is called MATRIX.NRLIB. The )nolibrary option says that
+such files should not be created. The default is )library. Note that the
+semantics of )library and )nolibrary for the new AXIOM-XL compiler and for
+the old system compiler are completely different.
+ 
+The )vartrace option causes the compiler to generate extra code for the
+constructor to support conditional tracing of variable assignments. (see
+description of command )trace ). Without this option, this code is suppressed
+and one cannot use the )vars option for the trace command.
+ 
+The )constructor option is used to specify a particular constructor to
+compile. All other constructors in the file are ignored. The constructor name
+or abbreviation follows )constructor. Thus either
+ 
+)compile matrix.spad )constructor RectangularMatrix
+ 
+or
+ 
+)compile matrix.spad )constructor RMATRIX
+ 
+compiles the RectangularMatrix constructor defined in matrix.spad.
+ 
+The )break and )nobreak options determine what the old system compiler does
+when it encounters an error. )break is the default and it indicates that
+processing should stop at the first error. The value of the )set break
+variable then controls what happens.
+ 
+Also See: 
+o )abbreviation
+o )edit
+o )library
+
+@ 
+\section{display}
+<<display>>=
+====================================================================
+A.8.  )display
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  -  )display all
+  -  )display properties
+  -  )display properties all
+  -  )display properties [obj1 [obj2 ...]]
+  -  )display value all
+  -  )display value [obj1 [obj2 ...]]
+  -  )display mode all
+  -  )display mode [obj1 [obj2 ...]]
+  -  )display names
+  -  )display operations opName
+ 
+Command Description: 
+ 
+This command is used to display the contents of the workspace and signatures
+of functions with a given name. (A signature gives the argument and return
+types of a function.) 
+ 
+The command
+ 
+)display names
+ 
+lists the names of all user-defined objects in the workspace. This is useful
+if you do not wish to see everything about the objects and need only be
+reminded of their names.
+ 
+The commands
+ 
+)display all
+)display properties
+)display properties all
+ 
+all do the same thing: show the values and types and declared modes of all
+variables in the workspace. If you have defined functions, their signatures
+and definitions will also be displayed.
+ 
+To show all information about a particular variable or user functions, for
+example, something named d, issue
+ 
+)display properties d
+ 
+To just show the value (and the type) of d, issue
+ 
+)display value d
+ 
+To just show the declared mode of d, issue
+ 
+)display mode d
+ 
+All modemaps for a given operation may be displayed by using )display
+operations. A modemap is a collection of information about a particular
+reference to an operation. This includes the types of the arguments and the
+return value, the location of the implementation and any conditions on the
+types. The modemap may contain patterns. The following displays the modemaps
+for the operation FromcomplexComplexCategory:
+ 
+)d op complex
+ 
+Also See: 
+o )clear
+o )history
+o )set
+o )show
+o )what
+ 
+@ 
+\section{edit}
+<<edit>>=
+====================================================================
+A.9.  )edit
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  - )edit [filename]
+ 
+Command Description: 
+ 
+This command is used to edit files. It works in conjunction with the )read
+and )compile commands to remember the name of the file on which you are
+working. By specifying the name fully, you can edit any file you wish. Thus
+ 
+)edit /u/julius/matrix.input
+ 
+will place you in an editor looking at the file /u/julius/matrix.input. By
+default, the editor is vi, but if you have an EDITOR shell environment
+variable defined, that editor will be used. When AXIOM is running under the X
+Window System, it will try to open a separate xterm running your editor if it
+thinks one is necessary. For example, under the Korn shell, if you issue
+ 
+export EDITOR=emacs
+ 
+then the emacs editor will be used by )edit.
+ 
+If you do not specify a file name, the last file you edited, read or compiled
+will be used. If there is no ``last file'' you will be placed in the editor
+editing an empty unnamed file.
+ 
+It is possible to use the )system command to edit a file directly. For
+example,
+ 
+)system emacs /etc/rc.tcpip
+ 
+calls emacs to edit the file.
+ 
+Also See: 
+o )system
+o )compile
+o )read
+ 
+
+@ 
+\section{fin}
+<<fin>>=
+====================================================================
+A.10.  )fin
+====================================================================
+ 
+User Level Required:  development
+ 
+Command Syntax: 
+ 
+  -  )fin
+ 
+Command Description: 
+ 
+This command is used by AXIOM developers to leave the AXIOM system and return
+to the underlying Lisp system. To return to AXIOM, issue the ``(|spad|)''
+function call to Lisp.
+ 
+Also See: 
+o )pquit
+o )quit
+ 
+
+@ 
+\section{frame}
+<<frame>>=
+====================================================================
+A.11.  )frame
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  - )frame  new  frameName
+  - )frame  drop  [frameName]
+  - )frame  next
+  - )frame  last
+  - )frame  names
+  - )frame  import frameName [objectName1 [objectName2 ...]]
+  - )set message frame on | off
+  - )set message prompt frame
+ 
+Command Description: 
+ 
+A frame can be thought of as a logical session within the physical session
+that you get when you start the system. You can have as many frames as you
+want, within the limits of your computer's storage, paging space, and so on.
+Each frame has its own step number, environment and history. You can have a
+variable named a in one frame and it will have nothing to do with anything
+that might be called a in any other frame.
+ 
+Some frames are created by the HyperDoc program and these can have pretty
+strange names, since they are generated automatically. To find out the names
+of all frames, issue
+ 
+)frame names
+ 
+It will indicate the name of the current frame.
+ 
+You create a new frame ``quark'' by issuing
+ 
+)frame new quark
+ 
+The history facility can be turned on by issuing either )set history on or
+)history )on. If the history facility is on and you are saving history
+information in a file rather than in the AXIOM environment then a history
+file with filename quark.axh will be created as you enter commands. If you
+wish to go back to what you were doing in the ``initial'' frame, use
+ 
+)frame next
+ 
+or
+ 
+)frame last
+ 
+to cycle through the ring of available frames to get back to ``initial''.
+ 
+If you want to throw away a frame (say ``quark''), issue
+ 
+)frame drop quark
+ 
+If you omit the name, the current frame is dropped.
+ 
+If you do use frames with the history facility on and writing to a file, you
+may want to delete some of the older history files. These are directories, so
+you may want to issue a command like rm -r quark.axh to the operating system.
+ 
+You can bring things from another frame by using )frame import. For example,
+to bring the f and g from the frame ``quark'' to the current frame, issue
+ 
+)frame import quark f g
+ 
+If you want everything from the frame ``quark'', issue
+ 
+)frame import quark
+ 
+You will be asked to verify that you really want everything.
+ 
+There are two )set flags to make it easier to tell where you are.
+ 
+)set message frame on | off
+ 
+will print more messages about frames when it is set on. By default, it is
+off.
+ 
+)set message prompt frame
+ 
+will give a prompt that looks like
+ 
+initial (1) ->
+ 
+when you start up. In this case, the frame name and step make up the prompt.
+ 
+Also See: 
+o )history
+o )set
+ 
+@ 
+\section{help}
+<<help>>=
+====================================================================
+A.12.  )help
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  - )help
+  - )help commandName
+ 
+Command Description: 
+ 
+This command displays help information about system commands. If you issue
+ 
+)help
+ 
+then this very text will be shown. You can also give the name or abbreviation
+of a system command to display information about it. For example,
+ 
+)help clear
+ 
+will display the description of the )clear system command.
+ 
+All this material is available in the AXIOM User Guide and in HyperDoc. In
+HyperDoc, choose the Commands item from the Reference menu.
+ 
+====================================================================
+A.1.  Introduction
+====================================================================
+ 
+ 
+System commands are used to perform AXIOM environment management. Among the
+commands are those that display what has been defined or computed, set up
+multiple logical AXIOM environments (frames), clear definitions, read files
+of expressions and commands, show what functions are available, and terminate
+AXIOM.
+ 
+Some commands are restricted: the commands
+ 
+)set userlevel interpreter
+)set userlevel compiler
+)set userlevel development
+ 
+set the user-access level to the three possible choices. All commands are
+available at development level and the fewest are available at interpreter
+level. The default user-level is interpreter. In addition to the )set command
+(discussed in description of command )set ) you can use the HyperDoc settings
+facility to change the user-level. Click on [Settings] here to immediately go
+to the settings facility. 
+ 
+Each command listing begins with one or more syntax pattern descriptions plus
+examples of related commands. The syntax descriptions are intended to be easy
+to read and do not necessarily represent the most compact way of specifying
+all possible arguments and options; the descriptions may occasionally be
+redundant.
+ 
+All system commands begin with a right parenthesis which should be in the
+first available column of the input line (that is, immediately after the
+input prompt, if any). System commands may be issued directly to AXIOM or be
+included in .input files.
+ 
+A system command argument is a word that directly follows the command name
+and is not followed or preceded by a right parenthesis. A system command
+option follows the system command and is directly preceded by a right
+parenthesis. Options may have arguments: they directly follow the option.
+This example may make it easier to remember what is an option and what is an
+argument:
+ 
+         )syscmd arg1 arg2 )opt1 opt1arg1 opt1arg2 )opt2 opt2arg1 ...
+ 
+In the system command descriptions, optional arguments and options are
+enclosed in brackets (``['' and ``]''). If an argument or option name is in
+italics, it is meant to be a variable and must have some actual value
+substituted for it when the system command call is made. For example, the
+syntax pattern description
+ 
+)read fileName [)quietly]
+ 
+would imply that you must provide an actual file name for fileName but need
+not use the )quietly option. Thus
+ 
+)read matrix.input
+ 
+is a valid instance of the above pattern.
+ 
+System command names and options may be abbreviated and may be in upper or
+lower case. The case of actual arguments may be significant, depending on the
+particular situation (such as in file names). System command names and
+options may be abbreviated to the minimum number of starting letters so that
+the name or option is unique. Thus
+ 
+)s Integer
+ 
+is not a valid abbreviation for the )set command, because both )set and )show
+begin with the letter ``s''. Typically, two or three letters are sufficient
+for disambiguating names. In our descriptions of the commands, we have used
+no abbreviations for either command names or options.
+ 
+In some syntax descriptions we use a vertical line ``|'' to indicate that you
+must specify one of the listed choices. For example, in
+ 
+)set output fortran on | off
+ 
+only on and off are acceptable words for following boot. We also sometimes
+use ``...'' to indicate that additional arguments or options of the listed
+form are allowed. Finally, in the syntax descriptions we may also list the
+syntax of related commands.
+ 
+@ 
+\section{history}
+<<history>>=
+====================================================================
+A.13.  )history
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  - )history )on
+  - )history )off
+  - )history )write historyInputFileName
+  - )history )show [n] [both]
+  - )history )save savedHistoryName
+  - )history )restore [savedHistoryName]
+  - )history )reset
+  - )history )change n
+  - )history )memory
+  - )history )file
+  - %
+  - %%(n)
+  - )set history on | off
+ 
+Command Description: 
+ 
+The history facility within AXIOM allows you to restore your environment to
+that of another session and recall previous computational results. Additional
+commands allow you to review previous input lines and to create an .input
+file of the lines typed to AXIOM.
+ 
+AXIOM saves your input and output if the history facility is turned on (which
+is the default). This information is saved if either of
+ 
+)set history on
+)history )on
+ 
+has been issued. Issuing either
+ 
+)set history off
+)history )off
+ 
+will discontinue the recording of information.
+ 
+Whether the facility is disabled or not, the value of % in AXIOM always
+refers to the result of the last computation. If you have not yet entered
+anything, % evaluates to an object of type Variable('%). The function %% may
+be used to refer to other previous results if the history facility is
+enabled. In that case, %%(n) is the output from step n if n > 0. If n < 0,
+the step is computed relative to the current step. Thus %%(-1) is also the
+previous step, %%(-2), is the step before that, and so on. If an invalid step
+number is given, AXIOM will signal an error.
+ 
+The environment information can either be saved in a file or entirely in
+memory (the default). Each frame ( description of command )frame ) has its
+own history database. When it is kept in a file, some of it may also be kept
+in memory for efficiency. When the information is saved in a file, the name
+of the file is of the form FRAME.axh where ``FRAME'' is the name of the
+current frame. The history file is placed in the current working directory
+(see description of command )cd ). Note that these history database files are
+not text files (in fact, they are directories themselves), and so are not in
+human-readable format.
+ 
+The options to the )history command are as follows:
+ 
+  )change n
+    will set the number of steps that are saved in memory to n. This option
+    only has effect when the history data is maintained in a file. If you
+    have issued )history )memory (or not changed the default) there is no
+    need to use )history )change.
+ 
+  )on
+    will start the recording of information. If the workspace is not empty,
+    you will be asked to confirm this request. If you do so, the workspace
+    will be cleared and history data will begin being saved. You can also
+    turn the facility on by issuing )set history on.
+ 
+  )off
+    will stop the recording of information. The )history )show command will
+    not work after issuing this command. Note that this command may be issued
+    to save time, as there is some performance penalty paid for saving the
+    environment data. You can also turn the facility off by issuing )set
+    history off.
+ 
+  )file
+    indicates that history data should be saved in an external file on disk.
+ 
+  )memory
+    indicates that all history data should be kept in memory rather than
+    saved in a file. Note that if you are computing with very large objects
+    it may not be practical to kept this data in memory.
+ 
+  )reset
+    will flush the internal list of the most recent workspace calculations so
+    that the data structures may be garbage collected by the underlying Lisp
+    system. Like )history )change, this option only has real effect when
+    history data is being saved in a file.
+ 
+  )restore [savedHistoryName]
+    completely clears the environment and restores it to a saved session, if
+    possible. The )save option below allows you to save a session to a file
+    with a given name. If you had issued )history )save jacobi the command
+    )history )restore jacobi would clear the current workspace and load the
+    contents of the named saved session. If no saved session name is
+    specified, the system looks for a file called last.axh.
+ 
+  )save savedHistoryName
+    is used to save a snapshot of the environment in a file. This file is
+    placed in the current working directory (see description of command )cd
+    ). Use )history )restore to restore the environment to the state
+    preserved in the file. This option also creates an input file containing
+    all the lines of input since you created the workspace frame (for
+    example, by starting your AXIOM session) or last did a )clear all or
+    )clear completely.
+ 
+  )show [n] [both]
+    can show previous input lines and output results. )show will display up
+    to twenty of the last input lines (fewer if you haven't typed in twenty
+    lines). )show n will display up to n of the last input lines. )show both
+    will display up to five of the last input lines and output results. )show
+    n both will display up to n of the last input lines and output results.
+ 
+  )write historyInputFile
+    creates an .input file with the input lines typed since the start of the
+    session/frame or the last )clear all or )clear completely. If
+    historyInputFileName does not contain a period (``.'') in the filename,
+    .input is appended to it. For example, )history )write chaos and )history
+    )write chaos.input both write the input lines to a file called
+    chaos.input in your current working directory. If you issued one or more
+    )undo commands, )history )write eliminates all input lines backtracked
+    over as a result of )undo. You can edit this file and then use )read to
+    have AXIOM process the contents.
+ 
+Also See: 
+o )frame
+o )read
+o )set
+o )undo
+ 
+@ 
+
+\section{language}
+<<language>>=
+The Axiom Interactive Language has the following features.
+More information is available by typing
+  )help feature
+
+@
+
+\section{library}
+<<library>>=
+====================================================================
+A.14.  )library
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  - )library libName1  [libName2 ...]
+  - )library )dir dirName
+  - )library )only objName1  [objlib2 ...]
+  - )library )noexpose
+ 
+Command Description: 
+ 
+This command replaces the )load system command that was available in AXIOM
+releases before version 2.0. The )library command makes available to AXIOM
+the compiled objects in the libraries listed.
+ 
+For example, if you )compile dopler.as in your home directory, issue )library
+dopler to have AXIOM look at the library, determine the category and domain
+constructors present, update the internal database with various properties of
+the constructors, and arrange for the constructors to be automatically loaded
+when needed. If the )noexpose option has not been given, the constructors
+will be exposed (that is, available) in the current frame.
+ 
+If you compiled a file with the old system compiler, you will have an NRLIB
+present, for example, DOPLER.NRLIB, where DOPLER is a constructor
+abbreviation. The command )library DOPLER will then do the analysis and
+database updates as above.
+ 
+To tell the system about all libraries in a directory, use )library )dir
+dirName where dirName is an explicit directory. You may specify ``.'' as the
+directory, which means the current directory from which you started the
+system or the one you set via the )cd command. The directory name is required.
+ 
+You may only want to tell the system about particular constructors within a
+library. In this case, use the )only option. The command )library dopler
+)only Test1 will only cause the Test1 constructor to be analyzed, autoloaded,
+etc..
+ 
+Finally, each constructor in a library are usually automatically exposed when
+the )library command is used. Use the )noexpose option if you not want them
+exposed. At a later time you can use )set expose add constructor to expose
+any hidden constructors.
+ 
+Note for AXIOM beta testers: At various times this command was called )local
+and )with before the name )library became the official name.
+ 
+Also See: 
+o )cd
+o )compile
+o )frame
+o )set
+ 
+@ 
+\section{lisp}
+<<lisp>>=
+====================================================================
+A.15.  )lisp
+====================================================================
+ 
+User Level Required:  development
+ 
+Command Syntax: 
+ 
+  -  )lisp [lispExpression]
+ 
+Command Description: 
+ 
+This command is used by AXIOM system developers to have single expressions
+evaluated by the Lisp system on which AXIOM is built. The lispExpression is
+read by the Lisp reader and evaluated. If this expression is not complete
+(unbalanced parentheses, say), the reader will wait until a complete
+expression is entered.
+ 
+Since this command is only useful for evaluating single expressions, the )fin
+command may be used to drop out of AXIOM into Lisp.
+ 
+Also See: 
+o )system
+o )boot
+o )fin
+ 
+@ 
+\section{load}
+<<load>>=
+====================================================================
+A.16.  )load
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Description: 
+ 
+This command is obsolete. Use )library instead.
+ 
+@ 
+\section{ltrace}
+<<ltrace>>=
+====================================================================
+A.17.  )ltrace
+====================================================================
+ 
+User Level Required:  development
+ 
+Command Syntax: 
+ 
+This command has the same arguments as options as the )trace command.
+ 
+Command Description: 
+ 
+This command is used by AXIOM system developers to trace Lisp or BOOT
+functions. It is not supported for general use.
+ 
+Also See: 
+o )boot
+o )lisp
+o )trace
+ 
+@ 
+\section{nclef}
+<<nclef>>=
+
+Entering printable keys generally inserts new text into the buffer (unless
+in overwrite mode, see below).  Other special keys can be used to modify
+the text in the buffer.  In the description of the keys below, ^n means
+Control-n, or holding the CONTROL key down while pressing "n".  Errors
+will ring the terminal bell.
+
+^A/^E  : Move cursor to beginning/end of the line.
+^F/^B   : Move cursor forward/backward one character.
+^D     : Delete the character under the cursor.
+^H, DEL : Delete the character to the left of the cursor.
+^K     : Kill from the cursor to the end of line.
+^L     : Redraw current line.
+^O     : Toggle overwrite/insert mode. Initially in insert mode. Text
+         added in overwrite mode (including yanks) overwrite
+         existing text, while insert mode does not overwrite.
+^P/^N   : Move to previous/next item on history list.
+^R/^S   : Perform incremental reverse/forward search for string on
+         the history list.  Typing normal characters adds to the current
+         search string and searches for a match. Typing ^R/^S marks
+         the start of a new search, and moves on to the next match.
+         Typing ^H or DEL deletes the last character from the search 
+         string, and searches from the starting location of the last search.  
+         Therefore, repeated DEL's appear to unwind to the match nearest 
+         the point at which the last ^R or ^S was typed.  If DEL is 
+         repeated until the search string is empty the search location 
+         begins from the start of the history list.  Typing ESC or 
+         any other editing character accepts the current match and 
+         loads it into the buffer, terminating the search.
+^T     : Toggle the characters under and to the left of the cursor.
+^Y     : Yank previously killed text back at current location.  Note that
+         this will overwrite or insert, depending on the current mode.
+^U      : Show help (this text).
+TAB    : Perform command completion based on word to the left of the cursor. 
+          Words are deemed to contain only the alphanumeric and the % ! ? _  
+          characters.
+NL, CR  : returns current buffer to the program.
+
+DOS and ANSI terminal arrow key sequences are recognized, and act like:
+
+  up    : same as ^P
+  down  : same as ^N
+  left  : same as ^B
+  right : same as ^F
+
+@ 
+\section{pquit}
+<<pquit>>=
+====================================================================
+A.18.  )pquit
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  - )pquit
+ 
+Command Description: 
+ 
+This command is used to terminate AXIOM and return to the operating system.
+Other than by redoing all your computations or by using the )history )restore
+command to try to restore your working environment, you cannot return to
+AXIOM in the same state.
+ 
+)pquit differs from the )quit in that it always asks for confirmation that
+you want to terminate AXIOM (the ``p'' is for ``protected''). When you enter
+the )pquit command, AXIOM responds
+ 
+      Please enter y or yes if you really want to leave the interactive 
+                environment and return to the operating system:
+ 
+If you respond with y or yes, you will see the message
+ 
+            You are now leaving the AXIOM interactive environment. 
+    Issue the command axiom to the operating system to start a new session.
+ 
+and AXIOM will terminate and return you to the operating system (or the
+environment from which you invoked the system). If you responded with
+something other than y or yes, then the message
+ 
+        You have chosen to remain in the AXIOM interactive environment.
+ 
+will be displayed and, indeed, AXIOM would still be running.
+ 
+Also See: 
+o )fin
+o )history
+o )close
+o )quit
+o )system
+ 
+@ 
+\section{quit}
+<<quit>>=
+====================================================================
+A.19.  )quit
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  - )quit
+  - )set quit protected | unprotected
+ 
+Command Description: 
+ 
+This command is used to terminate AXIOM and return to the operating system.
+Other than by redoing all your computations or by using the )history )restore
+command to try to restore your working environment, you cannot return to
+AXIOM in the same state.
+ 
+)quit differs from the )pquit in that it asks for confirmation only if the
+command
+ 
+)set quit protected
+ 
+has been issued. Otherwise, )quit will make AXIOM terminate and return you to
+the operating system (or the environment from which you invoked the system).
+ 
+The default setting is )set quit protected so that )quit and )pquit behave in
+the same way. If you do issue
+ 
+)set quit unprotected
+ 
+we suggest that you do not (somehow) assign )quit to be executed when you
+press, say, a function key.
+ 
+Also See: 
+o )fin
+o )history
+o )close
+o )pquit
+o )system
+ 
+@ 
+\section{read}
+<<read>>=
+====================================================================
+A.20.  )read
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  -  )read [fileName]
+  -  )read [fileName] [)quiet] [)ifthere]
+ 
+Command Description: 
+ 
+This command is used to read .input files into AXIOM. The command
+ 
+)read matrix.input
+ 
+will read the contents of the file matrix.input into AXIOM. The ``.input''
+file extension is optional. See the AXIOM User Guide index for more
+information about .input files.
+ 
+This command remembers the previous file you edited, read or compiled. If you
+do not specify a file name, the previous file will be read.
+ 
+The )ifthere option checks to see whether the .input file exists. If it does
+not, the )read command does nothing. If you do not use this option and the
+file does not exist, you are asked to give the name of an existing .input
+file.
+ 
+The )quiet option suppresses output while the file is being read.
+ 
+Also See: 
+o )compile
+o )edit
+o )history
+ 
+@ 
+\section{savesystem}
+<<savesystem>>=
+AXIOM Help Information. Section numbers refer to the book 
+AXIOM: The System for Scientific Computation. 
+ 
+====================================================================
+A.8.  )savesystem
+====================================================================
+ 
+ 
+ 
+ 
+ 
+User Level Required:  interpreter
+ 
+ 
+Command Syntax: 
+ 
+  - )savesystem filename
+ 
+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:
+ 
+)savesystem /tmp/savesys
+
+will create an image that can be restarted  with the UNIX command:
+
+axiom -ws /tmp/savesys
+
+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.
+
+@ 
+\section{set}
+<<set>>=
+====================================================================
+A.21.  )set
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  -  )set
+  -  )set label1 [... labelN]
+  -  )set label1 [... labelN] newValue
+ 
+Command Description: 
+ 
+The )set command is used to view or set system variables that control what
+messages are displayed, the type of output desired, the status of the history
+facility, the way AXIOM user functions are cached, and so on. Since this
+collection is very large, we will not discuss them here. Rather, we will show
+how the facility is used. We urge you to explore the )set options to
+familiarize yourself with how you can modify your AXIOM working environment.
+There is a HyperDoc version of this same facility available from the main
+HyperDoc menu. Click [here] to go to it. 
+ 
+The )set command is command-driven with a menu display. It is
+tree-structured. To see all top-level nodes, issue )set by itself.
+ 
+)set
+ 
+Variables with values have them displayed near the right margin. Subtrees of
+selections have ``...'' displayed in the value field. For example, there are
+many kinds of messages, so issue )set message to see the choices.
+ 
+)set message
+ 
+The current setting for the variable that displays whether computation times
+are displayed is visible in the menu displayed by the last command. To see
+more information, issue
+ 
+)set message time
+ 
+This shows that time printing is on now. To turn it off, issue
+ 
+)set message time off
+ 
+As noted above, not all settings have so many qualifiers. For example, to
+change the )quit command to being unprotected (that is, you will not be
+prompted for verification), you need only issue
+ 
+)set quit unprotected
+ 
+Also See: 
+o )quit
+ 
+@ 
+\section{show}
+<<show>>=
+====================================================================
+A.22.  )show
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  - )show nameOrAbbrev
+  - )show nameOrAbbrev )operations
+  - )show nameOrAbbrev )attributes
+ 
+Command Description: 
+This command displays information about AXIOM domain, package and category
+constructors. If no options are given, the )operations option is assumed. For
+example,
+ 
+)show POLY
+)show POLY )operations
+)show Polynomial
+)show Polynomial )operations
+ 
+each display basic information about the Polynomial domain constructor and
+then provide a listing of operations. Since Polynomial requires a Ring (for
+example, Integer) as argument, the above commands all refer to a unspecified
+ring R. In the list of operations, $ means Polynomial(R).
+ 
+The basic information displayed includes the signature of the constructor
+(the name and arguments), the constructor abbreviation, the exposure status
+of the constructor, and the name of the library source file for the
+constructor.
+ 
+If operation information about a specific domain is wanted, the full or
+abbreviated domain name may be used. For example,
+ 
+)show POLY INT
+)show POLY INT )operations
+)show Polynomial Integer
+)show Polynomial Integer )operations
+ 
+are among the combinations that will display the operations exported by the
+domain Polynomial(Integer) (as opposed to the general domain constructor
+Polynomial). Attributes may be listed by using the )attributes option.
+ 
+Also See: 
+o )display
+o )set
+o )what
+ 
+@ 
+\section{spool}
+<<spool>>=
+====================================================================
+A.23.  )spool
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  - )spool [fileName]
+  - )spool
+ 
+Command Description: 
+ 
+This command is used to save (spool) all AXIOM input and output into a file,
+called a spool file. You can only have one spool file active at a time. To
+start spool, issue this command with a filename. For example,
+ 
+)spool integrate.out
+ 
+To stop spooling, issue )spool with no filename.
+ 
+If the filename is qualified with a directory, then the output will be placed
+in that directory. If no directory information is given, the spool file will
+be placed in the current directory. The current directory is the directory
+from which you started AXIOM or is the directory you specified using the )cd
+command.
+ 
+Also See: 
+o )cd
+ 
+@ 
+\section{synonym}
+<<synonym>>=
+====================================================================
+A.24.  )synonym
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  - )synonym
+  - )synonym synonym fullCommand
+  - )what synonyms
+ 
+Command Description: 
+ 
+This command is used to create short synonyms for system command expressions.
+For example, the following synonyms might simplify commands you often use.
+ 
+)synonym save         history )save
+)synonym restore      history )restore
+)synonym mail         system mail
+)synonym ls           system ls
+)synonym fortran      set output fortran
+ 
+Once defined, synonyms can be used in place of the longer command
+expressions. Thus
+ 
+)fortran on
+ 
+is the same as the longer
+ 
+)set fortran output on
+ 
+To list all defined synonyms, issue either of
+ 
+)synonyms
+)what synonyms
+ 
+To list, say, all synonyms that contain the substring ``ap'', issue
+ 
+)what synonyms ap
+ 
+Also See: 
+o )set
+o )what
+ 
+@ 
+\section{system}
+<<system>>=
+====================================================================
+A.25.  )system
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  - )system cmdExpression
+ 
+Command Description: 
+ 
+This command may be used to issue commands to the operating system while
+remaining in AXIOM. The cmdExpression is passed to the operating system for
+execution.
+ 
+To get an operating system shell, issue, for example, )system sh. When you
+enter the key combination, Ctrl-D (pressing and holding the Ctrl key and then
+pressing the D key) the shell will terminate and you will return to AXIOM. We
+do not recommend this way of creating a shell because Lisp may field some
+interrupts instead of the shell. If possible, use a shell running in another
+window.
+ 
+If you execute programs that misbehave you may not be able to return to
+AXIOM. If this happens, you may have no other choice than to restart AXIOM
+and restore the environment via )history )restore, if possible.
+ 
+Also See: 
+o )boot
+o )fin
+o )lisp
+o )pquit
+o )quit
+ 
+@ 
+\section{trace}
+<<trace>>=
+====================================================================
+A.26.  )trace
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  - )trace
+  - )trace )off
+ 
+  - )trace function [options]
+  - )trace constructor [options]
+  - )trace domainOrPackage [options]
+ 
+where options can be one or more of
+ 
+  - )after S-expression
+  - )before S-expression
+  - )break after
+  - )break before
+  - )cond S-expression
+  - )count
+  - )count n
+  - )depth n
+  - )local op1 [... opN]
+  - )nonquietly
+  - )nt
+  - )off
+  - )only listOfDataToDisplay
+  - )ops
+  - )ops op1 [... opN ]
+  - )restore
+  - )stats
+  - )stats reset
+  - )timer
+  - )varbreak
+  - )varbreak var1 [... varN ]
+  - )vars
+  - )vars var1 [... varN ]
+  - )within executingFunction
+ 
+Command Description: 
+ 
+This command is used to trace the execution of functions that make up the
+AXIOM system, functions defined by users, and functions from the system
+library. Almost all options are available for each type of function but
+exceptions will be noted below.
+ 
+To list all functions, constructors, domains and packages that are traced,
+simply issue
+ 
+)trace
+ 
+To untrace everything that is traced, issue
+ 
+)trace )off
+ 
+When a function is traced, the default system action is to display the
+arguments to the function and the return value when the function is exited.
+Note that if a function is left via an action such as a THROW, no return
+value will be displayed. Also, optimization of tail recursion may decrease
+the number of times a function is actually invoked and so may cause less
+trace information to be displayed. Other information can be displayed or
+collected when a function is traced and this is controlled by the various
+options. Most options will be of interest only to AXIOM system developers. If
+a domain or package is traced, the default action is to trace all functions
+exported.
+ 
+Individual interpreter, lisp or boot functions can be traced by listing their
+names after )trace. Any options that are present must follow the functions to
+be traced.
+ 
+)trace f
+ 
+traces the function f. To untrace f, issue
+ 
+)trace f )off
+ 
+Note that if a function name contains a special character, it will be
+necessary to escape the character with an underscore
+ 
+)trace _/D_,1
+ 
+To trace all domains or packages that are or will be created from a
+particular constructor, give the constructor name or abbreviation after
+)trace.
+ 
+)trace MATRIX
+)trace List Integer
+ 
+The first command traces all domains currently instantiated with Matrix. If
+additional domains are instantiated with this constructor (for example, if
+you have used Matrix(Integer) and Matrix(Float)), they will be automatically
+traced. The second command traces List(Integer). It is possible to trace
+individual functions in a domain or package. See the )ops option below.
+ 
+The following are the general options for the )trace command.
+ 
+  )break after
+    causes a Lisp break loop to be entered after exiting the traced function.
+ 
+  )break before
+    causes a Lisp break loop to be entered before entering the traced
+    function.
+ 
+  )break
+    is the same as )break before.
+ 
+  )count
+    causes the system to keep a count of the number of times the traced
+    function is entered. The total can be displayed with )trace )stats and
+    cleared with )trace )stats reset.
+ 
+  )count n
+    causes information about the traced function to be displayed for the
+    first n executions. After the nth execution, the function is untraced.
+ 
+  )depth n
+    causes trace information to be shown for only n levels of recursion of
+    the traced function. The command
+ 
+    )trace fib )depth 10
+ 
+    will cause the display of only 10 levels of trace information for the
+    recursive execution of a user function fib.
+ 
+  )math
+    causes the function arguments and return value to be displayed in the
+    AXIOM monospace two-dimensional math format.
+ 
+  )nonquietly
+    causes the display of additional messages when a function is traced.
+ 
+  )nt
+    This suppresses all normal trace information. This option is useful if
+    the )count or )timer options are used and you are interested in the
+    statistics but not the function calling information.
+ 
+  )off
+    causes untracing of all or specific functions. Without an argument, all
+    functions, constructors, domains and packages are untraced. Otherwise,
+    the given functions and other objects are untraced. To immediately
+    retrace the untraced functions, issue )trace )restore.
+ 
+  )only listOfDataToDisplay
+    causes only specific trace information to be shown. The items are listed
+    by using the following abbreviations:
+ 
+    a        display all arguments
+    v        display return value
+    1        display first argument
+    2        display second argument
+    15       display the 15th argument, and so on
+ 
+  )restore
+    causes the last untraced functions to be retraced. If additional options
+    are present, they are added to those previously in effect.
+ 
+  )stats
+    causes the display of statistics collected by the use of the )count and
+    )timer options.
+ 
+  )stats reset
+    resets to 0 the statistics collected by the use of the )count and )timer
+    options.
+ 
+  )timer
+    causes the system to keep a count of execution times for the traced
+    function. The total can be displayed with )trace )stats and cleared with
+    )trace )stats reset.
+ 
+  )varbreak var1 [... varN]
+    causes a Lisp break loop to be entered after the assignment to any of the
+    listed variables in the traced function.
+ 
+  )vars
+    causes the display of the value of any variable after it is assigned in
+    the traced function. Note that library code must have been compiled (see
+    description of command )compile ) using the )vartrace option in order to
+    support this option.
+ 
+  )vars var1 [... varN]
+    causes the display of the value of any of the specified variables after
+    they are assigned in the traced function. Note that library code must
+    have been compiled (see description of command )compile ) using the
+    )vartrace option in order to support this option.
+ 
+  )within executingFunction
+    causes the display of trace information only if the traced function is
+    called when the given executingFunction is running.
+ 
+The following are the options for tracing constructors, domains and packages.
+ 
+  )local [op1 [... opN]]
+    causes local functions of the constructor to be traced. Note that to
+    untrace an individual local function, you must use the fully qualified
+    internal name, using the escape character _ before the semicolon.
+ 
+    )trace FRAC )local
+    )trace FRAC_;cancelGcd )off
+ 
+  )ops op1 [... opN]
+    By default, all operations from a domain or package are traced when the
+    domain or package is traced. This option allows you to specify that only
+    particular operations should be traced. The command
+ 
+    )trace Integer )ops min max _+ _-
+ 
+    traces four operations from the domain Integer. Since + and - are special
+    characters, it is necessary to escape them with an underscore.
+ 
+Also See: 
+o )boot
+o )lisp
+o )ltrace
+ 
+@ 
+\section{undo}
+<<undo>>=
+====================================================================
+A.27.  )undo
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  - )undo
+  - )undo integer
+  - )undo integer [option]
+  - )undo )redo
+ 
+where option is one of
+ 
+  - )after
+  - )before
+ 
+Command Description: 
+ 
+This command is used to restore the state of the user environment to an
+earlier point in the interactive session. The argument of an )undo is an
+integer which must designate some step number in the interactive session.
+ 
+)undo n
+)undo n )after
+ 
+These commands return the state of the interactive environment to that
+immediately after step n. If n is a positive number, then n refers to step
+nummber n. If n is a negative number, it refers to the nth previous command
+(that is, undoes the effects of the last -n commands).
+ 
+A )clear all resets the )undo facility. Otherwise, an )undo undoes the effect
+of )clear with options properties, value, and mode, and that of a previous
+undo. If any such system commands are given between steps n and n + 1 (n >
+0), their effect is undone for )undo m for any 0 < m <= n .
+ 
+The command )undo is equivalent to )undo -1 (it undoes the effect of the
+previous user expression). The command )undo 0 undoes any of the above system
+commands issued since the last user expression.
+ 
+)undo n )before
+ 
+This command returns the state of the interactive environment to that
+immediately before step n. Any )undo or )clear system commands given before
+step n will not be undone.
+ 
+)undo )redo
+ 
+This command reads the file redo.input. created by the last )undo command.
+This file consists of all user input lines, excluding those backtracked over
+due to a previous )undo.
+ 
+Also See: 
+o )history
+The command )history )write will eliminate the ``undone'' command lines of
+your program.
+ 
+@ 
+\section{what}
+<<what>>=
+====================================================================
+A.28.  )what
+====================================================================
+ 
+User Level Required:  interpreter
+ 
+Command Syntax: 
+ 
+  - )what categories pattern1 [pattern2 ...]
+  - )what commands   pattern1 [pattern2 ...]
+  - )what domains    pattern1 [pattern2 ...]
+  - )what operations pattern1 [pattern2 ...]
+  - )what packages   pattern1 [pattern2 ...]
+  - )what synonym    pattern1 [pattern2 ...]
+  - )what things     pattern1 [pattern2 ...]
+  - )apropos         pattern1 [pattern2 ...]
+ 
+Command Description: 
+ 
+This command is used to display lists of things in the system. The patterns
+are all strings and, if present, restrict the contents of the lists. Only
+those items that contain one or more of the strings as substrings are
+displayed. For example,
+ 
+)what synonym
+ 
+displays all command synonyms,
+ 
+)what synonym ver
+ 
+displays all command synonyms containing the substring ``ver'',
+ 
+)what synonym ver pr
+ 
+displays all command synonyms containing the substring ``ver'' or the
+substring ``pr''. Output similar to the following will be displayed
+ 
+---------------- System Command Synonyms -----------------
+ 
+
+user-defined synonyms satisfying patterns:
+      ver pr
+ 
+
+  )apr ........................... )what things
+  )apropos ....................... )what things
+  )prompt ........................ )set message prompt
+  )version ....................... )lisp *yearweek*
+ 
+Several other things can be listed with the )what command:
+ 
+  categories displays a list of category constructors.
+  commands  displays a list of  system commands available  at your
+    user-level. Your user-level is set via the )set userlevel command. To get
+    a description of a particular command, such as ``)what'', issue )help
+    what.
+  domains   displays a list of domain constructors.
+  operations displays a list of operations in  the system library.
+    It is recommended that you qualify this command with one or more
+    patterns, as there are thousands of operations available. For example,
+    say you are looking for functions that involve computation of
+    eigenvalues. To find their names, try )what operations eig. A rather
+    large list of operations is loaded into the workspace when this command
+    is first issued. This list will be deleted when you clear the workspace
+    via )clear all or )clear completely. It will be re-created if it is
+    needed again.
+  packages  displays a list of package constructors.
+  synonym  lists system command synonyms.
+  things    displays all  of the  above types for  items containing
+    the pattern strings as substrings. The command synonym )apropos is
+    equivalent to )what things.
+ 
+Also See: 
+o )display
+o )set
+o )show
+ 
+@
+\section{license}
+<<license>>=
+Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
+All rights reserved.
+Text for this document is released under the license:
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    - Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    - Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in
+      the documentation and/or other materials provided with the
+      distribution.
+
+    - Neither the name of The Numerical ALgorithms Group Ltd. nor the
+      names of its contributors may be used to endorse or promote products
+      derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+@
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} Jenks, R.J. and Sutor, R.S. 
+``Axiom -- The Scientific Computation System''
+Springer-Verlag New York (1992)
+ISBN 0-387-97855-0
+\end{thebibliography}
+\end{document}




reply via email to

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