From: Jeff H. <Je...@Je...> - 2020-05-13 20:20:05
|
<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <p>For the next NetRexx release I have debugged and enhanced the OVERLAY stage of njPipes. (The currently published version is a non-functioning draft-in-progress from over 20 years ago.)<br> </p> <p>The enhancements are all strictly upward compatible from the CMS version.</p> <p>There is one thing that is not upward compatible. In CMS the name can be abbreviated down to OVER. Unfortunately, 20 years ago, another totally different njPipes stage was named OVER. So the minimum abbreviation here is OVERL.</p> <p>New:<br> </p> <ul> <li>The HOLD option means if a non-primary stream has fewer records than the primary, the last read record is used.</li> <li>The default NOHOLD option means if a non-primary stream has fewer records than the primary, a blank record is used. This is the CMS action.</li> <li>The keyword PAD can be used to introduce its character. It is a readability only addition with the addition of the TRANSparent option. SPACE is a synonym for the default BLANK.</li> <li>The TRANSparent and character allows a different character to be used instead of the PAD character.</li> <li>A delimited string can be used instead of a non-primary stream. It is used as the next highest unused stream. If only the primary stream is connected, this is the secondary stream and all records read on the primary are overlayed by this same string. Implies HOLD. It is a convenience / performance device saving a LITERAL and DUPLICATE.<br> </li> </ul> <p>Here are the diagrams for njPipes and CMS:</p> <p><tt>/** OVERLAY njPipes<br> <br> +-NOHOLD-(2)-+ +-PAD-(2)+ +-BLANK----+<br> >>--OVERLay-(1)-+------------+-+--------+-+----------+-+--------------------------+-+---------------+--><<br> +-HOLD-(2)---+ +-xorc-----+ +-TRANSparent-+-xorc--+-(2)+ +-dstring-(2)(3)+<br> +-SPACE-(2)+ +-BLANK-+<br> +-SPACE-+<br> <br> HOLD keeps the last record from each stream, except primary, and uses it if the stream ends.<br> TRANSPARENT means that character can be different from the PAD character.<br> If omitted, it is the same as PAD character.<br> dstream can be used instead of a non-primary stream.<br> <br> (1) OVER is only CMS, njPipes has a totally different OVER stage<br> (2) njPipes only<br> (3) same as highest (+1) stream; implies HOLD<br> <br> */<br> /** OVERLAY CMS<br> <br> +-BLANK-+<br> >>--OVERlay-(1)-+-------+----------------------------------------------><<br> +-xorc--+<br> <br> (1) OVER is only CMS, njPipes has a totally different OVER stage<br> <br> */ <br> </tt></p> <p>========================</p> <p>Note: In writing and testing this stage it has exhibited some so far unexplained instabilities. I had to introduce some unorthodox programming to tame it. I *think* it is currently stable. <br> </p> <p>Jeff<br> </p> </body> </html> |