On 29 September 2016, John P. Hartmann wrote: > First time a label is used, it marks the stage that it refers to. > Subsequent references are to additional streams for the stage that > declared the label. Since the program to run has already been > specified, subsequent references to the label must be bare.
I too hoped for some insight in the "why" of the design, but I am aware this goes back to long before I wrote my first pipeline. To me this is much like the "if the compiler knows there should be a ';' why can't he just put it there instead of bothering me" question. The more you automatically assume, the less chance to spot mistakes. Some complain that CMS Pipelines is too compact already and a simple typo causes grief. Even worse is when the simple typo makes the system do something completely different. Hang in for horror stories about missing a comma in a command on TSO. I do recognize the situations where your suggestion could simplify the pipeline. For such if/then/else constructs I sometimes use IF (mainly in the limited space of the command line): .. | a: if drop | sort | a: | .. But a lot of more complicated topologies will not be helped by this. One of the challenges I think is to avoid adding things that only help a bit. They make it easier to do some things, but make it harder to do get beyond simple things. Rob
