aboutsummaryrefslogtreecommitdiff
path: root/src/interp/setvars.boot.pamphlet
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2007-11-14 01:53:42 +0000
committerdos-reis <gdr@axiomatics.org>2007-11-14 01:53:42 +0000
commitab5399d3b53120941367d24b695bd98447ac3f0f (patch)
treef7bc78ac240e8ab0137a0820c76a2edbcbb81109 /src/interp/setvars.boot.pamphlet
parent62b279b28cf02d59e0f860aac46968223c43cfc3 (diff)
downloadopen-axiom-ab5399d3b53120941367d24b695bd98447ac3f0f.tar.gz
remove more pamphlets
Diffstat (limited to 'src/interp/setvars.boot.pamphlet')
-rw-r--r--src/interp/setvars.boot.pamphlet1827
1 files changed, 0 insertions, 1827 deletions
diff --git a/src/interp/setvars.boot.pamphlet b/src/interp/setvars.boot.pamphlet
deleted file mode 100644
index 4c6a4261..00000000
--- a/src/interp/setvars.boot.pamphlet
+++ /dev/null
@@ -1,1827 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-
-\title{\$SPAD/src/interp setvars.boot}
-\author{The Axiom Team}
-
-\begin{document}
-
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-
-\section{Top level function calling conventions}
-Conventions:
-\begin{list}{}
-\item when called with argument "\%initialize", a function will
-set the appropriate variables to their default states.
-\item when called with argument "\%display\%", a function will return a
-current state information suitable for sayBrightly
-\item when called with argument "\%describe\%", a function will print
-a description of itself and any conditions it imposes.
-\item otherwise, a function may interpret its arguments as it sees
-appropriate.
-\end{list}
-Also by convention each top level function named in the FUNCTION
-slot (see the data structure in setvart.boot.pamphlet\cite{1}) has an
-associated describe function. Thus, for example,
-setOutputFortran is accompanied by function to describe
-its arguments, such as describeSetOutputFortran.
-\section{Top level set functions}
-The {\bf set} function in this file handles the top level {\bf )set}
-command line functions.
-<<toplevelsetfunctions>>=
-<<initializeSetVariables>>
-<<resetWorkspaceVariables>>
-<<translateYesNo2TrueFalse>>
-<<translateTrueFalse2YesNo>>
-<<set>>
-<<set1>>
-<<displaySetOptionInformation>>
-<<displaySetVariableSettings>>
-@
-\section{initializeSetVariables}
-<<initializeSetVariables>>=
-initializeSetVariables (setTree) ==
- -- this function passes through the table of set variable information
- -- and initializes the variables to their default definitions.
- for setData in setTree repeat
- st := setData.setType
- st = 'FUNCTION =>
- -- here setVar is really the name of a function to call
- if functionp(setData.setVar)
- then FUNCALL( setData.setVar,"%initialize%")
- else sayMSG '" Function not implemented."
- st = 'INTEGER =>
- SET(setData.setVar, setData.setDef)
- st = 'STRING =>
- SET(setData.setVar, setData.setDef)
- st = 'LITERALS =>
- SET(setData.setVar, translateYesNo2TrueFalse setData.setDef)
- st = 'TREE =>
- initializeSetVariables(setData.setLeaf)
-
-@
-\subsection{resetWorkspaceVariables}
-<<resetWorkspaceVariables>>=
-resetWorkspaceVariables () ==
- -- this replaces def in DEBUG LISP
- -- this function resets many workspace variables to their default
- -- values. Some things are reset by start and not reset by restart.
- SETQ(_/COUNTLIST , NIL)
- SETQ(_/EDITFILE , NIL)
- SETQ(_/SOURCEFILES , NIL)
- SETQ($sourceFiles , NIL)
- SETQ(_/PRETTY , NIL)
- SETQ(_/SPACELIST , NIL)
- SETQ(_/TIMERLIST , NIL)
- SETQ($existingFiles , MAKE_-HASHTABLE 'UEQUAL)
- SETQ($functionTable , NIL)
- SETQ($BOOT , NIL)
- SETQ($echoLineStack , NIL)
- SETQ($slamFlag , NIL)
- SETQ($CommandSynonymAlist , COPY($InitialCommandSynonymAlist))
- SETQ($UserAbbreviationsAlist , NIL)
- SETQ($msgAlist , NIL)
- SETQ($msgDatabase , NIL)
- SETQ($msgDatabaseName , NIL)
- SETQ($dependeeClosureAlist , NIL)
- SETQ($IOindex , 1 )
- SETQ($coerceIntByMapCounter , 0 )
- SETQ($e , [[NIL]])
- SETQ($env , [[NIL]])
-
- -- many variables set by the following
-
- initializeSetVariables($setOptions)
-
-@
-\subsection{translateYesNo2TrueFalse}
-<<translateYesNo2TrueFalse>>=
-translateYesNo2TrueFalse x ==
- x in '(yes on) => true
- x in '(no off) => false
- x
-
-@
-\subsection{translateTrueFalse2YesNo}
-<<translateTrueFalse2YesNo>>=
-translateTrueFalse2YesNo x ==
- x = true => 'on
- x = false => 'off
- x
-
-@
-\subsection{set}
-<<set>>=
-set l == set1(l, $setOptions)
-
-@
-\subsection{set1}
-<<set1>>=
-set1(l,setTree) ==
- null l => displaySetVariableSettings(setTree,"")
- $setOptionNames : local := [x.0 for x in setTree]
- arg := selectOption(DOWNCASE CAR l,$setOptionNames,'optionError)
- setData := [arg,:LASSOC(arg,setTree)]
-
- -- check is the user is authorized for the set variable
- null satisfiesUserLevel setData.setLevel =>
- sayKeyedMsg("S2IZ0007",[$UserLevel,'"set option"])
-
- 1 = #l => displaySetOptionInformation(arg,setData)
- st := setData.setType
-
- st = 'FUNCTION =>
- -- allow the user to set the default
- setfunarg :=
- l.1 = 'DEFAULT => "%initialize%"
--- (arg2 := selectOption(l.1,['default],nil)) => "%initialize%"
- KDR l
- if functionp(setData.setVar)
- then FUNCALL( setData.setVar,setfunarg)
- else sayMSG '" Function not implemented."
- -- if so set, then show option information
- if $displaySetValue then displaySetOptionInformation(arg,setData)
- NIL
-
- st = 'STRING =>
- arg2 := l.1
- if arg2 = 'DEFAULT
- then SET(setData.setVar, setData.setDef)
- else if arg2 then SET(setData.setVar, arg2)
- -- if so set or not a valid choice, then show option information
- if $displaySetValue or (null arg2) then
- displaySetOptionInformation(arg,setData)
- NIL
-
- st = 'INTEGER =>
- -- validate the option, allowing the user to set the default
- arg2 :=
- num := l.1
- (FIXP num) and (num >= (setData.setLeaf).0) and
- (null (upperlimit := setData.setLeaf.1) or num <= upperlimit) => num
- selectOption(l.1,['default,:setData.setLeaf],nil)
- if arg2 = 'DEFAULT
- then SET(setData.setVar, setData.setDef)
- else if arg2 then SET(setData.setVar, arg2)
- -- if so set or not a valid choice, then show option information
- if $displaySetValue or (null arg2) then
- displaySetOptionInformation(arg,setData)
- null arg2 => sayMessage ['" Your value",:bright object2String l.1,
- '"is not among the valid choices."]
- NIL
-
- st = 'LITERALS =>
- -- validate the option, allowing the user to set the default
- if (arg2 := selectOption(l.1,['default,:setData.setLeaf],nil)) then
- if arg2 = 'DEFAULT
- then SET(setData.setVar, translateYesNo2TrueFalse setData.setDef)
- else
- if arg2 = 'nobreak then
- USE_-FAST_-LINKS 'T
- if arg2 = 'fastlinks then
- USE_-FAST_-LINKS 'NIL
- arg2 := 'break
- SET(setData.setVar, translateYesNo2TrueFalse arg2)
- -- if so set or not a valid choice, then show option information
- if $displaySetValue or (null arg2) then
- displaySetOptionInformation(arg,setData)
- null arg2 => sayMessage ['" Your value",:bright object2String l.1,
- '"is not among the valid choices."]
- NIL
-
- -- for a sub-tree, we must recurse
- st = 'TREE =>
- set1(KDR l,setData.setLeaf)
- NIL
- sayMessage ['"Cannot handle set tree node type",:bright st,"yet"]
- NIL
-
-@
-\subsection{displaySetOptionInformation}
-<<displaySetOptionInformation>>=
-displaySetOptionInformation(arg,setData) ==
- st := setData.setType
- -- if the option is a sub-tree, show the full menu
- st = 'TREE =>
- displaySetVariableSettings(setData.setLeaf,setData.setName)
-
- -- otherwise we want to show the current setting
- centerAndHighlight (STRCONC('"The ",object2String arg,'" Option"),
- $LINELENGTH,specialChar 'hbar)
- sayBrightly ['%l,:bright '"Description:",setData.setLabel]
-
- st = 'FUNCTION =>
- TERPRI()
- if functionp(setData.setVar)
- then FUNCALL(setData.setVar,"%describe%")
- else sayMSG '" Function not implemented."
-
- st = 'INTEGER =>
- sayMessage ['" The",:bright arg,'"option",
- '" may be followed by an integer in the range",
- :bright (setData.setLeaf).0,'"to",'%l,
- :bright (setData.setLeaf).1,'"inclusive.",
- '" The current setting is",:bright eval setData.setVar]
-
- st = 'STRING =>
- sayMessage ['" The",:bright arg,'"option",
- '" is followed by a string enclosed in double quote marks.", '%l,
- '" The current setting is",:bright ["_"",eval setData.setVar, "_""]]
-
- st = 'LITERALS =>
- sayMessage ['" The",:bright arg,'"option",
- '" may be followed by any one of the following:"]
- current := translateTrueFalse2YesNo eval setData.setVar
- for name in setData.setLeaf repeat
- if name = current
- then sayBrightly ['" ->",:bright object2String name]
- else sayBrightly ['" ",object2String name]
- sayMessage '" The current setting is indicated within the list."
- if (setData.setLeaf = '(yes no on off)) or
- (setData.setLeaf = '(yes no on off long)) then
- sayMessage [:bright '"yes",'"and",:bright '"no",
- '"have the same effect as",:bright '"on",'"and",:bright '"off",
- '"respectively."]
-
-@
-\subsection{displaySetVariableSettings}
-<<displaySetVariableSettings>>=
-displaySetVariableSettings(setTree,label) ==
- if label = "" then label := '")set"
- else label := STRCONC('" ",object2String label,'" ")
- centerAndHighlight(STRCONC('"Current Values of ",label,
- '" Variables"),$LINELENGTH," ")
- TERPRI()
- sayBrightly ["Variable ",
- "Description ",
- "Current Value"]
- SAY fillerSpaces($LINELENGTH,specialChar 'hbar)
- subtree := nil
- for setData in setTree repeat
- null satisfiesUserLevel setData.setLevel => nil
- setOption := object2String setData.setName
- setOption := STRCONC(setOption,fillerSpaces(13-#setOption,'" "),
- setData.setLabel)
- setOption := STRCONC(setOption,fillerSpaces(55-#setOption,'" "))
- st := setData.setType
- st = 'FUNCTION =>
- opt :=
- functionp(setData.setVar) => FUNCALL( setData.setVar,"%display%")
- '"unimplemented"
- if PAIRP opt then opt := [:[o,'" "] for o in opt]
- sayBrightly concat(setOption,'%b,opt,'%d)
- st = 'STRING =>
- opt := object2String eval setData.setVar
- sayBrightly [setOption,:bright opt]
- st = 'INTEGER =>
- opt := object2String eval setData.setVar
- sayBrightly [setOption,:bright opt]
- st = 'LITERALS =>
- opt := object2String translateTrueFalse2YesNo eval setData.setVar
- sayBrightly [setOption,:bright opt]
- st = 'TREE =>
- sayBrightly [setOption,:bright '"..."]
- subtree := true
- subname := object2String setData.setName
- TERPRI()
- subtree =>
- sayBrightly ['"Variables with current values of",:bright '"...",
- '"have further sub-options. For example,"]
- sayBrightly ['"issue",:bright '")set ",subname,
- '" to see what the options are for",:bright subname,'".",'%l,
- '"For more information, issue",:bright '")help set",'"."]
-
-@
-\section{compiler}
-See the section compiler in setvart.boot.pamphlet\cite{1}.
-\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}
-<<compilerCode>>=
-<<setAsharpArgs>>
-<<describeAsharpArgs>>
-<<setInputLibrary>>
-<<setOutputLibrary>>
-<<describeOutputLibraryArgs>>
-<<describeInputLibraryArgs>>
-@
-\subsection{setAsharpArgs}
-<<setAsharpArgs>>=
-setAsharpArgs arg ==
- arg = "%initialize%" =>
- $asharpCmdlineFlags := '"-O -Fasy -Fao -Flsp -laxiom -Mno-AXL__W__WillObsolete -DAxiom -Y $AXIOM/algebra"
- arg = "%display%" =>
- $asharpCmdlineFlags
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- describeAsharpArgs()
- $asharpCmdlineFlags := first(arg)
-
-@
-\subsection{describeAsharpArgs}
-<<describeAsharpArgs>>=
-describeAsharpArgs() ==
- sayBrightly LIST (
- '%b,'")set compiler args ",'%d,_
- '"is used to tell AXIOM how to invoke the library compiler ",'%l,_
- '" when compiling code for AXIOM.",'%l,_
- '" The args option is followed by a string enclosed in double quotes.",'%l,'%l,_
- '" The current setting is",'%l,'%b,'"_"",$asharpCmdlineFlags,'"_"",'%d)
-
-@
-\subsection{setInputLibrary}
-<<setInputLibrary>>=
-setInputLibrary arg ==
- arg = "%initialize%" =>
- true
- arg = "%display%" =>
- [LIBRARY_-NAME(u) for u in INPUT_-LIBRARIES]
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- describeInputLibraryArgs()
- arg is [act, filename] and (act := selectOptionLC(act,'(add drop),nil)) =>
- act = 'add => addInputLibrary TRUENAME STRINGIMAGE filename
- act = 'drop => dropInputLibrary TRUENAME STRINGIMAGE filename
- setInputLibrary NIL
-
-@
-\subsection{setOutputLibrary}
-<<setOutputLibrary>>=
-setOutputLibrary arg ==
- -- Hack to avoid initialising libraries in KCL:
- not $cclSystem => false
- arg = "%initialize%" =>
- $outputLibraryName := nil
- arg = "%display%" =>
- $outputLibraryName or '"user.lib"
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- describeOutputLibraryArgs()
- not ONEP(#arg) => setOutputLibrary nil
- -- If the file already exists then use the complete pathname to help
- -- keep track of it in the case the user issues )cd commands.
- if FILEP (fn := STRINGIMAGE first arg) then fn := TRUENAME fn
- openOutputLibrary($outputLibraryName := fn)
-
-@
-\subsection{describeOutputLibraryArgs}
-<<describeOutputLibraryArgs>>=
-describeOutputLibraryArgs() ==
- sayBrightly LIST (
- '%b,'")set compiler output library",'%d,_
- '"is used to tell the compiler where to place", '%l,_
- '"compiled code generated by the library compiler. By default it goes",'%l,_
- '"in a file called",'%b, '"user.lib", '%d, '"in the current directory."
- )
-
-@
-\subsection{describeInputLibraryArgs}
-<<describeInputLibraryArgs>>=
-describeInputLibraryArgs() ==
- sayBrightly LIST (
- '%b,'")set compiler input add library",'%d,_
- '"is used to tell AXIOM to add", '%b, '"library", '%d, '"to",'%l,
- '"the front of the path which determines where compiled code is loaded from.",_
- '%l, '%b,'")set compiler input drop library",'%d,_
- '"is used to tell AXIOM to remove", '%b, '"library", '%d, '%l,_
- '"from this path."
- )
-
-@
-\section{expose}
-See the section expose in setvart.boot.pamphlet\cite{1}
-\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}
-<<exposeCode>>=
-<<setExpose>>
-<<setExposeAdd>>
-<<setExposeAddGroup>>
-<<setExposeAddConstr>>
-<<setExposeDrop>>
-<<setExposeDropGroup>>
-<<setExposeDropConstr>>
-@
-\subsection{setExpose}
-<<setExpose>>=
-setExpose arg ==
- arg = "%initialize%" => loadExposureGroupData()
- arg = "%display%" => '"..."
-
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- -- give msg about exposure groups
- displayExposedGroups()
- -- give msg about explicitly exposed constructors
- sayMSG '" "
- displayExposedConstructors()
- -- give msg about explicitly hidden constructors
- sayMSG '" "
- displayHiddenConstructors()
- -- give some more details
- sayMSG '" "
- sayKeyedMsg("S2IZ0049D",[namestring pathname ["INTERP","EXPOSED"]])
-
- arg is [fn,:fnargs] and (fn := selectOptionLC(fn,
- '(add drop initialize),NIL)) =>
- fn = 'add => setExposeAdd fnargs
- fn = 'drop => setExposeDrop fnargs
- fn = 'initialize => setExpose "%initialize%"
- NIL
- setExpose NIL
-
-@
-\subsection{setExposeAdd}
-<<setExposeAdd>>=
-setExposeAdd arg ==
- (null arg) =>
- centerAndHighlight ("The add Option",$LINELENGTH,specialChar 'hbar)
- -- give msg about exposure groups
- displayExposedGroups()
- -- give msg about explicitly exposed constructors
- sayMSG '" "
- displayExposedConstructors()
- sayMSG '" "
- sayKeyedMsg("S2IZ0049E",NIL)
- arg is [fn,:fnargs] and (fn := selectOptionLC(fn,
- '(group constructor),NIL)) =>
- fn = 'group => setExposeAddGroup fnargs
- fn = 'constructor => setExposeAddConstr fnargs
- NIL
- setExposeAdd NIL
-
-@
-\subsection{setExposeAddGroup}
-<<setExposeAddGroup>>=
-setExposeAddGroup arg ==
- (null arg) =>
- centerAndHighlight("The group Option",$LINELENGTH,specialChar 'hbar)
- -- give msg about exposure groups
- displayExposedGroups()
- sayMSG '" "
- sayKeyedMsg("S2IZ0049G",[namestring pathname ["INTERP","EXPOSED"]])
- sayMSG '" "
- sayAsManyPerLineAsPossible [object2String first x for x in
- $globalExposureGroupAlist]
- for x in arg repeat
- if PAIRP x then x := QCAR x
- x = 'all =>
- $localExposureData.0 :=[first x for x in $globalExposureGroupAlist]
- $localExposureData.1 :=NIL
- $localExposureData.2 :=NIL
- displayExposedGroups()
- sayMSG '" "
- displayExposedConstructors()
- sayMSG '" "
- displayHiddenConstructors()
- clearClams()
- null GETALIST($globalExposureGroupAlist,x) =>
- sayKeyedMsg("S2IZ0049H",[x])
- member(x,$localExposureData.0) =>
- sayKeyedMsg("S2IZ0049I",[x,$interpreterFrameName])
- $localExposureData.0 := MSORT cons(x,$localExposureData.0)
- sayKeyedMsg("S2IZ0049R",[x,$interpreterFrameName])
- clearClams()
-
-@
-\subsection{setExposeAddConstr}
-<<setExposeAddConstr>>=
-setExposeAddConstr arg ==
- (null arg) =>
- centerAndHighlight ("The constructor Option",$LINELENGTH,
- specialChar 'hbar)
- -- give msg about explicitly exposed constructors
- displayExposedConstructors()
- for x in arg repeat
- x := unabbrev x
- if PAIRP x then x := QCAR x
- -- if the constructor is known, we know what type it is
- null GETDATABASE(x,'CONSTRUCTORKIND) =>
- sayKeyedMsg("S2IZ0049J",[x])
- member(x,$localExposureData.1) =>
- sayKeyedMsg("S2IZ0049K",[x,$interpreterFrameName])
- -- if the constructor is explicitly hidden, then remove that
- if member(x,$localExposureData.2) then
- $localExposureData.2 := delete(x,$localExposureData.2)
- $localExposureData.1 := MSORT cons(x,$localExposureData.1)
- clearClams()
- sayKeyedMsg("S2IZ0049P",[x,$interpreterFrameName])
-
-@
-\subsection{setExposeDrop}
-<<setExposeDrop>>=
-setExposeDrop arg ==
- (null arg) =>
- centerAndHighlight ("The drop Option",$LINELENGTH,specialChar 'hbar)
- -- give msg about explicitly hidden constructors
- displayHiddenConstructors()
- sayMSG '" "
- sayKeyedMsg("S2IZ0049F",NIL)
- arg is [fn,:fnargs] and (fn := selectOptionLC(fn,
- '(group constructor),NIL)) =>
- fn = 'group => setExposeDropGroup fnargs
- fn = 'constructor => setExposeDropConstr fnargs
- NIL
- setExposeDrop NIL
-
-@
-\subsection{setExposeDropGroup}
-<<setExposeDropGroup>>=
-setExposeDropGroup arg ==
- (null arg) =>
- centerAndHighlight ("The group Option",$LINELENGTH,specialChar 'hbar)
- sayKeyedMsg("S2IZ0049L",NIL)
- sayMSG '" "
- displayExposedGroups()
- for x in arg repeat
- if PAIRP x then x := QCAR x
- x = 'all =>
- $localExposureData.0 := NIL
- $localExposureData.1 := NIL
- $localExposureData.2 := NIL
- displayExposedGroups()
- sayMSG '" "
- displayExposedConstructors()
- sayMSG '" "
- displayHiddenConstructors()
- clearClams()
- member(x,$localExposureData.0) =>
- $localExposureData.0 := delete(x,$localExposureData.0)
- clearClams()
- sayKeyedMsg("S2IZ0049S",[x,$interpreterFrameName])
- GETALIST($globalExposureGroupAlist,x) =>
- sayKeyedMsg("S2IZ0049I",[x,$interpreterFrameName])
- sayKeyedMsg("S2IZ0049H",[x])
-
-@
-\subsection{setExposeDropConstr}
-<<setExposeDropConstr>>=
-setExposeDropConstr arg ==
- (null arg) =>
- centerAndHighlight ("The constructor Option",$LINELENGTH,
- specialChar 'hbar)
- sayKeyedMsg("S2IZ0049N",NIL)
- sayMSG '" "
- displayExposedConstructors()
- sayMSG '" "
- displayHiddenConstructors()
- for x in arg repeat
- x := unabbrev x
- if PAIRP x then x := QCAR x
- -- if the constructor is known, we know what type it is
- null GETDATABASE(x,'CONSTRUCTORKIND) =>
- sayKeyedMsg("S2IZ0049J",[x])
- member(x,$localExposureData.2) =>
- sayKeyedMsg("S2IZ0049O",[x,$interpreterFrameName])
- if member(x,$localExposureData.1) then
- $localExposureData.1 := delete(x,$localExposureData.1)
- $localExposureData.2 := MSORT cons(x,$localExposureData.2)
- clearClams()
- sayKeyedMsg("S2IZ0049Q",[x,$interpreterFrameName])
-
-@
-\section{fortran calling}
-See the section calling in servart.boot.pamphlet.
-\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}
-<<fortrancallingCode>>=
-<<setFortTmpDir>>
-<<validateOutputDirectory>>
-<<describeSetFortTmpDir>>
-<<setFortDir>>
-<<describeSetFortDir>>
-<<setLinkerArgs>>
-<<describeSetLinkerArgs>>
-@
-\subsection{setFortTmpDir}
-<<setFortTmpDir>>=
-setFortTmpDir arg ==
-
- arg = "%initialize%" =>
- $fortranTmpDir := '"/tmp/"
-
- arg = "%display%" =>
- STRINGP $fortranTmpDir => $fortranTmpDir
- PNAME $fortranTmpDir
-
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- describeSetFortTmpDir()
-
- -- try to figure out what the argument is
-
- -- VM code - must be an accessed disk mode [mode]
- not (mode := validateOutputDirectory arg) =>
- sayBrightly ['" Sorry, but your argument(s)",:bright arg,
- '"is(are) not valid.",'%l]
- describeSetFortTmpDir()
- $fortranTmpDir := mode
-
-@
-\subsection{validateOutputDirectory}
-<<validateOutputDirectory>>=
-validateOutputDirectory x ==
- AND(PATHNAME_-DIRECTORY(PROBE_-FILE(CAR(x))), NOT PATHNAME_-NAME (PROBE_-FILE(CAR(x)))) =>
- CAR(x)
- NIL
-
-@
-\subsection{describeSetFortTmpDir}
-<<describeSetFortTmpDir>>=
-describeSetFortTmpDir() ==
- sayBrightly LIST (
- '%b,'")set fortran calling tempfile",'%d,_
- '" is used to tell AXIOM where",'%l,_
- '" to place intermediate FORTRAN data files . This must be the ",'%l,_
- '" name of a valid existing directory to which you have permission ",'%l,_
- '" to write (including the final slash).",'%l,'%l,_
- '" Syntax:",'%l,_
- '" )set fortran calling tempfile DIRECTORYNAME",'%l,'%l,_
- '" The current setting is",'%b,$fortranTmpDir,'%d)
-
-@
-\subsection{setFortDir}
-<<setFortDir>>=
-setFortDir arg ==
- arg = "%initialize%" =>
- $fortranDirectory := '"./"
-
- arg = "%display%" =>
- STRINGP $fortranDirectory => $fortranDirectory
- PNAME $fortranDirectory
-
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- describeSetFortDir()
-
- -- try to figure out what the argument is
-
- -- VM code - must be an accessed disk mode [mode]
- not (mode := validateOutputDirectory arg) =>
- sayBrightly ['" Sorry, but your argument(s)",:bright arg,
- '"is(are) not valid.",'%l]
- describeSetFortDir()
- $fortranDirectory := mode
-
-@
-\subsection{describeSetFortDir}
-<<describeSetFortDir>>=
-describeSetFortDir() ==
- sayBrightly LIST (
- '%b,'")set fortran calling directory",'%d,_
- '" is used to tell AXIOM where",'%l,_
- '" to place generated FORTRAN files. This must be the name ",'%l,_
- '" of a valid existing directory to which you have permission ",'%l,_
- '" to write (including the final slash).",'%l,'%l,_
- '" Syntax:",'%l,_
- '" )set fortran calling directory DIRECTORYNAME",'%l,'%l,_
- '" The current setting is",'%b,$fortranDirectory,'%d)
-
-@
-\subsection{setLinkerArgs}
-<<setLinkerArgs>>=
-setLinkerArgs arg ==
-
- arg = "%initialize%" =>
- $fortranLibraries := '"-lxlf"
- arg = "%display%" => object2String $fortranLibraries
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- describeSetLinkerArgs()
- LISTP(arg) and STRINGP(first arg) =>
- $fortranLibraries := first(arg)
- describeSetLinkerArgs()
-
-@
-\subsection{describeSetLinkerArgs}
-<<describeSetLinkerArgs>>=
-describeSetLinkerArgs() ==
- sayBrightly LIST (
- '%b,'")set fortran calling linkerargs",'%d,_
- '" is used to pass arguments to the linker",'%l,_
- '" when using ",'%b,'"mkFort",'%d,_
- '" to create functions which call Fortran code.",'%l,_
- '" For example, it might give a list of libraries to be searched,",'%l,_
- '" and their locations.",'%l,_
- '" The string is passed verbatim, so must be the correct syntax for",'%l,_
- '" the particular linker being used.",'%l,'%l,_
- '" Example: )set fortran calling linker _"-lxlf_"",'%l,'%l,_
- '" The current setting is",'%b,$fortranLibraries,'%d)
-
-@
-\section{functions}
-See the section functions in setvart.boot.pamphlet\cite{1}
-\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}
-<<functionsCode>>=
-<<setFunctionsCache>>
-<<countCache>>
-<<describeSetFunctionsCache>>
-<<sayAllCacheCounts>>
-<<sayCacheCount>>
-@
-\subsection{setFunctionsCache}
-<<setFunctionsCache>>=
-setFunctionsCache arg ==
- $options : local := NIL
- arg = "%initialize%" =>
- $cacheCount := 0
- $cacheAlist := NIL
- arg = "%display%" =>
- null $cacheAlist => object2String $cacheCount
- '"..."
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- describeSetFunctionsCache()
- TERPRI()
- sayAllCacheCounts()
- n := first arg
- (n ^= 'all) and ((not FIXP n) or (n < 0)) =>
- sayMessage ['"Your value of",:bright n,'"is invalid because ..."]
- describeSetFunctionsCache()
- terminateSystemCommand()
- if (rest arg) then $options := [['vars,:rest arg]]
- countCache n
-
-@
-\subsection{countCache}
-<<countCache>>=
-countCache n ==
- $options =>
- $options is [["vars",:l]] =>
- for x in l repeat
- NULL IDENTP x => sayKeyedMsg("S2IF0007",[x])
- $cacheAlist:= insertAlist(x,n,$cacheAlist)
- cacheCountName:= INTERNL(x,'";COUNT")
- SET(cacheCountName,n)
- sayCacheCount(x,n)
- optionError(CAAR $options,nil)
- sayCacheCount(nil,$cacheCount:= n)
-
-@
-\subsection{describeSetFunctionsCache}
-<<describeSetFunctionsCache>>=
-describeSetFunctionsCache() ==
- sayBrightly LIST(
- '%b,'")set functions cache",'%d,'"is used to tell AXIOM how many",'%l,_
- '" values computed by interpreter functions should be saved. This can save ",'%l, _
- '" quite a bit of time in recursive functions, though one must consider that",'%l,_
- '" the cached values will take up (perhaps valuable) room in the workspace.",'%l,'%l,_
- '" The value given after",'%b,'"cache",'%d,'"must either be the",_
- '" word",'%b,'"all",'%d,'"or a positive",'%l,_
- '" integer. This may be followed by any number of function names whose cache",'%l,_
- '" sizes you wish to so set. If no functions are given, the default cache",'%l,_
- '" size is set.",'%l,'" Examples:",_
- '" )set fun cache all )set fun cache 10 f g Legendre")
-
-@
-\subsection{sayAllCacheCounts}
-<<sayAllCacheCounts>>=
-sayAllCacheCounts () ==
- sayCacheCount(nil,$cacheCount)
- $cacheAlist =>
- TERPRI()
--- SAY '" However,"
- for [x,:n] in $cacheAlist | n ^= $cacheCount repeat sayCacheCount(x,n)
-
-@
-\subsection{sayCacheCount}
-<<sayCacheCount>>=
-sayCacheCount(fn,n) ==
- prefix:=
- fn => ["function",:bright linearFormatName fn]
- n = 0 => ["interpreter functions "]
- ["In general, interpreter functions "]
- n = 0 =>
- fn =>
- sayBrightly ['" Caching for ",:prefix,
- '"is turned off"]
- sayBrightly '" In general, functions will cache no returned values."
- phrase:=
- n="all" => [:bright "all","values."]
- n=1 => [" only the last value."]
- [" the last",:bright n,"values."]
- sayBrightly ['" ",:prefix,'"will cache",:phrase]
-
-@
-\section{history}
-See the section history in setvart.boot.pamphlet\cite{1}
-\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}
-<<historyCode>>=
-<<setHistory>>
-@
-\subsection{setHistory}
-<<setHistory>>=
-setHistory arg ==
- -- this is just a front end for the history functions
- arg = "%initialize%" => nil
-
- current := object2String translateTrueFalse2YesNo $HiFiAccess
- arg = "%display%" => current
-
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- sayMessage ['" The",:bright '"history",'"option",
- '" may be followed by any one of the following:"]
- for name in '("on" "off" "yes" "no") repeat
- if name = current
- then sayBrightly ['" ->",:bright name]
- else sayBrightly ['" ",name]
- TERPRI()
- sayBrightly '" The current setting is indicated within the list."
- sayBrightly [:bright '"yes",'"and",:bright '"no",
- '"have the same effect as",:bright '"on",'"and",:bright '"off",
- '"respectively."]
- if $useInternalHistoryTable
- then wh := '"memory"
- else wh := '"a file"
- sayBrightly ['%l,'" When the history facility is active, the data",
- '" is kept in ",wh,'"."]
- sayMessage ['" Issue",:bright '")help history",
- '"for more information."]
-
- arg is [fn] and
- (fn := DOWNCASE(fn)) in '(y n ye yes no on of off) =>
- $options := [[fn]]
- historySpad2Cmd()
- setHistory NIL
-
-@
-\section{kernel}
-See the section kernel in setvart.boot.pamphlet\cite{1}
-\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}
-<<kernelCode>>=
-<<describeProtectedSymbolsWarning>>
-<<protectedSymbolsWarning>>
-<<describeProtectSymbols>>
-<<protectSymbols>>
-@
-\subsection{describeProtectedSymbolsWarning}
-<<describeProtectedSymbolsWarning>>=
-describeProtectedSymbolsWarning() ==
- sayBrightly LIST(
- '"Some AXIOM library functions are compiled into the kernel for efficiency",_
- '%l,'"reasons. To prevent them being re-defined when loaded from a library",_
- '%l,'"they are specially protected. If a user wishes to know when an attempt",_
- '%l,'"is made to re-define such a function, he or she should issue the command:",_
- '%l,'" )set kernel warn on",_
- '%l,'"To restore the default behaviour, he or she should issue the command:",_
- '%l,'" )set kernel warn off")
-
-@
-\subsection{protectedSymbolsWarning}
-<<protectedSymbolsWarning>>=
-protectedSymbolsWarning arg ==
- arg = "%initialize%" => PROTECTED_-SYMBOL_-WARN(false)
- arg = "%display%" =>
- v := PROTECTED_-SYMBOL_-WARN(true)
- PROTECTED_-SYMBOL_-WARN(v)
- v => '"on"
- '"off"
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- describeProtectedSymbolsWarning()
- PROTECTED_-SYMBOL_-WARN translateYesNo2TrueFalse first arg
-
-@
-\subsection{describeProtectSymbols}
-<<describeProtectSymbols>>=
-describeProtectSymbols() ==
- sayBrightly LIST(
- '"Some AXIOM library functions are compiled into the kernel for efficiency",_
- '%l,'"reasons. To prevent them being re-defined when loaded from a library",_
- '%l,'"they are specially protected. If a user wishes to re-define these",_
- '%l,'"functions, he or she should issue the command:",_
- '%l,'" )set kernel protect off",_
- '%l,'"To restore the default behaviour, he or she should issue the command:",_
- '%l,'" )set kernel protect on")
-
-@
-\subsection{protectSymbols}
-<<protectSymbols>>=
-protectSymbols arg ==
- arg = "%initialize%" => PROTECT_-SYMBOLS(true)
- arg = "%display%" =>
- v := PROTECT_-SYMBOLS(true)
- PROTECT_-SYMBOLS(v)
- v => '"on"
- '"off"
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- describeProtectSymbols()
- PROTECT_-SYMBOLS translateYesNo2TrueFalse first arg
-
-@
-\section{naglink}
-See the section naglink in setvart.boot.pamphlet\cite{1}
-\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}
-<<naglinkCode>>=
-<<setNagHost>>
-<<describeSetNagHost>>
-<<setFortPers>>
-<<describeFortPersistence>>
-@
-\subsection{setNagHost}
-<<setNagHost>>=
-setNagHost arg ==
- arg = "%initialize%" =>
- $nagHost := '"localhost"
- arg = "%display%" =>
- object2String $nagHost
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- describeSetNagHost()
- $nagHost := object2String arg
-
-@
-\subsection{describeSetNagHost}
-<<describeSetNagHost>>=
-describeSetNagHost() ==
- sayBrightly LIST (
- '%b,'")set naglink host",'%d,_
- '"is used to tell AXIOM which host to contact for",'%l,_
- '" a NAGLink request. An Internet address should be supplied. The host",'%l,_
- '" specified must be running the NAGLink daemon.",'%l,'%l,_
- '" The current setting is",'%b,$nagHost,'%d)
-
-@
-\subsection{setFortPers}
-<<setFortPers>>=
-setFortPers arg ==
- arg = "%initialize%" =>
- $fortPersistence := 1
- arg = "%display%" =>
- $fortPersistence
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- describeFortPersistence()
- n := first arg
- ((not FIXP n) or (n < 0)) =>
- sayMessage ['"Your value of",:bright n,'"is invalid because ..."]
- describeFortPersistence()
- terminateSystemCommand()
- $fortPersistence := first(arg)
-
-@
-\subsection{describeFortPersistence}
-<<describeFortPersistence>>=
-describeFortPersistence() ==
- sayBrightly LIST (
- '%b,'")set naglink persistence",'%d,_
- '"is used to tell the ",'%b,"nagd",'%d," daemon how many ASP",'%l,_
- '" source and object files to keep around in case you reuse them. This helps",'%l,_
- '" to avoid needless recompilations. The number specified should be a ",'%l,_
- '" non-negative integer.", '%l,'%l,_
- '" The current setting is",'%b,$fortPersistence,'%d)
-
-@
-\section{output algebra}
-See the subsection output algebra in setvart.boot.pamphlet\cite{1}
-\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}
-<<outputalgebraCode>>=
-<<setOutputAlgebra>>
-<<describeSetOutputAlgebra>>
-@
-\subsection{setOutputAlgebra}
-<<setOutputAlgebra>>=
-setOutputAlgebra arg ==
- arg = "%initialize%" =>
- $algebraOutputStream :=
- DEFIOSTREAM('((MODE . OUTPUT) (DEVICE . CONSOLE)),255,0)
- $algebraOutputFile := '"CONSOLE"
- $algebraFormat := true
-
- arg = "%display%" =>
- if $algebraFormat then label := '"On:" else label := '"Off:"
- STRCONC(label,$algebraOutputFile)
-
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- describeSetOutputAlgebra()
-
- -- try to figure out what the argument is
-
- if arg is [fn] and
- fn in '(Y N YE YES NO O ON OF OFF CONSOLE y n ye yes no o on of off console)
- then 'ok
- else arg := [fn,'spout]
-
- arg is [fn] =>
- UPCASE(fn) in '(Y N YE O OF) =>
- sayKeyedMsg("S2IV0002",'(algebra algebra))
- UPCASE(fn) in '(NO OFF) => $algebraFormat := NIL
- UPCASE(fn) in '(YES ON) => $algebraFormat := true
- UPCASE(fn) = 'CONSOLE =>
- SHUT $algebraOutputStream
- $algebraOutputStream :=
- DEFIOSTREAM('((MODE . OUTPUT) (DEVICE . CONSOLE)),255,0)
- $algebraOutputFile := '"CONSOLE"
-
- (arg is [fn,ft]) or (arg is [fn,ft,fm]) => -- aha, a file
- if (ptype := pathnameType fn) then
- fn := STRCONC(pathnameDirectory fn,pathnameName fn)
- ft := ptype
- if null fm then fm := 'A
- filename := $FILEP(fn,ft,fm)
- null filename =>
- sayKeyedMsg("S2IV0003",[fn,ft,fm])
- (testStream := MAKE_-OUTSTREAM(filename,255,0)) =>
- SHUT $algebraOutputStream
- $algebraOutputStream := testStream
- $algebraOutputFile := object2String filename
- sayKeyedMsg("S2IV0004",['"Algebra",$algebraOutputFile])
- sayKeyedMsg("S2IV0003",[fn,ft,fm])
-
- sayKeyedMsg("S2IV0005",NIL)
- describeSetOutputAlgebra()
-
-@
-\subsection{describeSetOutputAlgebra}
-<<describeSetOutputAlgebra>>=
-describeSetOutputAlgebra() ==
- sayBrightly LIST ('%b,'")set output algebra",'%d,_
- '"is used to tell AXIOM to turn algebra-style output",'%l,_
- '"printing on and off, and where to place the output. By default, the",'%l,_
- '"destination for the output is the screen but printing is turned off.",'%l,_
- '%l,_
- '"Syntax: )set output algebra <arg>",'%l,_
- '" where arg can be one of",'%l,_
- '" on turn algebra printing on (default state)",'%l,_
- '" off turn algebra printing off",'%l,_
- '" console send algebra output to screen (default state)",'%l,_
- '" fp<.fe> send algebra output to file with file prefix fp",'%l,_
- '" and file extension .fe. If not given, .fe defaults to .spout.",'%l,
- '%l,_
- '"If you wish to send the output to a file, you may need to issue this command",'%l,_
- '"twice: once with",'%b,'"on",'%d,'"and once with the file name. For example, to send",'%l,_
- '"algebra output to the file",'%b,'"polymer.spout,",'%d,'"issue the two commands",'%l,_
- '%l,_
- '" )set output algebra on",'%l,_
- '" )set output algebra polymer",'%l,_
- '%l,_
- '"The output is placed in the directory from which you invoked AXIOM or",'%l,_
- '"the one you set with the )cd system command.",'%l,_
- '"The current setting is: ",'%b,setOutputAlgebra "%display%",'%d)
-
-
-@
-\section{output characters}
-See the subsection output characters in setvart.boot.pamphlet\cite{1}
-\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}
-<<outputcharactersCode>>=
-<<setOutputCharacters>>
-@
-\subsection{setOutputCharacters}
-<<setOutputCharacters>>=
-setOutputCharacters arg ==
- -- this sets the special character set
- arg = "%initialize%" =>
- $specialCharacters := $plainRTspecialCharacters
-
- current :=
- $specialCharacters = $RTspecialCharacters => '"default"
- $specialCharacters = $plainRTspecialCharacters => '"plain"
- '"unknown"
- arg = "%display%" => current
-
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- sayMessage ['" The",:bright '"characters",'"option",
- '" may be followed by any one of the following:"]
- for name in '("default" "plain") repeat
- if name = current
- then sayBrightly ['" ->",:bright name]
- else sayBrightly ['" ",name]
- TERPRI()
- sayBrightly '" The current setting is indicated within the list. This option determines "
- sayBrightly '" the special characters used for algebraic output. This is what the"
- sayBrightly '" current choice of special characters looks like:"
- l := NIL
- for [char,:.] in $specialCharacterAlist repeat
- s := STRCONC('" ",PNAME char,'" is shown as ",
- PNAME specialChar(char))
- l := cons(s,l)
- sayAsManyPerLineAsPossible reverse l
-
- arg is [fn] and (fn := DOWNCASE(fn)) =>
- fn = 'default => $specialCharacters := $RTspecialCharacters
- fn = 'plain => $specialCharacters := $plainRTspecialCharacters
- setOutputCharacters NIL
- setOutputCharacters NIL
-
-@
-\section{output fortran}
-See the subsection output fortran in setvart.boot.pamphlet\cite{1}
-\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}
-<<outputfortranCode>>=
-<<makeStream>>
-<<setOutputFortran>>
-<<describeSetOutputFortran>>
-@
-\subsection{makeStream}
-<<makeStream>>=
-makeStream(append,filename,i,j) ==
- append => MAKE_-APPENDSTREAM(filename,i,j)
- MAKE_-OUTSTREAM(filename,i,j)
-
-@
-\subsection{setOutputFortran}
-<<setOutputFortran>>=
-setOutputFortran arg ==
- arg = "%initialize%" =>
- $fortranOutputStream :=
- DEFIOSTREAM('((MODE . OUTPUT) (DEVICE . CONSOLE)),255,0)
- $fortranOutputFile := '"CONSOLE"
- $fortranFormat := NIL
-
- arg = "%display%" =>
- if $fortranFormat then label := '"On:" else label := '"Off:"
- STRCONC(label,$fortranOutputFile)
-
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- describeSetOutputFortran()
-
- -- try to figure out what the argument is
-
- append := NIL
- quiet := NIL
- while LISTP arg and UPCASE(first arg) in '(APPEND QUIET) repeat
- if UPCASE first(arg) = 'APPEND then append := true
- else if UPCASE first(arg) = 'QUIET then quiet := true
- arg := rest(arg)
-
- if arg is [fn] and
- fn in '(Y N YE YES NO O ON OF OFF CONSOLE y n ye yes no o on of off console)
- then 'ok
- else arg := [fn,'sfort]
-
- arg is [fn] =>
- UPCASE(fn) in '(Y N YE O OF) =>
- sayKeyedMsg("S2IV0002",'(FORTRAN fortran))
- UPCASE(fn) in '(NO OFF) => $fortranFormat := NIL
- UPCASE(fn) in '(YES ON) => $fortranFormat := true
- UPCASE(fn) = 'CONSOLE =>
- SHUT $fortranOutputStream
- $fortranOutputStream :=
- DEFIOSTREAM('((MODE . OUTPUT) (DEVICE . CONSOLE)),255,0)
- $fortranOutputFile := '"CONSOLE"
-
- (arg is [fn,ft]) or (arg is [fn,ft,fm]) => -- aha, a file
- if (ptype := pathnameType fn) then
- fn := STRCONC(pathnameDirectory fn,pathnameName fn)
- ft := ptype
- if null fm then fm := 'A
- filename := $FILEP(fn,ft,fm)
- null filename => sayKeyedMsg("S2IV0003",[fn,ft,fm])
- (testStream := makeStream(append,filename,255,0)) =>
- SHUT $fortranOutputStream
- $fortranOutputStream := testStream
- $fortranOutputFile := object2String filename
- if null quiet then sayKeyedMsg("S2IV0004",['FORTRAN,$fortranOutputFile])
- if null quiet then sayKeyedMsg("S2IV0003",[fn,ft,fm])
- if null quiet then sayKeyedMsg("S2IV0005",NIL)
- describeSetOutputFortran()
-
-@
-\subsection{describeSetOutputFortran}
-<<describeSetOutputFortran>>=
-describeSetOutputFortran() ==
- sayBrightly LIST ('%b,'")set output fortran",'%d,_
- '"is used to tell AXIOM to turn FORTRAN-style output",'%l,_
- '"printing on and off, and where to place the output. By default, the",'%l,_
- '"destination for the output is the screen but printing is turned off.",'%l,_
- '%l,_
- '"Also See: )set fortran",'%l,
- '%l,_
- '"Syntax: )set output fortran <arg>",'%l,_
- '" where arg can be one of",'%l,_
- '" on turn FORTRAN printing on",'%l,_
- '" off turn FORTRAN printing off (default state)",'%l,_
- '" console send FORTRAN output to screen (default state)",'%l,_
- '" fp<.fe> send FORTRAN output to file with file prefix fp and file",'%l,_
- '" extension .fe. If not given, .fe defaults to .sfort.",'%l,
- '%l,_
- '"If you wish to send the output to a file, you must issue this command",'%l,_
- '"twice: once with",'%b,'"on",'%d,'"and once with the file name. For example, to send",'%l,_
- '"FORTRAN output to the file",'%b,'"polymer.sfort,",'%d,'"issue the two commands",'%l,_
- '%l,_
- '" )set output fortran on",'%l,_
- '" )set output fortran polymer",'%l,_
- '%l,_
- '"The output is placed in the directory from which you invoked AXIOM or",'%l,_
- '"the one you set with the )cd system command.",'%l,_
- '"The current setting is: ",'%b,setOutputFortran "%display%",'%d)
-
-@
-\section{output openmath}
-See the subsection output openmath in setvart.boot.pamphlet\cite{1}
-\begin{verbatim}
------------------- The openmath Option ------------------------
-
- Description: create output in OpenMath 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 .som.
-
-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.som,
-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
-<<outputopenmathCode>>=
-<<setOutputOpenMath>>
-<<describeSetOutputOpenMath>>
-@
-\subsection{setOutputOpenMath}
-<<setOutputOpenMath>>=
-setOutputOpenMath arg ==
- arg = "%initialize%" =>
- $openMathOutputStream :=
- DEFIOSTREAM('((MODE . OUTPUT) (DEVICE . CONSOLE)),255,0)
- $openMathOutputFile := '"CONSOLE"
- $openMathFormat := NIL
-
- arg = "%display%" =>
- if $openMathFormat then label := '"On:" else label := '"Off:"
- STRCONC(label,$openMathOutputFile)
-
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- describeSetOutputOpenMath()
-
- -- try to figure out what the argument is
-
- if arg is [fn] and
- fn in '(Y N YE YES NO O ON OF OFF CONSOLE y n ye yes no o on of off console)
- then 'ok
- else arg := [fn,'som]
-
- arg is [fn] =>
- UPCASE(fn) in '(Y N YE O OF) =>
- sayKeyedMsg("S2IV0002",'(OpenMath openmath))
- UPCASE(fn) in '(NO OFF) => $openMathFormat := NIL
- UPCASE(fn) in '(YES ON) => $openMathFormat := true
- UPCASE(fn) = 'CONSOLE =>
- SHUT $openMathOutputStream
- $openMathOutputStream :=
- DEFIOSTREAM('((MODE . OUTPUT) (DEVICE . CONSOLE)),255,0)
- $openMathOutputFile := '"CONSOLE"
-
- (arg is [fn,ft]) or (arg is [fn,ft,fm]) => -- aha, a file
- if (ptype := pathnameType fn) then
- fn := STRCONC(pathnameDirectory fn,pathnameName fn)
- ft := ptype
- if null fm then fm := 'A
- filename := $FILEP(fn,ft,fm)
- null filename =>
- sayKeyedMsg("S2IV0003",[fn,ft,fm])
- (testStream := MAKE_-OUTSTREAM(filename,255,0)) =>
- SHUT $openMathOutputStream
- $openMathOutputStream := testStream
- $openMathOutputFile := object2String filename
- sayKeyedMsg("S2IV0004",['"OpenMath",$openMathOutputFile])
- sayKeyedMsg("S2IV0003",[fn,ft,fm])
-
- sayKeyedMsg("S2IV0005",NIL)
- describeSetOutputOpenMath()
-
-@
-\subsection{describeSetOutputOpenMath}
-<<describeSetOutputOpenMath>>=
-describeSetOutputOpenMath() ==
- sayBrightly LIST ('%b,'")set output openmath",'%d,_
- '"is used to tell AXIOM to turn OpenMath output",'%l,_
- '"printing on and off, and where to place the output. By default, the",'%l,_
- '"destination for the output is the screen but printing is turned off.",'%l,_
- '%l,_
- '"Syntax: )set output openmath <arg>",'%l,_
- '" where arg can be one of",'%l,_
- '" on turn OpenMath printing on",'%l,_
- '" off turn OpenMath printing off (default state)",'%l,_
- '" console send OpenMath output to screen (default state)",'%l,_
- '" fp<.fe> send OpenMath output to file with file prefix fp and file",'%l,_
- '" extension .fe. If not given, .fe defaults to .som.",'%l,
- '%l,_
- '"If you wish to send the output to a file, you must issue this command",'%l,_
- '"twice: once with",'%b,'"on",'%d,'"and once with the file name. For example, to send",'%l,_
- '"OpenMath output to the file",'%b,'"polymer.som,",'%d,'"issue the two commands",'%l,_
- '%l,_
- '" )set output openmath on",'%l,_
- '" )set output openmath polymer",'%l,_
- '%l,_
- '"The output is placed in the directory from which you invoked AXIOM or",'%l,_
- '"the one you set with the )cd system command.",'%l,_
- '"The current setting is: ",'%b,setOutputOpenMath "%display%",'%d)
-
-@
-\section{output script}
-See the subsection output script in setvart.boot.pamphlet\cite{1}
-\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}
-<<outputscriptCode>>=
-<<setOutputFormula>>
-<<describeSetOutputFormula>>
-@
-\subsection{setOutputFormula}
-<<setOutputFormula>>=
-setOutputFormula arg ==
- arg = "%initialize%" =>
- $formulaOutputStream :=
- DEFIOSTREAM('((MODE . OUTPUT) (DEVICE . CONSOLE)),255,0)
- $formulaOutputFile := '"CONSOLE"
- $formulaFormat := NIL
-
- arg = "%display%" =>
- if $formulaFormat then label := '"On:" else label := '"Off:"
- STRCONC(label,$formulaOutputFile)
-
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- describeSetOutputFormula()
-
- -- try to figure out what the argument is
-
- if arg is [fn] and
- fn in '(Y N YE YES NO O ON OF OFF CONSOLE y n ye yes no o on of off console)
- then 'ok
- else arg := [fn,'sform]
-
- arg is [fn] =>
- UPCASE(fn) in '(Y N YE O OF) =>
- sayKeyedMsg("S2IV0002",'(script script))
- UPCASE(fn) in '(NO OFF) => $formulaFormat := NIL
- UPCASE(fn) in '(YES ON) => $formulaFormat := true
- UPCASE(fn) = 'CONSOLE =>
- SHUT $formulaOutputStream
- $formulaOutputStream :=
- DEFIOSTREAM('((MODE . OUTPUT) (DEVICE . CONSOLE)),255,0)
- $formulaOutputFile := '"CONSOLE"
-
- (arg is [fn,ft]) or (arg is [fn,ft,fm]) => -- aha, a file
- if (ptype := pathnameType fn) then
- fn := STRCONC(pathnameDirectory fn,pathnameName fn)
- ft := ptype
- if null fm then fm := 'A
- filename := $FILEP(fn,ft,fm)
- null filename =>
- sayKeyedMsg("S2IV0003",[fn,ft,fm])
- (testStream := MAKE_-OUTSTREAM(filename,255,0)) =>
- SHUT $formulaOutputStream
- $formulaOutputStream := testStream
- $formulaOutputFile := object2String filename
- sayKeyedMsg("S2IV0004",['"IBM Script formula",$formulaOutputFile])
- sayKeyedMsg("S2IV0003",[fn,ft,fm])
-
- sayKeyedMsg("S2IV0005",NIL)
- describeSetOutputFormula()
-
-@
-\subsection{describeSetOutputFormula}
-<<describeSetOutputFormula>>=
-describeSetOutputFormula() ==
- sayBrightly LIST ('%b,'")set output script",'%d,_
- '"is used to tell AXIOM to turn IBM Script formula-style",'%l,_
- '"output printing on and off, and where to place the output. By default, the",'%l,_
- '"destination for the output is the screen but printing is turned off.",'%l,_
- '%l,_
- '"Syntax: )set output script <arg>",'%l,_
- '" where arg can be one of",'%l,_
- '" on turn IBM Script formula printing on",'%l,_
- '" off turn IBM Script formula printing off (default state)",'%l,_
- '" console send IBM Script formula output to screen (default state)",'%l,_
- '" fp<.fe> send IBM Script formula output to file with file prefix fp",'%l,_
- '" and file extension .fe. If not given, .fe defaults to .sform.",'%l,
- '%l,_
- '"If you wish to send the output to a file, you must issue this command",'%l,_
- '"twice: once with",'%b,'"on",'%d,'"and once with the file name. For example, to send",'%l,_
- '"IBM Script formula output to the file",'%b,'"polymer.sform,",'%d,'"issue the two commands",'%l,_
- '%l,_
- '" )set output script on",'%l,_
- '" )set output script polymer",'%l,_
- '%l,_
- '"The output is placed in the directory from which you invoked AXIOM or",'%l,_
- '"the one you set with the )cd system command.",'%l,_
- '"The current setting is: ",'%b,setOutputFormula "%display%",'%d)
-
-@
-\section{output tex}
-See the section tex in setvart.boot.pamphlet\cite{1}
-\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}
-<<outputtexCode>>=
-<<setOutputTex>>
-<<describeSetOutputTex>>
-@
-\subsection{setOutputTex}
-<<setOutputTex>>=
-setOutputTex arg ==
- arg = "%initialize%" =>
- $texOutputStream :=
- DEFIOSTREAM('((MODE . OUTPUT) (DEVICE . CONSOLE)),255,0)
- $texOutputFile := '"CONSOLE"
- $texFormat := NIL
-
- arg = "%display%" =>
- if $texFormat then label := '"On:" else label := '"Off:"
- STRCONC(label,$texOutputFile)
-
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- describeSetOutputTex()
-
- -- try to figure out what the argument is
-
- if arg is [fn] and
- fn in '(Y N YE YES NO O ON OF OFF CONSOLE y n ye yes no o on of off console)
- then 'ok
- else arg := [fn,'stex]
-
- arg is [fn] =>
- UPCASE(fn) in '(Y N YE O OF) =>
- sayKeyedMsg("S2IV0002",'(TeX tex))
- UPCASE(fn) in '(NO OFF) => $texFormat := NIL
- UPCASE(fn) in '(YES ON) => $texFormat := true
- UPCASE(fn) = 'CONSOLE =>
- SHUT $texOutputStream
- $texOutputStream :=
- DEFIOSTREAM('((MODE . OUTPUT) (DEVICE . CONSOLE)),255,0)
- $texOutputFile := '"CONSOLE"
-
- (arg is [fn,ft]) or (arg is [fn,ft,fm]) => -- aha, a file
- if (ptype := pathnameType fn) then
- fn := STRCONC(pathnameDirectory fn,pathnameName fn)
- ft := ptype
- if null fm then fm := 'A
- filename := $FILEP(fn,ft,fm)
- null filename =>
- sayKeyedMsg("S2IV0003",[fn,ft,fm])
- (testStream := MAKE_-OUTSTREAM(filename,255,0)) =>
- SHUT $texOutputStream
- $texOutputStream := testStream
- $texOutputFile := object2String filename
- sayKeyedMsg("S2IV0004",['"TeX",$texOutputFile])
- sayKeyedMsg("S2IV0003",[fn,ft,fm])
-
- sayKeyedMsg("S2IV0005",NIL)
- describeSetOutputTex()
-
-@
-\subsection{describeSetOutputTex}
-<<describeSetOutputTex>>=
-describeSetOutputTex() ==
- sayBrightly LIST ('%b,'")set output tex",'%d,_
- '"is used to tell AXIOM to turn TeX-style output",'%l,_
- '"printing on and off, and where to place the output. By default, the",'%l,_
- '"destination for the output is the screen but printing is turned off.",'%l,_
- '%l,_
- '"Syntax: )set output tex <arg>",'%l,_
- '" where arg can be one of",'%l,_
- '" on turn TeX printing on",'%l,_
- '" off turn TeX printing off (default state)",'%l,_
- '" console send TeX output to screen (default state)",'%l,_
- '" fp<.fe> send TeX output to file with file prefix fp and file",'%l,_
- '" extension .fe. If not given, .fe defaults to .stex.",'%l,
- '%l,_
- '"If you wish to send the output to a file, you must issue this command",'%l,_
- '"twice: once with",'%b,'"on",'%d,'"and once with the file name. For example, to send",'%l,_
- '"TeX output to the file",'%b,'"polymer.stex,",'%d,'"issue the two commands",'%l,_
- '%l,_
- '" )set output tex on",'%l,_
- '" )set output tex polymer",'%l,_
- '%l,_
- '"The output is placed in the directory from which you invoked AXIOM or",'%l,_
- '"the one you set with the )cd system command.",'%l,_
- '"The current setting is: ",'%b,setOutputTex "%display%",'%d)
-
-@
-\section{streams calculate}
-See the section streams in setvart.boot.pamphlet\cite{1}
-\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}
-<<streamscalculateCode>>=
-<<setStreamsCalculate>>
-<<describeSetStreamsCalculate>>
-@
-\subsection{setStreamsCalculate}
-<<setStreamsCalculate>>=
-setStreamsCalculate arg ==
- arg = "%initialize%" =>
- $streamCount := 10
- arg = "%display%" =>
- object2String $streamCount
- (null arg) or (arg = "%describe%") or (first arg = '_?) =>
- describeSetStreamsCalculate()
- n := first arg
- (n ^= 'all) and ((not FIXP n) or (n < 0)) =>
- sayMessage ['"Your value of",:bright n,'"is invalid because ..."]
- describeSetStreamsCalculate()
- terminateSystemCommand()
- $streamCount := n
-
-@
-\subsection{describeSetStreamsCalculate}
-<<describeSetStreamsCalculate>>=
-describeSetStreamsCalculate() == sayKeyedMsg("S2IV0001",[$streamCount])
-
-@
-\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>>
-
-)package "BOOT"
-
-<<toplevelsetfunctions>>
-<<compilerCode>>
-<<exposeCode>>
-<<fortrancallingCode>>
-<<functionsCode>>
-<<historyCode>>
-<<kernelCode>>
-<<naglinkCode>>
-<<outputalgebraCode>>
-<<outputcharactersCode>>
-<<outputfortranCode>>
-<<outputopenmathCode>>
-<<outputscriptCode>>
-<<outputtexCode>>
-<<streamscalculateCode>>
-@
-
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} setvart.boot.pamphlet
-\end{thebibliography}
-\end{document}