Re: REXX vs other languages WAS: Rexx numeric digits and scientific notation question

2024-04-20 Thread Paul Gilmartin
On Sat, 20 Apr 2024 23:58:18 -0500, Bruce Hewson wrote:
>
>I use "cnt" for my loop counters. I stopped using FORTRAN style single 
>character variable names when I started coding in REXX. 
>
I thought FORTRAN allowed six.

(Be careful how you pronounce that!)

-- 
gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Regular Expressions: DFSORT, ISPF: "$","^"

2024-04-20 Thread Paul Gilmartin
On Sun, 21 Apr 2024 04:03:48 +, Sri Hari Kolusu wrote:
>...
>I know you are detail-attentive, so I would add it to the next pub refresh, 
>but it only goes into 3.1 (may be V2R5 but not sure).
>
>^
>The caret symbol matches the beginning the string.
>
>$
>The dollar symbol matches the end of the string.
>
Thanks.  That's better.  But rather than replicating the regex specification
foe each UNIX Command  and each utility, with errors propagating and
needing redundant corrections, it would be better if each had hyperlinks
to a single, thorough IBM specification comparable to the Open Group's

9. Regular Expressions

But, Conway's Law  ...

(In vain hope, I perused Appendix C of the Unix Command Ref.  SA23-2280-60
only to find two nearly identical copies of a woefully inadequate 
specification.)

-- 
Thanks again,
gil



--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Any "standard" way to access the values of the COBOL PROGRAM-ID, COPYRIGHT and/or SERVICE strings?

2024-04-20 Thread Farley, Peter
I am looking to find out if there is any standardized (i.e., not entirely 
compiler-version dependent) way to access these values.  Yes, for a minimum of 
Enterprise COBOL V5.x one can use the LE Vendor Interfaces manual documentation 
of the PPA control blocks to extract at least some of this information, and one 
can probably (mostly) do so within a COBOL program using the "ADDRESS OF" and 
pointer capabilities but is there any other way?

Ideally there should be a set of "introspective" functions or "special 
registers" to extract information about the running program from within that 
running program.  Currently all we have is the WHEN-COMPILED special register.

The "business case" here is production batch runtime logging of what programs 
actually were called and when they were last compiled (and hopefully by whom).  
Historically this kind of logging requirement has been handled with 
SCLM-specific ways to store and display "last translation" information, but 
logging such information should not have to depend on vendor SCLM capabilities 
or lack thereof.

I know it is probably an RFE/"Idea" that needs to be submitted, which would 
likely get rejected or infinitely postponed due to "higher priority" 
enhancements and "limited developer resources" (why is that anyway?), but if 
anyone here has any better information or ideas how to easily get such 
information I would appreciate hearing it.

Peter

This message and any attachments are intended only for the use of the addressee 
and may contain information that is privileged and confidential. If the reader 
of the message is not the intended recipient or an authorized representative of 
the intended recipient, you are hereby notified that any dissemination of this 
communication is strictly prohibited. If you have received this communication 
in error, please notify us immediately by e-mail and delete the message and any 
attachments from your system.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: REXX vs other languages -- EXECIO intuitiveness

2024-04-20 Thread Paul Gilmartin
On Sat, 20 Apr 2024 23:58:18 -0400, Steve Thompson wrote:

>I concur about REXX EXECIO I/O is not exactly intuitive.
>
>REXX, first implemented in CMS used the CMS I/O utilities
>Over in TSO they created EXECIO which does not operate in the
>same way as does the CMS EXECIO. And it causes me headaches when
>I work on CMS for a year or two and then come back to TSO to have
>it NOT be have as it did in CMS. Especially the STEM variable and
>trying to write a record.
>
Note the fundamental difference in file specs:
CMS:  FN FT FM
Z/OS: DDNAME
... but I have written portable EXECs -- on z/OS
my  FileSpec variable is one word; on CMS three.

And, irritatingly, the syntax of ADDRESS MVS EXECIO
differs depending on whether the EXEC is started from
a UNIX or non-UNIX address space.

The lack of (VAR string is probably impelled by TSO
RECFM=F, which would have a trailing blank entanglement.

>And so after working in TSO for a year or so to go back to CMS --
>I need to learn and make use of PIPEs which is not supported over
>on TSO Most shops do not see the need to pay for TSO Pipes.
>Sigh.
>
Is TSO Pipes even marketed except, an obsolete version
bundled with BatchPipes?

>And so, with Windows I/O is different (still talking REXX), same
>problem with Linux. I/O is not handled the same for simple reads
>and writes from my perspective.
>
Files on desktop systems are largely character streams; on
mainframes, record oriented.  Beyond that, standard Rexx
stream I/O came late to CMS because developers economized
by using the available EXECIO.

>Never-the-Less, I really appreciate REXX over EXEC, EXEC2 and CLIST.
>
Which Rexx do you use on desktop systems?

BTW, is the Regina mailing list active?

-- 
gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: REXX vs other languages WAS: Rexx numeric digits and scientific notation question

2024-04-20 Thread Bruce Hewson
Hello Bob,

I use "cnt" for my loop counters. I stopped using FORTRAN style single 
character variable names when I started coding in REXX. 

Except I do use them on occasion for building large stem variable lists.

example:-

i=i+1;jcl.i="//BRUCESMP JOB (1234546),'Bruce SMP jobn',"
i=i+1;jcl.i="// CLASS=A,   "
i=i+1;jcl.i="// MSGCLASS=X,"
i=i+1;jcl.i="// MSGLEVEL=(1,1),"
i=i+1;jcl.i="// NOTIFY= "
i=i+1;jcl.i="//*   "

So many ways to use REXX.   

Regards
Bruce


On Sat, 20 Apr 2024 11:08:03 -0400, Bob Bridges  wrote:

>It was while I was coding in REXX that I tried abutting a variable named 'x' 
>with another string, and couldn't figure out why the program behaved as it 
>did.  Eventually figured out I had inadvertently created a hex constant.  
>Maybe as an overreaction, I have never since used one-character variable 
>names, always two or more.  (What do I use for loop counters?, you ask.  I use 
>'j' plus another letter; 'jr' for records, for example, 'jd' for days 
>whatever.  More obvious would have been 'i', but there are too many two-letter 
>reserved words even in REXX that start with 'i'.)
>
>---
>Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Regular Expressions: DFSORT, ISPF: "$","^"

2024-04-20 Thread Sri Hari Kolusu
Paul,

DFSORT does indeed support "^" and "&" for the begin and end.

https://www.ibm.com/docs/en/zos/2.4.0?topic=statement-regular-expressions

If scroll down a bit in the above link, we do the examples.

^ibm
Matches records beginning with "ibm"
ibm$
Matches records ending with "ibm"
^ibm$
Matches records with exactly "ibm"

I know you are detail-attentive, so I would add it to the next pub refresh, but 
it only goes into 3.1 (may be V2R5 but not sure).

^
The caret symbol matches the beginning the string.

$
The dollar symbol matches the end of the string.




Would that work?

Thanks,
Kolusu
DFSORT Development
IBM Corporation

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Paul Gilmartin
Sent: Saturday, April 20, 2024 7:47 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: [EXTERNAL] Regular Expressions: DFSORT, ISPF: "$","^"

The description of regular expressions for DFSORT:

mentions "$" to match the end of a string, but not "^" to match the beginning.

The description of regular expressions for ISPF:

mentions neither "^" nor "$".

Are these omissions intentional?

--
gil

--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: 
INFO IBM-MAIN


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: REXX vs other languages -- EXECIO intuitiveness

2024-04-20 Thread Steve Thompson

I concur about REXX EXECIO I/O is not exactly intuitive.

REXX, first implemented in CMS used the CMS I/O utilities 
Over in TSO they created EXECIO which does not operate in the 
same way as does the CMS EXECIO. And it causes me headaches when 
I work on CMS for a year or two and then come back to TSO to have 
it NOT be have as it did in CMS. Especially the STEM variable and 
trying to write a record.


And so after working in TSO for a year or so to go back to CMS -- 
I need to learn and make use of PIPEs which is not supported over 
on TSO Most shops do not see the need to pay for TSO Pipes. 
Sigh.


And so, with Windows I/O is different (still talking REXX), same 
problem with Linux. I/O is not handled the same for simple reads 
and writes from my perspective.


Never-the-Less, I really appreciate REXX over EXEC, EXEC2 and CLIST.

Steve Thompson


On 4/19/2024 9:28 PM, Andrew Rowley wrote:

On 20/04/2024 1:42 am, Jay Maynard wrote:
Agreed Java is simply far too complex a language and ecosystem 
to hold in

the mind. Python is as ubiquitous and much easier to deal with.


Really? What do you NEED to learn for Java that you don't need 
to learn for other languages? public static void main(String[] 
args)?


Loops, if statements, data types, string processing are things 
you need to learn for all languages. I/O is useful (Rexx EXECIO 
isn't exactly intuitive).






--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ALESERV rc 15 = 0 and alet = 0

2024-04-20 Thread Joseph Reichman
Thanks 

> On Apr 19, 2024, at 8:26 PM, Peter Relson  wrote:
> 
> The assertion of the subject is surely not correct. I do not choose to guess 
> in just what way.
> 
> Perhaps more important, the ALESERV is likely creating a system integrity 
> violation in specifying access=public.
> 
> Please take to heart the comment on ASSBSTKN:
> As with other ASCB/ASSB fields, serialization may be required when
> accessing something other than your address space's data.
> 
> Peter Relson
> z/OS Core Technology Design
> 
> 
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Value in SDWAEC1

2024-04-20 Thread Joseph Reichman
Peter 

Thanks for help if I don’t find a RB in the RB chain I do a CSVQUERY in the 
asid of SDWAPRIM if not I do NUCKLKUP

Moving my code to the CBT shortly 

> On Apr 19, 2024, at 8:04 PM, Peter Relson  wrote:
> 
> I think the comment in SDWAEC1 is quite clear:
> 
> Extended control PSW at time of error(abend). When the error was a program 
> interrupt within
> transactional execution, this is the PSW at the time of the program interrupt 
> within the transaction.
> 
> It means what it says.
> 
> When you mention an RB, it is important to identify to which RB you refer.
> 
> Peter Relson
> 
> 
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: REXX vs other languages WAS: Rexx numeric digits and scientific notation question

2024-04-20 Thread Bob Bridges
Well, they may not be reserved, if you say so.  But I think I'd be a fool to 
try using "is", "if" or "in" as a loop counter, certainly for the sake of the 
programmer who inherits my work but I'm sure it would confuse me too.

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* When a man is getting better he understands more and more clearly the evil 
that is still left in him.  When a man is getting worse, he understands his own 
badness less and less.  A moderately bad man knows he is not very good; a 
thoroughly bad man thinks he is all right.  This is common sense, really.  You 
understand sleep when you are awake, not while you are sleeping.  You can see 
mistakes in arithmetic when your mind is working properly; while you are making 
them you cannot see them.  You can understand the nature of drunkenness when 
you are sober, not when you are drunk.  Good people know about both good and 
evil; bad people do not know about either.  -C S Lewis, _Christian Behavior_ */

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Rony G. Flatscher
Sent: Saturday, April 20, 2024 13:51

There are *no* reserved words in Rexx like in many other languages. (This 
alleviates one to have to learn them by heart. But more importantly, should the 
language get additional keywords over time they would not break existing Rexx 
programs that happen to use them already, unlike other programming languages.)

> --- On Sat, 20 Apr 2024 11:08:03 -0400, Bob Bridges wrote:
>> It was while I was coding in REXX that I tried abutting a variable 
>> named 'x' with another string, and couldn't figure out why the 
>> program behaved as it did.  Eventually figured out I had 
>> inadvertently created a hex constant.  Maybe as an overreaction, I 
>> have never since used one-character variable names, always two or 
>> more.  (What do I use for loop counters?, you ask.  I use 'j' plus 
>> another letter; 'jr' for records, for example, 'jd' for days 
>> whatever.  More obvious would have been 'i', but there are too many 
>> two-letter reserved words even in REXX that start with 'i'.)
> I like to use longer names with mnemonic value as control variables 
> and, if the body of the loop is more than a couple lines, cite the 
> control variable at the END so the interpreter verifies nesting.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Regular Expressions: DFSORT, ISPF: "$","^"

2024-04-20 Thread Paul Gilmartin
On Sat, 20 Apr 2024 19:41:49 +, Farley, Peter wrote:

>For the ISPF case, I think the document writers think that they have covered 
>everything about the accepted regular expression syntax by stating up front on 
>that page:
>
>“ISPF uses the IBM® C regcomp() — Compile regular expression and regexec() — 
>Execute compiled regular expression functions to compile and execute a regular 
>expression . . .”
> 
If the list of syntactic rules is incomplete, they should be clearly
characterized as examples.

Also: 
A regular expression in a FIND, CHANGE, or EXCLUDE command allows
you to search for a string matching a basic or extended regular expression.

"basic or extended" -- it fails to indicate how the user can indicate whether
a basic or extended regular expression is intended.

>From:  Paul Gilmartin
>Sent: Saturday, April 20, 2024 10:47 AM
>
>Are these omissions intentional?

-- 
gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: REXX vs other languages WAS: Rexx numeric digits and scientific notation question

2024-04-20 Thread Bob Bridges
I've inherited a REXX app from a departed coworker who uses (for example) 
'complete?' as a Boolean variable name, where in REXX I would use 'fcomplete' 
for the same purpose ('f' for "flag").  I see the sense of the question mark, 
but I've been coding too many decades; I can't FEEL it.  I probably won't adopt 
it.

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* Crossbows don't kill people; quarrels do.  -from a conversation at a 
Patrick-O'Brian listserv */

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Robert Prins
Sent: Saturday, April 20, 2024 16:18

Try the two characters that are pretty much unique to REXX, "!" and "?"
especially for small local loops.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: REXX vs other languages WAS: Rexx numeric digits and scientific notation question

2024-04-20 Thread Bob Bridges
Ooh, I'm sure I've read that I can do that but I forgot.  I like that - think 
I'll start doing it myself.  Normally I'm rabid about indentation, but 
occasionally in a longer program I lose track of something and have to spend a 
of time searching for where I left out an End.

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* Do you know what constitutes a "hate crime"?  Put your thinking caps on.  
What tools do we need to determine whether a crime was motivated by hate or 
prejudice?  Answer: We need thought police.  -from "See, I Told You So" by Rush 
Limbaugh */

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Paul Gilmartin
Sent: Saturday, April 20, 2024 11:41
>
I like to use longer names with mnemonic value as control variables and, if the 
body of the loop is more than a couple lines, cite the control variable at the 
END so the interpreter verifies nesting.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Regular Expressions: DFSORT, ISPF: "$","^"

2024-04-20 Thread Farley, Peter
For the ISPF case, I think the document writers think that they have covered 
everything about the accepted regular expression syntax by stating up front on 
that page:

“ISPF uses the IBM® C regcomp() — Compile regular expression and regexec() — 
Execute compiled regular expression functions to compile and execute a regular 
expression . . .”

We will have to wait for Sri Kolusu to answer for the DFSORT case.

Peter

From: IBM Mainframe Discussion List  On Behalf Of 
Paul Gilmartin
Sent: Saturday, April 20, 2024 10:47 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Regular Expressions: DFSORT, ISPF: "$","^"


The description of regular expressions for DFSORT:

>

mentions "$" to match the end of a string, but not "^" to match the beginning.



The description of regular expressions for ISPF:

>

mentions neither "^" nor "$".



Are these omissions intentional?



--

This message and any attachments are intended only for the use of the addressee 
and may contain information that is privileged and confidential. If the reader 
of the message is not the intended recipient or an authorized representative of 
the intended recipient, you are hereby notified that any dissemination of this 
communication is strictly prohibited. If you have received this communication 
in error, please notify us immediately by e-mail and delete the message and any 
attachments from your system.


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: REXX vs other languages WAS: Rexx numeric digits and scientific notation question

2024-04-20 Thread Paul Gilmartin
On Sat, 20 Apr 2024 19:50:56 +0200, Rony G. Flatscher wrote:
>...
>There are *no* reserved words in Rexx like in many other languages. (This 
>alleviates one to have to 
>learn them by heart. But more importantly, should the language get additional 
>keywords over time 
>
I disagree.  Although it's context-sensitive.  But ITERATE and LEAVE are
keywords within DO loops, which may not be intuitively obvious.  Otherwise
they would be commands.  RETURN is generally a keyword.  And THEN
is a keyword in an IF.

>they would not break existing Rexx programs that happen to use them already, 
>unlike other 
>programming languages.)
>
Not true.  When I first learned Rexx, A='XYZ'B was legal.  Later, it became
a syntax error.

-- 
gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: REXX vs other languages WAS: Rexx numeric digits and scientific notation question

2024-04-20 Thread Rony G. Flatscher

On 20.04.2024 19:52, Paul Gilmartin wrote:

On Sat, 20 Apr 2024 20:17:36 +, Robert Prins wrote:


Try the two characters that are pretty much unique to REXX, "!" and "?"
especially for small local loops.


Ugh!  But I confess I've done likewise at times.

I tried to refresh my memory and observed that the Rexx Ref.,
SA32-0972-60, is woefully inconsistent in its use f "symbol":

In Chapter 2. REXX general concepts 9
 Symbols:
 Symbols are groups of characters, selected from the: ...

But in Appendix E. REXX symbol and hexadecimal code cross-reference
 "Symbol" apparently means a single character.

Pubs oughta straighten that out.


Or .

---rony

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: REXX vs other languages WAS: Rexx numeric digits and scientific notation question

2024-04-20 Thread Paul Gilmartin
On Sat, 20 Apr 2024 20:17:36 +, Robert Prins wrote:

>Try the two characters that are pretty much unique to REXX, "!" and "?"
>especially for small local loops.
> 
Ugh!  But I confess I've done likewise at times.

I tried to refresh my memory and observed that the Rexx Ref.,
SA32-0972-60, is woefully inconsistent in its use f "symbol":

In Chapter 2. REXX general concepts 9
Symbols:
Symbols are groups of characters, selected from the: ...

But in Appendix E. REXX symbol and hexadecimal code cross-reference
"Symbol" apparently means a single character.

Pubs oughta straighten that out.

-- 
gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: REXX vs other languages WAS: Rexx numeric digits and scientific notation question

2024-04-20 Thread Rony G. Flatscher

On 20.04.2024 17:40, Paul Gilmartin wrote:

On Sat, 20 Apr 2024 11:08:03 -0400, Bob Bridges wrote:

It was while I was coding in REXX that I tried abutting a variable named 'x' 
with another string, and couldn't figure out why the program behaved as it did. 
 Eventually figured out I had inadvertently created a hex constant.  Maybe as 
an overreaction, I have never since used one-character variable names, always 
two or more.  (What do I use for loop counters?, you ask.  I use 'j' plus 
another letter; 'jr' for records, for example, 'jd' for days whatever.  More 
obvious would have been 'i', but there are too many two-letter reserved words 
even in REXX that start with 'i'.)


There are *no* reserved words in Rexx like in many other languages. (This alleviates one to have to 
learn them by heart. But more importantly, should the language get additional keywords over time 
they would not break existing Rexx programs that happen to use them already, unlike other 
programming languages.)



I like to use longer names with mnemonic value as control variables and,
if the body of the loop is more than a couple lines, cite the control
variable at the END so the interpreter verifies nesting.

Rexx is chaotic in context sensitivity of reserved words and in symbols'
being evaluated almost everywhere with exceptions for e.g. ADDRESS.


There are no reserved keywords therefore it is interesting that you see something chaotic there. But 
maybe some of the fundamental Rexx rules are not really known or possibly forgotten over time.


The Rexx rules are quite simple:

 * everything outside of quotes gets uppercased,

 o the content of quoted strings can be anything and never gets changed 
(truly immutable),

 * blanks around operators get removed,

 * a blank between literals and symbols is the blank concatenation operator

 * a symbol that was not assigned a value evaluates to the symbol itself (its 
name which is the
   uppercased string), otherwise it evaluates to its currently assigned value

The next step is to determine what kind of an instruction the resulting string represents in order 
to carry it out:


 * if the second token is an equal sign then it is an assignment instruction 
that gets carried out:
   the expression right of the equal sign (RHS) gets evaluated and assigned to 
the symbol (e.g.
   ABC=3+4) to the left of the equal sign (LHS),

 * if it is not an assignment instruction and the first symbol is a keyword 
then it is a keyword
   instruction that gets carried out,

 * if it is neither then the resulting string is a command instruction which 
gets handed over to
   the operating system for execution, the command's return code can be 
inspected immediately upon
   return by using the Rexx variable RC (set by Rexx to make the return code of 
the command
   immediately available to the Rexx program).

The ADDRESS keyword instruction is just one of the keyword instructions of Rexx which will allow to 
control to which Rexx command handler the command instruction gets sent to (among other things the 
ADDRESS instruction allows to switch among different Rexx command handlers).



Variable precision arithmetic is a boon.  But there is no convenient
library of elementary functions, probably the reason for the lack of
elementary functions in Rexx.


This depends what functionalities you are missing/seeking. There are quite a few Rexx function 
libraries, many implemented in Assembler or C++.


If using ooRexx there is a free, open-source ooRexx-Java bridge available which will make 
immediately *all* Java class libraries there are and all their functionality available to ooRexx, 
really, all of them! The external function and class libraries in this case are not implemented in 
C++ or Assembler, but in Java. And Java has become *fast*, one of the fastest languages there is.


If you look at Java and its standard runtime environment (JRE) you hardly miss any functionality 
there, from GUIs, to XML processing to secure Internet programming etc. E.g. if you have a need to 
transport data via SSL/TLS you get that infrastructure from the JRE for free at your fingertips (on 
all platforms) and can exploit it from Java, and with the ooRexx-Java bridge installed also directly 
from ooRexx.


Anyway, it is hard to conceive functionality that could not be made available to Rexx/ooRexx one way 
or the other.


---rony

--
--
__

Prof. Dr. Rony G. Flatscher
Department Wirtschaftsinformatik und Operations Management
Institut für Wirtschaftsinformatik und Gesellschaft
D2c 2.086
WU Wien
Welthandelsplatz 1
A-1020  Wien/Vienna, Austria/Europe

http://www.wu.ac.at
__




--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: 

Re: REXX vs other languages WAS: Rexx numeric digits and scientific notation question

2024-04-20 Thread Robert Prins
Try the two characters that are pretty much unique to REXX, "!" and "?"
especially for small local loops.

Robert
-- 
Robert AH Prins
robert(a)prino(d)org
The hitchhiking grandfather 
Some REXX code for use on z/OS


On Sat, 20 Apr 2024 at 15:08, Bob Bridges <
0587168ababf-dmarc-requ...@listserv.ua.edu> wrote:

> It was while I was coding in REXX that I tried abutting a variable named
> 'x' with another string, and couldn't figure out why the program behaved as
> it did.  Eventually figured out I had inadvertently created a hex
> constant.  Maybe as an overreaction, I have never since used one-character
> variable names, always two or more.  (What do I use for loop counters?, you
> ask.  I use 'j' plus another letter; 'jr' for records, for example, 'jd'
> for days whatever.  More obvious would have been 'i', but there are too
> many two-letter reserved words even in REXX that start with 'i'.)
>
> -Original Message-
> From: IBM Mainframe Discussion List  On Behalf
> Of Andrew Rowley
> Sent: Friday, April 19, 2024 22:41
>
> It doesn't cause a problem except when it does. One danger is a typo in
> a variable name. When I wrote some complex Rexx I did use SIGNAL ON
> NOVALUE, but I wasn't totally appeased!
>
> --- On 20/04/2024 12:41 am, Rony G. Flatscher wrote:
> > Rexx defines the value of variables that have no explicit value
> > assigned to them to be the name of the variable in uppercase, so it
> > does not cause a problem. (It does cause problems for programmers who
> > got trained to always make sure that a value is assigned to variables.
> > This is the reason why ooRexx has an option to activate checking for
> > the use of uninitialized variables in Rexx programs to appease those
> > who are not accustomed to it or feel that it should not be allowed. ;) )
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: REXX vs other languages WAS: Rexx numeric digits and scientific notation question

2024-04-20 Thread Paul Gilmartin
On Sat, 20 Apr 2024 11:08:03 -0400, Bob Bridges wrote:

>It was while I was coding in REXX that I tried abutting a variable named 'x' 
>with another string, and couldn't figure out why the program behaved as it 
>did.  Eventually figured out I had inadvertently created a hex constant.  
>Maybe as an overreaction, I have never since used one-character variable 
>names, always two or more.  (What do I use for loop counters?, you ask.  I use 
>'j' plus another letter; 'jr' for records, for example, 'jd' for days 
>whatever.  More obvious would have been 'i', but there are too many two-letter 
>reserved words even in REXX that start with 'i'.)
>
I like to use longer names with mnemonic value as control variables and,
if the body of the loop is more than a couple lines, cite the control
variable at the END so the interpreter verifies nesting.

Rexx is chaotic in context sensitivity of reserved words and in symbols'
being evaluated almost everywhere with exceptions for e.g. ADDRESS.

Variable precision arithmetic is a boon.  But there is no convenient
library of elementary functions, probably the reason for the lack of
elementary functions in Rexx.

-- 
gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Anyone exploiting ZEDC?

2024-04-20 Thread Steve Estle
David, 

We are using it - biggest benefit so far has been with our backups in 
converting DFSMSDSS (ADRDSSU) backups using "ZPREF" option.  It reduced runtime 
on backups significantly (50%+) with also some reduction in CPU cycles.  We 
also are using it in other scenarios.  You do need to test though - think 
biggest areas of concern are with vendors that don't use standard access 
methods - few of note SAS, NOMAD - sure many others.   Feel free to contact me 
at sest...@gmail.com but am a big proponent of using.  I think I have white 
paper somewhere but need to track down.  One of the reasons we went this route 
is we are starting to exploit pervasive encryption which for most part requires 
extended format datasets (also required for ZEDC).  Best practice is to 
compress before you encrypt.  One other area we exploited was DFHSM and 
activated that so it now compresses migrated and backed up datasets - hard to 
measure improvement, but am sure is much more efficient than prior settings.  I 
know that large VSAM files see benefits as well - but just ensure you test 
before going to far in that direction - one other point - ZFS have the ability 
to compress as well which can be advantageous - especially when vendors send 
large ZFS packages - such as SAS does.  Areas we haven't exploited yet but are 
intriguing are JES spool space compression as well as SMF data compression.  

One other key suggestion to look at is to run a ZBNA (free software from IBM) 
study as it helps you identify good candidate datasets from your batch job 
cycles.  As others have noted it doesn't make sense to compress things that are 
relatively small - but do try and apply the 80/20 rule here.  Anytime you can 
do less I/O in batch jobs is always a good thing of course and win-win 
situation!

All the best,

Steve Estle
Peraton ZOS Systems Programmer

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: REXX vs other languages WAS: Rexx numeric digits and scientific notation question

2024-04-20 Thread Bob Bridges
It was while I was coding in REXX that I tried abutting a variable named 'x' 
with another string, and couldn't figure out why the program behaved as it did. 
 Eventually figured out I had inadvertently created a hex constant.  Maybe as 
an overreaction, I have never since used one-character variable names, always 
two or more.  (What do I use for loop counters?, you ask.  I use 'j' plus 
another letter; 'jr' for records, for example, 'jd' for days whatever.  More 
obvious would have been 'i', but there are too many two-letter reserved words 
even in REXX that start with 'i'.)

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* When I was ten, I read fairy tales in secret and would have been ashamed if 
I had been found doing so. Now that I am fifty I read them openly. When I 
became a man I put away childish things, including the fear of childishness and 
the desire to be very grown up.  -C.S. Lewis */

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Andrew Rowley
Sent: Friday, April 19, 2024 22:41

It doesn't cause a problem except when it does. One danger is a typo in 
a variable name. When I wrote some complex Rexx I did use SIGNAL ON 
NOVALUE, but I wasn't totally appeased!

--- On 20/04/2024 12:41 am, Rony G. Flatscher wrote:
> Rexx defines the value of variables that have no explicit value 
> assigned to them to be the name of the variable in uppercase, so it 
> does not cause a problem. (It does cause problems for programmers who 
> got trained to always make sure that a value is assigned to variables. 
> This is the reason why ooRexx has an option to activate checking for 
> the use of uninitialized variables in Rexx programs to appease those 
> who are not accustomed to it or feel that it should not be allowed. ;) ) 

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Regular Expressions: DFSORT, ISPF: "$","^"

2024-04-20 Thread Paul Gilmartin
The description of regular expressions for DFSORT:

mentions "$" to match the end of a string, but not "^" to match the beginning.

The description of regular expressions for ISPF:

mentions neither "^" nor "$".

Are these omissions intentional?

-- 
gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Big LPAR vs small LPAR and DataSharing.

2024-04-20 Thread Graham Harris
"It doesn't take an extremely large number of CPUs
before a single-image system will deliver less capacity than a sysplex
configuration of two systems, each with half as many CPUs".

In the original context of the GSE material, does "system" here mean
physical CEC, or LPAR?

It is unclear, and "It matters".

For LPAR setup on a single CEC, in my view, the less LPARs the better
(although there may well be some "crossing point" with extremely large
numbers of CPUs, but have no experience of any differential comparisons to
be able to comment.  zPCR may give a clue, maybe).
Much more chance of maximising High polarity LPs and thus letting
Hiperdispatch do what it is there to do, which, by design, maximises
efficiency.

We have smallish CECs for our Development which have loads of LPARs and
with the significantly bigger engine sizes these days, even on 5xx models,
we struggle to get any High polarity LPs on any LPAR.  Which is not good.
I have requested consideration of an "inbetween" hardware level between 4xx
& 5xx, as the uniprocessor size gap is now just so huge on z16.  But am not
holding my breath.



On Sat, 20 Apr 2024 at 09:52, Colin Paice <
059d4daca697-dmarc-requ...@listserv.ua.edu> wrote:

> IBM provides tables of the cpu available with different processors and
> different numbers of engines.  Search for LSPR
> <
> https://www.ibm.com/support/pages/ibm-z-large-systems-performance-reference
> >.
>
> https://www.ibm.com/support/pages/ibm-z-lspr-itr-zosv2r4#ibmz16A02  gives
> 1 CPU 13 MSU
> 2  25
> 3  37
> 4 48
> 5 59
> 6 69
>
> So  one system with 6 CPU has 69 MSU ..  6 systems each with one CPU has 78
> MSU
>
> Part of this is serialisation of data. If two CPUs want to access the same
> piece of real memory they interact.  In simplistic terms the microcode may
> have to go to a different physical chip to ensure only one processor is
> using the RAM.  If the two CPUs are adjacent on a chip, it is faster.
>
> We had multiple threads running in an address space.  We used a common
> buffer for storing trace data from the threads, and used Compare and Swap
> to update the "next free buffer".   I think about 10-20 % of the total
> address space CPU was used for this CS instruction, because every thread
> was trying to get exclusive access to the field and the instruction had to
> spin  waiting for the buffer.  The more CPUs the more spin  - and so less
> CPU available for productive work..
> We solved the problem by giving each thread its own trace buffer and merged
> these when processing the dump.   This hotspot simply disappeared
> Colin
>
>
>
> On Fri, 19 Apr 2024 at 09:33, Massimo Biancucci <
> 05a019256424-dmarc-requ...@listserv.ua.edu> wrote:
>
> > Hi everybody,
> >
> > In a presentation at GSE I saw a slide with a graph about the advantage
> of
> > having more small sysplex LPARs versus a bigger one.
> > So for instance, it's better to have 5 LPARs with 4 processors than one
> > with 20.
> >
> > There was a sentence: "It doesn't take an extremely large number of CPUs
> > before a single-image system will deliver less capacity than a sysplex
> > configuration of two systems, each with half as many CPUs".
> > And: "In contrast to a multiprocessor, sysplex scaling is near linear.
> > Adding another system to the sysplex may give you more effective capacity
> > than adding another CP to an existing system."
> >
> > We've been told (IBM Labs, it seems) that a 4 ways DataSharing with 8
> CPUs
> > perform 20% better than a single LPARs with 32 CPUs.
> > The same (at another customer site) with "having more than 8 CPUs in a
> > single LPAR is counterproductive".
> >
> > Putting these infos all together, it seems it's better to have more small
> > partitions (how small ???) in data sharing than, let me say, four bigger
> > ones (in data sharing too).
> >
> > Anybody there has direct experience on doing and measuring such
> scenarios ?
> > Mainly standard CICS/Batch/DB2 application.
> > Of course I'm talking about well defined LPARs with High Polarization
> CPUs,
> > so don't think about that.
> >
> > Could you imagine and share your thoughts (direct experiences would be
> > better) about where the inefficiency comes from ?
> > Excluding HW issues (Polarization and so on), could it come from zOS
> > related inefficiency (WLM queue management) ?
> > If so, do zIIP CPUs participate in inefficiency growth ?
> >
> > I know that the usual response is "it depends", anyway I'm looking for
> > general guidelines that allow me to choose.
> >
> > Thanks a lot in advance for your valuable time.
> > Max
> >
> > <
> >
> https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail
> > >
> > Privo
> > di virus.www.avast.com
> > <
> >
> https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail
> > >
> > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> >
> > 

Re: Big LPAR vs small LPAR and DataSharing.

2024-04-20 Thread Colin Paice
IBM provides tables of the cpu available with different processors and
different numbers of engines.  Search for LSPR
.

https://www.ibm.com/support/pages/ibm-z-lspr-itr-zosv2r4#ibmz16A02  gives
1 CPU 13 MSU
2  25
3  37
4 48
5 59
6 69

So  one system with 6 CPU has 69 MSU ..  6 systems each with one CPU has 78
MSU

Part of this is serialisation of data. If two CPUs want to access the same
piece of real memory they interact.  In simplistic terms the microcode may
have to go to a different physical chip to ensure only one processor is
using the RAM.  If the two CPUs are adjacent on a chip, it is faster.

We had multiple threads running in an address space.  We used a common
buffer for storing trace data from the threads, and used Compare and Swap
to update the "next free buffer".   I think about 10-20 % of the total
address space CPU was used for this CS instruction, because every thread
was trying to get exclusive access to the field and the instruction had to
spin  waiting for the buffer.  The more CPUs the more spin  - and so less
CPU available for productive work..
We solved the problem by giving each thread its own trace buffer and merged
these when processing the dump.   This hotspot simply disappeared
Colin



On Fri, 19 Apr 2024 at 09:33, Massimo Biancucci <
05a019256424-dmarc-requ...@listserv.ua.edu> wrote:

> Hi everybody,
>
> In a presentation at GSE I saw a slide with a graph about the advantage of
> having more small sysplex LPARs versus a bigger one.
> So for instance, it's better to have 5 LPARs with 4 processors than one
> with 20.
>
> There was a sentence: "It doesn't take an extremely large number of CPUs
> before a single-image system will deliver less capacity than a sysplex
> configuration of two systems, each with half as many CPUs".
> And: "In contrast to a multiprocessor, sysplex scaling is near linear.
> Adding another system to the sysplex may give you more effective capacity
> than adding another CP to an existing system."
>
> We've been told (IBM Labs, it seems) that a 4 ways DataSharing with 8 CPUs
> perform 20% better than a single LPARs with 32 CPUs.
> The same (at another customer site) with "having more than 8 CPUs in a
> single LPAR is counterproductive".
>
> Putting these infos all together, it seems it's better to have more small
> partitions (how small ???) in data sharing than, let me say, four bigger
> ones (in data sharing too).
>
> Anybody there has direct experience on doing and measuring such scenarios ?
> Mainly standard CICS/Batch/DB2 application.
> Of course I'm talking about well defined LPARs with High Polarization CPUs,
> so don't think about that.
>
> Could you imagine and share your thoughts (direct experiences would be
> better) about where the inefficiency comes from ?
> Excluding HW issues (Polarization and so on), could it come from zOS
> related inefficiency (WLM queue management) ?
> If so, do zIIP CPUs participate in inefficiency growth ?
>
> I know that the usual response is "it depends", anyway I'm looking for
> general guidelines that allow me to choose.
>
> Thanks a lot in advance for your valuable time.
> Max
>
> <
> https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail
> >
> Privo
> di virus.www.avast.com
> <
> https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=webmail
> >
> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: zOSMF startup on 3.1

2024-04-20 Thread Brian Westerman
No it doesn't, you have to use  the new Java. 

When I installed 3.1 the first time, I found that they did not automatically 
create several of the directories.  I ended up just going through the log and 
fixing things one at a time.  Some of the errors were permission related.  I 
ended up doing CHMOD a lot.

I eventually got it working.  The next couple of installs still had issues but 
not as many, but as they fixed issues with ZOSMF, they created more issues with 
the other parts of the install.  

It never seems to get any better, it's almost like they are moving the problems 
around to keep us on our toes.

Brian

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN