From: stt@houdini.camb.inmet.com (Tucker Taft)
Subject: Re: Safety of subprogram'unchecked_access
Date: 1998/08/27
Date: 1998-08-27T00:00:00+00:00 [thread overview]
Message-ID: <EyDB9E.64w.0.-s@inmet.camb.inmet.com> (raw)
In-Reply-To: 6s42l4$ll5$1@nnrp1.dejanews.com
dennison@telepath.com wrote:
: I have an arcane question about using 'access on procedures.
: I have the following situation: a generic package's body instantiates another
: generic package. The other generic package has a routine that takes an
: "access function" parameter. The "outer" generic's body passes into that
: routine the 'access of a function declared in its body. When I try to compile
: the "outer" generic's body, I get an error on that call stating
: "LRM:3.10.2(32), If the subprogram denoted by the prefix is declared within a
: generic unit, the expected type must be declared within that same generic
: unit, Continuing"
: That is indeed the gist of 3.10.2(32). I can see where there could be a
: problem with the generic owner of the routine going out of scope. But it
: seems that 'Access would be safe in my situation. The "access function" type
: is declared in a package that cannot outlive the owner of the routine who's
: address is passed in.
This restriction is not related to lifetime. It has to do with the
possibility that subprograms declared in a generic body might require
extra "context" when called, if the implementation uses generic code
sharing. For implementations that do strictly "macro"-like generic
code expansion, this restriction is not useful. But portability dictated
that the restriction be independent of implementation approach.
: 'Unchecked_Access is not allowed for subprograms, so how do I get around
: this? The only solution I can see is to change the routine into a generic
: parameter to the "inner" generic. But that loses the ability to change it on
: the fly. Yuk.
You can move the instantiation of the generic, or the declaration
of the subprogram, so they are both in the spec, or both in the body.
: --
: T.E.D.
--
-Tucker Taft stt@inmet.com http://www.inmet.com/~stt/
Intermetrics, Inc. Burlington, MA USA
prev parent reply other threads:[~1998-08-27 0:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-08-27 0:00 Safety of subprogram'unchecked_access dennison
1998-08-27 0:00 ` dennison
1998-08-27 0:00 ` Tucker Taft [this message]
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox