[Top][All Lists]
[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}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Axiom-developer] 20070822.02.tpd.patch applied to silver,
daly <=