comp.lang.ada
 help / color / mirror / Atom feed
From: "J-P. Rosen" <rosen@adalog.fr>
Subject: Re: How to challenge a GCC patch?
Date: Fri, 1 Oct 2021 11:24:15 +0200	[thread overview]
Message-ID: <sj6k41$7i4$1@dont-email.me> (raw)
In-Reply-To: <sj5k3u$p85$1@franka.jacob-sparre.dk>

Le 01/10/2021 à 02:18, Randy Brukardt a écrit :
> "J-P. Rosen" <rosen@adalog.fr> 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

  reply	other threads:[~2021-10-01  9:24 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-27 10:06 How to challenge a GCC patch? J-P. Rosen
2021-09-27 11:23 ` Stéphane Rivière
2021-09-27 14:18   ` J-P. Rosen
2021-09-28  7:38   ` Arnaud Charlet
2021-09-29 16:26     ` Stéphane Rivière
2021-09-29 19:04       ` Emmanuel Briot
2021-09-29 23:29         ` Luke A. Guest
2021-09-30  6:23           ` J-P. Rosen
2021-09-30  7:53             ` Luke A. Guest
2021-09-30  8:13               ` J-P. Rosen
2021-09-30  8:26                 ` Luke A. Guest
2021-09-30 10:54                   ` J-P. Rosen
2021-09-30 12:27                     ` Luke A. Guest
2021-09-30 15:25                       ` J-P. Rosen
2021-10-01  0:37                       ` Randy Brukardt
2021-10-01  0:33                     ` Randy Brukardt
2021-10-01  0:30                 ` Randy Brukardt
2021-10-01  9:41                   ` J-P. Rosen
2021-10-02  9:14                     ` Randy Brukardt
2021-10-04 12:30                       ` J-P. Rosen
2021-10-14  1:48                         ` Randy Brukardt
2021-10-14  6:09                           ` J-P. Rosen
2021-09-30  7:53             ` Luke A. Guest
2021-09-30  8:16               ` J-P. Rosen
2021-09-30  8:28                 ` Luke A. Guest
2021-09-30 10:56                   ` J-P. Rosen
2021-09-30 12:27                     ` Luke A. Guest
2021-09-30 15:28                       ` J-P. Rosen
2021-09-30  6:19         ` J-P. Rosen
2021-10-01  0:18           ` Randy Brukardt
2021-10-01  9:24             ` J-P. Rosen [this message]
2021-10-02  9:34               ` Randy Brukardt
2021-10-04 12:26                 ` J-P. Rosen
2021-10-14  1:40                   ` Randy Brukardt
2021-10-14  6:04                     ` J-P. Rosen
2021-09-30  5:57     ` J-P. Rosen
2021-09-30  7:29       ` Arnaud Charlet
2021-09-30  7:52         ` J-P. Rosen
2021-09-30  8:21           ` Arnaud Charlet
2021-10-01  9:56             ` J-P. Rosen
2021-10-01 12:29             ` J-P. Rosen
2021-09-30  8:28           ` Fabien Chouteau
2021-09-27 12:48 ` Simon Wright
2021-09-27 14:20   ` J-P. Rosen
2021-09-28  6:55     ` Emmanuel Briot
2021-09-30  6:44       ` J-P. Rosen
2021-09-29  8:58     ` nobody in particular
2021-09-29  9:34       ` Emmanuel Briot
2021-09-29 10:03       ` Simon Wright
2021-09-29 11:03         ` Luke A. Guest
2021-09-29 11:07           ` Simon Wright
2021-09-29 18:58     ` Andreas ZEURCHER
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox