comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: How to challenge a GCC patch?
Date: Wed, 13 Oct 2021 20:40:42 -0500	[thread overview]
Message-ID: <sk81qr$tme$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: sjerti$5s1$1@dont-email.me

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3310 bytes --]

"J-P. Rosen" <rosen@adalog.fr> wrote in message 
news:sjerti$5s1$1@dont-email.me...
> Le 02/10/2021 à 11:34, Randy Brukardt a écrit :
>
>> No, the existing part also had major problems. Many of the terms were 
>> never
>> defined, many possible effects were missing from the various lists of
>> results, and loads of other things as well.
> Huh? ASIS uses the terms of, and as defined in, the LRM. And I never hit a 
> "missing result". Curious to see what you are aluding too.

Go back and read many of the SI99s. I'm not going to waste time doing it 
again.

>>>> The entire model of ASIS doesn't make much sense for static analysis
>>>> purposes, it's way too focused on syntax rather than semantics.
> Yes, it is a description of the syntactic. Where else can you start from?

The semantics, of course. You have a list of entities in a scope. The only 
interesting thing from the source code is the line/position of the 
declaration and/or use. The details of the source are irrelevant (such as 
whether optional keywords are given).

>>> 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.
>>
>> That's exactly the problem. You start with the source code, which is way 
>> too
>> low a level for any useful analysis. At most, you want a simple 
>> connection
>> to the source in the semantic information, not trying to preserve every
>> punctuation mark and comment. (Janus/Ada discards all of that stuff as 
>> soon
>> as parsing succeeds.) If you need to refer to the original source, say 
>> for
>> error handling purposes, then do that, but don't waste vast amounts of 
>> space
>> and time trying to keep loads of irrelevant material.
> The liaison to the source is not fundamental to any serious analysis, and 
> anyway you are not required to provide it.

It's a basic part of the ASIS definition, and I fail to see how you could do 
much without it. You have to keep nonsense such as whether someone specified 
"in" or a matching id after "end". A waste of time and space. You also have 
to keep the entire program in a tree form, which is also dubious (Janus/Ada 
certainly does not do that).

>> No sane compiler (validated or not) keeps all of the irrelevant syntactic
>> detail required by ASIS. It ends up getting reconstructed solely for the 
>> use
>> of ASIS, and how a rarely used interface is somehow more reliable escapes
>> me.
> Except for the not-required text interface, I see very few of these 
> "irrelevant syntactic details". OK, you have to keep a boolean to remember 
> if "end" is followed by a name. Big deal...

It is a big deal when multiplied by dozens of such things. And that 
information has to be carried through from the front end -- we discard 
everything possible from the front end, as it cuts the I/O load and 
effectively doubled the speed of the compiler. Maybe doesn't matter as much 
these days, but back then it was a difference between running the ACVC in 5 
days or 10 days.

On the rest, we're going to agree to disagree. Don't expect any support from 
me for doing anything with ASIS in the ARG.

                         Randy.


  reply	other threads:[~2021-10-14  1:40 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
2021-10-02  9:34               ` Randy Brukardt
2021-10-04 12:26                 ` J-P. Rosen
2021-10-14  1:40                   ` Randy Brukardt [this message]
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