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,88ed72d98e6b3457 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-10-09 11:30:58 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!newsfeed.berkeley.edu!ucberkeley!newsfeed.mathworks.com!wn13feed!wn11feed!wn14feed!worldnet.att.net!204.127.198.203!attbi_feed3!attbi_feed4!attbi.com!sccrnsc03.POSTED!not-for-mail From: tmoran@acm.org Newsgroups: comp.lang.ada Subject: Re: Standard Library Interest? References: X-Newsreader: Tom's custom newsreader Message-ID: NNTP-Posting-Host: 12.234.124.41 X-Complaints-To: abuse@comcast.net X-Trace: sccrnsc03 1065724257 12.234.124.41 (Thu, 09 Oct 2003 18:30:57 GMT) NNTP-Posting-Date: Thu, 09 Oct 2003 18:30:57 GMT Organization: Comcast Online Date: Thu, 09 Oct 2003 18:30:57 GMT Xref: archiver1.google.com comp.lang.ada:554 Date: 2003-10-09T18:30:57+00:00 List-Id: Some comments from the experience of making the Claw library on four different Ada compilers: > - Ada is not a preprocessed language, yet there must be some code > tweaks for each environment: > - Different pragma Linker_Options depending upon platform (for > linker convenience) > - Some language constructs don't compile, due to version specific > GNAT bugs. Sometimes the changes are needed in the package specs, not just the bodies. For instance, one version of Gnat required a whole bunch of stuff to get moved from private to public, with appropriate order of declaration changes. On a large library like Claw, it took a lot of work to find and fix all occurrences. IIRC we had to use a tool that parsed the specs and figured out the inheritance pattern and flagged the problematic cases. And no, we couldn't use ASIS because Gnat wouldn't compile, and thus wouldn't produce ASIS databases, for the relevant packages. > Different versions of GNAT have different *.ali file format differences. This doesn't directly apply to Claw, since it's distributed as source code, but there are other changes needed every year when there's a new Gnat release. Most recently, they changed the default behavior of elaboration so we could either tell all users to add -gnatE to their compile lines, an option unlikely to be greeted with applause, or go through the entire Claw library inserting specific pragma Elaborate's. And of course the library and tests must all be recompiled and run with each vendor's new compiler release. When there are new bugs, they may be non-trivial to find and work around, and may require significant knowledge of the inner workings of the library. This work is of course proportional to the number of versions and vendors of Ada compilers. (Of course if the vendors supported the Standard Library, they would have done this before releasing a new compiler version. :)