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=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: =?UTF-8?Q?Markus_Sch=c3=b6pflin?= Newsgroups: comp.lang.ada Subject: Re: [Ann] AdaControl 1.18r8 released Date: Mon, 7 Nov 2016 10:03:21 +0100 Organization: Aioe.org NNTP Server Message-ID: References: <0ff97519-ae71-4c27-8654-b6eab0ca4f96@googlegroups.com> NNTP-Posting-Host: MdpKeRr+sx3LK7JQiK5aNw.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:32258 Date: 2016-11-07T10:03:21+01:00 List-Id: Am 05.11.2016 um 11:28 schrieb artium@nihamkin.com: [...] > I would like to raise an issue with static analysis tools, style checkers > and similar tools that is particularly valid for tools aiming at Ada > projects. > > Sometimes a developer decides to try these tools on an already existing > codebase. This will lead to thouthands of violations. > > Fixing them is not acceptable in a field tested code. > > The developer would like to know only about the violations in the newly > added code. For a similar issue (huge legacy code base with thousands of compiler warnings) we have simply created a script which checks the output of the build against a known reference build, and then complains if the new build contains warnings not found in the reference build. The script basically uses the following algorithm: - For both logs, extract all warnings and remove all line number references. This results in two temporary files. - Sort each temporary file and diff the resulting two files. - Output all warnings found in the second file but not in the first. From time to time (mostly before a new release) we allocate a few days to systematically fix all warnings in a given component, and create tickets for warnings which turn out to be real issues. After each release the reference build log is then updated. Over the course of about five years, this has helped us to bring the warning count down from about 4000 to about 300, and to get the most critical components free of warnings. Markus