From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-2.9 required=3.0 tests=BAYES_00,NICE_REPLY_A autolearn=ham autolearn_force=no version=3.4.6 Path: eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: "J-P. Rosen" Newsgroups: comp.lang.ada Subject: Re: How to challenge a GCC patch? Date: Fri, 1 Oct 2021 11:24:15 +0200 Organization: Adalog Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Fri, 1 Oct 2021 09:24:18 -0000 (UTC) Injection-Info: reader02.eternal-september.org; posting-host="9e13566cf6083b4e16d4351c3ee4fc19"; logging-data="7748"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18twhnE0nnsjN+pPD25dVLb" User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 Cancel-Lock: sha1:rtpXgGPof5LKu3I+CRN0AbEseJk= In-Reply-To: Content-Language: fr Xref: reader02.eternal-september.org comp.lang.ada:62914 List-Id: Le 01/10/2021 à 02:18, Randy Brukardt a écrit : > "J-P. Rosen" wrote in message > The ASIS design and definition is a mess (at least from the perspective of > explaining what is expected). We tried to clean it up in the previous ASIS > standardization update, but that was a lot of work and we probably didn't > match implementations very well. That was mainly an attempt to introduce more static and tagged typing, and it failed due to the complexity involved (and that AdaCore said they would never implement it). LibAdalang made the same error, and got the same unnecessary complexity. > The entire model of ASIS doesn't make much sense for static analysis > purposes, it's way too focused on syntax rather than semantics. It is a exact image of the program, from which you can derive all information you need. Some higher level queries are needed, but they can be provided as secondary queries or added to the standard. > And it > doesn't work well for syntax analysis because it requires a compilable > program. So it really has a very narrow use case (if any). On the contrary. There is no semantic you can analyze in a non-compilable program. And since it analyzes the output of a validated compiler, you can trust it better than any custom analyzer without known pedigree. > Your tool mainly proves that one can use anything with heroic enough > efforts. But the effort that your tools goes through to determine basic > semantics like whether a type is tagged demonstrates it's hardly a practical > way to build a tool. I'm afraid you are confused here. It is very easy to check whether a type is tagged. You may confusing this with checking whether a type is limited or not: yes, an extra query would be useful for this case. No big deal. > As far as I know, you're the only one that ever managed > to do anything beyond proof-of-concepts with ASIS. For years, AdaCore tools (gnatelim, gnatstub) used ASIS, not counting Gnatcheck that has not yet been able to migrate to LibAadalang. The interface generator of AWS is also based on ASIS. Out of the top of my mind, I think certain document generators as well as some real-time properties analyzers also use ASIS. > I can certainly see why > AdaCore might not want to support something solely for one usage. > I can easily believe that Libadalang is even more poorly defined than ASIS > (most vendor-generated things are, regardless of the vendor involved). I > would guess that the only way to build a tool like yours is to do your own > analysis (certainly, that is how I'd approach it). A true Ada Semantic > Interface would be a good thing, but ASIS isn't it. > But you didn't use it. True, a first approach or a casual reading of the interface is not very friendly. But the more you use it, the more you realize that it is very consistently defined, and allows you to do whatever you need. -- J-P. Rosen Adalog 2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX Tel: +33 1 45 29 21 52 https://www.adalog.fr