VILtools

Another technique to instrument tools is based on a set of command line utilities called VILtools which stands for Vov Integration Library Tools. The VILtools, shown in table below, implement the same functions as VIL but are intended for use in shell scripts.

If the environment variable VOV_FDL_ONLY is set, then the VILtools generate FDL code.

The VILtools are passive if VOV is not running or if runtime tracing has not been activated by means of one of the wrappers vov, vrt, or vw2.

To instrument a script:
  • Add the appropriate calls to VovInput and VovOutput to declare the I/O behavior of the script. (To be safe, call these tools before you read or write a file and always check the exit status.) Temporary and intermediate files that are removed upon successful execution need not be declared.
  • Execute the integrated script within the wrapper vov as follows:
    % vov myscript arg1 arg2 arg3  

VovInput

Usage
VovInput [options] <FILE FILE ...>
Description
Declare the list of files as inputs. It returns 0 if the files are VALID, or 4 if there are input conflicts.
Options
-sticky
Specify that the input is an input, even if it's not actually a true input at runtime.
-consumed
Specify that the input disappears if the tool completes successfully (e.g. the tool gzip consumes its input).
-db <name>
Specifies the database of the input, which defaults to "FILE"
-links
Declare as inputs all symbolic links used to canonicalize the name of file.
-show_barrier
Prints on stdout the name of the files on which there is an input barrier.
-quote
Use the input name as given, instead of mapping it to the corresponding logical canonical name.

VovOutput

Usage
VovOutput [options] <FILE FILE ...>
Description
Declare the list of files as outputs. It returns 5 if there are output conflicts and 0 otherwise.
Options
-sticky
Specify that the output is an output, even if it's not actually a true output at runtime.
-ignore_timestamp
Specifies that the timestamp of the file should not be used to determine whether the job has succeeded or failed.
-db <name>
Specifies the database of the output, which defaults to "FILE"
-shared
State the output is the shared by many tools. FlowTracer ignores the timestamp of the shared outputs and serializes the execution of the jobs that contribute to the shared output. In this case, all jobs must use declare the file as shared.
-stop_barrier
Specify there is a barrier on the output, where the barrier is effective in stopping change propagation on and output. See Runtime Change Propagation Control for more details.
-propagate_barrier
Specify there is a barrier on the output, where the barrier is deemed to be ineffective in stopping change propagation on this output. See Runtime Change Propagation Control for more details.
-optional
Specify that the output file may or may not exist.
-links
Declare as input (notice: 'input' and not 'output'!) all symbolic links used to canonicalize the name of file.
-quote
Use the output name as given, instead of mapping it to the corresponding logical canonical name.

VovExecutable

Usage
VovExecutable <FILE FILE ...>
Description
Declares an executable as an input. This is equivalent to VovInput except that the argument is assumed to be an executable file and is searched for using the PATH variable.
Options
none

VovDelete

Usage
VovDelete <FILE FILE ...>
Description
Declares an executable as an input. This is equivalent to VovInput except that the argument is assumed to be an executable file and is searched for using the PATH variable.
Options
none

VovToolId

Usage
VovToolId -get
Description
Returns the VovId of the current transition, otherwise the string '00000000' is returned if tracing is not active.
Options
none