|
History of change |
Pipelines by TenFiftyTwo |
|
This
history of change document is intended to provide a synopsis of the notable
changes that have been made between versions of Pipelines. It will detail only
those changes which are significant, specifically; changes which may affect
the functionality of existing, user-written pipelines. |
|
Version 2.0 (test version) |
Date: 17 December 2011
Pipelines 2.0 for ooRexx 32bit
version 4+ has the
following changes:
|
● |
Pipelines has been re-designed to work under/support the ooRexx environment. This
is a significant development and chapter in the evolution of Pipelines. This
re-design has involved extensive re-structuring of the StageManager and the
addition of new stages and API functions to support user stages that might
make use of access to ooRexx variables, stems and arrays. All further versions of Pipelines will be for use under ooRexx. |
||||||||||||||||||||||
|
|
|
||||||||||||||||||||||
|
● |
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
pipeline which processes (for example output from the FLIST stage command –
when no files are found) that does not produce any input to the > stage.
This has been corrected. |
|
Version 1.9 |
Date: 23 May 2011
Pipelines version 1.9 has the following changes:
|
● |
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 < was 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: was incorrectly displaying certain
characters when writing output records to the console; this has been
corrected. It has also been 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 were not restricted to a single
definition per pipelines instance (ie; in a pipelines
file) as described in the documentation. This has been corrected. |
|
● |
The
examples folder ‘Handle arguments’ in the online help directory structure and
the download package directory structure have been renamed to ‘Subroutine’. |
|
Version 1.8 |
Date: 02 September 2010
Pipelines version 1.8 has the following changes:
|
● |
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. |
The
following two fixes are important; they rectify serious errors in previous
versions of Pipelines.
|
● |
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. |
|
Version 1.7 |
Date: 09 May
2010
Pipelines
version 1.7 has the following changes:
|
● |
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: <, <=, ==, !=, >= and >. |
|
● |
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. |
|
Version 1.6 |
Date: 29 June 2009
Pipelines
version 1.6 has the following changes:
|
● |
This version of Pipelines is currently only available for the .NET
2.0 platform. |
|
● |
A
Pipelines Visual Studio/VC++ Stage Command 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 operand 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 new
MONITOR option keyword; which allows you to turn off stall detection. |
|
● |
LITERAL stage command: the addition of a PREFACE and
APPEND operand; 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. |
|
Version 1.5 |
Date: 22 April 2008
Pipelines
version 1.5 has the following changes:
|
● |
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 operand; which specifies that the
contents of the buffer are written to the primary output stream in reverse
record order. |
|
● |
<
(FILEIN) stage command: a REVERSE operand; 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. |
|
Version 1.4 |
Date: 22 March 2008
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:
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. |
|
Version 1.3 |
Date: 03 November 2007
Pipelines
version 1.3 has the following changes:
|
● |
NLOCATE stage command: selected and unselected records were not being
written to the correct output streams; this has been corrected. |
|
● |
CALLPIPE and OUT stage commands have been
extended: Pipelines now allows you to call sub-routine pipelines which route
selected and unselected output records back to its caller; where OUT stream 0
corresponds to the primary output stream of the CALLPIPE stage of the calling
pipeline, and OUT stream 1 corresponds to the secondary output stream of the
CALLPIPE stage of the calling pipeline. This enhancement is significant; it
makes possible the construction of filter pipelines that operate in a similar
fashion to many of the builtin stage commands. |
|
● |
Other
miscellaneous changes and corrections. |
|
Version 1.2 |
Date: 08 October 2007
Pipelines
version 1.2 has the following changes:
|
● |
FILEIN stage command: changed to deny write access to open input
files. This is complementary to the FILEOUT and FILEAPPEND stage
commands; which deny read access to open output files. |
|
● |
Documentation files: Zone.htm and Casei.htm no longer
specify example pipelines which use the LOCATE stage command. LOCATE does not
use the pre-process functionality any more; it now provides full
multi-word-field-column selection and a non-case-sensitive selection
comparison. |
|
● |
SPECS stage
command: the operands STRIP, alignment LEFT, CENTER and RIGHT, now only
remove spaces (x’20’) and tabs (x’09’) before positioning the data in the
output record. |
|
Version 1.1 |
Date: 20 September 2007
Pipelines
version 1.1 has the following changes:
|
● |
This document: History of change.htm has been moved from the
install package to the tenfiftytwo.co.uk/pipelines website. |
|
● |
Example pipelines: Machine snapshot.ppl
and MachineDiff.ppl have been changed. They
both now correctly write to and read from the users’ My Documents
folder. |
|
Version 1.0 |
Date: 28 August 2007
Pipelines version 1.0
comprises the following features:
|
● |
Multi-pipeline
processing |
||||||||||||||||||||||||||||||||||||||||||||||||||
|
● |
Multi-stream
connectivity |
||||||||||||||||||||||||||||||||||||||||||||||||||
|
● |
Pipeline
stall-detection and dump mechanism |
||||||||||||||||||||||||||||||||||||||||||||||||||
|
● |
Priority
dispatch control |
||||||||||||||||||||||||||||||||||||||||||||||||||
|
● |
Argument
and place-holder substitution |
||||||||||||||||||||||||||||||||||||||||||||||||||
|
● |
The following bultin stage commands:
|
|
|