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=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,c7e4fc3344a1ea05 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2002-08-04 07:24:27 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!postnews1.google.com!not-for-mail From: dewar@gnat.com (Robert Dewar) Newsgroups: comp.lang.ada Subject: Re: using pragma export/adainit/adafinal with gnat... Date: 4 Aug 2002 07:24:27 -0700 Organization: http://groups.google.com/ Message-ID: <5ee5b646.0208040624.5984ba47@posting.google.com> References: NNTP-Posting-Host: 205.232.38.14 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: posting.google.com 1028471067 5727 127.0.0.1 (4 Aug 2002 14:24:27 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: 4 Aug 2002 14:24:27 GMT Xref: archiver1.google.com comp.lang.ada:27668 Date: 2002-08-04T14:24:27+00:00 List-Id: Dale Stanbrough wrote in message news:... > Indeed! (unless you -always- have pure packages). There is nothing to guarantee that pure packages have no elaboration code in the informal sense of the word. There is some requirement in Annex C about not generating memory write operations after load time, but load time is implementation defined, so this is a dubious requirement. There isn't even a definition of what a memory write operation might be, that's just appealing to some informal undefined concept. Whenever a requirement in the RM uses an undefined term, the requirement is immediately dubious. In GNAT, we have added pragma Restrictions (No_Elaboration_Code); to clearly pin down the issue of whether any code is generated (in stuff we add for GNAT, we can be more informal than the RM :-) Really the stuff about elaboration code should have been implementation advice, then it could have been both clearer and stronger. An interesting thing about implementation advice is that in practice, IA can often be stronger than a formal requirement, since we are allowed to say what we mean in informal, but perfectly clear terms.