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-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,38159b1b5557a2e7 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2004-01-24 07:32:48 PST Path: archiver1.google.com!news2.google.com!newsfeed2.dallas1.level3.net!news.level3.com!crtntx1-snh1.gtei.net!news.gtei.net!newsfeed1.easynews.com!easynews.com!easynews!elnk-pas-nf1!newsfeed.earthlink.net!pd7cy1no!pd7cy2so!shaw.ca!border1.nntp.ash.giganews.com!border2.nntp.sjc.giganews.com!border1.nntp.sjc.giganews.com!nntp.giganews.com!local1.nntp.sjc.giganews.com!nntp.comcast.com!news.comcast.com.POSTED!not-for-mail NNTP-Posting-Date: Sat, 24 Jan 2004 09:32:36 -0600 Date: Sat, 24 Jan 2004 10:32:35 -0500 From: "Robert I. Eachus" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Standard Ada Preprocessor (Was: why ada is so unpopular ?) References: <49cbf610.0401170627.79c3dfe5@posting.google.com> <400A9B48.3060100@noplace.com> <400BD4B5.6000307@noplace.com> <400BDB7C.40100@noplace.com> <400D2150.6000705@noplace.com> <400E72F9.8060501@noplace.com> <100upo7ln5e3k59@corp.supernews.com> <400FC8E8.2040100@noplace.com> <_JSdna166JuxFo3dRVn-hg@comcast.com> <401115B7.5020205@noplace.com> <401264ED.306@noplace.com> In-Reply-To: <401264ED.306@noplace.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Message-ID: NNTP-Posting-Host: 24.147.77.160 X-Trace: sv3-tSZLEbQLeU53WCQ9yfT0UXYphehtEQeoSCpPUbat1qtB++1KashAbIoDCoPGyh3ndClXmJX7iyqJWrt!jzCLi4or1oLlsTgDk9mSEwNuDXrAXBZX6OTTOr48Jysz3bIRN5DlQbbewfUTKw== X-Complaints-To: abuse@comcast.net X-DMCA-Complaints-To: dmca@comcast.net X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.1 Xref: archiver1.google.com comp.lang.ada:4773 Date: 2004-01-24T10:32:35-05:00 List-Id: Marin David Condic wrote: > Since different compilers often support (or don't support) different > declarations, I'd like some way of saying "If I'm on Gnat - compile this > declaration - if on Aonix, make this the declaration...". I don't know > how that can happen at runtime. Likewise, when withing packages that may > be compiler dependent and using statements from them, I'd like some way > of doing that and I can't imagine how a procedure call of something that > doesn't get withed is going to sneak past the compiler and get resolved > at runtime. Now I see why you worry about about illegal code and I don't. As far as I am concerned, ANYTHING I can do to minimize differences between versions is worth the effort. That certainly includes building wrappers. So in the Ada 83 days when different compilers had different names for the trancendental math packages, I had MY standard. (Usually kept updated based on the latest NUMWG work, but that is a detail.) Similarly, I had my package that did command line arguments, with different bodies for Alsys and Verdix, etc. So I kept a collection of 'standard' packages needed for portability. If I needed to deal with say, a bug in Solaris, I did it there. The net result was one directory of implementation dependent packages, with multiple implementations, and applications that were completely implementation independent. I kept the package specifications for the implementation dependent stuff identical, if necessary by making the bindings thicker than might otherwise be needed. The only case where I can ever remember a problem, Rational called me about one of my ADAR packages that didn't compile due to an Unchecked_Conversion. Rational didn't allow Unchecked_Conversions of access types. In addition to telling them a work around, I suggested that they treat this case as as a compiler bug. It involved an Unchecked_Conversion of an object of an access type to the same access type. (Why did I do it? It allowed me to put a with clause on a body instead of on the package specification.) -- Robert I. Eachus "The war on terror is a different kind of war, waged capture by capture, cell by cell, and victory by victory. Our security is assured by our perseverance and by our sure belief in the success of liberty." -- George W. Bush