From: "David C. Hoos, Sr." <david.c.hoos.sr@ada95.com>
Subject: Re: Subverting 'Access for Sub-programs
Date: 1999/08/03
Date: 1999-08-03T00:00:00+00:00 [thread overview]
Message-ID: <7o7nhm$8oq@hobbes.crc.com> (raw)
In-Reply-To: 37A71EF1.2201@dera.gov.uk
Anton Gibbs wrote in message <37A71EF1.2201@dera.gov.uk>...
>Dear Ada Community,
>
>Can someone please advise me on the best way to subvert the language
>rules that prevent the use of 'Access on a locally declared procedure ?
>
>For normal objects it is possible to use 'Unchecked_Access but for
>sub-programs this is not allowed.
>
>"Why does this idiot want to do this ?" I hear you ask.
>
>Well it seemed reasonable enough to me within a wider application, the
>essence of which I have distilled into a few lines below.
>
The real problem is that the compiler cannnot know that procedure Main
will have a lifetime as long as the entire program -- for there is
nothing that says (at _compile_ time) that procedure Main is the _Main_
procedure.
Since the subprogram to which you wish to provide access is nested
within this procedure, its lifetime cannot be guaranteed _at compile
time_ to exceed the lifetime of the subprogram(s) to which the
access is passed.
The solution is simply to declare the procedure Print_If_Even at
library level -- either in a library-level package, or as a
standalone library procedure.
So... no subversion is necessary - just adhere as described, and
you'll be fine.
next prev parent reply other threads:[~1999-08-03 0:00 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-08-03 0:00 Subverting 'Access for Sub-programs Anton Gibbs
1999-08-03 0:00 ` David C. Hoos, Sr. [this message]
1999-08-05 0:00 ` Robert A Duff
1999-08-03 0:00 ` Brian Rogoff
1999-08-03 0:00 ` Michael F. Yoder
1999-08-03 0:00 ` tmoran
1999-08-03 0:00 ` Steve Doiel
1999-08-03 0:00 ` Ted Dennison
1999-08-04 0:00 ` Anton Gibbs
1999-08-04 0:00 ` Robert A Duff
1999-08-04 0:00 ` Brian Rogoff
1999-08-05 0:00 ` tmoran
1999-08-05 0:00 ` Robert Dewar
1999-08-05 0:00 ` Ray Blaak
1999-08-06 0:00 ` Robert Dewar
1999-08-06 0:00 ` Robert A Duff
1999-08-08 0:00 ` Brian Rogoff
1999-08-09 0:00 ` Robert A Duff
1999-08-10 0:00 ` Brian Rogoff
1999-08-09 0:00 ` Tucker Taft
1999-08-06 0:00 ` Jean-Pierre Rosen
1999-08-06 0:00 ` Hyman Rosen
1999-08-07 0:00 ` Florian Weimer
1999-08-05 0:00 ` Aidan Skinner
1999-08-05 0:00 ` Anton Gibbs
1999-08-04 0:00 ` Jean-Pierre Rosen
1999-08-04 0:00 ` Brian Rogoff
1999-08-05 0:00 ` Jean-Pierre Rosen
1999-08-05 0:00 ` Robert A Duff
1999-08-05 0:00 ` Robert Dewar
1999-08-05 0:00 ` Brian Rogoff
1999-08-06 0:00 ` Robert Dewar
1999-08-09 0:00 ` Tucker Taft
1999-08-10 0:00 ` Robert Dewar
1999-08-11 0:00 ` Tucker Taft
1999-08-13 0:00 ` Robert Dewar
1999-08-13 0:00 ` Robert Dewar
1999-08-13 0:00 ` Brian Rogoff
1999-08-11 0:00 ` Robert A Duff
1999-08-11 0:00 ` Robert Dewar
1999-08-11 0:00 ` Dmitry A. Kazakov
1999-08-11 0:00 ` Richard D Riehle
1999-08-11 0:00 ` Robert Dewar
1999-08-12 0:00 ` Dmitry A. Kazakov
1999-08-14 0:00 ` Robert Dewar
1999-08-16 0:00 ` Dmitry A. Kazakov
1999-08-05 0:00 ` tmoran
1999-08-06 0:00 ` Robert A Duff
1999-08-05 0:00 ` adam
1999-08-05 0:00 ` adam
1999-08-06 0:00 ` Robert A Duff
1999-08-06 0:00 ` adam
1999-08-09 0:00 ` Mark Biggar
1999-08-09 0:00 ` Robert A Duff
1999-08-05 0:00 ` Robert Dewar
1999-08-05 0:00 ` What is a Display ? (was: Subverting 'Access for Sub-programs) Larry Kilgallen
1999-08-05 0:00 ` Hyman Rosen
1999-08-06 0:00 ` Robert Dewar
1999-08-06 0:00 ` Robert Dewar
1999-08-06 0:00 ` Subverting 'Access for Sub-programs Brian Rogoff
1999-08-07 0:00 ` Gautier
1999-08-05 0:00 ` Robert A Duff
1999-08-05 0:00 ` Robert Dewar
1999-08-05 0:00 ` Brian Rogoff
1999-08-05 0:00 ` Steve Quinlan
1999-08-04 0:00 ` Robert Dewar
1999-08-04 0:00 ` Robert A Duff
1999-08-04 0:00 ` Robert Dewar
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox