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 13:09:24 -0700 (PDT)
Date: 2018-05-17T13:09:24-07:00	[thread overview]
Message-ID: <0ea52b5b-a03a-4b05-87f6-85cd30eb1666@googlegroups.com> (raw)
In-Reply-To: <1193667974.548270050.319144.laguest-archeia.com@nntp.aioe.org>

On Thursday, May 17, 2018 at 12:19:22 PM UTC-5, Luke A. Guest wrote:
> Dan'l Miller wrote:
> > Wait, GNAT has its own full-fledged IR 
> 
> Of course it does, every compiler builds up an AST IR prior to lowering to
> another IR. GNAT doesn’t use a symbol table, everything is in the tree.

https://www2.adacore.com/gap-static/GNAT_Book/html/node5.htm#fig:frontal-gnat

GIGI is apparently the name of GNAT's tree transducer, where at least one of the GIs stands for “GENERIC instantiation” as indicated by the following commit comment.  (Perhaps GIGI stands for GENERIC instantiation GIMPLE instantiation?)
https://github.com/gcc-mirror/gcc/commit/404455fef970eea7f65545ed7ed87501ef925718

According to Figure 1 in the following reference, GIGI feeds fragments of the semantically-adorned tree to either GENERIC or GIMPLE.

It seems that there are 4 variants of bolting the entirety of LLVM into GNAT:
1) make the entirety of LLVM conform to be yet another ISA in GCC fed by low-GIMPLE
or
2) make the entirety of LLVM conform via Liskov substitution principle (LSP) to obey the interface of low-GIMPLE fed by high-GIMPLE; this might preserve some information that LLVM would prefer to be thrown away as a form of semantic blindness
or
3) make the entirety of LLvM conform via Liskov substitution principle (LSP) to obey the interface of high-GIMPLE fed by GIGI; this might preserve all information that LLVM would prefer to not be thrown away as a form of semantic blindness
or
4) rewrite nearly all of GIGI* as GigiEmittingLlvm (or contorting a few letters: GiggleVM for short) to transduce the fully-semantically adorned AST to LLVM IR instead of to any of GCC's IRs; this one is clearly the best if today's GIGI is as dumb as a rock regarding further adornments of _ARM_-defined Adaness semantics to the supposedly already-fully-semantically-adorned AST.  If GIGI is doing absolutely more than nose-to-the-notAda-grindstone focusing entirely on GCC internals and not devising tidbits of Ada semantics afresh**, then GIGI is our thing to gut, substituting GiggleVM via LSP, to achieve a GPLv3ed GNAT-LLVM hybrid compiler.

* but only GIGI as modified, leaving the entirety of the rest of GNAT front-end and GCC back-end 100% undisturbed*** (as opposed to DragonEgg that apparently seems to have had the word metastasize on its mind throughout its design phase).

** This GIGI-is-as-dumb-as-a-rock-regarding-devising-even-more-Ada-semantics seems quite likely given the elaborateness of the grinding that precedes GIGI.

** except for the mere presence of LLVM's entire codebase in the GCC repository and GiggleVM calling into this LLVM-subsumed codebase in a single GPLv3ed GCC executable


  parent reply	other threads:[~2018-05-17 20:09 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 [this message]
2018-05-17 20:23               ` Dan'l Miller
2018-05-18  0:56                 ` Dan'l Miller
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