\documentclass{article}
\usepackage{axiom}
\begin{document}
\title{\$SPAD/src/interp setvart.boot}
\author{The Axiom Team}
\maketitle
\begin{abstract}
\end{abstract}
\eject
\tableofcontents
\eject
\section{Overview}
This file contains functions to initialize the {\bf )set} command
in the interpreter. The current list is:
\begin{verbatim}

Variable     Description                           Current Value
-----------------------------------------------------------------
compiler   Library compiler options                   ... 
breakmode  execute break processing on error          break 
expose     control interpreter constructor exposure   ... 
functions  some interpreter function options          ... 
fortran    view and set options for FORTRAN output    ... 
kernel     library functions built into the kernel for 
           efficiency                                 ...
hyperdoc   options in using HyperDoc                  ... 
help       view and set some help options             ... 
history    save workspace values in a history file    on 
messages   show messages for various system features  ... 
naglink    options for NAGLink                        ... 
output     view and set some output options           ... 
quit       protected or unprotected quit              unprotected 
streams    set some options for working with streams  ... 
system     set some system development variables      ... 
userlevel  operation access level of system user      development 

Variables with current values of ... have further sub-options. 
For example, issue )set  system to see what the options are 
for system. 
For more information, issue )help set .

\end{verbatim}
\subsection{The list structure}
The structure of each list item consists of 7 items.  Consider this 
example:
\begin{verbatim}
  (userlevel
   "operation access level of system user"
   interpreter
   LITERALS
   $UserLevel
   (interpreter compiler development)
   development)
\end{verbatim}
The list looks like (the names in bold are accessor names that can be
found in {\bf property.lisp.pamphlet\cite{1}}. Look for "setName".):
\begin{list}{}
\item {\bf 1} {\sl Name} the keyword the user will see. In this example
the user would say "{\bf )set output userlevel}".
\item {\bf 2} {\sl Label} the message the user will see. In this example
the user would see "operation access level of system user".
\item {\bf 3} {\sl Level} the level where the command will be 
accepted. There are three levels: interpreter, compiler, development.
These commands are restricted to keep the user from causing damage.
\item {\bf 4} {\sl Type} a symbol, one of {\bf FUNCTION}, {\bf INTEGER},
{\bf STRING}, {\bf LITERALS}, or {\bf TREE}. See the function
{\bf initializeSetVariables} in the file
{\bf setvars.boot.pamphlet\cite{2}}.
\item {\bf 5} {\sl Var} variable which holds the current user setting.
\item {\bf 6} {\sl Leaf} is a list of all of the user levels
that expose this command.
\item {\bf 7} {\sl Def} is the default value of this variable.
\end{list}
\section{breakmode}
\begin{verbatim}
-------------------- The breakmode Option ---------------------

 Description: execute break processing on error

 The breakmode option may be followed by any one of the 
 following:

    nobreak
 -> break 
    query
    resume
    fastlinks

 The current setting is indicated within the list.

\end{verbatim}
<<breakmode>>=
  (breakmode
   "execute break processing on error"
   interpreter
   LITERALS
   $BreakMode
   (nobreak break query resume fastlinks)
   nobreak)         -- needed to avoid possible startup looping
@
\section{compiler}
\begin{verbatim}
                  Current Values of  compiler  Variables                   

Variable     Description                           Current Value
-----------------------------------------------------------------
output       library in which to place compiled code     
input        controls libraries from which to load compiled code  
args         arguments for compiling AXIOM code         
             -O -Fasy -Fao -Flsp -laxiom -Mno-AXL_W_WillObsolete 
             -DAxiom -Y $AXIOM/algebra 

\end{verbatim}
<<compiler>>=
   (compiler
    "Library compiler options"
    interpreter
    TREE
    novar
    (
<<compileroutput>>
<<compilerinput>>
<<compilerargs>>
    ))
@
\subsection{output}
\begin{verbatim}
---------------------- The output Option ----------------------

 Description: library in which to place compiled code

\end{verbatim}
<<compileroutput>>=
      (output
       "library in which to place compiled code"
       interpreter
       FUNCTION
       setOutputLibrary
       NIL
       htSetOutputLibrary 
	)
@
\subsection{input}
\begin{verbatim}
---------------------- The input Option -----------------------

 Description: controls libraries from which to load compiled code

 )set compiler input add library is used to tell AXIOM to add 
  library to the front of the path which determines where 
  compiled code is loaded from.
 )set compiler input drop library is used to tell AXIOM to remove 
  library from this path.
\end{verbatim}
<<compilerinput>>=
      (input
       "controls libraries from which to load compiled code"
       interpreter
       FUNCTION
       setInputLibrary
       NIL
       htSetInputLibrary)
@
\subsection{args}
\begin{verbatim}
----------------------- The args Option -----------------------

 Description: arguments for compiling AXIOM code

 )set compiler args  is used to tell AXIOM how to invoke the 
  library compiler when compiling code for AXIOM.
  The args option is followed by a string enclosed in double 
  quotes.

 The current setting is
 "-O -Fasy -Fao -Flsp -laxiom -Mno-AXL_W_WillObsolete 
  -DAxiom -Y $AXIOM/algebra" 
\end{verbatim}
<<compilerargs>>=
      (args
       "arguments for compiling AXIOM code"
       interpreter
       FUNCTION
       setAsharpArgs
       (("enter compiler options "
          STRING
          $asharpCmdlineFlags
          chkDirectory
          "-O -Fasy -Fao -Flsp -laxiom -Mno-AXL__W__WillObsolete -DAxiom -Y $AXIOM/algebra"))
       NIL)
@
\section{expose}
\begin{verbatim}
---------------------- The expose Option ----------------------

 Description: control interpreter constructor exposure

   The following groups are explicitly exposed in the current 
   frame (called initial ):
                                   basic                                   
                                categories                                 
                                  naglink                                  
                                   anna                                    
 
   The following constructors are explicitly exposed in the 
   current frame:
               there are no explicitly exposed constructors                
 
   The following constructors are explicitly hidden in the 
   current frame:
                there are no explicitly hidden constructors                
 
   When )set expose is followed by no arguments, the information
   you now see is displayed. When followed by the initialize 
   argument, the exposure group data in the file INTERP.EXPOSED 
   is read and is then available. The arguments add and drop are 
   used to add or drop exposure groups or explicit constructors 
   from the local frame exposure data. Issue
                  )set expose add    or    )set expose drop 
   for more information.
\end{verbatim}
<<expose>>=
  (expose
   "control interpreter constructor exposure"
   interpreter
   FUNCTION
   setExpose
   NIL
   htSetExpose)
@
\section{functions}
\begin{verbatim}
             Current Values of  functions  Variables                  

Variable     Description                           Current Value
-----------------------------------------------------------------
cache        number of function results to cache        0 
compile      compile, don't just define function bodies off 
recurrence   specially compile recurrence relations     on 

\end{verbatim}
<<functions>>=
  (functions
   "some interpreter function options"
   interpreter
   TREE
   novar
   (
<<functionscache>>
<<functionscompile>>
<<functionsrecurrence>>
  ))
@
\subsection{cache}
\begin{verbatim}
---------------------- The cache Option -----------------------

 Description: number of function results to cache

 )set functions cache is used to tell AXIOM how many  values 
  computed by interpreter functions should be saved.  This can 
  save quite a bit of time in recursive functions, though one 
  must consider that the cached values will take up (perhaps 
  valuable) room in the workspace.

 The value given  after cache must either be the word all or 
 a positive integer. This may be followed by any number of 
 function names whose cache sizes you wish to so set.  If no 
 functions are given, the default cache  size is set.

 Examples:   )set fun cache all
             )set fun cache 10 f g Legendre

 In general, functions will cache no returned values.
\end{verbatim}
<<functionscache>>=
     (cache
      "number of function results to cache"
      interpreter
      FUNCTION
      setFunctionsCache
      NIL
      htSetCache)
@
\subsection{compile}
Per suggestion by Bill Page this has been defaulted to [[on]].
\begin{verbatim}
--------------------- The compile Option ----------------------

 Description: compile, don't just define function bodies

 The compile option may be followed by any one of the following:

 -> on
    off 

 The current setting is indicated within the list.

\end{verbatim}
<<functionscompile>>=
     (compile
      "compile, don't just define function bodies"
      interpreter
      LITERALS
      $compileDontDefineFunctions
      (on off)
      on)
@
\subsection{recurrence}
\begin{verbatim}
-------------------- The recurrence Option --------------------

 Description: specially compile recurrence relations

 The recurrence option may be followed by any one of the 
 following:

 -> on 
    off

 The current setting is indicated within the list.

\end{verbatim}
<<functionsrecurrence>>=
     (recurrence
      "specially compile recurrence relations"
      interpreter
      LITERALS
      $compileRecurrence
      (on off)
      on)
@
\section{fortran}
\begin{verbatim}
              Current Values of  fortran  Variables                   

Variable     Description                           Current Value
-----------------------------------------------------------------
ints2floats  where sensible, coerce integers to reals   on 
fortindent   the number of characters indented          6 
fortlength   the number of characters on a line         72 
typedecs     print type and dimension lines             on 
defaulttype  default generic type for FORTRAN object    REAL 
precision    precision of generated FORTRAN objects     double 
intrinsic    whether to use INTRINSIC FORTRAN functions off 
explength    character limit for FORTRAN expressions    1320 
segment      split long FORTRAN expressions             on 
optlevel     FORTRAN optimisation level                 0 
startindex   starting index for FORTRAN arrays          1 
calling      options for external FORTRAN calls         ... 

Variables with current values of ... have further sub-options. 
For example, issue )set calling to see what the options are for 
calling.
For more information, issue )help set .
\end{verbatim}
<<fortran>>=
  (fortran
   "view and set options for FORTRAN output"
   interpreter
   TREE
   novar
    (
<<fortranints2floats>>
<<fortranfortindent>>
<<fortranfortlength>>
<<fortrantypedecs>>
<<fortrandefaulttype>>
<<fortranprecision>>
<<fortranintrinsic>>
<<fortranexplength>>
<<fortransegment>>
<<fortranoptlevel>>
<<fortranstartindex>>
<<fortrancalling>>
  ))
@
\subsection{ints2floats}
\begin{verbatim}
------------------- The ints2floats Option --------------------

 Description: where sensible, coerce integers to reals

 The ints2floats option may be followed by any one of the 
 following:

 -> on 
    off

 The current setting is indicated within the list.

\end{verbatim}
<<fortranints2floats>>=
     (ints2floats
      "where sensible, coerce integers to reals"
      interpreter
      LITERALS
      $fortInts2Floats
      (on off)
      on)
@
\subsection{fortindent}
\begin{verbatim}
-------------------- The fortindent Option --------------------

 Description: the number of characters indented

 The fortindent option may be followed by an integer in the range 
 0 to inclusive. The current setting is 6 

\end{verbatim}
<<fortranfortindent>>=
     (fortindent
      "the number of characters indented"
      interpreter
      INTEGER
      $fortIndent
      (0 NIL)
      6)
@
\subsection{fortlength}
\begin{verbatim}
-------------------- The fortlength Option --------------------

 Description: the number of characters on a line

 The fortlength option may be followed by an integer in the range 
 1 to inclusive. The current setting is 72 

\end{verbatim}
<<fortranfortlength>>=
     (fortlength
      "the number of characters on a line"
      interpreter
      INTEGER
      $fortLength
      (1 NIL)
      72)
@
\subsection{typedecs}
\begin{verbatim}
--------------------- The typedecs Option ---------------------

 Description: print type and dimension lines

 The typedecs option may be followed by any one of the 
 following:

 -> on 
    off

 The current setting is indicated within the list.

\end{verbatim}
<<fortrantypedecs>>=
     (typedecs
      "print type and dimension lines"
      interpreter
      LITERALS
      $printFortranDecs
      (on off)
      on)
@
\subsection{defaulttype}
\begin{verbatim}
------------------- The defaulttype Option --------------------

 Description: default generic type for FORTRAN object

 The defaulttype option may be followed by any one of the 
 following:

 -> REAL 
    INTEGER
    COMPLEX
    LOGICAL
    CHARACTER

 The current setting is indicated within the list.

\end{verbatim}
<<fortrandefaulttype>>=
     (defaulttype
      "default generic type for FORTRAN object"
      interpreter
      LITERALS
      $defaultFortranType
      (REAL INTEGER COMPLEX LOGICAL CHARACTER)
      REAL)
@
\subsection{precision}
\begin{verbatim}
-------------------- The precision Option ---------------------

 Description: precision of generated FORTRAN objects

 The precision option may be followed by any one of the 
 following:

    single
 -> double 

 The current setting is indicated within the list.

\end{verbatim}
<<fortranprecision>>=
      (precision
      "precision of generated FORTRAN objects"
       interpreter
       LITERALS
       $fortranPrecision
       (single double)
       double)
@
\subsection{intrinsic}
\begin{verbatim}
-------------------- The intrinsic Option ---------------------

 Description: whether to use INTRINSIC FORTRAN functions

 The intrinsic option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<fortranintrinsic>>=
      (intrinsic
       "whether to use INTRINSIC FORTRAN functions"
       interpreter
       LITERALS
       $useIntrinsicFunctions
       (on off)
       off)
@
\subsection{explength}
\begin{verbatim}
-------------------- The explength Option ---------------------

 Description: character limit for FORTRAN expressions

 The explength option may be followed by an integer in the range 
 0 to inclusive. The current setting is 1320 

\end{verbatim}
<<fortranexplength>>=
      (explength
       "character limit for FORTRAN expressions"
       interpreter
       INTEGER
       $maximumFortranExpressionLength
       (0 NIL)
       1320)
@
\subsection{segment}
\begin{verbatim}
--------------------- The segment Option ----------------------

 Description: split long FORTRAN expressions

 The segment option may be followed by any one of the following:

 -> on 
    off

 The current setting is indicated within the list.

\end{verbatim}
<<fortransegment>>=
      (segment
       "split long FORTRAN expressions"
       interpreter
       LITERALS
       $fortranSegment
       (on off)
       on)
@
\subsection{optlevel}
\begin{verbatim}
--------------------- The optlevel Option ---------------------

 Description: FORTRAN optimisation level

 The optlevel option may be followed by an integer in the range 
 0 to 2 inclusive. The current setting is 0 

\end{verbatim}
<<fortranoptlevel>>=
      (optlevel
       "FORTRAN optimisation level"
       interpreter
       INTEGER
       $fortranOptimizationLevel
       (0 2)
       0)
@
\subsection{startindex}
\begin{verbatim}
-------------------- The startindex Option --------------------

 Description: starting index for FORTRAN arrays

 The startindex option may be followed by an integer in the range 
 0 to 1 inclusive. The current setting is 1 

\end{verbatim}
<<fortranstartindex>>=
      (startindex
       "starting index for FORTRAN arrays"
       interpreter
       INTEGER
       $fortranArrayStartingIndex
       (0 1)
       1)
@
\subsection{calling}
\begin{verbatim}
              Current Values of  calling  Variables                   

Variable     Description                           Current Value
-----------------------------------------------------------------
tempfile     set location of temporary data files       /tmp/ 
directory    set location of generated FORTRAN files    ./ 
linker       linker arguments (e.g. libraries to search) -lxlf 

\end{verbatim}
<<fortrancalling>>=
      (calling
      "options for external FORTRAN calls"
      interpreter
      TREE
      novar
      (
<<callingtempfile>>
<<callingdirectory>>
<<callinglinker>>
       )
      )
@
\subsubsection{tempfile}
\begin{verbatim}
--------------------- The tempfile Option ---------------------

 Description: set location of temporary data files

 )set fortran calling tempfile  is used to tell AXIOM where
 to place intermediate FORTRAN data files . This must be the 
 name of a valid existing directory to which you have permission 
 to write (including the final slash).

 Syntax:
   )set fortran calling tempfile DIRECTORYNAME

 The current setting is /tmp/ 
\end{verbatim}
<<callingtempfile>>=
        (tempfile
         "set location of temporary data files"
         interpreter
         FUNCTION
         setFortTmpDir
         (("enter directory name for which you have write-permission"
           DIRECTORY
           $fortranTmpDir
           chkDirectory
           "/tmp/"))
         NIL)
@
\subsubsection{directory}
\begin{verbatim}
-------------------- The directory Option ---------------------

 Description: set location of generated FORTRAN files

 )set fortran calling directory  is used to tell AXIOM where
 to place generated FORTRAN files. This must be the name 
 of a valid existing directory to which you have permission 
 to write (including the final slash).

 Syntax:
   )set fortran calling directory DIRECTORYNAME

 The current setting is ./ 
\end{verbatim}
<<callingdirectory>>=
        (directory
         "set location of generated FORTRAN files"
         interpreter
         FUNCTION
         setFortDir
         (("enter directory name for which you have write-permission"
           DIRECTORY
           $fortranDirectory
           chkDirectory
           "./"))
         NIL)
@
\subsubsection{linker}
\begin{verbatim}
---------------------- The linker Option ----------------------

 Description: linker arguments (e.g. libraries to search)

 )set fortran calling linkerargs is used to pass arguments to 
 the linker when using  mkFort  to create functions which call 
 Fortran code. For example, it might give a list of libraries 
 to be searched, and their locations.
 The string is passed verbatim, so must be the correct syntax for
 the particular linker being used.

 Example: )set fortran calling linker "-lxlf"

 The current setting is -lxlf 
\end{verbatim}
<<callinglinker>>=
        (linker
         "linker arguments (e.g. libraries to search)"
         interpreter
         FUNCTION
         setLinkerArgs
         (("enter linker arguments "
           STRING
           $fortranLibraries
           chkDirectory
           "-lxlf"))
         NIL
         )
@
\section{kernel}
\begin{verbatim}
              Current Values of  kernel  Variables                    

Variable     Description                           Current Value
-----------------------------------------------------------------
warn         warn when re-definition is attempted       off 
protect      prevent re-definition of kernel functions  off 

\end{verbatim}
<<kernel>>=
  (kernel
   "library functions built into the kernel for efficiency"
   interpreter
   TREE
   novar
   (
<<kernelwarn>>
<<kernelprotect>>
   )
  )
@
\subsection{kernelwarn}
\begin{verbatim}
----------------------- The warn Option -----------------------

 Description: warn when re-definition is attempted

Some AXIOM library functions are compiled into the kernel for 
efficiency reasons. To prevent them being re-defined when loaded 
from a library they are specially protected. If a user wishes to 
know when an attempt is made to re-define such a function, he or 
she should issue the command:
        )set kernel warn on
To restore the default behaviour, he or she should issue the 
command:
        )set kernel warn off
\end{verbatim}
<<kernelwarn>>=
     (warn
      "warn when re-definition is attempted"
      interpreter
      FUNCTION
      protectedSymbolsWarning
      NIL
      htSetKernelWarn)
@
\subsection{kernelprotect}
\begin{verbatim}
--------------------- The protect Option ----------------------

 Description: prevent re-definition of kernel functions

Some AXIOM library functions are compiled into the kernel for 
efficiency reasons. To prevent them being re-defined when loaded
from a library they are specially protected.  If a user wishes 
to re-define these functions, he or she should issue the command:
        )set kernel protect off
To restore the default behaviour, he or she should issue the 
command:
        )set kernel protect on
\end{verbatim}
<<kernelprotect>>=
     (protect
      "prevent re-definition of kernel functions"
      interpreter
      FUNCTION
      protectSymbols
      NIL
      htSetKernelProtect)
@
\section{hyperdoc}
\begin{verbatim}
             Current Values of  hyperdoc  Variables                   

Variable     Description                           Current Value
-----------------------------------------------------------------
fullscreen   use full screen for this facility          off 
mathwidth    screen width for history output            120 

\end{verbatim}
<<hyperdoc>>=
  (hyperdoc
   "options in using HyperDoc"
   interpreter
   TREE
   novar
   (
<<hyperdocfullscreen>>
<<hyperdocmathwidth>>
   ))
@
\subsection{fullscreen}
\begin{verbatim}
-------------------- The fullscreen Option --------------------

 Description: use full screen for this facility

 The fullscreen option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<hyperdocfullscreen>>=
     (fullscreen
      "use full screen for this facility"
      interpreter
      LITERALS
      $fullScreenSysVars
      (on off)
      off)
@
\subsection{mathwidth}
\begin{verbatim}
-------------------- The mathwidth Option ---------------------

 Description: screen width for history output

 The mathwidth option may be followed by an integer in the range 
 0 to inclusive. The current setting is 120 

\end{verbatim}
<<hyperdocmathwidth>>=
     (mathwidth
      "screen width for history output"
      interpreter
      INTEGER
      $historyDisplayWidth
      (0 NIL)
      120)
@
\section{help}
\begin{verbatim}
               Current Values of  help  Variables                     

Variable     Description                           Current Value
-----------------------------------------------------------------
fullscreen   use fullscreen facility, if possible       off 

\end{verbatim}
<<help>>=
  (help
   "view and set some help options"
   interpreter
   TREE
   novar
   (
<<helpfullscreen>>
   ))
@
\subsection{fullscreen}
\begin{verbatim}
-------------------- The fullscreen Option --------------------

 Description: use fullscreen facility, if possible

 The fullscreen option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<helpfullscreen>>=
    (fullscreen
     "use fullscreen facility, if possible"
     interpreter
     LITERALS
     $useFullScreenHelp
     (on off)
     off)
@
\section{history}
\begin{verbatim}
--------------------- The history Option ----------------------

 Description: save workspace values in a history file

 The history option may be followed by any one of the 
 following:

 -> on 
    off

 The current setting is indicated within the list.

\end{verbatim}
<<history>>=
  (history
   "save workspace values in a history file"
   interpreter
   LITERALS
   $HiFiAccess
   (on off)
   on)
@
\section{messages}
\begin{verbatim}
             Current Values of  messages  Variables                   

Variable     Description                           Current Value
-----------------------------------------------------------------
autoload     print file auto-load messages              off 
bottomup     display bottom up modemap selection        off 
coercion     display datatype coercion messages         off 
dropmap      display old map defn when replaced         off 
expose       warning for unexposed functions            off 
file         print msgs also to SPADMSG LISTING         off 
frame        display messages about frames              off 
highlighting use highlighting in system messages        off 
instant      present instantiation summary              off 
insteach     present instantiation info                 off 
interponly   say when function code is interpreted      on 
number       display message number with message        off 
prompt       set type of input prompt to display        step 
selection    display function selection msgs            off 
set          show )set setting after assignment         off 
startup      display messages on start-up               off 
summary      print statistics after computation         off 
testing      print system testing header                off 
time         print timings after computation            off 
type         print type after computation               on 
void         print Void value when it occurs            off 
any          print the internal type of objects of domain Any on 
naglink      show NAGLink messages                      on 

\end{verbatim}
<<messages>>=
  (messages
   "show messages for various system features"
   interpreter
   TREE
   novar
   (
<<messagesany>>
<<messagesautoload>>
<<messagesbottomup>>
<<messagescoercion>>
<<messagesdropmap>>
<<messagesexpose>>
<<messagesfile>>
<<messagesframe>>
<<messageshighlighting>>
<<messagesinstant>>
<<messagesinsteach>>
<<messagesinterponly>>
<<messagesnaglink>>
<<messagesnumber>>
<<messagesprompt>>
<<messagesselection>>
<<messagesset>>
<<messagesstartup>>
<<messagessummary>>
<<messagestesting>>
<<messagestime>>
<<messagestype>>
<<messagesvoid>>
   ))
@
\subsection{any}
\begin{verbatim}
----------------------- The any Option ------------------------

 Description: print the internal type of objects of domain Any

 The any option may be followed by any one of the following:

 -> on 
    off

 The current setting is indicated within the list.

\end{verbatim}
<<messagesany>>=
     (any
      "print the internal type of objects of domain Any"
      interpreter
      LITERALS
      $printAnyIfTrue
      (on off)
      on)
@
\subsection{autoload}
\begin{verbatim}
--------------------- The autoload Option ---------------------

 Description: print file auto-load messages

\end{verbatim}
<<messagesautoload>>=
     (autoload
      "print file auto-load messages"
      interpreter
      FUNCTION
      printLoadMessages
      (on off)
      on)
@
\subsection{bottomup}
\begin{verbatim}
--------------------- The bottomup Option ---------------------

 Description: display bottom up modemap selection

 The bottomup option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<messagesbottomup>>=
     (bottomup
      "display bottom up modemap selection"
      development
      LITERALS
      $reportBottomUpFlag
      (on off)
      off)
@
\subsection{coercion}
\begin{verbatim}
--------------------- The coercion Option ---------------------

 Description: display datatype coercion messages

 The coercion option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<messagescoercion>>=
     (coercion
      "display datatype coercion messages"
      development
      LITERALS
      $reportCoerceIfTrue
      (on off)
      off)
@
\subsection{dropmap}
\begin{verbatim}
--------------------- The dropmap Option ----------------------

 Description: display old map defn when replaced

 The dropmap option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<messagesdropmap>>=
     (dropmap
      "display old map defn when replaced"
      interpreter
      LITERALS
      $displayDroppedMap
      (on off)
      off)
@
\subsection{expose}
\begin{verbatim}
---------------------- The expose Option ----------------------

 Description: warning for unexposed functions

 The expose option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<messagesexpose>>=
     (expose
      "warning for unexposed functions"
      interpreter
      LITERALS
      $giveExposureWarning
      (on off)
      off)
@
\subsection{file}
\begin{verbatim}
----------------------- The file Option -----------------------

 Description: print msgs also to SPADMSG LISTING

 The file option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<messagesfile>>=
     (file
      "print msgs also to SPADMSG LISTING"
      development
      LITERALS
      $printMsgsToFile
      (on off)
      off)
@
\subsection{frame}
\begin{verbatim}
---------------------- The frame Option -----------------------

 Description: display messages about frames

 The frame option may be followed by any one of the following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<messagesframe>>=
     (frame
      "display messages about frames"
      interpreter
      LITERALS
      $frameMessages
      (on off)
      off)
@
\subsection{highlighting}
\begin{verbatim}
------------------- The highlighting Option -------------------

 Description: use highlighting in system messages

 The highlighting option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<messageshighlighting>>=
     (highlighting
      "use highlighting in system messages"
      interpreter
      LITERALS
      $highlightAllowed
      (on off)
      off)
@
\subsection{instant}
\begin{verbatim}
--------------------- The instant Option ----------------------

 Description: present instantiation summary

 The instant option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<messagesinstant>>=
     (instant
      "present instantiation summary"
      development
      LITERALS
      $reportInstantiations
      (on off)
      off)
@
\subsection{insteach}
\begin{verbatim}
--------------------- The insteach Option ---------------------

 Description: present instantiation info

 The insteach option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<messagesinsteach>>=
     (insteach
      "present instantiation info"
      development
      LITERALS
      $reportEachInstantiation
      (on off)
      off)
@
\subsection{interponly}
\begin{verbatim}
-------------------- The interponly Option --------------------

 Description: say when function code is interpreted

 The interponly option may be followed by any one of the 
 following:

 -> on 
    off

 The current setting is indicated within the list.

\end{verbatim}
<<messagesinterponly>>=
     (interponly
      "say when function code is interpreted"
      interpreter
      LITERALS
      $reportInterpOnly
      (on off)
      on)
@
\subsection{naglink}
\begin{verbatim}
--------------------- The naglink Option ----------------------

 Description: show NAGLink messages

 The naglink option may be followed by any one of the 
 following:

 -> on 
    off

 The current setting is indicated within the list.

\end{verbatim}
<<messagesnaglink>>=
     (naglink
      "show NAGLink messages"
      interpreter
      LITERALS
      $nagMessages
      (on off)
      on)
@
\subsection{number}
\begin{verbatim}
---------------------- The number Option ----------------------

 Description: display message number with message

 The number option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<messagesnumber>>=
     (number
      "display message number with message"
      interpreter
      LITERALS
      $displayMsgNumber
      (on off)
      off)
@
\subsection{prompt}
\begin{verbatim}
---------------------- The prompt Option ----------------------

 Description: set type of input prompt to display

 The prompt option may be followed by any one of the following:

    none
    frame
    plain
 -> step 
    verbose

 The current setting is indicated within the list.

\end{verbatim}
<<messagesprompt>>=
     (prompt
      "set type of input prompt to display"
      interpreter
      LITERALS
      $inputPromptType
      (none frame plain step verbose)
      step)
@
\subsection{selection}
\begin{verbatim}
-------------------- The selection Option ---------------------

 Description: display function selection msgs

 The selection option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<messagesselection>>=
     (selection
      "display function selection msgs"
      interpreter
      LITERALS
      $reportBottomUpFlag
      (on off)
      off)
@
\subsection{set}
\begin{verbatim}
----------------------- The set Option ------------------------

 Description: show )set setting after assignment

 The set option may be followed by any one of the following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<messagesset>>=
     (set
      "show )set setting after assignment"
      interpreter
      LITERALS
      $displaySetValue
      (on off)
      off)
@
\subsection{startup}
\begin{verbatim}
--------------------- The startup Option ----------------------

 Description: display messages on start-up

 The startup option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<messagesstartup>>=
     (startup
      "display messages on start-up"
      interpreter
      LITERALS
      $displayStartMsgs
      (on off)
      on)
@
\subsection{summary}
\begin{verbatim}
--------------------- The summary Option ----------------------

 Description: print statistics after computation

 The summary option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<messagessummary>>=
     (summary
      "print statistics after computation"
      interpreter
      LITERALS
      $printStatisticsSummaryIfTrue
      (on off)
      off)
@
\subsection{testing}
\begin{verbatim}
--------------------- The testing Option ----------------------

 Description: print system testing header

 The testing option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<messagestesting>>=
     (testing
      "print system testing header"
      development
      LITERALS
      $testingSystem
      (on off)
      off)
@
\subsection{time}
\begin{verbatim}
----------------------- The time Option -----------------------

 Description: print timings after computation

 The time option may be followed by any one of the following:

    on
 -> off 
    long

 The current setting is indicated within the list.

\end{verbatim}
<<messagestime>>=
     (time
      "print timings after computation"
      interpreter
      LITERALS
      $printTimeIfTrue
      (on off long)
      off)
@
\subsection{type}
\begin{verbatim}
----------------------- The type Option -----------------------

 Description: print type after computation

 The type option may be followed by any one of the following:

 -> on 
    off

 The current setting is indicated within the list.

\end{verbatim}
<<messagestype>>=
     (type
      "print type after computation"
      interpreter
      LITERALS
      $printTypeIfTrue
      (on off)
      on)
@
\subsection{void}
\begin{verbatim}
----------------------- The void Option -----------------------

 Description: print Void value when it occurs

 The void option may be followed by any one of the following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<messagesvoid>>=
     (void
      "print Void value when it occurs"
      interpreter
      LITERALS
      $printVoidIfTrue
      (on off)
      off)
@
\section{naglink}
\begin{verbatim}
              Current Values of  naglink  Variables                   

Variable     Description                           Current Value
-----------------------------------------------------------------
host         internet address of host for NAGLink       localhost 
persistence  number of (fortran) functions to remember  1 
messages     show NAGLink messages                      on 
double       enforce DOUBLE PRECISION ASPs              on 

\end{verbatim}
<<naglink>>=
  (naglink
   "options for NAGLink"
   interpreter
   TREE
   novar
   (
<<naglinkhost>>
<<naglinkpersistence>>
<<naglinkmessages>>
<<naglinkdouble>>
   ))
@
\subsection{host}
\begin{verbatim}
----------------------- The host Option -----------------------

 Description: internet address of host for NAGLink

 )set naglink host is used to tell  AXIOM which  host to contact
 for a NAGLink request. An Internet address should be supplied. 
 The host specified must be running the NAGLink daemon.

 The current setting is localhost 
\end{verbatim}
<<naglinkhost>>=
     (host
      "internet address of host for NAGLink"
      interpreter
      FUNCTION
      setNagHost
      (("enter host name"
        DIRECTORY
        $nagHost
        chkDirectory
        "localhost"))
      NIL)
@
\subsection{persistence}
\begin{verbatim}
------------------- The persistence Option --------------------

 Description: number of (fortran) functions to remember

 )set naglink persistence is used to tell  the  nagd  daemon how
  many ASP source and object files to keep around in case you 
  reuse them. This helps to avoid needless recompilations. The 
  number specified should be a non-negative integer.

 The current setting is 1 
\end{verbatim}
<<naglinkpersistence>>=
     (persistence
      "number of (fortran) functions to remember"
      interpreter
      FUNCTION
      setFortPers
      (("Requested remote storage (for asps):"
       INTEGER
       $fortPersistence
       (0 NIL)
       10))
      NIL)
@
\subsection{messages}
\begin{verbatim}
--------------------- The messages Option ---------------------

 Description: show NAGLink messages

 The messages option may be followed by any one of the 
 following:

 -> on 
    off

 The current setting is indicated within the list.

\end{verbatim}
<<naglinkmessages>>=
     (messages
      "show NAGLink messages"
      interpreter
      LITERALS
      $nagMessages
      (on off)
       on)
@
\subsection{double}
\begin{verbatim}
---------------------- The double Option ----------------------

 Description: enforce DOUBLE PRECISION ASPs

 The double option may be followed by any one of the following:

 -> on 
    off

 The current setting is indicated within the list.

\end{verbatim}
<<naglinkdouble>>=
     (double
      "enforce DOUBLE PRECISION ASPs"
      interpreter
      LITERALS
      $nagEnforceDouble
      (on off)
      on)
@
\section{output}
The result of the {\bf )set output} command is:
\begin{verbatim}
Variable     Description                           Current Value
-----------------------------------------------------------------
abbreviate  abbreviate type names                    off 
algebra     display output in algebraic form         On:CONSOLE 
characters  choose special output character set      plain 
script      display output in SCRIPT formula format  Off:CONSOLE 
fortran     create output in FORTRAN format          Off:CONSOLE 
fraction    how fractions are formatted              vertical 
length      line length of output displays           77 
scripts     show subscripts,... linearly             off 
showeditor  view output of )show in editor           off 
tex         create output in TeX style               Off:CONSOLE 
\end{verbatim}
Since the output option has a bunch of sub-options each suboption 
is defined within the output structure.
<<output>>=
  (output
   "view and set some output options"
   interpreter
   TREE
   novar
    (
<<outputabbreviate>>
<<outputalgebra>>
<<outputcharacters>>
<<outputfortran>>
<<outputfraction>>
<<outputlength>>
<<outputopenmath>>
<<outputscript>>
<<outputscripts>>
<<outputshoweditor>>
<<outputtex>>
 ))
@
\subsection{abbreviate}
\begin{verbatim}
-------------------- The abbreviate Option --------------------

 Description: abbreviate type names

 The abbreviate option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.
\end{verbatim}
<<outputabbreviate>>=
     (abbreviate
      "abbreviate type names"
      interpreter
      LITERALS
      $abbreviateTypes
      (on off)
      off)
@
\subsection{algebra}
\begin{verbatim}
--------------------- The algebra Option ----------------------

 Description: display output in algebraic form

 )set output algebra is used to tell AXIOM to turn algebra-style
  output printing on and off, and where to place the output.  By
  default, the destination for the output is the screen but 
  printing is turned off.

Syntax:   )set output algebra <arg>
    where arg can be one of
  on          turn algebra printing on (default state)
  off         turn algebra printing off
  console     send algebra output to screen (default state)
  fp<.fe>     send algebra output to file with file prefix fp
              and file extension .fe. If not given, 
              .fe defaults to .spout.

If you wish to send the output to a file, you may need to issue
this command twice: once with on and once with the file name. 
For example, to send algebra output to the file polymer.spout,
issue the two commands

  )set output algebra on
  )set output algebra polymer

The output is placed in the directory from which you invoked 
AXIOM or the one you set with the )cd system command.
The current setting is:  On:CONSOLE 
\end{verbatim}
<<outputalgebra>>=
     (algebra
      "display output in algebraic form"
      interpreter
      FUNCTION
      setOutputAlgebra
      (("display output in algebraic form"
        LITERALS
        $algebraFormat
        (off on)
        on)
       (break $algebraFormat)
       ("where algebra printing goes (enter {\em console} or a pathname)?"
        FILENAME
        $algebraOutputFile
        chkOutputFileName
        "console"))
      NIL)
@
\subsection{characters}
\begin{verbatim}
-------------------- The characters Option --------------------

 Description: choose special output character set


 The characters option may be followed by any one of the 
 following:

    default
 -> plain 

 The current setting is indicated within the list.  This 
 option  determines the special characters used for algebraic 
 output. This is what the current choice of special characters 
 looks like:
   ulc is shown as +          urc is shown as +       
   llc is shown as +          lrc is shown as +       
   vbar is shown as |         hbar is shown as -      
   quad is shown as ?         lbrk is shown as [      
   rbrk is shown as ]         lbrc is shown as {      
   rbrc is shown as }         ttee is shown as +      
   btee is shown as +         rtee is shown as +      
   ltee is shown as +         ctee is shown as +      
   bslash is shown as \    
\end{verbatim}
<<outputcharacters>>=
     (characters
      "choose special output character set"
      interpreter
      FUNCTION
      setOutputCharacters
      NIL
      htSetOutputCharacters)
@
\subsection{fortran}
\begin{verbatim}
--------------------- The fortran Option ----------------------

 Description: create output in FORTRAN format

 )set output fortran is used to tell AXIOM to turn FORTRAN-style
  output printing on and off, and where to place the output.  By
  default, the destination for the output is the screen but 
  printing is turned off.

Also See: )set fortran

Syntax:   )set output fortran <arg>
    where arg can be one of
  on          turn FORTRAN printing on
  off         turn FORTRAN printing off (default state)
  console     send FORTRAN output to screen (default state)
  fp<.fe>     send FORTRAN output to file with file prefix 
              fp and file extension .fe. If not given, 
              .fe defaults to .sfort.

If you wish to send the output to a file, you must issue 
this command twice: once with on and once with the file name.
For example, to send FORTRAN output to the file polymer.sfort,
 issue the two commands

  )set output fortran on
  )set output fortran polymer

The output is placed in the directory from which you invoked
AXIOM or the one you set with the )cd system command.
The current setting is:  Off:CONSOLE 
\end{verbatim}
<<outputfortran>>=
     (fortran
      "create output in FORTRAN format"
      interpreter
      FUNCTION
      setOutputFortran
      (("create output in FORTRAN format"
        LITERALS
        $fortranFormat
        (off on)
        off)
       (break $fortranFormat)
       ("where FORTRAN output goes (enter {\em console} or a a pathname)"
        FILENAME
        $fortranOutputFile
        chkOutputFileName
        "console"))
      NIL)
@
\subsection{fraction}
\begin{verbatim}
--------------------- The fraction Option ---------------------

 Description: how fractions are formatted

 The fraction option may be followed by any one of the following:

 -> vertical 
    horizontal

 The current setting is indicated within the list.

\end{verbatim}
<<outputfraction>>=
     (fraction
      "how fractions are formatted"
      interpreter
      LITERALS
      $fractionDisplayType
      (vertical horizontal)
      vertical)
@
\subsection{length}
\begin{verbatim}
---------------------- The length Option ----------------------

 Description: line length of output displays

 The length option may be followed by an integer in the range 
 10 to 245 inclusive. The current setting is 77 

\end{verbatim}
<<outputlength>>=
     (length
      "line length of output displays"
      interpreter
      INTEGER
      $LINELENGTH
      (10 245)
      77)
@
\subsection{openmath}
\begin{verbatim}
----------------------- The openmath Option ------------------------

 Description: create output in OpenMath style

 )set output tex is used to tell AXIOM to turn OpenMath output
printing on and off, and where to place the output.  By default,
the destination for the output is the screen but printing is 
turned off.

Syntax:   )set output tex <arg>
    where arg can be one of
  on          turn OpenMath printing on
  off         turn OpenMath printing off (default state)
  console     send OpenMath output to screen (default state)
  fp<.fe>     send OpenMath output to file with file prefix fp
              and file extension .fe. If not given, 
              .fe defaults to .sopen.

If you wish to send the output to a file, you must issue 
this command twice: once with on and once with the file name. 
For example, to send OpenMath output to the file polymer.sopen, 
issue the two commands

  )set output openmath on
  )set output openmath polymer

The output is placed in the directory from which you invoked 
AXIOM or the one you set with the )cd system command.
The current setting is:  Off:CONSOLE 
\end{verbatim}
<<outputopenmath>>=
     (openmath
      "create output in OpenMath style"
      interpreter
      FUNCTION
      setOutputOpenMath
      (("create output in OpenMath format"
        LITERALS
        $openMathFormat
        (off on)
        off)
       (break $openMathFormat)
       ("where TeX output goes (enter {\em console} or a pathname)"
        FILENAME
        $openMathOutputFile
        chkOutputFileName
        "console"))
      NIL)
@
\subsection{script}
\begin{verbatim}
---------------------- The script Option ----------------------

 Description: display output in SCRIPT formula format

 )set output script is used to tell AXIOM to turn IBM Script
 formula-style output printing on and off, and where to place
 the output.  By default, the destination for the output is the 
 screen but printing is turned off.

Syntax:   )set output script <arg>
    where arg can be one of
  on      turn IBM Script formula printing on
  off     turn IBM Script formula printing off 
          (default state)
  console send IBM Script formula output to screen 
          (default state)
  fp<.fe> send IBM Script formula output to file with file 
          prefix fp and file extension .fe. If not given, 
          .fe defaults to .sform.

If you wish to send the output to a file, you must issue 
this command twice: once with on and once with the file 
name. For example, to send IBM Script formula output to 
the file polymer.sform, issue the two commands

  )set output script on
  )set output script polymer

The output is placed in the directory from which you 
invoked AXIOM or the one you set with the )cd system command.
The current setting is:  Off:CONSOLE 
\end{verbatim}
<<outputscript>>=
     (script
      "display output in SCRIPT formula format"
      interpreter
      FUNCTION
      setOutputFormula
      (("display output in SCRIPT format"
        LITERALS
        $formulaFormat
        (off on)
        off)
       (break $formulaFormat)
       ("where script output goes (enter {\em console} or a a pathname)"
        FILENAME
        $formulaOutputFile
        chkOutputFileName
        "console"))
      NIL)
@
\subsection{scripts}
\begin{verbatim}
--------------------- The scripts Option ----------------------

 Description: show subscripts,... linearly

 The scripts option may be followed by any one of the following:

    yes
    no

 The current setting is indicated within the list.

\end{verbatim}
<<outputscripts>>=
     (scripts
      "show subscripts,... linearly"
      interpreter
      LITERALS
      $linearFormatScripts
      (yes no)
      no)
@
\subsection{showeditor}
\begin{verbatim}
-------------------- The showeditor Option --------------------

 Description: view output of )show in editor

 The showeditor option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<outputshoweditor>>=
     (showeditor
      "view output of )show in editor"
      interpreter
      LITERALS
      $useEditorForShowOutput
      (on off)
      off)
@
\subsection{tex}
\begin{verbatim}
----------------------- The tex Option ------------------------

 Description: create output in TeX style

 )set output tex is used to tell AXIOM to turn TeX-style output
printing on and off, and where to place the output.  By default,
the destination for the output is the screen but printing is 
turned off.

Syntax:   )set output tex <arg>
    where arg can be one of
  on          turn TeX printing on
  off         turn TeX printing off (default state)
  console     send TeX output to screen (default state)
  fp<.fe>     send TeX output to file with file prefix fp
              and file extension .fe. If not given, 
              .fe defaults to .stex.

If you wish to send the output to a file, you must issue 
this command twice: once with on and once with the file name. 
For example, to send TeX output to the file polymer.stex, 
issue the two commands

  )set output tex on
  )set output tex polymer

The output is placed in the directory from which you invoked 
AXIOM or the one you set with the )cd system command.
The current setting is:  Off:CONSOLE 
\end{verbatim}
<<outputtex>>=
     (tex
      "create output in TeX style"
      interpreter
      FUNCTION
      setOutputTex
      (("create output in TeX format"
        LITERALS
        $texFormat
        (off on)
        off)
       (break $texFormat)
       ("where TeX output goes (enter {\em console} or a pathname)"
        FILENAME
        $texOutputFile
        chkOutputFileName
        "console"))
      NIL)
@
\section{quit}
\begin{verbatim}
----------------------- The quit Option -----------------------

 Description: protected or unprotected quit

 The quit option may be followed by any one of the following:

    protected
 -> unprotected 

 The current setting is indicated within the list.

\end{verbatim}
<<quit>>=
  (quit
   "protected or unprotected quit"
   interpreter
   LITERALS
   $quitCommandType
   (protected unprotected)
   unprotected)
@
\section{streams}
\begin{verbatim}
              Current Values of  streams  Variables                   

Variable     Description                           Current Value
-----------------------------------------------------------------
calculate    specify number of elements to calculate    10 
showall      display all stream elements computed       off 

\end{verbatim}
<<streams>>=
  (streams
   "set some options for working with streams"
   interpreter
   TREE
   novar
   (
<<streamscalculate>>
<<streamsshowall>>
  ))
@
\subsection{calculate}
\begin{verbatim}
-------------------- The calculate Option ---------------------

 Description: specify number of elements to calculate

   )set streams calculate is used to tell AXIOM how many elements
    of a stream to calculate when a computation uses the stream. 
    The value given after calculate must either be the word all 
    or a positive integer.

      The current setting is 10 .
\end{verbatim}
<<streamscalculate>>=
     (calculate
      "specify number of elements to calculate"
      interpreter
      FUNCTION
      setStreamsCalculate
      (("number of initial stream elements you want calculated"
       INTEGER
       $streamCount
       (0 NIL)
       10))
      NIL)
@
\subsection{showall}
\begin{verbatim}
--------------------- The showall Option ----------------------

 Description: display all stream elements computed

 The showall option may be followed by any one of the following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<streamsshowall>>=
    (showall
     "display all stream elements computed"
     interpreter
     LITERALS
     $streamsShowAll
     (on off)
     off)
@
\section{system}
\begin{verbatim}
              Current Values of  system  Variables                    

Variable     Description                           Current Value
-----------------------------------------------------------------
functioncode show gen. LISP for functions when compiled off 
optimization show optimized LISP code                   off 
prettyprint  prettyprint BOOT func's as they compile    off 

\end{verbatim}
<<system>>=
  (system
   "set some system development variables"
   development
   TREE
   novar
   (
<<systemfunctioncode>>
<<systemoptimization>>
<<systemprettyprint>>
   ))
@
\subsection{functioncode}
\begin{verbatim}
------------------- The functioncode Option -------------------

 Description: show gen. LISP for functions when compiled

 The functioncode option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<systemfunctioncode>>=
     (functioncode
      "show gen. LISP for functions when compiled"
      development
      LITERALS
      $reportCompilation
      (on off)
      off)
@
\subsection{optimization}
\begin{verbatim}
------------------- The optimization Option -------------------

 Description: show optimized LISP code

 The optimization option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<systemoptimization>>=
     (optimization
      "show optimized LISP code"
      development
      LITERALS
      $reportOptimization
      (on off)
      off)
@
\subsection{prettyprint}
\begin{verbatim}
------------------- The prettyprint Option --------------------

 Description: prettyprint BOOT func's as they compile

 The prettyprint option may be followed by any one of the 
 following:

    on
 -> off 

 The current setting is indicated within the list.

\end{verbatim}
<<systemprettyprint>>=
     (prettyprint
      "prettyprint BOOT func's as they compile"
      development
      LITERALS
      $PRETTYPRINT
      (on off)
      off)
@
\section{userlevel}
\begin{verbatim}
-------------------- The userlevel Option ---------------------

 Description: operation access level of system user

 The userlevel option may be followed by any one of the 
 following:

    interpreter
    compiler
 -> development 

 The current setting is indicated within the list.

\end{verbatim}
<<userlevel>>=
  (userlevel
   "operation access level of system user"
   interpreter
   LITERALS
   $UserLevel
   (interpreter compiler development)
   development)
@
\section{License}
<<license>>=
-- Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
-- All rights reserved.
--
-- 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.

@
<<*>>=
<<license>>

--% Table of )set options
SETANDFILEQ($setOptions,'(
<<breakmode>>
<<compiler>>
<<expose>>
<<functions>>
<<fortran>>
<<kernel>>
<<hyperdoc>>
<<help>>
<<history>>
<<messages>>
<<naglink>>
<<output>>
<<quit>>
<<streams>>
<<system>>
<<userlevel>>
 ))

--%
SETANDFILEQ($reportCoerceIfTrue,NIL)

--%
printLoadMessages u ==
  MEMQ(u, '(%display% %describe%)) =>
    ($printLoadMsgs => '"on"; '"off")
  $printLoadMsgs := u is ["on"]

-- The following creates a list of option names in the above table.

SETANDFILEQ($setOptionNames, [x.0 for x in $setOptions])

EVALANDFILEACTQ (initializeSetVariables $setOptions)
@
\eject
\begin{thebibliography}{99}
\bibitem{1} src/interp/property.lisp.pamphlet
\bibitem{2} src/interp/setvars.boot.pamphlet
\end{thebibliography}
\end{document}