On 2/12/23 00:03:30, Pedro Vera wrote:
> ...
> 3. Rexx came in the mid 1980's. It has a more powerful variable name
> capability. Rexx integrates well with ISPF if it only uses ISPF variable
> naming conventions. (a guess...) IBM wants to keep downward compatibility
> for everything, so never updated ISPF to allow rexx compound variables.
>
> And here we are 40 years later still confused about it!
The second-most confused group is the tech writers. The most confused is
the readers.
Downward compatibility should not be a concern. REXX can only benefit from
relaxation of the syntax. Program interfaces from FORTRAN, PL/I, COBOL, ...
can remain unchanged with their restrictions. COBOL has always supported
long variable names, but coders of Edit macros in COBOL don't seem to be
complaining.
For REXX, strings between parentheses and delimited by '(', ')' ',', and ' '
should simply be passed as-is, full length to IRXEXCOM, which should be
the sole arbiter of syntax.
I was mistaken when I said "variable pool" is not REXX jargon. The term
occurs eleven times in SO/E REXX Reference SA32-0972-50, All late in the
book in sections I'd consider advanced topics, beginning with
Chapter 12. TSO/E REXX programming services...239. I haven't read that part
since long ago, under CMS.
I don't find the term adequately explained; I've submitted an RCF.
ISPF Edit and Edit Macros should state whether or not this is the same
"variable pool" it mentions, with citation/hyperlink to the Rexx document.
Intriguing is:
Return code
-1 • Another task is accessing the variable pool
Does multitasking affect ISPF?
In the ISPF Macros book:
...
2. In the REXX environment, the REXX variable pool and the dialog function
variable pool are also merged. Therefore, quoted variable names in
parentheses are the same as unquoted variable names, except that the editor
does the symbolic substitution rather than the REXX processor.
This needs clarification, at least that "names" must be syntactically legal
to both REXX and ISPF, with citatations/hyperlinks to each. ISPF should
not replicate either specification. Such repetition is treacherous.
"quoted"-"unquoted" needs clarification. Bob Bridges got it exactly backward.
Examples elsewhere in the chapter should be cited.
"merged" is frightening. Are variables copied from the REXX variable pool
to the dialog function variable pool or the reverse? In case of identcal
names, which dominates? Does merging make dialog variables available to
REXX? Is the merging performed once, perhaps at ISREDIT MACRO, or befpre
executing each ISREDIT command. Is this affected by PROCEDURE EXPOSE/
or is the "merge" imaginary; simply by concatenating the REXX and function
variable pools (but which dominates?)
The "length 1-8" mentioned elsewhere misleads REXX programmers to believe
(hope) that is the only limitation, and compound symbols are permitted.
It should be replaced by a citation/hyperlink to the point where the syntax
of ISPF variables is specified.
--
Thanks,
gil