On Tue, Aug 9, 2016 at 5:52 PM, Bill Woodger <[email protected]> wrote:

> OK, it is the RENT or REUS (either will do) on the link-edit/bindering.
>
> Without RENT/REUS you get a new executable for free. With RENT/REUS you
> get to "share" the original program, but it is necessarily a "recursive"
> use, so you get the "IGZ0064S A recursive call to active program..."
> message. Which is why IBM say you must CANCEL before the CALL to the ENTRY,
> which you can't do if the CALL is to an ENTRY in the same program.
> PROGRAM-ID ... IS RECURSIVE "gets around" the IGZ0064S, so there won't be a
> second condition, which causes another, and another. So LE will be happy.
>

​Ah, so my OCD about making everything RENT/REFR has risen up to bite me in
the butt.​



>
> So, you've discovered a way to nearly get a CALL to an ENTRY point with an
> ALIAS to work like it used to :-)
>
> However, there is overhead. The recursive CALL will share WORKING-STORAGE,
> but pretty much everything else will be initialised on each CALL, and then
> all thrown away on each GOBACK (since it is not actually recursing). For a
> one-shot use, this will not matter.
>
> Safe to use? Well, understanding how it works/doesn't work wasn't easy for
> me :-)
>
> Here's an example of the generated code from the COBOL compiler showing
> the recursion checking:
>
> ICM   2,15,336(9)             IPCB=1+16
> L     11,40(0,12)             PBL=1
> BC    8,210(0,11)             GN=6(0002E6)
> L     3,92(0,9)               TGTFIXD+92
> L     15,244(0,3)             V(IGZCMSG )
> LA    1,206(0,10)             PGMLIT AT +202
> BASR  14,15
>
> PGMLIT AT +202 is X'40', which is the 64 for the IGZ message.
>
> There is similar code generated for an ENTRY.
>
> And here's the code from the GOBACK clearing up to say things will be OK
> for another CALL:
>
> L     3,336(0,9)              IPCB=1+16
> S     3,0(0,12)               SYSLIT AT +0
> ST    3,336(0,9)              IPCB=1+16
>
>
>
​I really appreciate the time and effort you've taken to look into this and
explain it to me. I now know enough to be really dangerous! :-)​



-- 
Klein bottle for rent -- inquire within.

Maranatha! <><
John McKown

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

Reply via email to