On Mon, 8 Sep 2014 18:52:03 +0200, Thomas Berg wrote: > >I have no problems with the stack (or rather: not more than with any other of >the language "constructs"). >Although I nearly always uses QUEUE/PULL/EXECIO with NEWSTACK/DELSTACK. > >There is a theoretical performance enhancement with using the stack instead of >stem. >With stack REXX need only one "parsing" of variable and don't need to setup a >stem. >This depends of course much on how smart the REXX interpreter or compiler is. > > Does the stem setup cost affect every reference to a compound symbol, or only the first?
CMS EXECIO provides an "EXECIO ... (VAR" as well as stem. I wonder why z/OS lacks the former. CMS also provides "EXECIO ... (STRING", but I suspect z/OS balked at the parsing considerations. There's good empirical evidence for the reasonable assumption that writing multiple records in a single EXECIO performs better than record-by-record. But John's objective was not performance but didactic transparency. And that stack performs better than stem, but that doesn't move me to use the stack when it's avoidable, nor to avoid subroutines when they are clearer than straight-line code that might be more efficient. And if one chooses multiple-record EXECIO, one must beware of REGION constraints, which are fatal, and of paging, which can vitiate any advantage of blocking EXECIO. I shirk "EXECIO 0 ddname (FINIS" and "FREE ddname" when I can rely on termination code to perform the operation and DDNAME or DCB exhaustion is not a concern. If the data set was allocated in JCL, then JCL can flush it and free it. -- gil ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
