\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 "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 "Library compiler options" interpreter TREE novar ( <> <> <> )) @ \subsection{output} \begin{verbatim} ---------------------- The output Option ---------------------- Description: library in which to place compiled code \end{verbatim} <>= (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} <>= (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} <>= (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 "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 "some interpreter function options" interpreter TREE novar ( <> <> <> )) @ \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} <>= (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} <>= (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} <>= (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 "view and set options for FORTRAN output" interpreter TREE novar ( <> <> <> <> <> <> <> <> <> <> <> <> )) @ \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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (calling "options for external FORTRAN calls" interpreter TREE novar ( <> <> <> ) ) @ \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} <>= (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} <>= (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} <>= (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 "library functions built into the kernel for efficiency" interpreter TREE novar ( <> <> ) ) @ \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} <>= (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} <>= (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 "options in using HyperDoc" interpreter TREE novar ( <> <> )) @ \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} <>= (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} <>= (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 "view and set some help options" interpreter TREE novar ( <> )) @ \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} <>= (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 "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 "show messages for various system features" interpreter TREE novar ( <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> )) @ \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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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} <>= (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 "options for NAGLink" interpreter TREE novar ( <> <> <> <> )) @ \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} <>= (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} <>= (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} <>= (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} <>= (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 "view and set some output options" interpreter TREE novar ( <> <> <> <> <> <> <> <> <> <> <> )) @ \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} <>= (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 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} <>= (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} <>= (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 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} <>= (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} <>= (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} <>= (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 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} <>= (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 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} <>= (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} <>= (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} <>= (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 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} <>= (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 "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 "set some options for working with streams" interpreter TREE novar ( <> <> )) @ \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} <>= (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} <>= (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 "set some system development variables" development TREE novar ( <> <> <> )) @ \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} <>= (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} <>= (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} <>= (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 "operation access level of system user" interpreter LITERALS $UserLevel (interpreter compiler development) development) @ \section{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. @ <<*>>= <> --% Table of )set options SETANDFILEQ($setOptions,'( <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> )) --% 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}