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.

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.

The method described above is used with PL/1, ASSEMBLER and C modules,
and it is done this way in Batch and under IMS/DC control (and even TSO).
These are all load modules, no program objects (no need for program objects,
because the RENT compile option is not used ... the programs are all
naturally reentrant ... and C++ is not used, that is, forbidden).

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,
which stores the names and addresses of the modules (there are hundreds of
them in an IMS or batch regions) in a self-balancing tree (AVL-tree);
but management did not allow me to do that ... although the migration
would have beed very easy, because all calls go through site-specific macros
anyway, so only those macros would need a change. But ...

The old solution still works.

Kind regards

Bernd



Am 01.09.2021 um 21:18 schrieb Jim Mulder:
... and limited to APF authorized libraries in
order to avoid migration impediments that would have
resulted from breakage to existing self-modifying RENT
  programs in non-APF authorized libraries.  That would
have been consistent with MVS's emphasis on compatibility,
and thus is not  astonishing to me.




----------------------------------------------------------------------
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