FDL Procedures Reference
Procedure | Args | Description |
---|---|---|
A | note checkFlag
|
Adds Annotations to the most recently
declared node, be it an input, an output, or a job. If
checkFlag is true, the procedure checks the
list of existing annotations in order to avoid duplicates.
Examples:
|
AD | id1 id2 barrier |
Creates an artificial dependency between a job
(id1 ) and another job or set
(id2 ). Useful if no natural file dependency
exists between them. Makes id2 dependent on
id1 . barrier defaults to 0
(off). Examples:
|
CAPSULE | [options] script | Define a Capsule on the Fly.
Examples:
|
D | database
|
Sets the Databases for all
subsequent files. The default database is "FILE". Examples:
|
E | environment OPTIONAL_SCRIPT
|
The default environment is "BASE". The procedure
E sets the environment for all subsequent
jobs. If the optional script is specified, the value of the
current environment is reset after evaluation of the script.
The environment for vovbuild itself is not affected (use ves if you want to change the environment of vovbuild itself). The command vel will list
the known environments in your installation, Normally the
following locations are searched for environment information
:
Examples:
|
FLAGS | job-flag ...
|
The procedure FLAGS sets flags for the
most recent job. It is to be used after a T
or a J. The flags that can be set are:
autoflow , autoforget ,
preemptable , doprofile ,
nojournal , schedfirst , and
skip . (Note: autoflow and
skip are the same flag)
|
I | [options] FILE FILE ... |
This is an input declaration. Its argument is a list of file
names. Each file is declared as an input of the job created with
the most recent J or T
command. It is an error to call I without
having called J or T
first. Defining cyclic dependencies generates an error.
Examples:
|
indir | [options] directory script
|
Executes Tcl script in the given directory.
Example:
|
INSTRUMENTED | command |
Add a job that is implemented by a properly instrumented
script, that is a script that outputs FDL if called with the
VOV Instrumentation Library
environment variable defined. Example:
|
J | args |
Mnemonic for 'Job' Declares a job where the associated capsule (if it exists) is used at build time. This procedure is identical to T, except that T does NOT search for corresponding capsule. The arguments form the command line for a new job to be added to the trace. Environment and working directory for the job are taken from the current settings. If an identical job already exists in the trace, nothing happens. The procedure returns the VovId of the job. The status of a newly created job is always INVALID. If the procedure is passed multiple arguments, each argument is quoted if necessary. If the procedure is passed a single list, all elements in the list are "join'ed" together with spaces. Examples:
|
J_FINAL | <none> | Similar to T_FINAL, J_FINAL indicates that the inputs and outputs declared through I and O commands associated with the last J declaration are the only inputs and outputs for that J. Any inputs and outputs that were associated with this J from a previous vovbuild but not declared again in this vovbuild will be removed. |
L | legal_exit_spec
|
Set the list of legal exit status values for al subsequent
jobs. Examples:
|
N | jobname
|
Set the jobName for all subsequent
jobs. The jobName may contain any alphanumeric
character, in addition to the space and characters from
'-_:.=/'. It is an error to use illegal characters. The name is
truncated to 256 characters. Examples:
For
all products, strict job name checking has been enabled and
invalid job name characters will cause an error. For
Accelerator and Accelerator Plus, this can be overridden by
putting the following in $VOVDIR/local/vncrun.config.tcl:
|
N2 | jobname
|
Set the jobName for the most recently
described job. This procedure performs no checks on the name,
but this may change in the future. Examples:
|
O | [options] FILE FILE ... |
This is an output declaration. Its argument is a list of file
names. Each file is declared as an output of the job created
with the most recent J or
T command. It is an error to call O
without having called J or
T first. Defining cyclic dependencies
generates an error. All jobs must have at least one output to be
consider valid.
|
P | propertyName propertyValue
|
Attach a property with the specified name and value to the
most recently mentioned node. The type of the property is
determined automatically from the value, i.e. the type is
integer if the value is numeric. If P is called after T or J,
the property is attached to the last job. If
P is called right after an
I or O declaration,
the property is attached to the input or output file
respectively.
|
PARALLEL | script |
All of the tasks, jobs, and sets defined in the script are set up to be executed in parallel. Artificial dependencies are created between each task, job, or all the jobs in the set to build the graph in parallel. Can be nested in any order with sets, jobs, tasks, other SERIAL scripts, and other PARALLEL scripts. For examples see the TASK procedure. |
PJ | [OPTIONS] args
|
Creates a periodic job using J (uses
capsule if present). Periodic jobs run with a default period of
$period, but will adjust future runs
according to how long the job takes to complete. The range of
the period is defined by $minperiod and
$maxperiod. Examples:
|
PRIORITY | spri xpri |
Set the priority to be used for subsequent jobs. The priority
can be specified numerically ( from 1 to 15) or symbolically
(low normal high top). The xpri argument is
optional. If missing, it is set to spri. The value of priority
for a job can easily be overwritten by a retrace request.
Examples:
|
R | resourceList OPTIONAL_SCRIPT |
Sets the resources required by the following jobs, i.e. the
R statement should precede
T or J. Takes one or
two parameters. The first parameter is a list of resource names.
The second parameter, if present, is a Tcl script which is
executed in the context of the caller of the
R procedure. Side effect: sets the value
of make(resources) , except when the second
(script) parameter is given. Examples:
|
R2 | resourceList |
Similar to R, but this only applies to the
most recently created job. That is, R goes
before the T or the J,
while R2 goes after the T
or J. This procedure is used by the Vil-Tool
VovResources when called with VOV_FDL_ONLY. Takes one parameter, a resource expression. No side effects. Examples:
|
S | setname script args
|
Collect all jobs created in the body of the procedure in the
specified set. The S procedure can be nested.
If the setname at one level begins with a '+'
sign or if it has no colons (':'), the full name of the set is
the concatenation of the name of the set at the previous level,
separated with a colon ':'. If the name contains colons, it is
considered to be a complete set name. As of 2014.*, it is
allowed for sets to contain other sets. Because of this,
nested S procedures now attach the subset
to the superset.
Note: Job I/O nodes are not placed in the
set.
Synopsis:
Example:
|
S+ | setname script
|
Append all jobs created in the body of the procedure to the
specified set. Note:
Synopsis:
Example:
|
SERIAL | script
|
All of the tasks, jobs, and sets defined in the script are set up to be executed serially in the order they appear. Artificial dependencies are created between each task, job, or all the jobs in the set to build the graph serially. Can be nested in any order with sets, jobs, tasks, other SERIAL scripts, and other PARALLEL scripts. For examples see the TASK procedure. |
shift | <none> | Get the next argument from argv. Example:
|
START | list-of-ids
|
Starts a retrace in SAFE mode with NORMAL priority for each
object-ID passed in. Ids may be of PLACE, TRANSITION, NODE or
NODESET. Ignores invalid object types with a message. It is a
fatal error to pass in an invalid vovID.
Synopsis:
Example:
|
STOP | list-of-ids
|
Calls vtk_job_control $id STOP for each
object-ID passed in. Ids may be of PLACE, TRANSITION, NODE or
NODESET. Ignores invalid object types with a message. It is a
fatal error to pass in an invalid vovID.Note: Does not stop jobs
in a NODESET, but only produces a
message.
Synopsis:
Example:
|
T | args
|
Mnemonic for 'Tool' Declares a job where the associated capsule (if it exists) is NOT used at build time. This procedure is identical to J, except that J does search for corresponding capsule. The arguments form the command line for a new job to be added to the trace. Environment and working directory for the job are taken from the current settings. If an identical job already exists in the trace, nothing happens. The procedure returns the VovId of the job. The status of a newly created job is always INVALID. If the procedure is passed multiple arguments, each argument is quoted if necessary. If the procedure is passed a single list, all elements in the list are "join'ed" together with spaces. Examples:
|
T_FINAL | <none> | T_FINAL indicates that the inputs and outputs declared through I and O commands associated with the last T declaration are the only inputs and outputs for that T. Any inputs and outputs that were associated with this T from a previous vovbuild but not declared again in this vovbuild will be removed. |
TASK | args | TASK declares a task. This is a wrapper for the procedure
T. Its main purpose is to be used with
SERIAL and PARALLEL to build simple, intuitive flows.
Examples:
|
X | xdur |
Set the expected duration for subsequent jobs. It takes one
argument, which is a Time Specifications.
Examples:
|
Z | FILE FILE ... | Set the 'zippable' flag in all the mentioned files. The file must be a place in the trace belonging to the database 'FILE'. A file that has the zippable flag will be automatically compressed and decompressed as required by the flow. If all jobs that use the file have been completed successfully, the file will be compressed. If a job that needs the file is scheduled to run, the file will be decompressed. |