comp.lang.ada
 help / color / mirror / Atom feed
* How to challenge a GCC patch?
@ 2021-09-27 10:06 J-P. Rosen
  2021-09-27 11:23 ` Stéphane Rivière
  2021-09-27 12:48 ` Simon Wright
  0 siblings, 2 replies; 52+ messages in thread
From: J-P. Rosen @ 2021-09-27 10:06 UTC (permalink / raw)


AdaCore has introduced a patch in FSF GCC to remove ASIS support.

AdaCore is free to do what they want with their own version of GCC. 
However, removing a useful feature from the FSF version with the goal to 
promote their own, in-house tool is clearly against the spirit of free 
software.

Does anybody know the procedures set by the FSF to challenge a patch?

-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  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-27 12:48 ` Simon Wright
  1 sibling, 2 replies; 52+ messages in thread
From: Stéphane Rivière @ 2021-09-27 11:23 UTC (permalink / raw)


Le 27/09/2021 à 12:06, J-P. Rosen a écrit :
> AdaCore has introduced a patch in FSF GCC to remove ASIS support.

This is all the more surprising since it seems to me that ASIS is still
in GNAT Pro. What a lack of fairness.

> Does anybody know the procedures set by the FSF to challenge a patch?

unfortunately no


^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  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 12:48 ` Simon Wright
  2021-09-27 14:20   ` J-P. Rosen
  1 sibling, 1 reply; 52+ messages in thread
From: Simon Wright @ 2021-09-27 12:48 UTC (permalink / raw)


"J-P. Rosen" <[email protected]> writes:

> AdaCore has introduced a patch in FSF GCC to remove ASIS support.
>
> AdaCore is free to do what they want with their own version of
> GCC. However, removing a useful feature from the FSF version with the
> goal to promote their own, in-house tool is clearly against the spirit
> of free software.
>
> Does anybody know the procedures set by the FSF to challenge a patch?

It's not just the patch(es), it's any subsequent changes to affected
parts of the compiler.

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-27 11:23 ` Stéphane Rivière
@ 2021-09-27 14:18   ` J-P. Rosen
  2021-09-28  7:38   ` Arnaud Charlet
  1 sibling, 0 replies; 52+ messages in thread
From: J-P. Rosen @ 2021-09-27 14:18 UTC (permalink / raw)


Le 27/09/2021 à 13:23, Stéphane Rivière a écrit :
> Le 27/09/2021 à 12:06, J-P. Rosen a écrit :
>> AdaCore has introduced a patch in FSF GCC to remove ASIS support.
> 
> This is all the more surprising since it seems to me that ASIS is still
> in GNAT Pro. What a lack of fairness.
> 
ASIS is no more in the mainstream gcc, it's in a special version, forked 
from the main branch, called asis-gcc.

See the instructions on running AdaControl for details: 
https://www.adacontrol.fr



-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-27 12:48 ` Simon Wright
@ 2021-09-27 14:20   ` J-P. Rosen
  2021-09-28  6:55     ` Emmanuel Briot
                       ` (2 more replies)
  0 siblings, 3 replies; 52+ messages in thread
From: J-P. Rosen @ 2021-09-27 14:20 UTC (permalink / raw)


Le 27/09/2021 à 14:48, Simon Wright a écrit :
> "J-P. Rosen" <[email protected]> writes:
> 
>> AdaCore has introduced a patch in FSF GCC to remove ASIS support.
>>
>> AdaCore is free to do what they want with their own version of
>> GCC. However, removing a useful feature from the FSF version with the
>> goal to promote their own, in-house tool is clearly against the spirit
>> of free software.
>>
>> Does anybody know the procedures set by the FSF to challenge a patch?
> 
> It's not just the patch(es), it's any subsequent changes to affected
> parts of the compiler.
> 
Right, if they want to contribute further patches, they'll have to keep 
it ASIS compatible. That's not a reason to divert gcc to support their 
own private interest.

-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  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 18:58     ` Andreas ZEURCHER
  2 siblings, 1 reply; 52+ messages in thread
From: Emmanuel Briot @ 2021-09-28  6:55 UTC (permalink / raw)


I must admit I fail to see your point in this thread: as far as I know, ASIS has never worked for recent versions of the language (standard was never updated), and AdaCore doesn't not evolve it anymore. 
Yes, that unfortunately means that tools like AdaControl will stop working at some point (you can certainly distribute prebuilt binaries for a while, but for anyone using new language constructs, what happens ?).
This being open-source software, you could adopt the maintenance of ASIS yourself (or ask other people in the Ada community to help with that). But this is of course a significant endeavor (then again, if you are not ready to do that yourself, why would you expect a commercial company like AdaCore to do it on your behalf ?)

ASIS has not disappeared. It is still (and forever) in the history of the gcc tree. It is just not available on the main branch anymore because there are no more maintainers for it. Just like a lot of obsolete platforms no longer supported by gcc itself, or by the linux kernel for instance. This is the way open-source software lives and dies.

Going to back to a more technical discussion, would you highlight why a library like libadalang is not appropriate for AdaControl. I have developed a few code-generation tools based on it. To me, the main issue is the bad documentation, which leaves a lot of trial-and-error to find which nodes are relevant when. Besides that, it seems to be fine with any code I have sent its way.
Maybe, rather than trying to maintain your own ASIS patches, it would be nice to develop an ASIS API that uses libadalang underneath (I do not know much about ASIS to be honest, so this might be a stupid suggestion).

Emmanuel

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  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-30  5:57     ` J-P. Rosen
  1 sibling, 2 replies; 52+ messages in thread
From: Arnaud Charlet @ 2021-09-28  7:38 UTC (permalink / raw)


On Monday, September 27, 2021 at 1:23:39 PM UTC+2, Stéphane Rivière wrote:
> Le 27/09/2021 à 12:06, J-P. Rosen a écrit : 
> > AdaCore has introduced a patch in FSF GCC to remove ASIS support.
> This is all the more surprising since it seems to me that ASIS is still 
> in GNAT Pro. What a lack of fairness.

We have removed ASIS support first in our own trunk of GNAT, and then 6 months later we have removed it from the GCC FSF trunk, so talking about lack of fairness is, well, unfair.

Why? Because ASIS is no longer maintained as an internal standard and hasn't evolved beyond Ada 95 because there was not enough support in the community and among vendors, so we've ended up maintaining it on our own for many years, which lately has become too large a burden. In addition, maintaining ASIS tree generation in GNAT has been also a challenge and a resource drain because each time we make a change in the GNAT front-end, this may break ASIS and we may have to make difficult investigation and changes and sometimes almost impossible changes because there are conflicts between the need of a code generator (GNAT for GCC or LLVM) and the need of an Ada analysis library (ASIS).

So we've decided to address this burden by moving tree generation for ASIS in a separate branch, so that this maintenance burden on GCC trunk would disappear.

This has been done both in AdaCore's tree where ASIS now resides on a separate branch, and in GCC FSF where the tree generation is available in GCC 10.x and works well here, and is available for the community to contribute and maintain for as long as needed.

Arno

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-27 14:20   ` J-P. Rosen
  2021-09-28  6:55     ` Emmanuel Briot
@ 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 18:58     ` Andreas ZEURCHER
  2 siblings, 2 replies; 52+ messages in thread
From: nobody in particular @ 2021-09-29  8:58 UTC (permalink / raw)


On 27/09/2021 14:20, J-P. Rosen wrote:
> Le 27/09/2021 à 14:48, Simon Wright a écrit :
>> "J-P. Rosen" <[email protected]> writes:
>>
>>> AdaCore has introduced a patch in FSF GCC to remove ASIS support.
>>>
>>> AdaCore is free to do what they want with their own version of
>>> GCC. However, removing a useful feature from the FSF version with the
>>> goal to promote their own, in-house tool is clearly against the spirit
>>> of free software.
>>>
>>> Does anybody know the procedures set by the FSF to challenge a patch?
>>
>> It's not just the patch(es), it's any subsequent changes to affected
>> parts of the compiler.
>>
> Right, if they want to contribute further patches, they'll have to keep 
> it ASIS compatible. That's not a reason to divert gcc to support their 
> own private interest.

Why is this at all surprising? AdaCore was created off the backs of U.S. 
taxpayers via grants Robert Dewar used to fund development of GNAT.

https://en.wikipedia.org/wiki/GNAT
https://en.wikipedia.org/wiki/Robert_Dewar

This has been a questionable racket from Day 1.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-29  8:58     ` nobody in particular
@ 2021-09-29  9:34       ` Emmanuel Briot
  2021-09-29 10:03       ` Simon Wright
  1 sibling, 0 replies; 52+ messages in thread
From: Emmanuel Briot @ 2021-09-29  9:34 UTC (permalink / raw)


Hey look, trolling from an anonymous guys... We haven't see that in a while.

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  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
  1 sibling, 1 reply; 52+ messages in thread
From: Simon Wright @ 2021-09-29 10:03 UTC (permalink / raw)


nobody in particular <[email protected]> writes:

> Why is this at all surprising? AdaCore was created off the backs of
> U.S. taxpayers via grants Robert Dewar used to fund development of
> GNAT.
>
> https://en.wikipedia.org/wiki/GNAT
> https://en.wikipedia.org/wiki/Robert_Dewar
>
> This has been a questionable racket from Day 1.

(a) Boeing
(b) :plonk:

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-29 10:03       ` Simon Wright
@ 2021-09-29 11:03         ` Luke A. Guest
  2021-09-29 11:07           ` Simon Wright
  0 siblings, 1 reply; 52+ messages in thread
From: Luke A. Guest @ 2021-09-29 11:03 UTC (permalink / raw)


On 29/09/2021 11:03, Simon Wright wrote:
> nobody in particular <[email protected]> writes:
> 
>> Why is this at all surprising? AdaCore was created off the backs of
>> U.S. taxpayers via grants Robert Dewar used to fund development of
>> GNAT.
>>
>> https://en.wikipedia.org/wiki/GNAT
>> https://en.wikipedia.org/wiki/Robert_Dewar
>>
>> This has been a questionable racket from Day 1.
> 
> (a) Boeing
> (b) :plonk:
> 

Que?

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-29 11:03         ` Luke A. Guest
@ 2021-09-29 11:07           ` Simon Wright
  0 siblings, 0 replies; 52+ messages in thread
From: Simon Wright @ 2021-09-29 11:07 UTC (permalink / raw)


"Luke A. Guest" <[email protected]> writes:

> On 29/09/2021 11:03, Simon Wright wrote:
>> nobody in particular <[email protected]> writes:
>> 
>>> Why is this at all surprising? AdaCore was created off the backs of
>>> U.S. taxpayers via grants Robert Dewar used to fund development of
>>> GNAT.
>>>
>>> https://en.wikipedia.org/wiki/GNAT
>>> https://en.wikipedia.org/wiki/Robert_Dewar
>>>
>>> This has been a questionable racket from Day 1.
>> (a) Boeing
>> (b) :plonk:
>> 
>
> Que?

Boeing's development of commercial airliners has had massive (indirect)
subsidy from the defence budget.

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  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-30  5:57     ` J-P. Rosen
  1 sibling, 1 reply; 52+ messages in thread
From: Stéphane Rivière @ 2021-09-29 16:26 UTC (permalink / raw)


> We have removed ASIS support first in our own trunk of GNAT, and then 6 months later we have removed it from the GCC FSF trunk, so talking about lack of fairness is, well, unfair.

I deeply endorse your maintenance and code evolution concerns.

The lack of 'fairness' (my apologies if you find that word a bit strong)
is that GNAT pro users are suddenly the only ones who can use ASIS,
while a unique tool like Adacontrol (for code control quality) has
always been available equally to the Free and Pro communities...

> Why? Because ASIS is no longer maintained as an internal standard and hasn't evolved beyond Ada 95 because there was not enough support in the community and among 

Thanks Arno for these explanations...

We all know about Adacore's commitment to the Free Software community.
The latest versions of GNATStudio, which has never been so reliable and
user-friendly, are just one example among others.

However, the initial problem persists and cannot be solved quickly.

Should Adacontrol users find a relationship using GNAT-Pro to release
the tools needed to continue using Adacontrol?

Maybe Adacore could reconsider its decision to keep ASIS for the Pro
community only and release it again, at least temporarily, to give the
Libre community some time to find a sustainable solution?

This could be an intermediate solution, pending a possible port of
Adacontrol to libadalang (or any other satisfying way).

Perhaps Adacore could help the community and Jean-Pierre in this
process? (targeted help, improved documentation, etc.)?

Thanks again for participating in this thread. It is very interesting to
talk with a representative of the most essential Ada contributor to
Libre software.

Stéphane

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-27 14:20   ` J-P. Rosen
  2021-09-28  6:55     ` Emmanuel Briot
  2021-09-29  8:58     ` nobody in particular
@ 2021-09-29 18:58     ` Andreas ZEURCHER
  2 siblings, 0 replies; 52+ messages in thread
From: Andreas ZEURCHER @ 2021-09-29 18:58 UTC (permalink / raw)


On Monday, September 27, 2021 at 9:20:04 AM UTC-5, J-P. Rosen wrote:
> Le 27/09/2021 à 14:48, Simon Wright a écrit : 
> > "J-P. Rosen" <[email protected]> writes: 
> > 
> >> AdaCore has introduced a patch in FSF GCC to remove ASIS support. 
> >> 
> >> AdaCore is free to do what they want with their own version of 
> >> GCC. However, removing a useful feature from the FSF version with the 
> >> goal to promote their own, in-house tool is clearly against the spirit 
> >> of free software. 
> >> 
> >> Does anybody know the procedures set by the FSF to challenge a patch? 
> > 
> > It's not just the patch(es), it's any subsequent changes to affected 
> > parts of the compiler. 
> >
> Right, if they want to contribute further patches, they'll have to keep 
> it ASIS compatible. That's not a reason to divert gcc to support their 
> own private interest.
> -- 
> 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

There does seemingly exist a way to directly compete against AdaCore's increasing proprietarization of GNAT to herd Ada users into GNAT Pro licenses as a higher-revenue way of what was supposed (back in the 1990s) to have been a business model for charging only for •support• of free open-source software (spelled out instead of FOSS to emphasize free and openness of open source).  Because neither FSF's GNAT nor FSF's GNAT Runtime Library are licensed under the GNU Affero Public License (GAPL), it seems that it would be possible to both 1) execute GPL-licensed proprietary-extended FSF GNAT in the cloud and then 2) link against the Runtime-Library-Exception(RLE)-licensed FSF-GNAT's runtime library in the cloud without divulging the source code to the proprietary extensions to GNAT, as long as the copy of the GNAT compiler that resides on VM instances in the cloud cannot be downloaded or distributed.  Then the R&D effort needed to extend GNAT in these proprietary ways would presumably (under regular GPL) not need to contributed back to AdaCore, because no distribution occurred, hence complete compliance (I suspect) with the terms of GPLv3.  As I understand it, this would change radically if AdaCore were to somehow switch FSF GNAT's licensing over to the Affero license.

But until AdaCore (with GNU Foundation's blessing) would switch FSF GNAT to Affero license, for a third-party company who is aggrieved at the loss of ASIS and its supporting constructs within GNAT, that aggrieved company could conceivably raise funds to perform the expensive R&D to put ASIS back into a cloud-only proprietary-extension version of the GNAT compiler without giving their hard work away to AdaCore.  Hence, that aggrieved company could conceivably attract investors to the aggrieved company's business model by having a barrier-to-entry-fortified value proposition in the cloud-only proprietary-extension version of the GNAT compiler.

Yes, of course, the downside would be that every compilation via the cloud-only proprietary-extension version of the GNAT compiler would need an extant working Internet connection—no offline compilation capability in this alternate version of GNAT.  And yes, of course, this would raise the ire of both AdaCore and GNU Foundation, who could then switch over to the Affero license for FSF GNAT, or even author some GPLv4 to address this loophole.  And yes, of course, porting* any ASIS software to RLEv3.1-licensed libadalang would be fraught with far fewer legal complications, and in fact might be less software-development effort as well.

* Porting here of course means practically rewriting from scratch, which is not the usual definition of “porting”.

The posting above is merely a record of my personal musings.  I am not a lawyer.  I haven't passed any bar exam nor been admitted to any bar in any jurisdiction nor have any license to practice law.  The letter & interpretation of copyright law might very well vary in your government's jurisdiction.  But even with the aid of an attorney, only you can form your own understanding of GPLv3 and GAPLv3; your understanding might reach different conclusions than anything indicated in this amateur posting.

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  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:19         ` J-P. Rosen
  0 siblings, 2 replies; 52+ messages in thread
From: Emmanuel Briot @ 2021-09-29 19:04 UTC (permalink / raw)


> The lack of 'fairness' (my apologies if you find that word a bit strong) 
> is that GNAT pro users are suddenly the only ones who can use ASIS, 
> while a unique tool like Adacontrol (for code control quality) has 
> always been available equally to the Free and Pro communities...

I might have misunderstood Arno's point, but my understanding is that AdaCore no longer makes any patch for ASIS.
So whatever pro customers have access to (and ASIS was always a paying addon), the community also has access to by downloading the latest available sources.

The GNAT Pro compiler apparently is losing the capability to generate the tree information, just like the free version of the compiler.
If you want to use ASIS, my understanding is that you would have to do a separate "compilation" pass using the compiler from the dedicated branch just for the purpose of generating the tree files (and you can discard all the object files it perhaps generates at the same time). Then you can run ASIS tools.

This is for sure a pain for AdaControl maintainers and users, no one disputes that. On the other hand, if tree generation was indeed getting in the way of compiler improvements that benefit every one, I, for one, am happy to see the change.

> Perhaps Adacore could help the community and Jean-Pierre in this
> process? (targeted help, improved documentation, etc.)? 

I suggested in an early message that perhaps the community could build an ASIS API on top of libadalang, if there is a need for that.
I also suggested that libadalang documentation should be improved, I definitely agree with that one !

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  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  6:19         ` J-P. Rosen
  1 sibling, 1 reply; 52+ messages in thread
From: Luke A. Guest @ 2021-09-29 23:29 UTC (permalink / raw)



On 29/09/2021 20:04, Emmanuel Briot wrote:

> I suggested in an early message that perhaps the community could build an ASIS API on top of libadalang, if there is a need for that.
> I also suggested that libadalang documentation should be improved, I definitely agree with that one !
> 

Freely available iso asis spec would help here.

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-28  7:38   ` Arnaud Charlet
  2021-09-29 16:26     ` Stéphane Rivière
@ 2021-09-30  5:57     ` J-P. Rosen
  2021-09-30  7:29       ` Arnaud Charlet
  1 sibling, 1 reply; 52+ messages in thread
From: J-P. Rosen @ 2021-09-30  5:57 UTC (permalink / raw)


Le 28/09/2021 à 09:38, Arnaud Charlet a écrit :
> We have removed ASIS support first in our own trunk of GNAT, and then
> 6 months later we have removed it from the GCC FSF trunk, so talking
> about lack of fairness is, well, unfair.It is unfair because asis-gcc is not distributed to the community

> Why? Because ASIS is no longer maintained as an internal standard and
> hasn't evolved beyond Ada 95 because there was not enough support in
> the community and among vendors,
The ASIS standard has not been updated, but AdaCore did a great job of 
evolving its ASIS implementation to support all new features up to 
Ada2012. It would be easy to add these improvements to a revised ASIS 
standard, and a New Work Item will be proposed to ISO to that effect.

Anyway, this issue of ASIS not being an up-to-date standard is a red 
herring, since LibAdalang is NOT a standard, and presumably never will.

> so we've ended up maintaining it on our own for many years, which 
> lately has become too large a burden.This is plain wrong. You don't maintain ASIS "on your own", there are 
customers who pay a support contract for ASIS.

> In addition, maintaining ASIS tree generation in GNAT has been also a
> challenge and a resource drain because each time we make a change in
> the GNAT front-end, this may break ASIS and we may have to make
> difficult investigation and changes and sometimes almost impossible
> changes because there are conflicts between the need of a code
> generator (GNAT for GCC or LLVM) and the need of an Ada analysis
> library (ASIS).
> 
> So we've decided to address this burden by moving tree generation for
> ASIS in a separate branch, so that this maintenance burden on GCC
> trunk would disappear.
We are talking about FSF-GNAT here. AFAIK, asis-gcc has not been pushed 
to FSF-GNAT.

> This has been done both in AdaCore's tree where ASIS now resides on a
> separate branch, and in GCC FSF where the tree generation is
> available in GCC 10.x and works well here, and is available for the
> community to contribute and maintain for as long as needed.
> 
But this means that users of ASIS will be stuck to GCC 10.x, or will 
have to handle two versions of gcc at the same time, which is an endless 
source of burden. Why don't you make asis-gcc available to the 
community? It doesn't require any extra cost, since it is available to 
paying customers!

Anyway, my question was about how to challenge a patch. I estimate that 
this patch is unfortunate, you argue that it is necessary. Let the GCC 
governance decide; AdaCore doesn't rule GCC.

-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-29 19:04       ` Emmanuel Briot
  2021-09-29 23:29         ` Luke A. Guest
@ 2021-09-30  6:19         ` J-P. Rosen
  2021-10-01  0:18           ` Randy Brukardt
  1 sibling, 1 reply; 52+ messages in thread
From: J-P. Rosen @ 2021-09-30  6:19 UTC (permalink / raw)


Le 29/09/2021 à 21:04, Emmanuel Briot a écrit :

> I might have misunderstood Arno's point, but my understanding is that AdaCore no longer makes any patch for ASIS.
No, ASIS is still maintained (although as LTM) for paying customers.

> So whatever pro customers have access to (and ASIS was always a paying addon), the community also has access to by downloading the latest available sources.
No, asis-gcc is not distributed by AdaCore.

> The GNAT Pro compiler apparently is losing the capability to generate the tree information, just like the free version of the compiler.
> If you want to use ASIS, my understanding is that you would have to do a separate "compilation" pass using the compiler from the dedicated branch just for the purpose of generating the tree files (and you can discard all the object files it perhaps generates at the same time). Then you can run ASIS tools.
Not really. Compile-on-the-fly is still working with asis-gcc 
(AdaControl is working like that).

> This is for sure a pain for AdaControl maintainers and users, no one disputes that. On the other hand, if tree generation was indeed getting in the way of compiler improvements that benefit every one, I, for one, am happy to see the change.
I'm afraid this is a red herring. I think rather that AdaCore has a hard 
time convincing people of moving from the well defined, carefully 
designed ASIS to the terrible mess of LibAdalang.

To anybody interested in that issue: don't take my word for it. Please 
read the specification of any ASIS module, and compare it to 
libadalang.analysis package.

Personnaly, I will never trust an interface that documents that I should 
expect a character literal on the LHS of an assignment statement!

Another example: it's only very recently (not sure if it is already in 
GitHub) that LibAdalang considered the case of a variable declaration 
with multiple names. How do you explain such an omission after 5 years 
of development?

>> Perhaps Adacore could help the community and Jean-Pierre in this
>> process? (targeted help, improved documentation, etc.)?
> 
I have had a tool partner's agreement with AdaCore, and until recently 
they have been very helpful. But the whole design of LibAdalang is not 
appropriate for deep static analysis, and it is an error to believe that 
it could replace ASIS. OTOH, it has plenty of useful features for other 
use cases not covered by ASIS, like handling of incomplete/incorrect 
code, no question about that.

> I suggested in an early message that perhaps the community could build an ASIS API on top of libadalang, if there is a need for that.
In the beginning of LibAdalang, AdaCore suggested doing that, but they 
abandonned it.

> I also suggested that libadalang documentation should be improved, I definitely agree with that one !
> 
Unfortunately, the whole design (and especially the typing system) of 
Libadalang makes it much more difficult to use than ASIS.

-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  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  7:53             ` Luke A. Guest
  0 siblings, 2 replies; 52+ messages in thread
From: J-P. Rosen @ 2021-09-30  6:23 UTC (permalink / raw)


Le 30/09/2021 à 01:29, Luke A. Guest a écrit :
> 
> On 29/09/2021 20:04, Emmanuel Briot wrote:
> 
>> I suggested in an early message that perhaps the community could build 
>> an ASIS API on top of libadalang, if there is a need for that.
>> I also suggested that libadalang documentation should be improved, I 
>> definitely agree with that one !
>>
> 
> Freely available iso asis spec would help here.
Actually, it is. Apart from ISO verbiage, all the interesting parts of 
the ASIS standard is put as comments in the corresponding ASIS packages.

Moreover, AdaCore kept this good habit for all the newly introduced 
features that support up to Ada 2012, which would make retrofitting them 
into an updated ASIS standard quite easy.

-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-28  6:55     ` Emmanuel Briot
@ 2021-09-30  6:44       ` J-P. Rosen
  0 siblings, 0 replies; 52+ messages in thread
From: J-P. Rosen @ 2021-09-30  6:44 UTC (permalink / raw)


Le 28/09/2021 à 08:55, Emmanuel Briot a écrit :
> I must admit I fail to see your point in this thread: as far as I know, ASIS has never worked for recent versions of the language (standard was never updated), and AdaCore doesn't not evolve it anymore.
Your information is not up-to-date. AdaCore has evolved its ASIS 
implementation to fully support up to Ada 2012, and there will be a 
proposal to renew the ASIS standard at ISO.

Claiming that ASIS is obsolete and has not evolved since 95 is pure FUD 
propagated by AdaCore. Anybody can download AdaCore's latest 
implementation and check that Ada 2012 is fully supported.

> Yes, that unfortunately means that tools like AdaControl will stop working at some point (you can certainly distribute prebuilt binaries for a while, but for anyone using new language constructs, what happens ?).
AdaControl fully supports Ada 2012. Many new features of Ada 202x use 
aspects, which are fully supported. The main syntactic addition is the 
"parallel" constructs, but few people will need it, and AdaCore said 
once that they would not support it.

> This being open-source software, you could adopt the maintenance of ASIS yourself (or ask other people in the Ada community to help with that). But this is of course a significant endeavor (then again, if you are not ready to do that yourself, why would you expect a commercial company like AdaCore to do it on your behalf ?)
Because that commercial company has customers who pay for that.

[...]

> Going to back to a more technical discussion, would you highlight why a library like libadalang is not appropriate for AdaControl. I have developed a few code-generation tools based on it. To me, the main issue is the bad documentation, which leaves a lot of trial-and-error to find which nodes are relevant when. Besides that, it seems to be fine with any code I have sent its way.
1) the typing system. Yes, the typing system of ASIS is surprising at 
first sight, but extremely convenient to use. I suspect that the 
designers of LibAdalang never studied the rationale behind ASIS choices 
when they decided to make that huge hierarchy of tagged types that 
brings no more static checks (you still need checks at run-time that 
elements are appropriate for their usage), but makes a lot of things 
more difficult. As an example, there are plenty of simple loops in 
AdaControl that would need to be changed to recursive calls of special 
functions (one for each loop).

2) Missing features. A casual look-up showed a number of queries that I 
could not find. I reported to AdaCore, the response was: "yes, that's a 
good idea, we'll add that later".

3) Unfriendly interface. It's not only lack of documentation, the "P_" 
and "F_" convention makes everything harder to read, and is of no 
benefit to the user. Moreover, it is a matter of implementation that 
surfaces to the specification - very bad. Where ASIS follows strictly 
the terms and structure of the ARM, LibAdalang uses abbreviated names 
that do not even correspond the usual Ada vocabulary. And this cannot be 
fixed without a major, incompatible, rework.


-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-30  5:57     ` J-P. Rosen
@ 2021-09-30  7:29       ` Arnaud Charlet
  2021-09-30  7:52         ` J-P. Rosen
  0 siblings, 1 reply; 52+ messages in thread
From: Arnaud Charlet @ 2021-09-30  7:29 UTC (permalink / raw)


> We are talking about FSF-GNAT here. AFAIK, asis-gcc has not been pushed 
> to FSF-GNAT.

What you call "asis-gcc" is a Pro version. We've never pushed any Pro version to FSF-GNAT, and there has never been any guarantee of correspondence between GNAT Pro and FSF-GNAT, so what you are demanding today for ASIS is unreasonable and unnecessary.

So assuming you are asking instead for some FSF version "close to asis-gcc", this version is available in the GCC 10.x branch, and similarly to asis-gcc which is on a long term, low changes branch at AdaCore, GCC 10.x is in the same state today. If you want an executable called "asis-gcc" then make a symbolic link from gcc (10.x) to asis-gcc and you have it.

> But this means that users of ASIS will be stuck to GCC 10.x, or will 
> have to handle two versions of gcc at the same time, which is an endless 
> source of burden.

The same is true for Pro users, no difference here: Pro users need to use GNAT x to compile, and ASIS-GCC y to generate trees. So what you are complaining about isn't different between Pro and community users, and making asis-gcc Pro available won't change that.

So to recap: you are asking for a Community version of "asis-gcc Pro": this version is available, it's GCC 10.x (10.3 being the latest available to date). And yes, it's a different version to generate trees than to compile Ada: the same is true for Pro users and they do not have specific issues with that.

Arno

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-30  7:29       ` Arnaud Charlet
@ 2021-09-30  7:52         ` J-P. Rosen
  2021-09-30  8:21           ` Arnaud Charlet
  2021-09-30  8:28           ` Fabien Chouteau
  0 siblings, 2 replies; 52+ messages in thread
From: J-P. Rosen @ 2021-09-30  7:52 UTC (permalink / raw)


Le 30/09/2021 à 09:29, Arnaud Charlet a écrit :
> So to recap: you are asking for a Community version of "asis-gcc
> Pro": this version is available, it's GCC 10.x (10.3 being the latest
> available to date). And yes, it's a different version to generate
> trees than to compile Ada: the same is true for Pro users and they do
> not have specific issues with that.
> 
But it's not available from AdaCore's community page. For most users, 
downloading and building from an FSF site is way too complicated. Call 
it asis-gcc or not, what is needed is a simple way to install ASIS support.

(Making a tree generator separate from the compiler is for me another 
error, although I can live with it. One of the main benefits of ASIS is 
that the ASIS program has the same view of the code as the compiler - 
but that's a separate issue).

-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  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  7:53             ` Luke A. Guest
  1 sibling, 1 reply; 52+ messages in thread
From: Luke A. Guest @ 2021-09-30  7:53 UTC (permalink / raw)


On 30/09/2021 07:23, J-P. Rosen wrote:
> Le 30/09/2021 à 01:29, Luke A. Guest a écrit :
>>
>> On 29/09/2021 20:04, Emmanuel Briot wrote:
>>
>>> I suggested in an early message that perhaps the community could 
>>> build an ASIS API on top of libadalang, if there is a need for that.
>>> I also suggested that libadalang documentation should be improved, I 
>>> definitely agree with that one !
>>>
>>
>> Freely available iso asis spec would help here.
> Actually, it is. Apart from ISO verbiage, all the interesting parts of 
> the ASIS standard is put as comments in the corresponding ASIS packages.
> 
> Moreover, AdaCore kept this good habit for all the newly introduced 
> features that support up to Ada 2012, which would make retrofitting them 
> into an updated ASIS standard quite easy.
> 

Are they gpl'd?

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-30  6:23           ` J-P. Rosen
  2021-09-30  7:53             ` Luke A. Guest
@ 2021-09-30  7:53             ` Luke A. Guest
  2021-09-30  8:16               ` J-P. Rosen
  1 sibling, 1 reply; 52+ messages in thread
From: Luke A. Guest @ 2021-09-30  7:53 UTC (permalink / raw)



On 30/09/2021 07:23, J-P. Rosen wrote:

>> Freely available iso asis spec would help here.
> Actually, it is. Apart from ISO verbiage, all the interesting parts of 
> the ASIS standard is put as comments in the corresponding ASIS packages.
> 
> Moreover, AdaCore kept this good habit for all the newly introduced 
> features that support up to Ada 2012, which would make retrofitting them 
> into an updated ASIS standard quite easy.
> 

Are they GPL'd and where are they?

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  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-10-01  0:30                 ` Randy Brukardt
  0 siblings, 2 replies; 52+ messages in thread
From: J-P. Rosen @ 2021-09-30  8:13 UTC (permalink / raw)


Le 30/09/2021 à 09:53, Luke A. Guest a écrit :
> On 30/09/2021 07:23, J-P. Rosen wrote:
>> Le 30/09/2021 à 01:29, Luke A. Guest a écrit :
>>>
>>> On 29/09/2021 20:04, Emmanuel Briot wrote:
>>>
>>>> I suggested in an early message that perhaps the community could 
>>>> build an ASIS API on top of libadalang, if there is a need for that.
>>>> I also suggested that libadalang documentation should be improved, I 
>>>> definitely agree with that one !
>>>>
>>>
>>> Freely available iso asis spec would help here.
>> Actually, it is. Apart from ISO verbiage, all the interesting parts of 
>> the ASIS standard is put as comments in the corresponding ASIS packages.
>>
>> Moreover, AdaCore kept this good habit for all the newly introduced 
>> features that support up to Ada 2012, which would make retrofitting 
>> them into an updated ASIS standard quite easy.
>>
> 
> Are they gpl'd?
Yes. Here is a copy of the copyright notice of every ASIS module:

-- This   specification  is  adapted   from  the  Ada   Semantic  Interface --
-- Specification Standard (ISO/IEC 15291) for use with GNAT.  In accordance --
-- with the copyright of that document, you can freely copy and modify this --
-- specification, provided that if you redistribute a modified version, any --
-- changes that you have made are clearly indicated.                        --
--                                                                          --
-- This  specification  also  contains  suggestions  and  discussion  items --
-- related to revising the  ASIS Standard according to the changes proposed --
-- for  the  new  revision of the Ada standard. The copyright notice above, --
-- and the license provisions that follow apply solely to these suggestions --
-- and  discussion  items  that  are separated by the corresponding comment --
-- sentinels                                                                --
--                                                                          --
-- ASIS-for-GNAT is free software; you can redistribute it and/or modify it --
-- under terms of the  GNU General Public License  as published by the Free --
-- Software Foundation;  either version 2,  or  (at your option)  any later --
-- version. ASIS-for-GNAT is distributed  in the hope  that it will be use- --
-- ful, but WITHOUT ANY WARRANTY; without even the implied warranty of MER- --
-- CHANTABILITY or  FITNESS FOR A  PARTICULAR PURPOSE.  See the GNU General --
-- Public License for more details.  You should have received a copy of the --
-- GNU  General  Public  License  distributed with  ASIS-for-GNAT; see file --
-- COPYING.  If not,  write  to the  Free Software Foundation,  51 Franklin --
-- Street, Fifth Floor, Boston, MA 02110-1301, USA.                         --


-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-30  7:53             ` Luke A. Guest
@ 2021-09-30  8:16               ` J-P. Rosen
  2021-09-30  8:28                 ` Luke A. Guest
  0 siblings, 1 reply; 52+ messages in thread
From: J-P. Rosen @ 2021-09-30  8:16 UTC (permalink / raw)


Le 30/09/2021 à 09:53, Luke A. Guest a écrit :
> 
> On 30/09/2021 07:23, J-P. Rosen wrote:
> 
>>> Freely available iso asis spec would help here.
>> Actually, it is. Apart from ISO verbiage, all the interesting parts of 
>> the ASIS standard is put as comments in the corresponding ASIS packages.
>>
>> Moreover, AdaCore kept this good habit for all the newly introduced 
>> features that support up to Ada 2012, which would make retrofitting 
>> them into an updated ASIS standard quite easy.
>>
> 
> Are they GPL'd and where are they?

You can find them in the specifications of the various packages, with sentinels (as indicated in my previous message). Another excerpt:

--  Suggestions related to changing this specification to accept new Ada
--  features as defined in incoming revision of the Ada Standard (ISO 8652)
--  are marked by following comment sentinels:
--
--  --|A2005 start
--   ... the suggestion goes here ...
--  --|A2005 end
--
--  and the discussion items are marked by the comment sentinels of teh form:
--
--  --|D2005 start
--   ... the discussion item goes here ...
--  --|D2005 end

(and the same goes for 2012).

-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  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
  1 sibling, 2 replies; 52+ messages in thread
From: Arnaud Charlet @ 2021-09-30  8:21 UTC (permalink / raw)


> But it's not available from AdaCore's community page. For most users, 
> downloading and building from an FSF site is way too complicated. Call 
> it asis-gcc or not, what is needed is a simple way to install ASIS support. 

We have decided in any case to stop creating and distributing GNAT Community binaries, since this was causing too much confusion and misunderstanding wrt the license, so doing in the end more harm than good to the community, which we care very much about.

So in the future, GNAT will be available directly and only from the FSF versions, and Alire will make that easy.

Alire (https://alire.ada.dev/) already provides GCC 10.3 today, see e.g. "alr toolchain --select"

> (Making a tree generator separate from the compiler is for me another 
> error, although I can live with it. One of the main benefits of ASIS is 
> that the ASIS program has the same view of the code as the compiler - 
> but that's a separate issue).

Right, and has never been the case for cross compilers where you already needed a native GNAT to build your ASIS application, and a cross GNAT to generate trees.

Arno

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  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-10-01  0:30                 ` Randy Brukardt
  1 sibling, 1 reply; 52+ messages in thread
From: Luke A. Guest @ 2021-09-30  8:26 UTC (permalink / raw)


On 30/09/2021 09:13, J-P. Rosen wrote:
> Le 30/09/2021 à 09:53, Luke A. Guest a écrit :
>> On 30/09/2021 07:23, J-P. Rosen wrote:
>>> Le 30/09/2021 à 01:29, Luke A. Guest a écrit :
>>>>
>>>> On 29/09/2021 20:04, Emmanuel Briot wrote:
>>>>
>>>>> I suggested in an early message that perhaps the community could 
>>>>> build an ASIS API on top of libadalang, if there is a need for that.
>>>>> I also suggested that libadalang documentation should be improved, 
>>>>> I definitely agree with that one !
>>>>>
>>>>
>>>> Freely available iso asis spec would help here.
>>> Actually, it is. Apart from ISO verbiage, all the interesting parts 
>>> of the ASIS standard is put as comments in the corresponding ASIS 
>>> packages.
>>>
>>> Moreover, AdaCore kept this good habit for all the newly introduced 
>>> features that support up to Ada 2012, which would make retrofitting 
>>> them into an updated ASIS standard quite easy.
>>>
>>
>> Are they gpl'd?
> Yes. Here is a copy of the copyright notice of every ASIS module:

And that's an issue, why not release them PD or BSD? I've seen the asis 
specs before and I'm certain they are not GPL'd, just like the packages 
in the Ada RM.

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-30  7:52         ` J-P. Rosen
  2021-09-30  8:21           ` Arnaud Charlet
@ 2021-09-30  8:28           ` Fabien Chouteau
  1 sibling, 0 replies; 52+ messages in thread
From: Fabien Chouteau @ 2021-09-30  8:28 UTC (permalink / raw)


On Thursday, September 30, 2021 at 9:52:39 AM UTC+2, J-P. Rosen wrote:
> But it's not available from AdaCore's community page. For most users, 
> downloading and building from an FSF site is way too complicated. Call 
> it asis-gcc or not, what is needed is a simple way to install ASIS support. 

There are plenty of GNAT FSF 10 builds available:
 - Linux distribs (Ubuntu/Debian, Arch, Fedora, and probably others that I don't know about)
 - msys2 for Windows
 - Simon Wright's builds for macOS
 - Alire for Linux, Windows and macOS

Availability of GNAT FSF 10 is not an issue.

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-30  8:16               ` J-P. Rosen
@ 2021-09-30  8:28                 ` Luke A. Guest
  2021-09-30 10:56                   ` J-P. Rosen
  0 siblings, 1 reply; 52+ messages in thread
From: Luke A. Guest @ 2021-09-30  8:28 UTC (permalink / raw)


On 30/09/2021 09:16, J-P. Rosen wrote:
> Le 30/09/2021 à 09:53, Luke A. Guest a écrit :
>>
>> On 30/09/2021 07:23, J-P. Rosen wrote:
>>
>>>> Freely available iso asis spec would help here.
>>> Actually, it is. Apart from ISO verbiage, all the interesting parts 
>>> of the ASIS standard is put as comments in the corresponding ASIS 
>>> packages.
>>>
>>> Moreover, AdaCore kept this good habit for all the newly introduced 
>>> features that support up to Ada 2012, which would make retrofitting 
>>> them into an updated ASIS standard quite easy.
>>>
>>
>> Are they GPL'd and where are they?
> 
> You can find them in the specifications of the various packages, with 
> sentinels (as indicated in my previous message). Another excerpt:
> 
> --  Suggestions related to changing this specification to accept new Ada
> --  features as defined in incoming revision of the Ada Standard (ISO 8652)
> --  are marked by following comment sentinels:
> -- 
> --  --|A2005 start
> --   ... the suggestion goes here ...
> --  --|A2005 end
> -- 
> --  and the discussion items are marked by the comment sentinels of teh 
> form:
> -- 
> --  --|D2005 start
> --   ... the discussion item goes here ...
> --  --|D2005 end
> 
> (and the same goes for 2012).
> 

I wanted to know where they are. I once found the entire directory of 
asis specs from the iso doc, I think I have them somewhere still.

Where are the updated ones for post 95? There should be archive or 
directory with them with no restrictive licensing comments.

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  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-10-01  0:33                     ` Randy Brukardt
  0 siblings, 2 replies; 52+ messages in thread
From: J-P. Rosen @ 2021-09-30 10:54 UTC (permalink / raw)


Le 30/09/2021 à 10:26, Luke A. Guest a écrit :
>> Yes. Here is a copy of the copyright notice of every ASIS module:
> 
> And that's an issue, why not release them PD or BSD? I've seen the asis 
> specs before and I'm certain they are not GPL'd, just like the packages 
> in the Ada RM.

If you are talking about the official ASIS specs ("like the packages in 
the Ada RM"), they are part of an ISO standard, and as such under ISO 
copyright. However, in the case of APIs, ISO allows their use by any 
implementation (otherwise, they would be useless). This has of course 
nothing common with the GPL or any other open license.

-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-30  8:28                 ` Luke A. Guest
@ 2021-09-30 10:56                   ` J-P. Rosen
  2021-09-30 12:27                     ` Luke A. Guest
  0 siblings, 1 reply; 52+ messages in thread
From: J-P. Rosen @ 2021-09-30 10:56 UTC (permalink / raw)


Le 30/09/2021 à 10:28, Luke A. Guest a écrit :
> I wanted to know where they are. I once found the entire directory of 
> asis specs from the iso doc, I think I have them somewhere still.
> 
> Where are the updated ones for post 95? There should be archive or 
> directory with them with no restrictive licensing comments.

Just download ASIS for gnat CE 2019.

-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  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
  1 sibling, 2 replies; 52+ messages in thread
From: Luke A. Guest @ 2021-09-30 12:27 UTC (permalink / raw)


On 30/09/2021 11:54, J-P. Rosen wrote:
> Le 30/09/2021 à 10:26, Luke A. Guest a écrit :
>>> Yes. Here is a copy of the copyright notice of every ASIS module:
>>
>> And that's an issue, why not release them PD or BSD? I've seen the 
>> asis specs before and I'm certain they are not GPL'd, just like the 
>> packages in the Ada RM.
> 
> If you are talking about the official ASIS specs ("like the packages in 
> the Ada RM"), they are part of an ISO standard, and as such under ISO 
> copyright. However, in the case of APIs, ISO allows their use by any 
> implementation (otherwise, they would be useless).

Exactly, same as the ARM packages.

> This has of course 
> nothing common with the GPL or any other open license.
> 

But the issue is, if the specs for the extended ASIS have only been 
released under GPL, they are useless to any non-gpl language 
implementations as their use infects that implementation causing further 
issues.

This GPL issue is the reason why I've looked at, in the past, creating 
my own compiler, and now just wanting to develop my own language that I 
can use anywhere.

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-30 10:56                   ` J-P. Rosen
@ 2021-09-30 12:27                     ` Luke A. Guest
  2021-09-30 15:28                       ` J-P. Rosen
  0 siblings, 1 reply; 52+ messages in thread
From: Luke A. Guest @ 2021-09-30 12:27 UTC (permalink / raw)


On 30/09/2021 11:56, J-P. Rosen wrote:
> Le 30/09/2021 à 10:28, Luke A. Guest a écrit :
>> I wanted to know where they are. I once found the entire directory of 
>> asis specs from the iso doc, I think I have them somewhere still.
>>
>> Where are the updated ones for post 95? There should be archive or 
>> directory with them with no restrictive licensing comments.
> 
> Just download ASIS for gnat CE 2019.
> 

No. See my other message.

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-30 12:27                     ` Luke A. Guest
@ 2021-09-30 15:25                       ` J-P. Rosen
  2021-10-01  0:37                       ` Randy Brukardt
  1 sibling, 0 replies; 52+ messages in thread
From: J-P. Rosen @ 2021-09-30 15:25 UTC (permalink / raw)


Le 30/09/2021 à 14:27, Luke A. Guest a écrit :
>> If you are talking about the official ASIS specs ("like the packages 
>> in the Ada RM"), they are part of an ISO standard, and as such under 
>> ISO copyright. However, in the case of APIs, ISO allows their use by 
>> any implementation (otherwise, they would be useless).
> 
> Exactly, same as the ARM packages.
> 
>> This has of course nothing common with the GPL or any other open license.
>>
> 
> But the issue is, if the specs for the extended ASIS have only been 
> released under GPL, they are useless to any non-gpl language 
> implementations as their use infects that implementation causing further 
> issues.
> 
Right, currently AdaCore is the owner of these specifications. A 
standardization effort would need a transfer of copyright, I hope that 
AdaCore wouldn't object.

BTW, talking of copyright: LibAdalang has no header comment telling the 
copyright status, therefore it is by default propriatory AdaCore!

-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-30 12:27                     ` Luke A. Guest
@ 2021-09-30 15:28                       ` J-P. Rosen
  0 siblings, 0 replies; 52+ messages in thread
From: J-P. Rosen @ 2021-09-30 15:28 UTC (permalink / raw)


Le 30/09/2021 à 14:27, Luke A. Guest a écrit :
> On 30/09/2021 11:56, J-P. Rosen wrote:
>> Le 30/09/2021 à 10:28, Luke A. Guest a écrit :
>>> I wanted to know where they are. I once found the entire directory of 
>>> asis specs from the iso doc, I think I have them somewhere still.
>>>
>>> Where are the updated ones for post 95? There should be archive or 
>>> directory with them with no restrictive licensing comments.
>>
>> Just download ASIS for gnat CE 2019.
>>
> 
> No. See my other message.
> 
If you want a separate, available document, I don't think there is. If 
it is just out of curiosity, use ASIS for Gnat.

There is certainly work to do to get an updated standard!

-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-30  6:19         ` J-P. Rosen
@ 2021-10-01  0:18           ` Randy Brukardt
  2021-10-01  9:24             ` J-P. Rosen
  0 siblings, 1 reply; 52+ messages in thread
From: Randy Brukardt @ 2021-10-01  0:18 UTC (permalink / raw)


"J-P. Rosen" <[email protected]> wrote in message 
news:[email protected]...
...
> I'm afraid this is a red herring. I think rather that AdaCore has a hard 
> time convincing people of moving from the well defined, carefully designed 
> ASIS to the terrible mess of LibAdalang.

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.

The entire model of ASIS doesn't make much sense for static analysis 
purposes, it's way too focused on syntax rather than semantics. 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).

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. As far as I know, you're the only one that ever managed 
to do anything beyond proof-of-concepts with 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.

                                              Randy.


^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-30  8:13               ` J-P. Rosen
  2021-09-30  8:26                 ` Luke A. Guest
@ 2021-10-01  0:30                 ` Randy Brukardt
  2021-10-01  9:41                   ` J-P. Rosen
  1 sibling, 1 reply; 52+ messages in thread
From: Randy Brukardt @ 2021-10-01  0:30 UTC (permalink / raw)


"J-P. Rosen" <[email protected]> wrote in message 
news:[email protected]...
...
> -- This   specification  is  adapted   from  the  Ada   Semantic 
> Interface --
> -- Specification Standard (ISO/IEC 15291) for use with GNAT.  In 
> accordance --
> -- with the copyright of that document, you can freely copy and modify 
> this --
> -- specification, provided that if you redistribute a modified version, 
> any --
> -- changes that you have made are clearly 
>            --

Umm, someone is confusing the original ASIS drafts with the ISO Standard 
(which has an ISO copyright with no exceptions). I would definitely not 
reference the ISO Standard in anything you are freely giving away -- there 
are copyright trolls out there that could easily decide to get your material 
banned from the Internet.

For Ada, we are very carefully keeping the Ada Reference Manual as a 
separate document from the ISO Standard, so that the Ada RM has the 
permissive copyright while the ISO Standard for Ada definitely does not. 
These are not the same thing!

That care was not taken for the ASIS Standard; I know of no public version 
that was maintained. As such, my opinion is that ISO owns the copyright, and 
any extensive use (like using all of the specs) would require a license from 
ISO. This is by far the best reason for abandoning ASIS - I don't believe 
that you can implement it without getting a license from ISO (since the bulk 
of the ASIS Standard is Ada specifications, you are using too much to fall 
under fair use). This is one reason that I would never consider implementing 
ASIS in Janus/Ada.

>> Actually, it is. Apart from ISO verbiage, all the interesting parts of 
>> the ASIS standard is put as comments in the corresponding ASIS packages.
>>
>> Moreover, AdaCore kept this good habit for all the newly introduced 
>> features that support up to Ada 2012, which would make retrofitting them 
>> into an updated ASIS standard quite easy.

It's only easy if you think that giving AdaCore's work to ISO under the 
exclusive copyright that they (ISO) will insist on is something that is 
legally and ethically appropriate.

You need to come to grips with the reality that ASIS is dead. It's legally 
dangerous to implement it, it isn't a good match for either syntax or 
semantic analysis (doing neither very well), and it is poor match for modern 
compilers (hardly anyone builds trees much like the ASIS ones, unless you 
are trying to implement ASIS).

                                                       Randy.


^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-30 10:54                   ` J-P. Rosen
  2021-09-30 12:27                     ` Luke A. Guest
@ 2021-10-01  0:33                     ` Randy Brukardt
  1 sibling, 0 replies; 52+ messages in thread
From: Randy Brukardt @ 2021-10-01  0:33 UTC (permalink / raw)


"J-P. Rosen" <[email protected]> wrote in message 
news:[email protected]...
...
> If you are talking about the official ASIS specs ("like the packages in 
> the Ada RM"), they are part of an ISO standard, and as such under ISO 
> copyright. However, in the case of APIs, ISO allows their use by any 
> implementation (otherwise, they would be useless).

This is news to me. As far as I can tell, any API that is the bulk ofan ISO 
Standard *is* useless, because you need an ISO license to use it. Smaller 
APIs might be usable as "fair use", but they can't be 90% of the Standard's 
text, as in ASIS.

On what basis do you think that "ISO allows their use by any 
implementation"; I see no such thing in any ISO Standard??

                                     Randy.


^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-30 12:27                     ` Luke A. Guest
  2021-09-30 15:25                       ` J-P. Rosen
@ 2021-10-01  0:37                       ` Randy Brukardt
  1 sibling, 0 replies; 52+ messages in thread
From: Randy Brukardt @ 2021-10-01  0:37 UTC (permalink / raw)


"Luke A. Guest" <[email protected]> wrote in message 
news:[email protected]...
> On 30/09/2021 11:54, J-P. Rosen wrote:
...
>> If you are talking about the official ASIS specs ("like the packages in 
>> the Ada RM"), they are part of an ISO standard, and as such under ISO 
>> copyright. However, in the case of APIs, ISO allows their use by any 
>> implementation (otherwise, they would be useless).
>
> Exactly, same as the ARM packages.

No, you can use RM packages because we've carefully kept the original 
copyrights and document intact; the ISO versions are *derived* from that 
document. When you are implementing Ada, you are using the packages from the 
RM, which have an appropriate exception.

That was not done for ASIS, and there is no appropriate exception to use the 
libraries. And surely not to copy the extensive comments along with the spec 
(even if you argue that fair use allows you to implement the spec -- and the 
Oracle case appears to have ruled that there is no such right -- you don't 
need to copy the comments that make up the bulk of the ASIS Standard).

                            Randy.


^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-10-01  0:18           ` Randy Brukardt
@ 2021-10-01  9:24             ` J-P. Rosen
  2021-10-02  9:34               ` Randy Brukardt
  0 siblings, 1 reply; 52+ messages in thread
From: J-P. Rosen @ 2021-10-01  9:24 UTC (permalink / raw)


Le 01/10/2021 à 02:18, Randy Brukardt a écrit :
> "J-P. Rosen" <[email protected]> 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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-10-01  0:30                 ` Randy Brukardt
@ 2021-10-01  9:41                   ` J-P. Rosen
  2021-10-02  9:14                     ` Randy Brukardt
  0 siblings, 1 reply; 52+ messages in thread
From: J-P. Rosen @ 2021-10-01  9:41 UTC (permalink / raw)


Le 01/10/2021 à 02:30, Randy Brukardt a écrit :
> Umm, someone is confusing the original ASIS drafts with the ISO Standard
> (which has an ISO copyright with no exceptions). I would definitely not
> reference the ISO Standard in anything you are freely giving away -- there
> are copyright trolls out there that could easily decide to get your material
> banned from the Internet.
> 
Strangely enough, my copy of ISO 15291 has no copyright statement at 
all; might be a "last draft" version.

However, the headers of every ASIS-for-Gnat package state:
"This specification is adapted from the Ada Semantic
Interface Specification Standard (ISO/IEC 15291) for use with GNAT. In
accordance with the copyright of that document, you can freely copy and
modify this specification, provided that if you redistribute a modified
version, any changes that you have made are clearly indicated."

(and since that statement dates back to Robert Dewar's times, I'm pretty 
certain it is reliable).

My memory is that all "interesting" part of the standard was deliberatly 
put as comments in the specification, precisely to circumvent the ISO 
copyright, and allow the use of ASIS without paying an outrageous price 
to ISO.

-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-30  8:21           ` Arnaud Charlet
@ 2021-10-01  9:56             ` J-P. Rosen
  2021-10-01 12:29             ` J-P. Rosen
  1 sibling, 0 replies; 52+ messages in thread
From: J-P. Rosen @ 2021-10-01  9:56 UTC (permalink / raw)


Le 30/09/2021 à 10:21, Arnaud Charlet a écrit :
> We have decided in any case to stop creating and distributing GNAT Community binaries, since this was causing too much confusion and misunderstanding wrt the license, so doing in the end more harm than good to the community, which we care very much about.
> 
> So in the future, GNAT will be available directly and only from the FSF versions, and Alire will make that easy.
> 
> Alire (https://alire.ada.dev/) already provides GCC 10.3 today, see e.g. "alr toolchain --select"
> 
And what will happen to other versions of Gnat that were useful for 
promoting Ada, like JGnat and Lego-mindstorm? (I know you freezed these 
some years ago, but it was very useful to be able to mention them).

And what will happen for fixes to asis-gcc? Will they be propagated to 
GCC 10.3? Even after you move to GCC 11.x?

-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-09-30  8:21           ` Arnaud Charlet
  2021-10-01  9:56             ` J-P. Rosen
@ 2021-10-01 12:29             ` J-P. Rosen
  1 sibling, 0 replies; 52+ messages in thread
From: J-P. Rosen @ 2021-10-01 12:29 UTC (permalink / raw)


Le 30/09/2021 à 10:21, Arnaud Charlet a écrit :
> Alire (https://alire.ada.dev/) already provides GCC 10.3 today, see e.g. "alr toolchain --select"
And does it provide a matching version of ASIS?

-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-10-01  9:41                   ` J-P. Rosen
@ 2021-10-02  9:14                     ` Randy Brukardt
  2021-10-04 12:30                       ` J-P. Rosen
  0 siblings, 1 reply; 52+ messages in thread
From: Randy Brukardt @ 2021-10-02  9:14 UTC (permalink / raw)


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

"J-P. Rosen" <[email protected]> wrote in message 
news:[email protected]...
> Le 01/10/2021 à 02:30, Randy Brukardt a écrit :
>> Umm, someone is confusing the original ASIS drafts with the ISO Standard
>> (which has an ISO copyright with no exceptions). I would definitely not
>> reference the ISO Standard in anything you are freely giving away --  
>> there
>> are copyright trolls out there that could easily decide to get your 
>> material
>> banned from the Internet.
>>
> Strangely enough, my copy of ISO 15291 has no copyright statement at all; 
> might be a "last draft" version.
>
> However, the headers of every ASIS-for-Gnat package state:
> "This specification is adapted from the Ada Semantic
> Interface Specification Standard (ISO/IEC 15291) for use with GNAT. In
> accordance with the copyright of that document, you can freely copy and
> modify this specification, provided that if you redistribute a modified
> version, any changes that you have made are clearly indicated."
>
> (and since that statement dates back to Robert Dewar's times, I'm pretty 
> certain it is reliable).

I'm certain that is something that predates the ISO version of ASIS. There's 
no such permission in the ISO document that I was sent as editor during our 
last (aborted) revision attempt. Robert probably was using the pre-ISO 
version as the source, all

> My memory is that all "interesting" part of the standard was deliberatly 
> put as comments in the specification, precisely to circumvent the ISO 
> copyright, and allow the use of ASIS without paying an outrageous price to 
> ISO.

I don't see how using comments helps anything. The Oracle case makes it 
pretty clear an API iteself can be covered by a copyright, and surely the 
comments are covered by the copyright. And the ISO version has no copyright 
statement other than the usual "All rights reserved".

Disclaimer: I am not a lawyer and cannot say anything for certain in these 
matters.

                            Randy.


^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-10-01  9:24             ` J-P. Rosen
@ 2021-10-02  9:34               ` Randy Brukardt
  2021-10-04 12:26                 ` J-P. Rosen
  0 siblings, 1 reply; 52+ messages in thread
From: Randy Brukardt @ 2021-10-02  9:34 UTC (permalink / raw)


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

"J-P. Rosen" <[email protected]> wrote in message 
news:[email protected]...
> Le 01/10/2021 à 02:18, Randy Brukardt a écrit :
>> "J-P. Rosen" <[email protected]> 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.

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. That all would have had to be 
fixed even if the semantic interface was completely forgotten (indeed, it 
was kept pretty separate for that reason).

>> 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.

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.

>> 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.

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.

A true semantic interface on the lines of the one proposed for ASIS would 
make good sense (design of types), but the vast majority of the existing 
ASIS belongs in a rubbish bin. Good riddance.

 ...
> 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.

I don't use it because implementing it would require adding loads of useless 
cruft to our Ada compiler. And even then, it doesn't make much sense based 
on our compilation model and our generic unit model. Supporting it would be 
like building a whole new Ada compiler. Ergo, it is a lie, it claims to be 
an "interface to a compiler", but it requires many things that most 
compilers would not waste time on. (I think it is a fairly close 
representation of the internals of early Rational compilers, which is 
probably why they were so slow and memory hogs. ;-) So what is it really? 
Just a very complex way to do stuff that you can easily do with a parser. No 
worth anyone's time, IMHO.

I've assumed most people used it because it was there and because some 
people had spent a lot of time trying to define it as some sort of Standard. 
Just because people put a lot of work into something doesn't mean that it is 
a useful thing.

                                             Randy.


^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-10-02  9:34               ` Randy Brukardt
@ 2021-10-04 12:26                 ` J-P. Rosen
  2021-10-14  1:40                   ` Randy Brukardt
  0 siblings, 1 reply; 52+ messages in thread
From: J-P. Rosen @ 2021-10-04 12:26 UTC (permalink / raw)


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.
>
>>> 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?

>> 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.

> 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...

> A true semantic interface on the lines of the one proposed for ASIS would
> make good sense (design of types), but the vast majority of the existing
> ASIS belongs in a rubbish bin. Good riddance.
Says someone who didn't use or implement ASIS. BTW, I understand that 
ASIS would be difficult to implement in Janus Ada, especially when it 
comes to generic expansion. But it's not a reason to deprive others from 
it...

>> [...] (I think it is a fairly close
> representation of the internals of early Rational compilers
True, the design was based on ideas from Diana. But it was designed with 
inputs from various compilers.

> I've assumed most people used it because it was there and because some
> people had spent a lot of time trying to define it as some sort of Standard.
> Just because people put a lot of work into something doesn't mean that it is
> a useful thing.
It allowed me to build a very sophisticated tool, valued at 1.24M$ (see 
https://www.adacontrol.fr), and used by very serious customers. Seems 
enough to qualify it "useful".

-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-10-02  9:14                     ` Randy Brukardt
@ 2021-10-04 12:30                       ` J-P. Rosen
  2021-10-14  1:48                         ` Randy Brukardt
  0 siblings, 1 reply; 52+ messages in thread
From: J-P. Rosen @ 2021-10-04 12:30 UTC (permalink / raw)


Le 02/10/2021 à 11:14, Randy Brukardt a écrit :
>> My memory is that all "interesting" part of the standard was deliberatly
>> put as comments in the specification, precisely to circumvent the ISO
>> copyright, and allow the use of ASIS without paying an outrageous price to
>> ISO.
> I don't see how using comments helps anything. The Oracle case makes it
> pretty clear an API iteself can be covered by a copyright, and surely the
> comments are covered by the copyright. And the ISO version has no copyright
> statement other than the usual "All rights reserved".

1) It seems to me that you are confusing the copyright owner with the 
right to use the interface. Undoubtedly, ISO is the copyright owner. But 
they may authorize unlimited use of the specification, otherwise NO 
standard would make sense. Do you infringe copyright if you build an 
electrical plug that conforms to you electrical standard?

2) Comments help, because they describe precisely what is expected by 
every function, and what it provides. Actually, I never open the ASIS 
standard, everything I need is detailed in the comments.

-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-10-04 12:26                 ` J-P. Rosen
@ 2021-10-14  1:40                   ` Randy Brukardt
  2021-10-14  6:04                     ` J-P. Rosen
  0 siblings, 1 reply; 52+ messages in thread
From: Randy Brukardt @ 2021-10-14  1:40 UTC (permalink / raw)


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

"J-P. Rosen" <[email protected]> wrote in message 
news:[email protected]...
> 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.


^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-10-04 12:30                       ` J-P. Rosen
@ 2021-10-14  1:48                         ` Randy Brukardt
  2021-10-14  6:09                           ` J-P. Rosen
  0 siblings, 1 reply; 52+ messages in thread
From: Randy Brukardt @ 2021-10-14  1:48 UTC (permalink / raw)


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

"J-P. Rosen" <[email protected]> wrote in message 
news:[email protected]...
> Le 02/10/2021 à 11:14, Randy Brukardt a écrit :
>>> My memory is that all "interesting" part of the standard was deliberatly
>>> put as comments in the specification, precisely to circumvent the ISO
>>> copyright, and allow the use of ASIS without paying an outrageous price 
>>> to
>>> ISO.
>> I don't see how using comments helps anything. The Oracle case makes it
>> pretty clear an API iteself can be covered by a copyright, and surely the
>> comments are covered by the copyright. And the ISO version has no 
>> copyright
>> statement other than the usual "All rights reserved".
>
> 1) It seems to me that you are confusing the copyright owner with the 
> right to use the interface. Undoubtedly, ISO is the copyright owner. But 
> they may authorize unlimited use of the specification, otherwise NO 
> standard would make sense. Do you infringe copyright if you build an 
> electrical plug that conforms to you electrical standard?

That's clearly covered by "fair use". But API Standards are different: you 
have to copy large parts of the Standard to implement them (and ASIS is an 
extreme case -- you have to copy 90% of it to use it). That certainly is not 
covered by "fair use".

It's my (semi-informed) opinion that API Standards are useless, because you 
have to violate the ISO copyright to use them (or buy a license).

> 2) Comments help, because they describe precisely what is expected by 
> every function, and what it provides. Actually, I never open the ASIS 
> standard, everything I need is detailed in the comments.

Exactly. Someone copied 90% of the ASIS standard without permission, and 
*that* is what you are using. And that is depriving ISO of possible revenue.

It's clear to me that anyone using ASIS specs is skating on thin ice. 
Whether it ever would become a problem for ISO is certainly unknown, but I 
wouldn't want to build a business on top of such a thing. It's definitely 
not open source by any reasonable definition.

We've spent a huge amount of effort to ensure that the Ada language (and 
it's language-defined packages) do not fall into the same trap. But it's way 
too late to do that for ASIS.

                                       Randy.



^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-10-14  1:40                   ` Randy Brukardt
@ 2021-10-14  6:04                     ` J-P. Rosen
  0 siblings, 0 replies; 52+ messages in thread
From: J-P. Rosen @ 2021-10-14  6:04 UTC (permalink / raw)


Le 14/10/2021 à 03:40, Randy Brukardt a écrit :

> 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).
> [...]

> You have to keep nonsense such as whether someone specified
> "in" or a matching id after "end". 
If you want to write a program that checks coding standards, you need 
that information, since these are often requires

> 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.
I understand that the structure of Janus makes it inappropriate to 
support ASIS, which is quite understandable given the initial 
constraints of the project. But the ARG is in charge of supporting Ada, 
not the interests of a particular compiler (and this is also directed to 
Gnat, of course).


-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

* Re: How to challenge a GCC patch?
  2021-10-14  1:48                         ` Randy Brukardt
@ 2021-10-14  6:09                           ` J-P. Rosen
  0 siblings, 0 replies; 52+ messages in thread
From: J-P. Rosen @ 2021-10-14  6:09 UTC (permalink / raw)


Le 14/10/2021 à 03:48, Randy Brukardt a écrit :
> It's my (semi-informed) opinion that API Standards are useless, because you
> have to violate the ISO copyright to use them (or buy a license).
Standards are meant to be used. Therefore my not-better-informed opinion 
is that the problem has been addressed by ISO, with a decision that 
APIs, as defined in the standard, can be used.

> Exactly. Someone copied 90% of the ASIS standard without permission, and
> *that*  is what you are using. And that is depriving ISO of possible revenue.
Not at all. The exact specification of ASIS packages is part of the 
standard, including comments. And this standard has been approved by 
ISO, with comments.

-- 
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

^ permalink raw reply	[flat|nested] 52+ messages in thread

end of thread, other threads:[~2021-10-14  6:09 UTC | newest]

Thread overview: 52+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
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

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