comp.lang.ada
 help / color / mirror / Atom feed
From: "J-P. Rosen" <rosen@adalog.fr>
Subject: Re: How to challenge a GCC patch?
Date: Thu, 30 Sep 2021 08:44:49 +0200	[thread overview]
Message-ID: <sj3md2$mnl$1@dont-email.me> (raw)
In-Reply-To: <fe03a796-f692-490d-826c-f5e6f1e7739dn@googlegroups.com>

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

  reply	other threads:[~2021-09-30  6:44 UTC|newest]

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

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