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