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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,4eb39f748fcf3a97 X-Google-Attributes: gid103376,public From: mfb@mbunix.mitre.org (Michael F Brenner) Subject: Re: GNAT Opinions Date: 1999/01/07 Message-ID: <773f2u$gd7@top.mitre.org>#1/1 X-Deja-AN: 429978017 References: <75rj7i$2cq$1@nnrp1.dejanews.com> <36910C32.1A0543E7@magic.fr> Organization: The MITRE Corporation, Bedford Mass. Newsgroups: comp.lang.ada Date: 1999-01-07T00:00:00+00:00 List-Id: > gnat compiling policy is restrictive, and despite the *nice* gnatchop, > it is difficult to maintain both versions with unique sources. This hits the nail on the head, that gnat requires a library system as a wrapper to maintain the read-only version being compiled, separately from the read-write version being developed. This is very similar to DEC Ada's and Alsys Ada's option of permitting a copy of the source code being kept in the library for debugging messages. Only in gnat, it is REQUIRED to put a copy of the code into the library. The problem is that all other Ada compilers prior to gnat have provided a library wrapper around their compiler, so the programmer did not have to develop tools to do this chore. The good point of this is that it saved gnat the effort of building the library wrapper, and therefore speeded up gnat development. The bad point is that we each have developed our own library wrappers for keeping track of the two version (or NOT keeping track of them as the case may be). However, I would like to suggest that this is not a compiler issue at all, but a developement environment issue, that is, an APSE issue, a library issue. APSE issues should be tracked, but they have little to do with the compiler itself. In tracking compilers you are interested in a triangle of concerns: (A) bugs detected at compile time (type 1 and type 2 errors) (B) performance of the generated code (memory and time and threads) (C) bugs in the compiler and how fast they are fixed The APSE (library, configuration manager, cross referencer, data flow diagrammer, calling tree displayer, debugger, automatic code generators like CASE tools, cohesion metrics, coupling metrics, volume metrics like sloc or complexity, database management systems, APIs to connect to java byte codes or x windows or whatever, libraries of objects like containers or networks, and so forth) should be tracked separately from the compiler (IMO). Mike Brenner