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,38159b1b5557a2e7 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2004-01-26 18:38:30 PST Path: archiver1.google.com!news2.google.com!news.maxwell.syr.edu!sn-xit-03!sn-xit-04!sn-xit-01!sn-post-02!sn-post-01!supernews.com!corp.supernews.com!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Standard Ada Preprocessor Date: Mon, 26 Jan 2004 20:35:59 -0600 Organization: Posted via Supernews, http://www.supernews.com Message-ID: <101bjm54k3rn8f0@corp.supernews.com> References: <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> X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4807.1700 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4910.0300 X-Complaints-To: abuse@supernews.com Xref: archiver1.google.com comp.lang.ada:4870 Date: 2004-01-26T20:35:59-06:00 List-Id: "Warren W. Gay VE3WWG" wrote in message news:e9gRb.4112$qU3.177385@news20.bellglobal.com... > Jeffrey Carter wrote: > > > Warren W. Gay VE3WWG wrote: > > > >> Matrix 10 POSIX environments x 10 versions of the same, x 4 > >> different versions of a curses library. That leaves you with > >> 400 different custom (possibly groups of) packages to work > >> with. Real slick indeed. :( > > > > One standard POSIX-Ada binding > > Impossible. Some UNIces provide some API structure members, > while others don't, or provide something else again. Yes, > you can dumb it down to a "standard" (or omit non-universal > functionality), but by doing so you throw away functionality. > I find that unacceptable. What is the point of having that functionality? Any code depending on it is by definition not portable. If you can't abstract a reasonable facimile of it, it probably isn't worth using. Otherwise, it will poison your whole application, and lock it to a few targets. What Claw does for features that aren't available on the current target is to raise Not_Supported_Error (which hopefully the caller can do something useful with, such as fall back to something that is supported). Thus, the interface is as rich as possible. That probably won't work everywhere, but if you want portability, you have to eliminate functionality that is available only a few targets. (Which is why embedded code pretty much cannot be portable by definition.) Randy.