comp.lang.ada
 help / color / mirror / Atom feed
From: "Dan'l Miller" <optikos@verizon.net>
Subject: Re: disruptors of & inventory of Ada compilers and latest their era of ISO8652 compliance
Date: Thu, 17 May 2018 17:56:10 -0700 (PDT)
Date: 2018-05-17T17:56:10-07:00	[thread overview]
Message-ID: <3d3c1882-ae3d-42aa-8f13-80c550e50375@googlegroups.com> (raw)
In-Reply-To: <2f4dd5ae-a481-4eb4-93ff-2c1cc3cb10bb@googlegroups.com>

On Thursday, May 17, 2018 at 3:23:51 PM UTC-5, Dan'l Miller wrote:
> According to Figure 1 in the following reference, GIGI feeds fragments of the semantically-adorned tree
> to either GENERIC or GIMPLE. 
> 
> https://www2.adacore.com/gap-static/GNAT_Book/html/node5.htm#fig:frontal-gnat 

Does anyone know (or have a URL to) why GIGI was written in C instead of in Ada?  Obviously, it is calling much C code in the GCC backend world, so there is that.  Was it simply because GIGI predated the addition of so much of the unchecked_* feature-set in ISO standard Ada that permits interfacing with C APIs?

The reason that I ask is because I am perplexed by the opposing boundary:  the AST data structure that GIGI is traversing is an Ada data structure (i.e., instantiated & adorned by all the Ada-language code throughout the rest of the GNAT frontend), correct?  So wouldn't the impedance mismatch (to borrow a EE term) between AST-versus-C at the AST-versus-GIGIc boundary have been much more immense than any annoying unchecked_* layer between GIGIada-versus-GCCbackendWorld, where GIGIc is the extant one today, and where GIGIada is the hypothetical one that was never written in Ada, and where GCCbackendWorld is all C (and nowadays some C++ AIUI).

Perhaps the LLVM replacement for GIGI should be written in Ada instead of C.  Perhaps that means not LSP of the AdaFE-to-GIGI interface, where AdaFE is the rest of the frontend of GNAT written in Ada.  Conversely, keeping exactly today's extant AdaFE-to-GIGIc existing interface via LSPing GiggleVM instead of GIGIc as a drop-in replacement would permit an immense amount of insulating a fork of GNAT from a vast amount of evolutionary change in GNAT's AdaFE.

(I can imagine that perhaps FSF and/or AdaCore and/or LLVM.org could all refuse to merge any attempt at this GiggleVM LSPing of GIGIc and grafting on a 2nd backend within a single GPLv3ed GCC executable.  Maintaining an llvm-gnat fork outside of FSF and outside of LLVM.org might be completely unavoidable if GiggleVM LSPing of GIGIc is not embraced lovingly.  I can imagine that AdaFE's GIGIc interface is low-churn historically, likely modified once per blue moon when an ISO standard Ada feature begets a change in the backend of GCC that was not already needed by C++ or any of the other languages.  Having a relatively-historically-stable AdaFE-to-GIGIc interface that is low churn and thus low drama might be advantageous to long-term maintenance of an llvm-gnat fork of GCC.  Lowering the drama might be worth keeping the Ada-to-GiggleVM interface exactly the same via LSP as today's Ada-to-GIGIc interface, even if it is in C.)


  reply	other threads:[~2018-05-18  0:56 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-09 15:30 disruptors of & inventory of Ada compilers and latest their era of ISO8652 compliance Dan'l Miller
2018-05-09 16:41 ` Lucretia
2018-05-09 17:26   ` Dan'l Miller
2018-05-09 17:34     ` Lucretia
2018-05-09 18:29       ` Dan'l Miller
2018-05-17 14:41       ` Dan'l Miller
2018-05-17 15:56         ` Luke A. Guest
2018-05-17 16:49           ` Dan'l Miller
2018-05-17 17:19             ` Luke A. Guest
2018-05-17 18:43               ` Dan'l Miller
2018-05-17 20:09               ` Dan'l Miller
2018-05-17 20:23               ` Dan'l Miller
2018-05-18  0:56                 ` Dan'l Miller [this message]
2018-05-18 10:47                   ` Lucretia
2018-05-18 11:33                     ` Dan'l Miller
2018-05-18 11:48                       ` Lucretia
2018-05-19  1:48                         ` Dan'l Miller
2018-05-19 13:04                           ` Brian Drummond
2018-05-19 15:04                             ` Dan'l Miller
2018-05-20 13:00                               ` Brian Drummond
2018-05-20 14:12                                 ` Simon Wright
2018-05-21 11:43                                   ` Brian Drummond
2018-05-20 17:24                                 ` Lucretia
2018-05-19 16:01                             ` Simon Wright
2018-05-20  3:02                             ` Shark8
2018-05-19  3:14                         ` Dan'l Miller
2018-05-17 18:42           ` Niklas Holsti
2018-05-18 14:06             ` R R
2018-05-18 14:33               ` Dan'l Miller
2018-05-09 17:36 ` Simon Clubley
2018-05-09 18:25 ` Dan'l Miller
2018-05-09 19:19 ` Niklas Holsti
2018-05-09 21:38 ` Randy Brukardt
2018-05-10  8:00   ` Micronian Coder
2018-05-10  8:49   ` Janus Ada 12 (was Re: disruptors of ...) Jeffrey R. Carter
2018-05-10 20:24     ` Paul Rubin
2018-06-26 20:36   ` disruptors of & inventory of Ada compilers and latest their era of ISO8652 compliance invalid
2018-06-29 22:18     ` Randy Brukardt
2018-07-01  8:44       ` invalid
2018-07-03 22:07         ` Randy Brukardt
2018-07-08 15:46           ` invalid
2018-05-10  7:49 ` Micronian Coder
2018-05-14 13:10 ` Jacob Sparre Andersen
2018-05-14 22:56   ` Randy Brukardt
2018-05-15 15:29   ` Dan'l Miller
2018-05-18 13:02     ` Simon Wright
2018-05-14 18:52 ` gautier_niouzes
2018-05-14 19:37   ` Dmitry A. Kazakov
2018-05-16 19:37     ` gautier_niouzes
replies disabled

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