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-Thread: 103376,3e26dfa741e64e5f X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!news2.google.com!newsread.com!newsprint.newsread.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed.vmunix.org!newsfeed.stueberl.de!proxad.net!infeed-4.proxad.net!news18-e.free.fr!not-for-mail Sender: sam@willow.rfc1149.net From: Samuel Tardieu Newsgroups: comp.lang.ada Subject: Re: GNAT GPL 2005 Edition is now available References: <432919be$0$10539$4d4eb98e@read.news.fr.uu.net> <1126773856.876636.265130@g49g2000cwa.googlegroups.com> <0QiXe.25752$v8.23575@reader1.news.jippii.net> <87psr612yx.fsf@ludovic-brenta.org> Date: 19 Sep 2005 09:49:40 +0200 Message-ID: <87u0gh8pkb.fsf@willow.rfc1149.net> User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Leafnode-NNTP-Posting-Host: 2001:660:330f:f810:211:2fff:fea6:3aa1 Organization: Guest of ProXad - France NNTP-Posting-Date: 19 Sep 2005 09:50:16 MEST NNTP-Posting-Host: 81.56.47.149 X-Trace: 1127116216 news18-e.free.fr 14583 81.56.47.149:62231 X-Complaints-To: abuse@proxad.net Xref: g2news1.google.com comp.lang.ada:4891 Date: 2005-09-19T09:50:16+02:00 List-Id: >>>>> "Ludovic" == Ludovic Brenta writes: Ludovic> In fact, you could install GNAT GPL and libgnat GMGPL Ludovic> separately, and use them together. This may require some Ludovic> tweaking, but it is feasible. I think that the tweaking Ludovic> would be minimal if you mix GNAT GPL 2005 Edition with Ludovic> libgnat-3.4. This would be highly risky. For those who do not know the compilation process of GNAT, here is a short overview. Complex Ada constructs cannot be translated into a *short* sequence of machine code. While basic operations such as A + B * C are translated into a few arithmetic operations (I'm purposely skipping range checking considerations here) by the GNAT compiler, task creation or task priority manipulation require complex operations. The GNAT compiler doesn't try to directly generate machine code for those complex operations. It replaces them by calls to the runtime library, which will perform its duties, such as allocating memory for tasks (task control block, stack space, ...) or inserting the task at the right place into the scheduler. While replacing the standalone library packages (such as Ada.Text_IO) with other versions is almost straightforward and is not likely to lead to bogus behaviour, replacing the runtime tasking library by another version which may not *exactly* match the output produced by the compiler is very unsafe and may cause hard-to-catch errors. Sam -- Samuel Tardieu -- sam@rfc1149.net -- http://www.rfc1149.net/sam