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,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,575dfcf6488662de X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news4.google.com!news.glorb.com!feeder.enertel.nl!nntpfeed-01.ops.asmr-01.energis-idc.net!216.196.110.149.MISMATCH!border2.nntp.ams.giganews.com!nntp.giganews.com!fu-berlin.de!uni-berlin.de!not-for-mail From: "Alex R. Mosteo" Newsgroups: comp.lang.ada Subject: Re: Libraries written in Ada Date: Tue, 23 Nov 2004 14:40:10 +0100 Message-ID: <41A33DBA.8000801@mailinator.com> References: <18687975.p80OmDsB1I@linux1.krischik.com> <1464020.dFWPVBaaRG@linux1.krischik.com> <1966293.u6rVSTIjq0@linux1.krischik.com> <41A32151.5000705@mailinator.com> <41A33911.4090602@mailinator.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: news.uni-berlin.de +0xF9fkgRkRP+OkxNu9V6gmPdkdWdtmkSkzDXZ1XbU7EWP/Ac= User-Agent: Mozilla Thunderbird 0.9 (X11/20041103) X-Accept-Language: en-us, en In-Reply-To: <41A33911.4090602@mailinator.com> Xref: g2news1.google.com comp.lang.ada:6377 Date: 2004-11-23T14:40:10+01:00 List-Id: Alex R. Mosteo wrote: > Georg Bauhaus wrote: > >> Alex R. Mosteo wrote: >> : Hint to adapower and adaworld :D : Set Up an explanation for the : >> elaboration misteries of Ada in non-ARM speak. >> >> It's called the GNAT User's Guide. I believe the extensive section on >> elaboration is largely written/edited by Robert Dewar. >> It has examples, too. > > > Which I must have read and forgotten too. Time for another go. Just re-reading it I see this paragraph which summarizes my rule of thumb. No surprise I got it from here even if I had forgotten it: "The above pragmas allow a server to guarantee safe use by clients, and clearly this is the preferable approach. Consequently a good rule in Ada 95 is to mark units as Pure or Preelaborate if possible, and if this is not possible, mark them as Elaborate_Body if possible. As we have seen, there are situations where neither of these three pragmas can be used. So we also provide methods for clients to control the order of elaboration of the servers on which they depend: (...)" BTW as Georg pointed, that chapter is a very comprehensible read, highly recommended to every Ada programmer!