IBM's Language Environment (LE) is doing it exactly this way.
R13 points always to the savearea and after the savearea comes
the dynamic storage needed. So there is no need to have two regs,
one for the savearea and one for the dynamic storage. But by the
way, LE needs R12 for the common anchor area (CAA).

Tobias

Am 09.08.2010, 19:46 Uhr, schrieb Charles Mills <[email protected]>:

I think John may be speaking of the convention in which one GETMAINs a large area to be used (1) as an R13 savearea for called programs and (2) the area beyond the standard savearea is used for "automatic" variables. There is a risk if called programs use more storage than expected and the area so-used
extends into the program's variables.

Charles

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf
Of Walt Farrell
Sent: Friday, August 06, 2010 9:08 AM
To: [email protected]
Subject: Re: linkage conventions

On Fri, 6 Aug 2010 01:30:56 +0000, john gilmore <[email protected]>
wrote:

There is a sense in which all is now clear (or at least very much clearer).
 The exchanges between Tom Marchant and Peter Relson were very helpful.

What remains is probably intractable, but I find

. . . B can never determine. B documents its requirements and assumes that
its caller has met these requirements . . .

curiously unsatisfying.

How and, in particular, where B is to document its requirements is left up
in the air.  All will be well until
there is an error of substance or a documentation lag, and then . . .

My practice---It is habitual in much compiled code too---of supplying
myself with LIFO scratch storage by
enlarging DSAs will make my code particularly vulnerable to such errors.

We shall all come to regret this state of affairs, but when I think about
how to proceed differently nothing
useful occurs to me.  The problem is easy to state: DSAs of too many
different sizes are now required in
subtly different circumstances; but they may well be practically
inescapable.

This discussion has been about standard z/OS linkage conventions, where the
caller provides a savearea and the called program is responsible for
allocating its own dynamic storage by its own means.

Presumably you know whom you're calling, and from their documentation you
know what size savearea each of them requires you to allocate. And you
allocate a savearea large enough to satisfy the maximum required by anyone
you are calling.

If you're worried that you might not have the latest documentation, and thus
someone may require something larger, why not just start modifying your
programs so you always allocate the maximum size currently documented in the
z/OS linkage conventions? Then you can call anyone.

I'm not quite sure what you're talking about here, John, but it seems you
might be talking about some other linkage convention, where the caller
provides all the dynamic storage needed by the called program, and if so
that's something very different. Yes, in that case, the called program might need a way to figure out how much storage it had been given, but that's not
what we've been discussing.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


--
Erstellt mit Operas revolutionärem E-Mail-Modul: http://www.opera.com/mail/

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to