summaryrefslogtreecommitdiff
path: root/doc/UsersGuide
diff options
context:
space:
mode:
authortradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac>2002-01-02 15:39:35 +0000
committertradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac>2002-01-02 15:39:35 +0000
commit9e21868f0a126494b988986ea101734e7e07e23e (patch)
tree3a6d78c7e9ed41c975c4221d38bab7dcabdeb4ba /doc/UsersGuide
parenta2a57e189b6f7af4b38f724733f095e753fedcde (diff)
Point out that the keywords in a schedule.ccl file are significant with their
first four letters. This closes PR Documentation-86. git-svn-id: http://svn.cactuscode.org/flesh/trunk@2556 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'doc/UsersGuide')
-rw-r--r--doc/UsersGuide/Appendices.tex279
1 files changed, 141 insertions, 138 deletions
diff --git a/doc/UsersGuide/Appendices.tex b/doc/UsersGuide/Appendices.tex
index eaa41a24..862b928b 100644
--- a/doc/UsersGuide/Appendices.tex
+++ b/doc/UsersGuide/Appendices.tex
@@ -2,10 +2,10 @@
% @file Appendices.tex
% @date 27 Jan 1999
% @author Tom Goodale, Gabrielle Allen, Gerd Lanferman
-% @desc
+% @desc
% Appendices for the Cactus User's Guide
-% @enddesc
-% @version $Header$
+% @enddesc
+% @version $Header$
% @@*/
\begin{cactuspart}{6}{Appendices}{$RCSfile$}{$Revision$}
\renewcommand{\thepage}{\Alph{part}\arabic{page}}
@@ -16,50 +16,50 @@
\begin{Lentry}
\item[{\tt arrangement}] A collection of thorns.
-\item[{\tt autoconf}] A GNU program which builds a configuration
+\item[{\tt autoconf}] A GNU program which builds a configuration
script which can be used to make a Makefile.
\item[{\tt Cactus}] A green fleshy plant with lots of thorns, usually painful if touched.
\item[{\tt CCTK}] Cactus Computational Tool Kit (The Cactus flesh and
computational thorns).
\item[{\tt CCL}] The {\tt Cactus Configuration Language}, this is the language
that the thorn configuration files are written in.
-\item[{\tt configuration}]
+\item[{\tt configuration}]
\item[{\tt checkout}] Get a copy of the code or thorns from CVS.
\item[{\tt checkpointing}] Save the entire state of a run to file so that it can be restarted at a later time.
-\item[{\tt convergence}]
+\item[{\tt convergence}]
\item[{\tt CST}] This stands for Cactus Specification Tool, which is
the perl scripts which parse the thorns' configuration files (those
that have a \texttt{.ccl} extension).
\item[{\tt CVS}] The {\em "Concurrent Versioning System"} is the
favoured distribution system for Cactus and can be
- downloaded from your favorite GNU site.
+ downloaded from your favorite GNU site.
\item[{\tt driver}] A thorn which creates and handles grid hierachies.
-\item[{\tt flesh}] The routines which hold all the thorns together, this
+\item[{\tt flesh}] The routines which hold all the thorns together, this
is what you get if you check out {\tt Cactus} from our CVS repository.
-\item[{\tt friend}]
+\item[{\tt friend}]
\item[{\tt GF}] Shorthand for a {\tt grid function}.
-\item[{\tt gmake}]
+\item[{\tt gmake}]
\item[{\tt ghostzone}]
-\item[{\tt grid function}]
+\item[{\tt grid function}]
\item[{\tt grid hierarchy}] A computational grid, and the grid variables associated with it.
-\item[{\tt grid scalar}]
+\item[{\tt grid scalar}]
\item[{\tt grid variable}]
-\item[{\tt GNATS}] The GNU program we use for reporting and tracking bugs,
+\item[{\tt GNATS}] The GNU program we use for reporting and tracking bugs,
comments and suggestions.
\item[{\tt HDF5}] Hierarchical Data Format version 5.
\item[{\tt implementation}]
-\item[{\tt inherit}]
+\item[{\tt inherit}]
\item[{\tt interpolation}]
-\item[{\tt MPI}]
+\item[{\tt MPI}]
\item[{\tt parameter}] A variable which remains unchanged throughout the execution of a Cactus executable. Parameters all have default values which can be changed in a parameter file.
\item[{\tt processor topology}]
\item[{\tt PUGH}] The default parallel driver for Cactus which uses MPI.
\item[{\tt PVM}] {\tt Parallel Virtual Machine}, provides interprocessor
communication.
\item[{\tt reduction}]
-\item[{\tt TAGS}]
+\item[{\tt TAGS}]
\item[{\tt target}]
-\item[{\tt thorn}] A collection of subroutines with a definite interface
+\item[{\tt thorn}] A collection of subroutines with a definite interface
and purpose.
\item[{\tt WMPI}] Win32 Message Passing Interface.
@@ -67,7 +67,7 @@ is what you get if you check out {\tt Cactus} from our CVS repository.
\chapter{Configuration file syntax}
-\label{sec:cofisy}
+\label{sec:cofisy}
\section{General Concepts}
\label{sec:geco}
@@ -85,20 +85,20 @@ case insensitive.
\section{interface.ccl}
\label{sec:in}
-The interface configuration file consists of
+The interface configuration file consists of
\begin{itemize}
-\item a header block giving details
+\item a header block giving details
of the thorns relationship with other thorns
-\item a series of blocks
+\item a series of blocks
listing the thorn's global variables.
\item details of other interactions with thorns:
\begin{itemize}
\item building include files
\end{itemize}
-\end{itemize}
+\end{itemize}
The header block has the form:
-{\t
+{\t
\begin{verbatim}
implements: <implementation>
[inherits: <implementation>, <implementation>]
@@ -107,25 +107,25 @@ implements: <implementation>
}
where
\begin{itemize}
-\item{} The implementation name must be unique among all thorns, except
- between thorns which have the same public and protected variables and
- global and restricted parameters.
-\item{} Inheriting from another implementation makes all that implementation's
- public variables available to your thorn. At least one thorn
+\item{} The implementation name must be unique among all thorns, except
+ between thorns which have the same public and protected variables and
+ global and restricted parameters.
+\item{} Inheriting from another implementation makes all that implementation's
+ public variables available to your thorn. At least one thorn
providing any inherited implementation must be present at compile time.
- A thorn cannot inherit from itself. Inheritance is associative and
+ A thorn cannot inherit from itself. Inheritance is associative and
recursive, but not commutative.
-\item{} Being a friend of another implementation makes all that
- implementations
+\item{} Being a friend of another implementation makes all that
+ implementations
protected variables available to your thorn. At least one thorn
providing an implementation for each friend must be present at
- compile time. A thorn cannot be its own friend. Friendship is
+ compile time. A thorn cannot be its own friend. Friendship is
associative and commutative. Note that your thorn is also a friend
of all your thorns friend's friends.
-\end{itemize}
+\end{itemize}
The thorn's variables are collected into groups. This is not only
-for convenience, but for collecting like variables together.
+for convenience, but for collecting like variables together.
Storage assignment, communication assignment and ghostzone synchronization
takes place for groups only.
@@ -143,20 +143,20 @@ The thorn's variables are defined by:
\end{verbatim}}
\begin{itemize}
-\item{} {\t access} defines which thorns can use the following
- groups of variables. {\t access} can be either
+\item{} {\t access} defines which thorns can use the following
+ groups of variables. {\t access} can be either
{\t public}, {\t protected} or {\t private}.
\item{} {\t data\_type} defines the data type of the variables in the group.
Supported data types are {\t BOOLEAN}, {\t INTEGER}, {\t CHAR} and {\t REAL}.
(In the future {\t COMPLEX} will also be supported.)
-\item{} {\t group\_name} must be a alpha-numeric name (which may also
-contain underscores) which is unique
+\item{} {\t group\_name} must be a alpha-numeric name (which may also
+contain underscores) which is unique
within the scope of the thorn. A group name is compulsory.
\item{} {\t TYPE} designates the kind of variables held by the group.
-The choices are {\t GF}, {\t ARRAY} or {\t SCALAR}. This field is
+The choices are {\t GF}, {\t ARRAY} or {\t SCALAR}. This field is
optional, with the default variable type being {\t SCALAR}.
-\item{} {\t DIM} defines the spatial dimension if the group is
- of type {\t ARRAY} or {\t GF}, and can take the value
+\item{} {\t DIM} defines the spatial dimension if the group is
+ of type {\t ARRAY} or {\t GF}, and can take the value
{\t 1}, {\t 2}, or {\t 3}.
The default value is {\t DIM=3}.
\item{} {\t TIMELEVELS} defines the number of timelevels a group has if
@@ -164,32 +164,32 @@ The default value is {\t DIM=3}.
value.
\item{} {\t SIZE} defines the number grid-points an {\tt ARRAY} has in each direction.
This should be a comma-separated list of positive integer constants or parameter names (optionally with an integer constant added/substracted to/from it).
-\item{} {\t DISTRIB} defines the processor decomposition of an {\tt ARRAY}.
+\item{} {\t DISTRIB} defines the processor decomposition of an {\tt ARRAY}.
{\tt DISTRIB=CONSTANT} implies that {\tt SIZE} grid-points should
be allocated on each processor.
-\item{} {\t GHOSTSIZE} defines number of ghost-zones in each dimension of an {\tt ARRAY}.
+\item{} {\t GHOSTSIZE} defines number of ghost-zones in each dimension of an {\tt ARRAY}.
\item{} {\t STAGGER} defines position of grid-points of a {\tt GF} with respect to
- the underlying grid. It consists of a string made up of a combination {\tt DIM}
+ the underlying grid. It consists of a string made up of a combination {\tt DIM}
of the letters {\tt M}, {\tt C}, {\tt P} depending on whether the layout in
that direction is on the {\tt M}inus face, {\tt C}entre, or {\tt P}lus face
of the cell in that dimension.
\item{} The (optional) block following the group declaration line contains a list of
- variables contained in the group. All variables in a group have
- the same data type, variable type and dimension. The list can be
- separated by spaces, commas, or new lines. The variable names
- must be unique within the scope of the thorn.
- A variable can only be a member of
+ variables contained in the group. All variables in a group have
+ the same data type, variable type and dimension. The list can be
+ separated by spaces, commas, or new lines. The variable names
+ must be unique within the scope of the thorn.
+ A variable can only be a member of
one group. The block must be delimited by brackets on new lines.
- If no block is given after a group declaration line, a
+ If no block is given after a group declaration line, a
variable with the same name as the group is created.
-\item{} An optional description of the group can be given on the last line,
+\item{} An optional description of the group can be given on the last line,
at the moment this description is not used for any purpose.
-\end{itemize}
+\end{itemize}
\section{param.ccl}
\label{sec:pa}
-The parameter configuration file consists of a list of
+The parameter configuration file consists of a list of
{\it parameter object specification items} (OSIs) giving the type and
range of the parameter separated by optional
{\it parameter data scoping items} (DSIs) which detail access to the
@@ -202,16 +202,16 @@ parameter.
\end{verbatim}
}
The key word {\t access} designates that all parameter object specification
-items up to the next parameter data scoping item are in the same
+items up to the next parameter data scoping item are in the same
protection or scoping class. {\tt access} can take the values:
\begin{Lentry}
\item[{\tt global}] all thorns have access to global parameters
-\item[{\tt restricted}] other thorns can have access to these
+\item[{\tt restricted}] other thorns can have access to these
parameters if they specifically request
it in their own param.ccl
\item[{\tt private}] only your thorn has access to private parameters
\item[{\tt shares}] in this case an {\t implementation} name must follow
- the colon. It declare that all the parameters in
+ the colon. It declare that all the parameters in
the following scoping block are restricted variables
from the specified {\tt implementation}.
\end{Lentry}
@@ -222,16 +222,16 @@ protection or scoping class. {\tt access} can take the values:
{\t
\begin{verbatim}
-[EXTENDS|USES] <parameter_type> <parameter name> "<parameter description>"
+[EXTENDS|USES] <parameter_type> <parameter name> "<parameter description>"
{
<PARAMETER_VALUES>
} <default value>
\end{verbatim}
}
\begin{itemize}
-\item{} Allowed {\t parameter\_type}s are
+\item{} Allowed {\t parameter\_type}s are
\begin{Lentry}
- \item[{\t INTEGER}] The specification of {\t parameter\_value}s takes
+ \item[{\t INTEGER}] The specification of {\t parameter\_value}s takes
the form of any number of comma-separated blocks of the form:
{\t
\begin{verbatim}
@@ -239,13 +239,13 @@ protection or scoping class. {\tt access} can take the values:
\end{verbatim}
}
Where an empty field, or a {\t *} in the place of {\tt low-range} or
-{\t high-range} indicates $-\infty$ and $\infty$ respectively. The
+{\t high-range} indicates $-\infty$ and $\infty$ respectively. The
default value for {\t step} is 1. A number by itself denotes that
this number is the only acceptable value.
\item[{\t REAL}] The range specification is the same as integers,
except that here, no {\t step} implies a continuum of values.
- \item[{\t KEYWORD}] Each entry in the list of acceptable values
- for a keyword has the form
+ \item[{\t KEYWORD}] Each entry in the list of acceptable values
+ for a keyword has the form
{\t
\begin{verbatim}
"<keyword value>", "<keyword value>" :: "<description>"
@@ -253,7 +253,7 @@ this number is the only acceptable value.
}
\item[{\t STRING}] Allowed values for strings should be specified using regular expressions. To allow any string, the regular expression ".*" should be used.
\item[{\t BOOLEAN}] No {\t PARAMETER\_VALUES} should be specified for a boolean
- parameter. The default value for a boolean can be
+ parameter. The default value for a boolean can be
\begin{itemize}
\item{} True: {\t 1}, {\t yes}, {\t y}, {\t t}, {\t true}
\item{} False: {\t 0}, {\t no}, {\t n}, {\t f}, {\t false}
@@ -262,22 +262,22 @@ this number is the only acceptable value.
\item{} The {\t parameter name} must be unique within the scope of the thorn.
-\item{} A thorn can declare that it {\t EXTENDS} a parameter that it is a
+\item{} A thorn can declare that it {\t EXTENDS} a parameter that it is a
friend of. This allows it to declare additional acceptable values.
- By default it is acceptable for two thorns to declare the same
- value as acceptable.
+ By default it is acceptable for two thorns to declare the same
+ value as acceptable.
\end{itemize}
\section{schedule.ccl}
\label{sec:sc}
-The schedule configuration files consists of
+The schedule configuration files consists of
\begin{itemize}
-\item{} assignments to switch on storage and communications
+\item{} assignments to switch on storage and communications
for array variables at the start of program execution.
\item{} {\it schedule blocks} which schedule a subroutine from the
- thorn to be called at a specified time during program
+ thorn to be called at a specified time during program
execution. Statements within the schedule block can
be used to switch on storage and communication for groups
of variables during the duration that the subroutine is called.
@@ -307,13 +307,16 @@ schedule [GROUP] <function name> AT|IN <time> [BEFORE|AFTER <group>] [WHILE <var
\end{verbatim}
}
-Any schedule block or assignment statements can be optionally
+The keywords {\t STORAGE} and {\t COMMUNICATION} as well as the options keywords
+inside of a schedule block are significant with their first four letters.
+
+Any schedule block or assignment statements can be optionally
surrounded by conditional {\t if-elseif-else}
constructs using the parameter data base. These can be nested,
and have the general form:
{\t
\begin{verbatim}
-if (CCTK_Equals(<parameter>,<string>))
+if (CCTK_Equals(<parameter>,<string>))
{
[<assignments>]
[<schedule blocks>]
@@ -329,16 +332,16 @@ subject to any conditional statements around the {\tt STORAGE} statement.
\subsection{Allowed Options}
-\begin{Lentry}
+\begin{Lentry}
-\item[{\tt GLOBAL}]
+\item[{\tt GLOBAL}]
This routine will only be called once on a grid hierarchy, not for all
subgrids making up the hierarchy. This can be used, for example, for
-analysis routines which use global reduction or interpolation routines
-rather than the local subgrid passed to them, and hence should only be
+analysis routines which use global reduction or interpolation routines
+rather than the local subgrid passed to them, and hence should only be
called once.
-\end{Lentry}
+\end{Lentry}
\chapter{Flesh parameters}
\label{sec:ccpa}
@@ -347,25 +350,25 @@ The flesh parameters are defined in the file {\tt src/par/param.ccl}.
\section{Private parameters}
-\begin{Lentry}
+\begin{Lentry}
-\item[{\tt cctk\_timer\_output}]
+\item[{\tt cctk\_timer\_output}]
Give timing information [{\tt yes}] \{{\tt off}, {\tt full}\}
-\item[{\tt cctk\_full\_warnings}]
+\item[{\tt cctk\_full\_warnings}]
Give detailed information for each warning statement [{\tt yes}]
-\item[{\tt cctk\_strong\_param\_check}]
+\item[{\tt cctk\_strong\_param\_check}]
Die on parameter errors in {\tt CCTK\_PARAMCHECK} [{\tt yes}]
-\item [{\tt cctk\_show\_schedule}]
+\item [{\tt cctk\_show\_schedule}]
Print the scheduling tree to standard output [{\tt yes}]
\item [{\tt cctk\_show\_banners}]
Show any registered banners for the different thorns [{\tt yes}]
-
+
\item [{\tt cctk\_brief\_output}]
Give only brief output [{\tt no}]
@@ -375,11 +378,11 @@ Give only brief output [{\tt no}]
\begin{Lentry}
-\item[{\tt cctk\_initial\_time}]
+\item[{\tt cctk\_initial\_time}]
Initial time for evolution [{\tt 0.0}]
-
+
\item [{\tt cctk\_final\_time}] Final time for evolution, overriden by
-{\tt cctk\_itlast} unless it is positive [{\tt -1.0}]
+{\tt cctk\_itlast} unless it is positive [{\tt -1.0}]
\item [{\tt cctk\_itlast}]
Final iteration number [{\tt 10}]
@@ -388,7 +391,7 @@ Final iteration number [{\tt 10}]
\chapter{Using {\tt GNATS}}
GNATS is a freely redistributable set of tools for tracking bug
-reports. It allows users to categorize their problem report and submit
+reports. It allows users to categorize their problem report and submit
them to the GNATS. The bugtracker will assign appropriate maintainers
to analyze and solve the problem.
We are currently supporting a web based interface at {\tt
@@ -414,7 +417,7 @@ problem you are dealing with.
\item[{\bf submitter ID}] Unused
-\item[{\bf Originator}] Your name. Anonymous is OK, but you real name
+\item[{\bf Originator}] Your name. Anonymous is OK, but you real name
would be best.
\item[{\bf Release}] The Cactus release you are using. You can find this
@@ -423,8 +426,8 @@ problem you are dealing with.
\item[{\bf Environment}] Very important: specify the environment,
e.g. {\tt uname -a}, {\tt MPI}/non-{\tt MPI}, etc.
-\item[{\bf Description}] Describe your problem precisely, if you get a
-core dump, include the stack trace, give the minimal number of thorns,
+\item[{\bf Description}] Describe your problem precisely, if you get a
+core dump, include the stack trace, give the minimal number of thorns,
this problems occurs with.
\item[{\bf How-To-Repeat}] Tell us how to repeat the problem if it is
@@ -446,15 +449,15 @@ reports in your shell and from within emacs, respectively.
old versions of files (usually source code), log of
when, and why changes occurred, and who made them, etc.
Unlike the simpler systems, {\tt CVS} does not just operate on one file at a
-time or one directory at a time, but
+time or one directory at a time, but
operates on hierarchical collections of directories consisting of
-version controlled files. {\tt CVS} helps to manage
+version controlled files. {\tt CVS} helps to manage
releases and to control the concurrent editing of source
-files among multiple authors. {\tt CVS} can be obtained from
-{\tt http://www.cyclic.com}.
+files among multiple authors. {\tt CVS} can be obtained from
+{\tt http://www.cyclic.com}.
A {\em CVS repository} located on a {\em server} may consist of an arbitrary
-number of {\em modules}, which can be checked out (that is downloaded)
+number of {\em modules}, which can be checked out (that is downloaded)
independently. The Cactus flesh and the Cactus
arrangements are organized as modules, their {\em CVS server} is {\tt cvs.cactuscode.org}.
@@ -464,7 +467,7 @@ arrangements are organized as modules, their {\em CVS server} is {\tt cvs.cactus
\item[{\bf cvs login}]
Logs into the repository. You will be prompted for a {\em
password}. This cvs command leaves a file {\tt .cvspass} in your
-home directory. There is no need to login every time you issue a cvs
+home directory. There is no need to login every time you issue a cvs
command, as long as this file exists. For a Cactus checkout, you have
to log into the CVS server, using the cvs option {\bf -d} to specify CVSROOT:\\
{\tt cvs -d :pserver:cvs\_anon@cvs.cactuscode.org:/cactus login}
@@ -482,7 +485,7 @@ work. At least one subdirectory level is always created: it does
not write all files into your current directory but creates a
directory. For Cactus, you need to either include the {\bf -d} options to
specify the CVSROOT directory and the CVS server, or specify them
-with an environment variable (see below). Once you
+with an environment variable (see below). Once you
have checked out the repository there is no need to include the {\bf
-d} option and its rather lengthy argument: the necessary information
is contained in the local {\tt CVS/} directories.
@@ -502,7 +505,7 @@ patches.
Use this command to enroll new files in cvs records
of your working directory. The files will be added
to the repository the next time you run `cvs
-commit'.
+commit'.
\item[{\bf cvs commit} {\tt file}]
Use this command to add your local changes to the source to
@@ -517,7 +520,7 @@ source repository. (Does not change either repository or working
directory.) For example, to see the difference between versions
{\tt 1.8} and {\tt 1.9} of a file {\tt foobar.c}:
-{\tt
+{\tt
\begin{verbatim}
cvs diff -r 1.8 1.9 foobar.c
\end{verbatim}
@@ -525,10 +528,10 @@ cvs diff -r 1.8 1.9 foobar.c
\item[{\bf cvs remove} {\tt file}]
Remove files from the source repository, pending a {\tt cvs commit} on
-the same files.
+the same files.
-\item[{\bf cvs status} [file]]
-This command returns the current status of your local copy relative to
+\item[{\bf cvs status} [file]]
+This command returns the current status of your local copy relative to
the repository: e.g. it indicates local modifications and possible
updates.
@@ -537,9 +540,9 @@ Import adds an entire source distribution (starting from the
directory you issue the command in) to the repository directory.
Use this command to add new arrangements to the Cactus4.0 repository. The
{\tt repository} argument is a directory name (or a path to a
-directory) and the CVS root directory for repositories; to obtain this
+directory) and the CVS root directory for repositories; to obtain this
directory on the CVS server, send a request to {\tt
-cactus@cactuscode.org}. {\tt tag1} and {\tt tag2} are two tags (vendor
+cactus@cactuscode.org}. {\tt tag1} and {\tt tag2} are two tags (vendor
and release tags) that have to be supplied. For example, to add {\tt MyThorn}
to the {\tt MyArrangement} arrangement, which may or may not already exist on
the CVS repository
@@ -576,16 +579,16 @@ of the cvs command. Here is a list of essential {\em cvs options}
\item[{\bf -d} {\em cvs\_root\_directory}]
Use {\em cvs\_root\_directory} as the root directory pathname of
-the master source repository. Overrides
+the master source repository. Overrides
the setting of the {\em CVSROOT} environment variable.
-This value should be specified as an absolute pathname.
+This value should be specified as an absolute pathname.
In the Cactus checkout procedure, you specify the Cactus CVS server:\\
{\tt -d :pserver:cvs\_anon@cvs.cactuscode.org:/cactus/}
\item[{\bf -z} {\em compression-level}]
When transferring files across the network use {\tt gzip}
with compression level {\em compression-level} to compress and
-decompress data as it is transferred.
+decompress data as it is transferred.
Requires the presence of the GNU gzip program in
the current search path at both ends of the link.
@@ -599,11 +602,11 @@ Displays version information of the installed CVS.
\item[{\bf -H} {\em cvs-command}]
Displays usage information about the specified cvs command. Without
-cvs-command, a list of all available commands is returned.
+cvs-command, a list of all available commands is returned.
\end{Lentry}
Here is a list of essential {\em command options} with the
-commands they are used with. They go after the cvs command. For a more
+commands they are used with. They go after the cvs command. For a more
complete list of all options, please refer to the manual page.
\begin{Lentry}
@@ -623,10 +626,10 @@ is invoked to allow you to enter one.
\item[\bf -d]
Use this option with the {\bf update} command to create any
-directories if they are missing from your local copy. This is normally
+directories if they are missing from your local copy. This is normally
the case if another user has added files or directories to the
repository. By default the {\bf update} command only acts on files in
-your local copy. Note that omitting this option is a frequent cause of
+your local copy. Note that omitting this option is a frequent cause of
files missing during compilation. (You can change this
default behavior of cvs by putting a .cvsrc in your home directory
with the contents ``update -d''.)
@@ -635,7 +638,7 @@ with the contents ``update -d''.)
\section{CVS Examples}
We list some sample CVS commands to treat the most typical Cactus4.0
-CVS situations.
+CVS situations.
\begin{description}
\item\textbf{Logging into the server}\newline
{\tt cvs -d :pserver:cvs\_anon@cvs.cactuscode.org:/cactus
@@ -645,10 +648,10 @@ login} \\ You will be asked for the password for user {\em cvs\_anon}, which is
{\tt cvs -d :pserver:cvs\_anon@cvs.cactuscode.org:/cactus
checkout Cactus}\\
check out a CVS module named "Cactus", in this case it checks out the
-Cactus Computational Toolkit. A directory {\tt ./Cactus} is created if
+Cactus Computational Toolkit. A directory {\tt ./Cactus} is created if
it doesn't already exist. If you perform a checkout on an already
existing and locally modified copy of the module, CVS will try to merge the files
-with your local copy.
+with your local copy.
\item\textbf{Updating a file or directory}\newline
Assuming that you have a file {\tt ./foobar} in your checked out
@@ -684,14 +687,14 @@ schedule the file for addition, then you commit it:\\
\item\textbf{Creating a new thorn}\newline
-To add a new {\bf module} (e.g. an arrangement) to a Cactus repository we
-first have to create a directory for you with the right permissions.
+To add a new {\bf module} (e.g. an arrangement) to a Cactus repository we
+first have to create a directory for you with the right permissions.
Please contact {\tt cactus@cactuscode.org} providing the name of the
requested module, and who should be able to commit changes to the module.
To add the new module, change directory so that you are in the first directory
that you want to commit to the repository. (e.g. if you want to commit
-a new arrangement called {\tt MyArrange} then change directory to
+a new arrangement called {\tt MyArrange} then change directory to
{\tt MyArrange}). Then type\\
{\tt cvs -d :pserver:}{\em your\_login}{\tt
@cvs.cactuscode.org:<repository name> } import {\em module\_name} {\tt start V1}\\
@@ -703,10 +706,10 @@ and then recursing down adding all the new files and directories contained
inside, or import the directory by changing directory to sit inside it, and then using\\
{\tt cvs -d :pserver:}{\em your\_login}{\tt
@cvs.cactuscode.org:<repository\_name> } import {\tt <relative name> start V1}\\
-Where {\tt <relative name>} means the position of the directory within the module. (For example, if you have a module called {\em AMod} which contains a
+Where {\tt <relative name>} means the position of the directory within the module. (For example, if you have a module called {\em AMod} which contains a
directory {\em BMod}, and you want to add {\em CMod} inside {\em BMod}, then change directory to {\em BMod}, and use {\em AMod/BMod} for the {\em relative name}).
-
+
\end{description}
\section{Checking out flesh and thorns with CVS}
@@ -717,7 +720,7 @@ directory {\em BMod}, and you want to add {\em CMod} inside {\em BMod}, then cha
{\tt
cvs -d :pserver:cvs\_anon@cvs.cactuscode.org:/cactus login
}
- You will be prompted for a password which is {\bf anon}.
+ You will be prompted for a password which is {\bf anon}.
\item[{\bf Checkout}] To obtain a fresh copy of Cactus, move to a directory
which does not contain a previously checked out version, and type
{\t
@@ -725,30 +728,30 @@ directory {\em BMod}, and you want to add {\em CMod} inside {\em BMod}, then cha
}
The CVS checkout procedure will create a directory called {\bf
Cactus} and install the code inside this directory. From now on we
- will reference all directory names relative to {\bf Cactus}.
+ will reference all directory names relative to {\bf Cactus}.
\noindent
- If you want to compile Cactus with thorns, you now need to checkout
+ If you want to compile Cactus with thorns, you now need to checkout
separately the required arrangement (or {\it arrangements})
- into the {\bf arrangements} directory. To see the
+ into the {\bf arrangements} directory. To see the
available Cactus arrangements and thorns type
- {\t
+ {\t
cvs -d :pserver:cvs\_anon@cvs.cactuscode.org:/cactus checkout -s
}
To check out an arrangement or thorn go to the arrangements directory, {\t cd arrangements},
and for an arrangement type
-{\t
+{\t
cvs checkout <arrangement\_name>
}
or for just one thorn
-{\t
+{\t
cvs checkout <arrangement\_name/thorn\_name>
}
-
+
To simplify this procedure you may use {\t gmake checkout} in the Cactus
home directory which provides menus to pick arrangements and thorns from.
-
-
+
+
\item[{\bf Update}] To update an existing Cactus checkout (to patch in
possible changes, etc.), do the following {\em within} the {\tt Cactus} directory.
{\t
@@ -764,14 +767,14 @@ home directory which provides menus to pick arrangements and thorns from.
cvs status
}
\item[{\bf non-anonymous CVS}] If you have an account at the central
- repository ({\tt cvs.cactuscode.org}) and would like to perform
+ repository ({\tt cvs.cactuscode.org}) and would like to perform
any of the operation above
{\em non-anonymously}, replace {\tt cvs\_anon} by your login name
and provide the appropriate password during the CVS login
process. Depending on your permissions, you may then make commits to Cactus
or its arrangements.
\item[{\bf Commits}] You need to perform a personalized login and have
- proper permissions to commit code to the repository.
+ proper permissions to commit code to the repository.
\end{Lentry}
@@ -779,13 +782,13 @@ home directory which provides menus to pick arrangements and thorns from.
\label{sec:usta}
Finding your way around in the Cactus structure can be pretty
difficult to handle. To make life easier there is support for TAGS,
-which lets you browse the code easily from within Emacs/XEmacs or vi.
+which lets you browse the code easily from within Emacs/XEmacs or vi.
A TAGS database can be generated with by gmake:
\section{TAGS with emacs}
\label{sec:tawiem}
-{\tt gmake TAGS} will create a database for a routine reference
+{\tt gmake TAGS} will create a database for a routine reference
table to be used within Emacs. This database can be accessed within
emacs if you add either of the following lines to your {\tt .emacs} file:\\
{\tt (setq tags-file-name "CACTUS\_HOME/TAGS")} XOR \\
@@ -830,22 +833,22 @@ the following is a selection of commands which may work.
\begin{enumerate}
-\item \textbf{vi -t tag}
+\item \textbf{vi -t tag}
Start vi and position the cursor at the file and line where `tag' is defined.
-\item \textbf{Control-]}
+\item \textbf{Control-]}
Find the tag under the cursor.
-\item \textbf{:ta tag}
+\item \textbf{:ta tag}
Find a tag.
-\item \textbf{:tnext}
+\item \textbf{:tnext}
Find the next matching tag.
-\item \textbf{:pop}
+\item \textbf{:pop}
Return to previous location before jump to tag.
-\item \textbf{Control-T}
+\item \textbf{Control-T}
Return to previous location before jump to tag (not widely implemented).
\end{enumerate}