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,CP1252 X-Google-Thread: 103376,d6f7b92fd11ab291 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-07-21 16:54:38 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!arclight.uoregon.edu!wn13feed!wn12feed!worldnet.att.net!204.127.198.203!attbi_feed3!attbi_feed4!attbi.com!sccrnsc04.POSTED!not-for-mail Message-ID: <3F1C7D29.6080701@attbi.com> From: "Robert I. Eachus" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20021120 Netscape/7.01 X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Crosspost: Help wanted from comp.compilers References: <3F1B207B.6090308@attbi.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit NNTP-Posting-Host: 66.31.71.243 X-Complaints-To: abuse@comcast.net X-Trace: sccrnsc04 1058831678 66.31.71.243 (Mon, 21 Jul 2003 23:54:38 GMT) NNTP-Posting-Date: Mon, 21 Jul 2003 23:54:38 GMT Organization: Comcast Online Date: Mon, 21 Jul 2003 23:54:38 GMT Xref: archiver1.google.com comp.lang.ada:40592 Date: 2003-07-21T23:54:38+00:00 List-Id: tmoran@acm.org wrote: > Are separate compilations using different settings of compiler switches > considered to be compilations by different compilers/versions, and thus > not discussed by the ARM but left to compiler writers and users to handle? I can't answer your question, because I can't see how to give you an answer that is both correct and informative. (Well, I'll answer it: the compiler can make daemons fly out of your nose. See, no help.) Any _implementation_ defines processes for creating an environment, adding and deleting units in that environment, and what it means to compile a (compilation) unit and put it into the environment. An implementation is allowed to define lots of other things which are not part of the "standard mode." For example with GNAT, to compile in the standard mode you must use gnatmake -gnato . The Ada RM says a lot about what must happen in standard mode, and allows ANYTHING in non-standard mode. If you use the gcc that is part of GNAT to compile a C program? Shrug, why should the Ada Reference manual care? As it happens the compiler depends on a .ads or .adb source file extension to indicate a compile in standard Ada mode, and other source file extensions to indicate other languages. Similarly, the RM says a lot about what must happen with standard pragmas, and attribute specification clauses. The implementation can define compile time flags to have a similar effect, but it can't change the meaning of a _language_ defined attribute or pragma. Now to answer the question that I think you had. What is said in clause 10 is absolute. A compiler can keep two sets of compilation units in the library, one compiled with debugger support and one without, and use a link or run-time option to determine which version you get. Not a problem. But the units have to be compiled into the environment in 10.1.4 order and a consistant and legal set chosen at run-time in accordance with 10.2--if you are in standard Ada mode. (And as should be clear NONE of this applies to C or Fortran mode, or whatever.) -- Robert I. Eachus �In an ally, considerations of house, clan, planet, race are insignificant beside two prime questions, which are: 1. Can he shoot? 2. Will he aim at your enemy?� -- from the Laiden novels by Sharon Lee and Steve Miller.