Pipelines Changelog

What's new in Pipelines 2.0 Test

Aug 7, 2012
  • A new VARIABLE stage command has been implemented: which reads and writes ooRexx entries from/to the ooRexx variable directory. VAR now supports read and write access to individual ooRexx variables, stem and array entries.
  • A new STEM stage command has been implemented; which reads and writes ooRexx entries from/to the ooRexx variable directory.
  • A new ARRAY stage command has been implemented; which reads and writes ooRexx entries from/to the ooRexx variable directory.
  • CALLPIPE has been redesigned and no longer communicates with the target pipeline through the re-directed standard input and output streams.
  • New PEEKTO, READTO and OUTPUT ooRexx sub-commands have been implemented to work in conjunction with the re-designed CALLPIPE mechanism.
  • The IN and OUT stage commands have been re-designed to work in conjunction with the new CALLPIPE mechanism, whilst retaining their ability to service STDIN and STDOUT streams; allowing ooRexx scripts to be specified as part of a CMD, BATCH or Powershell script.
  • In order to support the new CALLPIPE, PEEKTO, READTO, OUTPUT and the IN and OUT stage command combination of input and output stream connections; version 2.0 defines a maximum (default) input and output record length of 256K (262144 bytes). However; this value is defined in the System Registry so that the user can scale this maximum length up or down depending on requirement. A minimum record length definition of 4096 bytes and a maximum record length definition of 2147483648 bytes can be defined.
  • StageManager messages have been changed and now lie within the range 1000+, and stage messages now lie within the range 2000+. All further reference to message numbers will detail these ranges.
  • The Pipelines substitution mechanism for command-line arguments: &arg, has been removed.
  • All of the Pipelines examples (.PPL files) have been changed to (.REX files) and the associated HTML files have been updated to reflect the new ooRexx format.
  • The existing Pipelines template has been re-formatted/trimmed-down to only include a definition for the endchar control option – all other options have been left to their default values.
  • The Regular Expression Component Library that was employed by Pipelines (supplied by Tropic Software East) has been replaced by the TR1 regex implementation supplied by Microsoft. This change does not affect the syntax of any of the stage commands that support regular expressions, however; the following stage command DLL’s have been modified to support the TR1 implementation:
  • This change also means that the main online Pipelines and stage documentation, and executable examples along with Pipelines Stage DLL Wizard; have been updated to reflect the new regular expression interface.
  • Under certain conditions; when a required stage output stream connection is missing, the application abend’s with a protection exception. This has been corrected.
  • > stage command: is issuing canned message #2071 when it discovers that its secondary input stream (and the stage expects to read a secondary input stream record which specifies the output filename) is not connected. This may happen in a pipeline which processes (for example; the output from the FLIST stage command – when no files are found) and as a result, does not produce any input to the > stage. This has been corrected.

New in Pipelines 1.9 (May 24, 2011)

  • STRIP stage command: the addition of a maxstrip operand; which specifies the maximum number of occurrences of the target character(s) or string to remove.
  • DELAY stage command: did not write the argument portion of an input record to it’s output stream when a millisecond delay value is specified. This has been corrected.
  • A new TRACE option keyword; which will allow the step by step inspection of input and output stream records. In order to support this; a shared file segment has been implemented; to allow IPC notifications between pipelines that are attached to the same console. This will allow the tracing of called pipelines to be handled in the caller’s console. Canned messages #1030, #1031, #1032 & #1033 have been added to support the new TRACE functionality.
  • The ‘Home’ hyperlink in the (target install directory) ‘..\Examples\Readme.htm’ document is incorrectly pointing to the Pipelines version 1.7 online documentation page. This has been corrected.
  • The substitution placeholder &VERSION incorrectly returns a version number of 1.7. This has been corrected.
  • LITERAL stage command: an error was introduced when restructuring the code for version 1.8. This means that the example: ASCII32-126.ppl terminates with canned message #43. This has been corrected.
  • LOOKUP stage command: causesd an abend issuing canned message #41; when it determines that an input master record is out of sequence. This has been corrected.
  • RUNPIPE stage command: the addition of a QUIET sub-option on the NOWAIT operand; which will launch the target pipeline (without an attached console) as a stand-alone background pipeline.
  • < stage command: when < is specified in position where it is not the first stage in the pipeline and the file does not exist or cannot be opened due to an error, the < stage now issues a warning message (instead of an error message) and continues to process its input records.
  • SHELLEXECUTE stage command: the addition of a MAXRC synonym.
  • CONSOLE stage command: is incorrectly displaying certain characters when writing output records to the console; this will be corrected. It will also be amended to support the TRACE ON option.
  • CALLPIPE, IN and OUT stage commands: have been amended to support the TRACE ON option.
  • A fix for the CApplMessage class. CApplMessage was not rendering extended ASCII characters correctly. This has been corrected.
  • The option keywords MONITOR and PRIORITY are not restricted to a single definition per pipelines instance (ie; in a pipelines file) as described in the documentation. This has been corrected.

New in Pipelines 1.8 (May 24, 2011)

  • SPECS stage command: the NEXTWORD operand will no longer insert a SPACE into the output record, before appending data; if that data is null.
  • A new DELAY stage command: which waits until a particular time of day or until a specified interval of time has elapsed before copying a primary input stream record to its primary output stream. Canned messages #64 and #65 have been added to support this new stage command.
  • SHELLEXECUTE stage command: was not capturing all of the executed process’ STDOUT and STDERR output data. This has been corrected. The stage command has also been redesigned; the new design includes the BATCH operand; which specifies that should an input record argument contain a syntax error or invalid data, or that the actual command fails to execute; SHELLEXECUTE will issue the appropriate error message, but it will continue to read, process and execute input record commands until it reaches end-of-file on its primary input stream. SHELLEXECUTE will only support the BATCH operand argument; all other arguments will be defined by each primary input stream record. Canned message #66 has been added to support this change in functionality.
  • CALLPIPE stage command: was not capturing all of the called pipeline’s primary and secondary output data. This has been corrected.

New in Pipelines 1.7 (May 24, 2011)

  • REVERSE stage command: has been removed.
  • You will now have to use the REVERSE operand of the SPECS stage command to reverse record data. SPECS allows you to reverse the data in a range of word, field and column output specifications, whereas the REVERSE stage was only able to reverse the contents of an entire record.
  • The following example shows how you might use the SPECS stage command to reverse the contents of columns 10 through 20 of an input record:
  • pipe ...
  • | specs .. 10-20 reverse ..
  • | ...
  • SHELLEXECUTE stage command: did not support the WAIT and NOWAIT operands; these have now been added, but they will not actually be useable until Pipelines 1.7 is released. Additionally Pipelines 1.6 issues an incorrect canned message #63, it currently reads:
  • ‘You cannot specify the WAIT operand in combination with the CMD operand.’
  • It has now been corrected, and reads:
  • ‘You cannot specify the NOWAIT operand in combination with the CMD operand.’
  • Documentation file: Messages.htm (which was missing any reference to canned message #63) now in includes the correct message.
  • LOCATE and NLOCATE stage commands: support for the numeric comparison operators: .
  • FILELIST stage command: support for the alternate stage command name: LISTFILE.
  • A new DEAL stage command; which writes primary input stream records to its connected output streams in either sequential order; starting with the primary output stream, or some other order specified on its secondary input stream.

New in Pipelines 1.6 (Jul 27, 2009)

  • This version of Pipelines is currently only available for the .NET 2.0 platform.
  • A Pipelines Visual Studio/VC++ API mechanism (phase 1: VS8 - VC++ 9).
  • The API provides all the initialisation and runtime routines that support the current builtin stage set; comprising stage command parsing, runtime extraction and stream connection routines and a stage DLL project wizard which creates a fully functional skeletal Pipelines stage DLL.
  • In order to keep the Pipelines download package to a reasonable and manageable size and at the same time provide me with the flexibility to publish Pipelines features which may have already been developed but not yet documented, as and when they are deemed fit for use; the Pipelines documentation is now available online and no longer provided with the download package.
  • FILELIST stage command: the file date and time values have been changed to represent ‘local-time’; this brings the field’s in line with the DOS DIR and Windows file date and time property values.
  • The default regular expression mode was incorrectly defined as 1; this has been changed to a value of 2 (the standard Perl regular expression parsing mode).
  • A re-design and extension of the SNAKE stage command.
  • SNAKE now only delays those records which comprise a complete matrix, that is to say, if you specify the numrows operand; once the stage has read enough input records to build an output matrix of numcols by numrows; the output matrix is written to the primary output stream, the allocations for that matrix are released and the stage begins building the next matrix. This re-design improves the performance of the stage by a significant factor (for multiple matrices).
  • SNAKE now supports a PAD keyword and pad character operand which allows the specification of the character which is used to extend shorter input records for output alignment.
  • An increase in record throughput; the streamline of the StageManager i/o request mechanism provides much needed improvement in most pipeline constructions.
  • A MONITOR option keyword; which allows you to turn off stall detection.
  • LITERAL stage command: the addition of a PREFACE and APPEND keyword; which specify the order in which the command argument and primary input stream records are processed.
  • A new SHELLexecute stage command; which allows you to specify a (system) shell command, or indeed any other executable process, either synchronously or asynchronously. This addition of the SHELL stage command allows you to construct pipelines which perform housekeeping; file and directory operations; for example; deleting, renaming and attribute modification.
  • Ill-placed and unnecessary registry definitions have been removed; this enables the RUNPIPE stage command to operate much more efficiently.
  • The correction of some broken hyperlinks in the Filein.htm document.

New in Pipelines 1.5 (Jul 27, 2009)

  • Pipelines version 1.5 is the last version of Pipelines to target the .NET 1.0 platform; all future versions of Pipelines will target .NET 2.0 as a minimum platform requirement.
  • BUFFER stage command: a REVERSE keyword; which specifies that the contents of the buffer are written to the primary output stream in reverse record order.
  • < (FILEIN) stage command: a REVERSE keyword; which specifies that an input file is read in reverse record order.
  • The REVERSE process uses a bespoke read process which traverses an input file in reverse order. To ensure that the < (FILEIN), < (FILEIN) REVERSE and IN stage commands all produce identical output records (so that multiple, multi-stream pipelines are consistent in their handling of the records) all three processes now split their input at New-Line characters only; individual and groups of Carriage-Return characters are discarded.
  • CONSOLE stage command: determines if its primary output stream is connected when the stage is dispatched; if true, once CONSOLE determines that its primary output stream has become disconnected, the stage ends.

New in Pipelines 1.4 (Jul 27, 2009)

  • Pipelines version 1.4 has the following changes:
  • Per-pipeline support for a range of regular expression flavours.
  • Implementation of a regular expression option for the following stage commands:
  • BEWEEN
  • LOCATE
  • CHANGE
  • NLOCATE
  • FILELIST
  • OUTSIDE
  • FROMLABEL
  • SPLIT
  • INSIDE
  • TOLABEL
  • JOIN
  • The PATTERN, ANYOF and charrange options remain, where appropriate; as they provide the fastest and most efficient method of searching for expressions which can be described by a range of characters or a simple pattern mask.
  • Per-stage command history of change details.
  • A new stage command: SNAKE; which builds multi-column matrices.
  • CHANGE stage command: was not writing unchanged records to its secondary output stream; this has been corrected.
  • JOIN stage command: no longer discards null input records; JOIN concatenates consecutive input records, up to, but not including a null input record.
  • Other miscellaneous changes and corrections.

New in Pipelines 1.3 (Jan 18, 2008)

  • Multi-stream Callpipe support.