Well I must be really contrary or else I got out of the wrong side of the
bed this morning. @Peter and @Ed are of course two of the people I most
admire in the field of assembler and MVS, but I totally disagree with almost
everything they wrote.

@Peter, I'm a grown-up. If I code an MVS macro with COND=YES I expect to
have to deal with return codes (and if I don't, well, my gun, my bullet, my
foot). No, I don't try to "correct" an xx0042yy on the fly, but I do have an
error message that is specific to IARV64 errors, and a table of message text
specific to reason codes, so that customers and level one don't have to look
them up. I would rather present the customer with an error message than with
an obscure ABEND, and I think that should be my prerogative, especially if
the macro provides a COND=YES option. COND=NO is there for people with a
different philosophy, and that is fine with me.

You cannot totally save programmers from themselves. This was an error in
the code that has been running without problem in the field for two or more
years. Unit testing did not catch it, ABEND or not. (FWIW the error was that
I had the guard amount in a register rather than in a word pointed to by the
register, and since the value was very small and most of very low core is
zero it always worked. I only caught the error because of a development LPAR
where someone had hosed low core.)

At the very least IBM should document that COND=YES is really COND=MAYBE and
document the conditions or the reason codes for which MVS ignores the user's
expressed specification.

@Ed, really? Your programmers are too busy or too whatever to code LTR
R15,R15 and deal with non-zero? I would never code an unconditional GETMAIN,
except in the rare situation such as the initial entry to a reentrant
routine where it is a small GETMAIN and it is pretty much impossible to
proceed at all if it fails. You would really rather have your customers and
support staff deal with an S80A and a dump rather than a nice error message
that says "ABC1234E Unable to obtain storage for record work area"? We can't
even get customers to send dumps anymore because they are worried about PII.
Or they delete the dump before they call support! How the heck do you
determine just which GETMAIN failed?

Charles


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of Peter Relson
Sent: Saturday, January 26, 2019 6:15 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IARV64 - why ABEND rather than return with reason code?

"why" -- it's for the reason that Steve Smith mentioned. It's to help you 
get rid of the things that you should get out in unit test.
For things that you should not be writing code for such as "if I get 
xx0042yy then...". 

Truly, you should think of COND(YES) on an obtain of storage as applying 
for the most part only to "is there enough storage".
For that case, it can probably often meet the demanding criteria of Ed's 
team.

<snip>
I found this to be the most irritating aspect of working with 64 bit 
areas.
</snip>

My initial thought when I read that was "if that's the most irritating 
thing then you must not do much with 64 bit areas".

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

Reply via email to