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.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,baa6871d466e5af9 X-Google-Attributes: gid103376,public From: Mats Weber Subject: Re: AQ&S Guidance on pragma Elaborate_Body Date: 1997/04/25 Message-ID: <336089AF.6046@elca-matrix.ch>#1/1 X-Deja-AN: 237297861 References: <528878564wnr@diphi.demon.co.uk> Organization: ELCA Matrix SA Reply-To: Mats.Weber@elca-matrix.ch Newsgroups: comp.lang.ada Date: 1997-04-25T00:00:00+00:00 List-Id: Robert Dewar wrote: > In its default configuration, GNAT 3.10 does not require you to write > "zillions of pragmas", and guarantees that Program_Error cannot occur. > Now it is true that you can construct programs that are treated as > statically illegal in this default mode, when they are in fact legal, > but in practice we have found that the rules we implement (which basically > assume pragma Elaborate_All if not stated where needed because of access > from elaboratoin code) seem to work for a very large subset of programs. ...which shows that automatic elaboration order construction is _state of the art_ (this is further confirmed by other compilers (Verdix, DEC) I use without a single pragma Elaborate* and without ever getting Program_Error). IMO, state of the art belongs in the standard, not in nice compiler specific features, which would have allowed the standard to take a different approach: automatic elaboration order consturction with pragmas to _override_ it, instead of pragmas to do the right thing in the most basic cases.