I would discourage code that is not read only and reentrant, but it's not my 
dog.

Someone recently mentioned code in production that stores the address from a 
LOAD the first time through, then calls it. The next time through, it skips the 
load. If the code gets refreshed, the only damage is that it has to repeat the 
LOAD. He is not allowed to update it with a more modern technique.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List [[email protected]] on behalf of 
Paul Gilmartin [[email protected]]
Sent: Thursday, September 2, 2021 9:34 AM
To: [email protected]
Subject: Re: RENT binder option

On Thu, 2 Sep 2021 12:54:25 +0000, Seymour J Metz wrote:

>Given that IBM has fetched RENT load modules and program objects from 
>authorized concatenations into SP252 for close to half a century, there is a 
>case for requiring new reentrant code to also be read only. I agree about 
>REFR. In both cases, IBM has to take compatibility into account.
>
>There is customer code that is REFR or RENT but not read only.
>
Such code might rely on the good fortune never to be refreshed.

Or store into itself and not rely on the value's being correct when re-fetched.

Or store into itself and never re-fetch the stored value.

Or store the previous value into the same location.  E.g.:
         MVC   FOO,FOOc

I'd discourage such practixes.

>    ... Is there still any IBM code like that?
>
Maybe.

>________________________________________
>From: behalf of Paul Gilmartin
>Sent: Wednesday, September 1, 2021 9:24 PM
>
>On Wed, 1 Sep 2021 21:53:35 +0200, Bernd Oppolzer wrote:
>
>>Many thanks for that ... I know of very large installations which
>>depend heavily on being able to modify RENT programs, and loading them
>>always into write protected storage would break their systems.
>>
>I recognize that the Subject: says RENT and I was among those who
>added REFR to the thread.  Can we all now agree not to advocate
>write-protecting objects that are merely RENT?  I will continue to
>argue for write-protecting REFR objects.
>
>>In fact, I am talking of a very large customer of mine.
>>What they do: they load the EP point of called modules only at first call
>>and store the EP in the caller's static area. The logic how this can be
>>done has IMO been posted earlier in this thread (comparing the stored address
>>with zero, LOAD, if zero and use it, if non zero).
>>
>>My customer makes sure during development and testing that no other
>>modification of the load module occurs, apart from this "allowed"
>>reentrancy violation, as he calls it.
>>
>This is not a violation of IBM's (idiosyncratic?) use of re-entrant (RENT).
>
>>BTW: many years ago I suggested to get rid of this method (to store the EPA
>>in the caller's static CSECT), because this way, two different callers
>>of the same module would anyway do two LOADs. I suggested a load manager 
>>instead,
>>    ...
>Or set a flag in that static area (serialize if necessary) and bypass 
>initialization if set.
>
>Remember and rerspect the distinction IBM makes between RENT and REFR.

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to