Discussion:
ANSI ???
(too old to reply)
Paul Gilmartin
2017-04-19 16:58:31 UTC
Permalink
Raw Message
Looking at docmentation for Regina led me to stumble on to
a draft ANSI Rexx standard available in PDF from:
http://www.rexxla.org/rexxlang/standards/

I hadn't imagined! Features of the ADDRESS instruction not
available in TSO Rexx include redirection of I/O from/to
stems and streams. These might be enormously useful.

I hadn't realized IBM was so far behind the norm. Grrr.

-- gil

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Nims,Alva John , Al
2017-04-19 17:48:55 UTC
Permalink
Raw Message
Yes and if IBM would give us PIPES (BatchPipesWorks Product) then you can use PIPE to read from a file into a STEM or STACK and vice-versa.

Al Nims
Systems Admin/Programmer 3
UFIT
University of Florida
(352) 273-1298

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Paul Gilmartin
Sent: Wednesday, April 19, 2017 12:59 PM
To: TSO-***@VM.MARIST.EDU
Subject: [TSO-REXX] ANSI ???

Looking at docmentation for Regina led me to stumble on to a draft ANSI Rexx standard available in PDF from:
http://www.rexxla.org/rexxlang/standards/

I hadn't imagined! Features of the ADDRESS instruction not available in TSO Rexx include redirection of I/O from/to stems and streams. These might be enormously useful.

I hadn't realized IBM was so far behind the norm. Grrr.

-- gil

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions, send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Paul Gilmartin
2017-04-19 19:11:00 UTC
Permalink
Raw Message
Post by Nims,Alva John , Al
Yes and if IBM would give us PIPES (BatchPipesWorks Product) then you can use PIPE to read from a file into a STEM or STACK and vice-versa.
Appparently you're more familiar with BatchPipesWorks than I.
(I've used only CMS Pipelines.) How, with BatchPipesWorks
might one use address LINKMVS DFSORT, redirecting SORTIN from
one stem and redirecting SORTOUT to another stem. (Writing
SORTIN to a temp DSN then reading SORTOUT from another DSN
would be cheating; it's a violation of Pipethink.) BPXWUNIX
uses stems in a Pipethoughtful manner. Here's an example
with ANSI constructs in Regina:

582 $ cat ~/bin/pipesort
/* Rexx */ signal on novalue; /*
Example of ANSI Rexx redirection.
*/
In.1 = 'Larry'
In.2 = 'Moe'
In.3 = 'Curly'
In.0 = 3

address SYSTEM 'sort' with input stem In. output stem Out.

do N = 1 to Out.0
if 1 then say right( N, 3 ) Out.N; end N
return 0
583 $

Note that the "sort" here is not a Rexx intrinsic but a host
command. The similar in CMS works only because CMS Pipelines
has a "sort" stage; it's not a host environment command.

-- gil

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Nims,Alva John , Al
2017-04-20 13:25:30 UTC
Permalink
Raw Message
The BatchPipesWorks product (5655-D45) has a SORT stage built-in.
/* REXX */
Address TSO
"PIPE < filea.text | STEM a1. | SORT | STEM b1. | > sorted.filea.text"
...

There are options for the SORT stage such as which columns, UNIQUE, ....

To directly invoke DFSort or SyncSort within a PIPE stage, I think an external PIPE Stage exec would have to be written, because I think things like the SYSIN, SORTIN, SORTOUT DDs would have to be allocated.

Al Nims
University of Florida

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Paul Gilmartin
Sent: Wednesday, April 19, 2017 3:11 PM
To: TSO-***@VM.MARIST.EDU
Subject: Re: [TSO-REXX] ANSI ???
Post by Nims,Alva John , Al
Yes and if IBM would give us PIPES (BatchPipesWorks Product) then you can use PIPE to read from a file into a STEM or STACK and vice-versa.
Appparently you're more familiar with BatchPipesWorks than I.
(I've used only CMS Pipelines.) How, with BatchPipesWorks might one use address LINKMVS DFSORT, redirecting SORTIN from one stem and redirecting SORTOUT to another stem. (Writing SORTIN to a temp DSN then reading SORTOUT from another DSN would be cheating; it's a violation of Pipethink.) BPXWUNIX uses stems in a Pipethoughtful manner. Here's an example with ANSI constructs in Regina:

582 $ cat ~/bin/pipesort
/* Rexx */ signal on novalue; /*
Example of ANSI Rexx redirection.
*/
In.1 = 'Larry'
In.2 = 'Moe'
In.3 = 'Curly'
In.0 = 3

address SYSTEM 'sort' with input stem In. output stem Out.

do N = 1 to Out.0
if 1 then say right( N, 3 ) Out.N; end N return 0
583 $

Note that the "sort" here is not a Rexx intrinsic but a host command. The similar in CMS works only because CMS Pipelines has a "sort" stage; it's not a host environment command.

-- gil

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions, send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Paul Gilmartin
2017-04-20 14:23:19 UTC
Permalink
Raw Message
Post by Nims,Alva John , Al
The BatchPipesWorks product (5655-D45) has a SORT stage built-in.
/* REXX */
Address TSO
"PIPE < filea.text | STEM a1. | SORT | STEM b1. | > sorted.filea.text"
...
And the CMS Pipelines manual advises/requires the use of external DFSORT
for large data sets or complex operations.

But consider the case where the utility has no corresponding Pipe stage.
And why should such functions be replicated, redundantly, as Pipe stages?
Post by Nims,Alva John , Al
There are options for the SORT stage such as which columns, UNIQUE, ....
Corresponding DFSORT options might be passed in the argument string
of the external PIPE stage you mention below.
Post by Nims,Alva John , Al
To directly invoke DFSort or SyncSort within a PIPE stage, I think an external PIPE Stage exec would have to be written, because I think things like the SYSIN, SORTIN, SORTOUT DDs would have to be allocated.
But could those DDNAMES be allocated to connectors of that external PIPE stage?
Aye, I fear, there's the rub. (I believe CMS FILEDEF does not support allocation
of a DDNAME (FILE) to connector.)

-- gil

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Nims,Alva John , Al
2017-04-20 14:41:08 UTC
Permalink
Raw Message
" And the CMS Pipelines manual advises/requires the use of external DFSORT for large data sets or complex operations."
I am going to assume the reason to be, that DFSort/SyncSort will use things like SORTWK## data set/external storage where the PIPES SORT is all in main memory.

"Corresponding DFSORT options might be passed in the argument string of the external PIPE stage you mention below."
Yes or a STEM variable name containing the control cards that would be passed.

"But could those DDNAMES be allocated to connectors of that external PIPE stage?"
The "<" and ">" stages support:
dsname
'dsname'
DDname=ddname
DDname=ddname (member)
For "dsname" it too can include "(member)"

If you want to look at the documentation for BatchPipesWorks, you can find it at:
https://www-05.ibm.com/e-business/linkweb/publications/servlet/pbi.wss?CTY=US&FNC=SRX&PBL=SA22-7456-01

This documentation is NOT available as PDF, it is only available in BookManager format.

Al Nims
Systems Admin/Programmer 3
UFIT
University of Florida
(352) 273-1298

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Paul Gilmartin
Sent: Thursday, April 20, 2017 10:22 AM
To: TSO-***@VM.MARIST.EDU
Subject: Re: [TSO-REXX] ANSI ???
Post by Nims,Alva John , Al
The BatchPipesWorks product (5655-D45) has a SORT stage built-in.
/* REXX */
Address TSO
"PIPE < filea.text | STEM a1. | SORT | STEM b1. | > sorted.filea.text"
...
And the CMS Pipelines manual advises/requires the use of external DFSORT for large data sets or complex operations.

But consider the case where the utility has no corresponding Pipe stage.
And why should such functions be replicated, redundantly, as Pipe stages?
Post by Nims,Alva John , Al
There are options for the SORT stage such as which columns, UNIQUE, ....
Corresponding DFSORT options might be passed in the argument string of the external PIPE stage you mention below.
Post by Nims,Alva John , Al
To directly invoke DFSort or SyncSort within a PIPE stage, I think an external PIPE Stage exec would have to be written, because I think things like the SYSIN, SORTIN, SORTOUT DDs would have to be allocated.
But could those DDNAMES be allocated to connectors of that external PIPE stage?
Aye, I fear, there's the rub. (I believe CMS FILEDEF does not support allocation of a DDNAME (FILE) to connector.)

-- gil

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions, send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Paul Gilmartin
2017-04-20 16:46:59 UTC
Permalink
Raw Message
Post by Nims,Alva John , Al
" And the CMS Pipelines manual advises/requires the use of external DFSORT for large data sets or complex operations."
I am going to assume the reason to be, that DFSort/SyncSort will use things like SORTWK## data set/external storage where the PIPES SORT is all in main memory.
I agree.
Post by Nims,Alva John , Al
"Corresponding DFSORT options might be passed in the argument string of the external PIPE stage you mention below."
Yes or a STEM variable name containing the control cards that would be passed.
In CMS, stems work well with CALLPIPE; poorly with ADDPIPE. I vaguely understand
the reason for this. But such a stem could be connected to a secondary input.
Post by Nims,Alva John , Al
"But could those DDNAMES be allocated to connectors of that external PIPE stage?"
dsname
'dsname'
DDname=ddname
DDname=ddname (member)
For "dsname" it too can include "(member)"
You're looking at the wrong side. I'm trying to imagine a way
to connect a DDNAME to a connector, as in z/OS UNIX I do:

address SYSCALL pipe P.
/* (Then spawn something that feeds P.2) */

/* Make the stream from the pipe available as input to IEBGENER.
Think of P.1 as an input connector. */
RC = BPXWDYN( 'alloc dd(SYSUT1) path(/dev/fd/'P.1') ...' )
/* Somehow allocate SYSIN, SYSPRINT, and SYSUT2 ... */

address LINKMVS 'IEBGENER'
Post by Nims,Alva John , Al
https://www-05.ibm.com/e-business/linkweb/publications/servlet/pbi.wss?CTY=US&FNC=SRX&PBL=SA22-7456-01
This documentation is NOT available as PDF, it is only available in BookManager format.
Thanks,
gil

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Paul Gilmartin
2017-04-20 18:51:38 UTC
Permalink
Raw Message
Post by Nims,Alva John , Al
https://www-05.ibm.com/e-business/linkweb/publications/servlet/pbi.wss?CTY=US&FNC=SRX&PBL=SA22-7456-01
This documentation is NOT available as PDF, it is only available in BookManager format.
(Which is fine for me.)

I see there are <oe and >oe stages. These mention "hfs" and "hfsreplace",
but I don't see those mentioned in the ToC.
Post by Nims,Alva John , Al
oe sorely lacks important options such as O_CREAT, O_EXCL, and
permission mode specifications. I suppose these could be dealt
with by creating the file in advance with "SYSCALL open".

May I assume that the "OpenEdition Text File" mentioned by each may
be a file descriptor file, despite the use of the word "stored"?

If so, I could imagine a Byzantine design to connect an input or
output discriptor to the file descriptor of a POSIX pipe created
with "SYSCALL pipe", then BPXWDYN( 'alloc ...' ) the other end
of that pipe as SYSUT1 or SYSUT2.

The COMMAND stage mentions "TSO commands". Does this imply that
COMMAND is unavailable if PIPE is executed in batch, or does PIPE
launch a TMP? It says PIPE writes to a terminal (SYSTSPRT?) But
it appears not to OUTTRAP the output of the TSO command nor to
pass it to following stages as the similar CMS stages do.

Is there no LINKMVS stage nor any stage to spawn a UNIX command/
I suppose those could be synthesized with a Rexx stage to LINKMVS
or spawn t suitable process.

Thanks,
gil
----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Nims,Alva John , Al
2017-04-20 20:00:19 UTC
Permalink
Raw Message
About PIPE and "oe", well this is an indicator about how long this software has been around, "OpenEdition" was replaced by "Unix System Services" (I believe) a long time ago. I do not know if the people who created BatchPipesWorks are still around, so you may have to fudge some additional work for USS fully.

Instead of the "COMMAND" stage, use the "TSO" stage, this is the stage that will write the output to a stream so it can be used in a later stage, just like there was an OUTTRAP in REXX (same restrictions, I believe).
pipe tso listcat | > LISTCAT.RESULTS
or
pipe < INPUT.LIST | tso | > OUTPUT.LIST

Last about: "Is there no LINKMVS stage nor any stage to spawn a UNIX command/ I suppose those could be synthesized with a Rexx stage to LINKMVS or spawn t suitable process."
Yes, there is no LINKMVS stage, like I said before, you would have to grow-your-own USS type of stages, because it is sorely lacking in that respect.

I am surprised that the USS support has not been improved, because this product has not been withdrawn from marketing or had service discontinued.

http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=dd&subtype=sm&htmlfid=897/ENUS5655-D45

Al Nims
Systems Admin/Programmer 3
UFIT
University of Florida
(352) 273-1298

-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-***@VM.MARIST.EDU] On Behalf Of Paul Gilmartin
Sent: Thursday, April 20, 2017 2:52 PM
To: TSO-***@VM.MARIST.EDU
Subject: Re: [TSO-REXX] ANSI ???
Post by Nims,Alva John , Al
https://www-05.ibm.com/e-business/linkweb/publications/servlet/pbi.wss
?CTY=US&FNC=SRX&PBL=SA22-7456-01
This documentation is NOT available as PDF, it is only available in BookManager format.
(Which is fine for me.)

I see there are <oe and >oe stages. These mention "hfs" and "hfsreplace", but I don't see those mentioned in the ToC.
Post by Nims,Alva John , Al
oe sorely lacks important options such as O_CREAT, O_EXCL, and
permission mode specifications. I suppose these could be dealt with by creating the file in advance with "SYSCALL open".

May I assume that the "OpenEdition Text File" mentioned by each may be a file descriptor file, despite the use of the word "stored"?

If so, I could imagine a Byzantine design to connect an input or output discriptor to the file descriptor of a POSIX pipe created with "SYSCALL pipe", then BPXWDYN( 'alloc ...' ) the other end of that pipe as SYSUT1 or SYSUT2.

The COMMAND stage mentions "TSO commands". Does this imply that COMMAND is unavailable if PIPE is executed in batch, or does PIPE launch a TMP? It says PIPE writes to a terminal (SYSTSPRT?) But it appears not to OUTTRAP the output of the TSO command nor to pass it to following stages as the similar CMS stages do.

Is there no LINKMVS stage nor any stage to spawn a UNIX command/ I suppose those could be synthesized with a Rexx stage to LINKMVS or spawn t suitable process.

Thanks,
gil
----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions, send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Paul Gilmartin
2017-04-20 22:25:37 UTC
Permalink
Raw Message
Post by Nims,Alva John , Al
About PIPE and "oe", well this is an indicator about how long this software has been around, "OpenEdition" was replaced by "Unix System Services" (I believe) a long time ago.
My understanding is that the product has evolved, only gradually. But the
name was changed because of trademark conflict.
Post by Nims,Alva John , Al
I do not know if the people who created BatchPipesWorks are still around, so you may have to fudge some additional work for USS fully.
On the CMS side, I suspect the Plumber Emeritus is contributing little. And I'd
hate to see divergence between CMS pipelines and BatchPipes. There are platform-
independent stages such as DIGEST which ought to be maintained as common code in
both.
Post by Nims,Alva John , Al
Instead of the "COMMAND" stage, use the "TSO" stage, this is the stage that will write the output to a stream so it can be used in a later stage, just like there was an OUTTRAP in REXX (same restrictions, I believe).
pipe tso listcat | > LISTCAT.RESULTS
or
pipe < INPUT.LIST | tso | > OUTPUT.LIST
Restrictions such as, I suppose:
o The output from a TSO command is not available until each command completes,
an obstacle to processing in real time output from long-running commands.
o There's no facility to provide input to an individual TSO command. The
only input to the TSO stage is a list of commands.
Post by Nims,Alva John , Al
Last about: "Is there no LINKMVS stage nor any stage to spawn a UNIX command/ I suppose those could be synthesized with a Rexx stage to LINKMVS or spawn t suitable process."
Yes, there is no LINKMVS stage, like I said before, you would have to grow-your-own USS type of stages, because it is sorely lacking in that respect.
I am surprised that the USS support has not been improved, because this product has not been withdrawn from marketing or had service discontinued.
Perhaps a UNIX command stage? I'd call it SH. And it should accept input
from the pipeline and provide output to the pipeline. In real time.
Post by Nims,Alva John , Al
http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=dd&subtype=sm&htmlfid=897/ENUS5655-D45
How I might imagine invoking IEBGENER from a Rexx stage. However silly in
that it does nothing. Forgive my poor recollection of Pipelines syntax:

address SYSCALL 'pipe P.'
'addpipe *.input:0 | >oe /dev/fd/'P.2
RC = BPXWDYN( 'allocate dd(SYSUT1) filedata(TEXT) path(''/dev/fd/'P.1''') ...' )

address SYSCALL 'pipe Q.'
'addpipe <oe /dev/fd/'Q.1' | *.output:0'
RC = BPXWDYN( 'allocate dd(SYSUT2) filedata(TEXT) path(''/dev/fd/'Q.2''') ...' )

address LINKMVS 'IEBGENER'

Incomplete, but could it be fleshed out, or is the whole idea basically flawed?

Can the LINKMVS IEBGENER run concurrently with parallel stages in the pipeline?
Would need to be under a separate TCB. Does BatchPipes do that? In extremis,
it could "SYSCALL spawn" another Rexx wrapper, which would run concurrently,
to do the LINKMVS.

BatchPipes should be made savvy to filedata(RECORD).

-- gil

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Paul Gilmartin
2017-04-25 15:27:27 UTC
Permalink
Raw Message
Post by Nims,Alva John , Al
I am surprised that the USS support has not been improved, because this product has not been withdrawn from marketing or had service discontinued.
http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=dd&subtype=sm&htmlfid=897/ENUS5655-D45
Is this the same product described in:
z/VM CMS Pipelines User’s Guide and Reference Version 6 Release 4
SC24-6252-00
...? If so, wonderful. Features described in the Author's Edition
have been incorporated.

The article "Using the PIPE Command from Unix System Services" does
not mention ADDRESS SYSCALL. I hope this is an oversight. SYSCALL
is key to support of Unix System Services from Rexx.

-- gil

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Paul Gilmartin
2017-04-22 03:08:26 UTC
Permalink
Raw Message
Post by Nims,Alva John , Al
https://www-05.ibm.com/e-business/linkweb/publications/servlet/pbi.wss?CTY=US&FNC=SRX&PBL=SA22-7456-01
This documentation is NOT available as PDF, it is only available in BookManager format.
Compare the description of SPECS there with that in the CMS Runtime Distribution:
http://publibfp.dhe.ibm.com/cgi-bin/bookmgr/BOOKS/dfsc4a00/4.5?DT=20070419120134

The latter is far richer. Any RFE should include synchronizing the two
to the extent that features are system-independent. Not only once, bot
to extablish a process such that any enhancements to one are diffused to
the other.

-- gil

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Hobart Spitz
2017-04-20 14:50:33 UTC
Permalink
Raw Message
IMHO, making TSO PIPEs part of the z/OS base is long, long overdue. I have
submitted two requirements at SHARE which have produced no results.

Anyone who argues against this, even on a cost basis, is mistaken or
misinformed. PIPEs in the base would greatly improve the competitiveness
of mainframe systems, while cutting IBM development and support costs,
helping the IBM bottom line, as well as that of mainframe sites. If you've
been following IBM after quarterly reports are covered in the news, you'll
know that IBM needs a shot in the arm like this. Results have been poor
for many quarters. While there might be a small, temporary drop in
hardware revenue, over the long term it would mean improved profitability.
There might even be IBM customers who are saved from moving off mainframes
(as an alternative to bankruptcy) by such a move.

USS (and other forms of UNIX emulation) will never be able to achieve what
PIPEs can:

The UNIX byte stream model requires that every character of a text file be
inspected for end-of-record and forcing each character to the faster
caches. There is no way to skip an entire record. The PIPEs model of
record orientation means that records can be skipped, in their entirety, or
by inspecting a part, without paging/cache-loading the whole record should
it span page or cache line. Certainly, the faster caches don't need to be
flooded with unneeded bytes.

USS byte streams can be split only with difficulty, and, because the data
flow is not deterministic, they can't be rejoined without special coding.
With PIPEs, splitting and rejoining streams is routine, as well as useful,
because the record flow is known and documented for builtin stages.

PIPEs make REXX an even more compelling tool in batch.

PIPEs have interfaces to DB2, TCP/IP, PDSs, Byte Files, as well as to
sequential files, to name a few.

I urge anyone and everyone who uses REXX to do what they can to make this
happen. Fee free to forward this post to anyone who you think cares and/or
who can help.

In the meantime, you can convince your management to install TSO PIPEs.
Your site will benefit, and it might just be enough to get the powers that
be in IBM to wake up. The TSO PIPE command was available separately from
BatchPipes. I assume it still is.

FYI, PIPE can also be invoked from JCL: // EXEC PGM=PIPE,PARM='<
IN.FILE|SORT|> OUT.FILE'
Post by Nims,Alva John , Al
The BatchPipesWorks product (5655-D45) has a SORT stage built-in.
/* REXX */
Address TSO
"PIPE < filea.text | STEM a1. | SORT | STEM b1. | > sorted.filea.text"
...
There are options for the SORT stage such as which columns, UNIQUE, ....
To directly invoke DFSort or SyncSort within a PIPE stage, I think an
external PIPE Stage exec would have to be written, because I think things
like the SYSIN, SORTIN, SORTOUT DDs would have to be allocated.
Al Nims
University of Florida
-----Original Message-----
Sent: Wednesday, April 19, 2017 3:11 PM
Subject: Re: [TSO-REXX] ANSI ???
Post by Nims,Alva John , Al
Yes and if IBM would give us PIPES (BatchPipesWorks Product) then you
can use PIPE to read from a file into a STEM or STACK and vice-versa.
Appparently you're more familiar with BatchPipesWorks than I.
(I've used only CMS Pipelines.) How, with BatchPipesWorks might one use
address LINKMVS DFSORT, redirecting SORTIN from one stem and redirecting
SORTOUT to another stem. (Writing SORTIN to a temp DSN then reading
SORTOUT from another DSN would be cheating; it's a violation of
Pipethink.) BPXWUNIX uses stems in a Pipethoughtful manner. Here's an
582 $ cat ~/bin/pipesort
/* Rexx */ signal on novalue; /*
Example of ANSI Rexx redirection.
*/
In.1 = 'Larry'
In.2 = 'Moe'
In.3 = 'Curly'
In.0 = 3
address SYSTEM 'sort' with input stem In. output stem Out.
do N = 1 to Out.0
if 1 then say right( N, 3 ) Out.N; end N return 0
583 $
Note that the "sort" here is not a Rexx intrinsic but a host command. The
similar in CMS works only because CMS Pipelines has a "sort" stage; it's
not a host environment command.
-- gil
----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions, send email
----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
--
OREXXMan

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Paul Gilmartin
2017-04-20 23:08:29 UTC
Permalink
Raw Message
Post by Hobart Spitz
The UNIX byte stream model requires that every character of a text file be
inspected for end-of-record and forcing each character to the faster
caches. There is no way to skip an entire record. The PIPEs model of
record orientation means that records can be skipped, in their entirety, or
by inspecting a part, without paging/cache-loading the whole record should
it span page or cache line. Certainly, the faster caches don't need to be
flooded with unneeded bytes.
For z/OS, RECFM=VB, there's little to be gained. Pretty much the entire
block must be processed. In CMS, in contrast, RECFM=V files are indexed
and RECFM=F is effectively RECFM=FBS. Can BatchPipes exploit the SEEK
optimizations possible if RECFM=FBS?
Post by Hobart Spitz
USS byte streams can be split only with difficulty, and, because the data
flow is not deterministic, they can't be rejoined without special coding.
...
I've done it; it's tedious. But in an EXEC it was my only option to
avoid breaking concurrency.

-- gil

----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX
Loading...