From: stt@henning.camb.inmet.com (Tucker Taft)
Subject: Re: Elaboration order
Date: 1996/03/20
Date: 1996-03-20T00:00:00+00:00 [thread overview]
Message-ID: <DoKMI0.IHp.0.-s@inmet.camb.inmet.com> (raw)
In-Reply-To: 4io8rn$gfn@newsbf02.news.aol.com
DenReimer (denreimer@aol.com) wrote:
: Here's something that I'm trying to do in Ada83 and Ada95:
: with GENERIC_PACKAGE;
: package A_PKG is
: package INSTANCE is new GENERIC_PACKAGE ( ... );
: X : INTEGER := INSTANCE.SOME_FUNCTION;
: end A_PKG;
: The elaboration of X requires that the instantiated package INSTANCE be
: elaborated first (both spec and body.) The compiler will not let me use
: pragma elaborate (INSTANCE);
You should write:
with Generic_Package;
pragma Elaborate(Generic_Package);
: It is not clear to me what the elaboration order should be in the case of
: nested packages. I would like to assume that for nested packages, the
: elaboration is also nested. In the case of generic instantiations, both
: spec and body would be elaborated at the point of instantiation.
All true.
: Unfortunately, the LRM does not seem to make any requirements regarding
: elaboration order for nested packages.
Not true.
: ... I've tried the above source code
: with Ada/ED and an Alsys Ada83 compiler and it seems to work OK.
: When I use gnat, I get a program error. The Ada95 pragmas used for
: controlling elaboration order seem to only apply to library units.
That's true in Ada 83 as well.
: ... In the
: example above, I believe that INSTANCE is a program unit but not a library
: unit. Is there some way I can force the elaboration of INSTANCE to occur
: immediately?
Your problem is not the elaboration of Instance. It is the elaboration
of the body of Generic_Package. You are falling afoul of the
elaboration check that takes place when you instantiate a generic,
which requires that the generic body has already been elaborated.
As a general rule, if a compilation unit has a "with" for a generic,
it should also have a "pragma Elaborate" for it, if it contains
any library-level instantiations of the generic.
By the way, you are in good company. Several of the 2.0.1 ACVC tests
forget this general rule.
: ...
: Dennis Reimer
-Tucker Taft stt@inmet.com http://www.inmet.com/~stt/
Intermetrics, Inc. Cambridge, MA USA
next prev parent reply other threads:[~1996-03-20 0:00 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <314701A1.469D@lfwc.lockheed.com>
1996-03-15 0:00 ` Elaboration order Robert I. Eachus
1996-03-15 0:00 ` Robert Dewar
[not found] ` <1996Mar14.021345.9856@enterprise.rdd.lmsc.lockheed.com>
[not found] ` <314829CD.4FA9@lfwc.lockheed.com>
1996-03-15 0:00 ` Tucker Taft
1996-03-15 0:00 ` Ken Garlington
1996-03-16 0:00 ` Joe Wierzbowski
1996-03-26 0:00 ` AdaWorks
1996-03-26 0:00 ` Robert A Duff
1996-03-26 0:00 ` Robert Dewar
1996-03-26 0:00 ` IO in Pure packages, debugging Laurent Guerby
1996-03-26 0:00 ` Elaboration order Robert A Duff
1996-03-26 0:00 ` Robert Dewar
1996-03-16 0:00 ` Ted Dennison
1996-03-26 0:00 ` Laurent Guerby
1996-03-26 0:00 ` Robert A Duff
1996-03-18 0:00 ` Ted Dennison
1996-03-18 0:00 ` Ken Garlington
1996-03-19 0:00 ` Michel Gauthier
[not found] ` <Do8JDv.A2v@world.std.com>
[not found] ` <31494143.3825@lfwc.lockheed.com>
1996-03-15 0:00 ` Robert A Duff
[not found] ` <EACHUS.96Mar18143219@spectre.mitre.org>
1996-03-18 0:00 ` Robert Dewar
1996-03-18 0:00 ` Robert Dewar
1996-03-19 0:00 ` Ted Dennison
1996-03-20 0:00 ` David Emery
1996-03-18 0:00 ` Norman H. Cohen
1996-03-15 0:00 ` Mark A Biggar
1996-03-18 0:00 ` Ken Garlington
1996-03-19 0:00 ` Chris McKnight
1996-03-21 0:00 ` Ken Garlington
1996-03-19 0:00 ` Norman H. Cohen
1996-03-20 0:00 ` Cordes MJ
1996-03-19 0:00 ` Robert Dewar
1996-03-21 0:00 ` Cordes MJ
1996-03-21 0:00 ` Ken Garlington
1996-03-20 0:00 ` Robert A Duff
1996-03-20 0:00 ` Cordes MJ
1996-03-20 0:00 ` Robert A Duff
1996-03-22 0:00 ` Cordes MJ
1996-03-20 0:00 ` Robert Dewar
1996-03-21 0:00 ` Ken Garlington
1996-03-23 0:00 ` JP Thornley
1996-03-25 0:00 ` Robert Dewar
1996-03-26 0:00 ` JP Thornley
1996-03-20 0:00 ` Robert I. Eachus
1996-03-22 0:00 ` Robert I. Eachus
1996-03-22 0:00 ` Robert I. Eachus
1996-03-20 0:00 ` DenReimer
1996-03-20 0:00 ` Tucker Taft [this message]
1996-03-20 0:00 ` Norman H. Cohen
1996-03-20 0:00 ` Robert A Duff
1996-03-20 0:00 ` Norman H. Cohen
1996-03-20 0:00 ` Robert Dewar
1999-11-15 0:00 Elaboration Order Wolf-Dieter Heker
1999-11-15 0:00 ` Robert Dewar
1999-11-16 0:00 ` Wolf-Dieter Heker
1999-11-16 0:00 ` Robert Dewar
1999-11-16 0:00 ` Robert Dewar
1999-11-20 0:00 ` Simon Wright
1999-11-22 0:00 ` Robert Dewar
1999-11-23 0:00 ` Mats Weber
1999-11-16 0:00 ` David C. Hoos, Sr.
1999-11-15 0:00 ` Jean-Pierre Rosen
1999-11-15 0:00 ` Robert Dewar
1999-11-16 0:00 ` Jean-Pierre Rosen
1999-11-20 0:00 ` Simon Wright
[not found] <DoDMLL.1F9@world.std.com>
1996-03-18 0:00 ` Elaboration order Chris McKnight
-- strict thread matches above, loose matches on Subject: below --
1996-03-18 0:00 Jean-Pierre Rosen
1996-03-21 0:00 ` Ken Garlington
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox