Distinguishing Levels of CMS/TSO Pipelines
Developers producing software that uses CMS Pipelines may
encounter a variety of Pipelines versions. Distinguishing
the various versions can be confusing. The easiest solution is simply
to package the CMS Pipelines Runtime Library with one's
software product. If that is not feasible, the following information
should make the task easier:
Testing for the presence of a specific stage
The RESOLVE pipeline command is very useful when you want to test for
whether a specific stage is built in to the version of Pipes you
are using. A very simple way to issue RESOLVE is with a "pipcmd" stage.
For example, the easiest way to decide whether "pick" is available is
to issue:
'PIPE literal resolve pick | pipcmd'
"pipcmd" will exit with the return code from RESOLVE (0 if the stage is
not built in, a large number (the memory address of the stage) if it is
built in). That will also be the return code from the PIPE command
itself.
Testing for the presence of a specific keyword
If you need to test for a specific new keyword, such as "main" in the
example below, you are likely to find "runpipe" useful:
'PIPE literal rexxvars main | runpipe'/* Test whether current. */
If RC <> 0 Then Do /* Explain must be current. */
Say 'The MAIN keyword of the REXXVARS stage is required.'
Exit RC /* Take error return. */
End
Melinda Varian
/ Office of Computing and Information Technology /
Princeton University /
melinda.varian@me.com
October 8, 1997