• How to challenge a GCC patch?

    From J-P. Rosen@21:1/5 to All on Mon Sep 27 12:06:56 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?U3TDqXBoYW5lIFJpdmnDqHJl?@21:1/5 to All on Mon Sep 27 13:23:38 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Wright@21:1/5 to J-P. Rosen on Mon Sep 27 13:48:30 2021
    "J-P. Rosen" <rosen@adalog.fr> 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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Mon Sep 27 16:18:30 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Mon Sep 27 16:20:05 2021
    Le 27/09/2021 à 14:48, Simon Wright a écrit :
    "J-P. Rosen" <rosen@adalog.fr> 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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Emmanuel Briot@21:1/5 to All on Mon Sep 27 23:55:38 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Arnaud Charlet@21:1/5 to All on Tue Sep 28 00:38:32 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From nobody in particular@21:1/5 to J-P. Rosen on Wed Sep 29 08:58:15 2021
    On 27/09/2021 14:20, J-P. Rosen wrote:
    Le 27/09/2021 à 14:48, Simon Wright a écrit :
    "J-P. Rosen" <rosen@adalog.fr> 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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Emmanuel Briot@21:1/5 to All on Wed Sep 29 02:34:20 2021
    Hey look, trolling from an anonymous guys... We haven't see that in a while.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Wright@21:1/5 to nobody in particular on Wed Sep 29 11:03:39 2021
    nobody in particular <nobody@devnull.org> 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:

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Wright@21:1/5 to Luke A. Guest on Wed Sep 29 12:07:53 2021
    "Luke A. Guest" <laguest@archeia.com> writes:

    On 29/09/2021 11:03, Simon Wright wrote:
    nobody in particular <nobody@devnull.org> 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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Luke A. Guest@21:1/5 to Simon Wright on Wed Sep 29 12:03:10 2021
    On 29/09/2021 11:03, Simon Wright wrote:
    nobody in particular <nobody@devnull.org> 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?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?U3TDqXBoYW5lIFJpdmnDqHJl?@21:1/5 to All on Wed Sep 29 18:26:04 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Emmanuel Briot@21:1/5 to All on Wed Sep 29 12:04:07 2021
    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 !

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andreas ZEURCHER@21:1/5 to J-P. Rosen on Wed Sep 29 11:58:02 2021
    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" <ro...@adalog.fr> 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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Luke A. Guest@21:1/5 to Emmanuel Briot on Thu Sep 30 00:29:10 2021
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Thu Sep 30 07:57:26 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Thu Sep 30 08:23:17 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Thu Sep 30 08:19:30 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to and AdaCore on Thu Sep 30 08:44:49 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Thu Sep 30 09:52:36 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Arnaud Charlet@21:1/5 to All on Thu Sep 30 00:29:26 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Luke A. Guest@21:1/5 to J-P. Rosen on Thu Sep 30 08:53:06 2021
    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?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Thu Sep 30 10:13:58 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Arnaud Charlet@21:1/5 to All on Thu Sep 30 01:21:35 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fabien Chouteau@21:1/5 to J-P. Rosen on Thu Sep 30 01:28:16 2021
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Luke A. Guest@21:1/5 to J-P. Rosen on Thu Sep 30 09:26:12 2021
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Thu Sep 30 10:16:22 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Luke A. Guest@21:1/5 to J-P. Rosen on Thu Sep 30 09:28:44 2021
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Thu Sep 30 12:56:52 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Thu Sep 30 12:54:33 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Luke A. Guest@21:1/5 to J-P. Rosen on Thu Sep 30 13:27:37 2021
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Thu Sep 30 17:28:39 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Thu Sep 30 17:25:25 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Randy Brukardt@21:1/5 to J-P. Rosen on Thu Sep 30 19:18:05 2021
    "J-P. Rosen" <rosen@adalog.fr> wrote in message news:sj3ktk$emb$1@dont-email.me...
    ...
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Randy Brukardt@21:1/5 to J-P. Rosen on Thu Sep 30 19:30:03 2021
    "J-P. Rosen" <rosen@adalog.fr> wrote in message news:sj3rk5$na1$1@dont-email.me...
    ...
    -- 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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Randy Brukardt@21:1/5 to J-P. Rosen on Thu Sep 30 19:33:46 2021
    "J-P. Rosen" <rosen@adalog.fr> wrote in message news:sj4519$rg0$1@dont-email.me...
    ...
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Randy Brukardt@21:1/5 to Luke A. Guest on Thu Sep 30 19:37:39 2021
    "Luke A. Guest" <laguest@archeia.com> wrote in message news:sj4ahc$e05$1@gioia.aioe.org...
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Fri Oct 1 11:41:05 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Fri Oct 1 11:24:15 2021
    Le 01/10/2021 à 02:18, Randy Brukardt a écrit :
    "J-P. Rosen" <rosen@adalog.fr> wrote in message
    The ASIS design and definition is a mess (at least from the perspective of explaining what is expected). We tried to clean it up in the previous ASIS standardization update, but that was a lot of work and we probably didn't match implementations very well.
    That was mainly an attempt to introduce more static and tagged typing,
    and it failed due to the complexity involved (and that AdaCore said they
    would never implement it). LibAdalang made the same error, and got the
    same unnecessary complexity.

    The entire model of ASIS doesn't make much sense for static analysis purposes, it's way too focused on syntax rather than semantics.
    It is a exact image of the program, from which you can derive all
    information you need. Some higher level queries are needed, but they can
    be provided as secondary queries or added to the standard.

    And it
    doesn't work well for syntax analysis because it requires a compilable program. So it really has a very narrow use case (if any).
    On the contrary. There is no semantic you can analyze in a
    non-compilable program. And since it analyzes the output of a validated compiler, you can trust it better than any custom analyzer without known pedigree.

    Your tool mainly proves that one can use anything with heroic enough
    efforts. But the effort that your tools goes through to determine basic semantics like whether a type is tagged demonstrates it's hardly a practical way to build a tool.
    I'm afraid you are confused here. It is very easy to check whether a
    type is tagged. You may confusing this with checking whether a type is
    limited or not: yes, an extra query would be useful for this case. No
    big deal.

    As far as I know, you're the only one that ever managed
    to do anything beyond proof-of-concepts with ASIS.
    For years, AdaCore tools (gnatelim, gnatstub) used ASIS, not counting
    Gnatcheck that has not yet been able to migrate to LibAadalang.
    The interface generator of AWS is also based on ASIS. Out of the top of
    my mind, I think certain document generators as well as some real-time properties analyzers also use ASIS.

    I can certainly see why
    AdaCore might not want to support something solely for one usage.
    I can easily believe that Libadalang is even more poorly defined than ASIS (most vendor-generated things are, regardless of the vendor involved). I would guess that the only way to build a tool like yours is to do your own analysis (certainly, that is how I'd approach it). A true Ada Semantic Interface would be a good thing, but ASIS isn't it.

    But you didn't use it. True, a first approach or a casual reading of the interface is not very friendly. But the more you use it, the more you
    realize that it is very consistently defined, and allows you to do
    whatever you need.

    --
    J-P. Rosen
    Adalog
    2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
    Tel: +33 1 45 29 21 52
    https://www.adalog.fr

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Fri Oct 1 11:56:48 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Fri Oct 1 14:29:18 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Randy Brukardt@21:1/5 to J-P. Rosen on Sat Oct 2 04:14:59 2021
    "J-P. Rosen" <rosen@adalog.fr> wrote in message news:sj6l3g$f9g$1@dont-email.me...
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Randy Brukardt@21:1/5 to J-P. Rosen on Sat Oct 2 04:34:30 2021
    "J-P. Rosen" <rosen@adalog.fr> wrote in message news:sj6k41$7i4$1@dont-email.me...
    Le 01/10/2021 02:18, Randy Brukardt a crit :
    "J-P. Rosen" <rosen@adalog.fr> wrote in message
    The ASIS design and definition is a mess (at least from the perspective
    of
    explaining what is expected). We tried to clean it up in the previous
    ASIS
    standardization update, but that was a lot of work and we probably didn't
    match implementations very well.
    That was mainly an attempt to introduce more static and tagged typing, and
    it failed due to the complexity involved (and that AdaCore said they would never implement it). LibAdalang made the same error, and got the same unnecessary complexity.

    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Mon Oct 4 14:30:59 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Mon Oct 4 14:26:25 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Randy Brukardt@21:1/5 to J-P. Rosen on Wed Oct 13 20:48:11 2021
    "J-P. Rosen" <rosen@adalog.fr> wrote in message news:sjes64$79r$1@dont-email.me...
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Randy Brukardt@21:1/5 to J-P. Rosen on Wed Oct 13 20:40:42 2021
    "J-P. Rosen" <rosen@adalog.fr> wrote in message news:sjerti$5s1$1@dont-email.me...
    Le 02/10/2021 11:34, Randy Brukardt a crit :

    No, the existing part also had major problems. Many of the terms were
    never
    defined, many possible effects were missing from the various lists of
    results, and loads of other things as well.
    Huh? ASIS uses the terms of, and as defined in, the LRM. And I never hit a "missing result". Curious to see what you are aluding too.

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

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

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

    It is a exact image of the program, from which you can derive all
    information you need. Some higher level queries are needed, but they can >>> be provided as secondary queries or added to the standard.

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

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

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

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

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

    Randy.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Thu Oct 14 08:09:26 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From J-P. Rosen@21:1/5 to All on Thu Oct 14 08:04:26 2021
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)