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

Reply via email to