From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!bbn!ishmael!inmet!stt From: stt@inmet Newsgroups: comp.lang.ada Subject: Re: Pragma ELABORATE (was: Re: Novice Q Message-ID: <20600006@inmet> Date: 1 Sep 89 16:56:00 GMT References: <3175@<620474407> Nf-ID: #R:<620474407:-317500:inmet:20600006:000:1270 Nf-From: inmet!stt Sep 1 12:56:00 1989 List-Id: We have proposed that pragma Elaborate be changed/augmented as part of Ada9X. The proposal suggests that pragma Elaborate cause the "early" elaboration of all of the bodies of all packages in the "with" closure of the specified package. This is useful because a package generally doesn't "know" whether any of its subprograms will be called at elaboration time, and hence whether it should pragma-elaborate the packages it depends on. Furthermore, due to mutual dependency between packages, it is often hard to insert pragma Elaborates as needed. However, the closure approach doesn't need to specify a specific ordering among the package bodies making up the closure, and hence isn't affected by mutual dependency issues. The wording of the proposal is such that any conflict created by elaborating the closure of with dependencies is resolved in favor of direct pragma Elaborates. Given that, there is no reason why linkers couldn't implement the proposed semantics now. However, the goal of the proposal is to reduce the rehosting surprises currently possible due to distinct implementations of elaboration-order determination, by making the closure implementation approach a requirement of the language. Tucker Taft Intermetrics, Inc. Cambridge, MA 02138