From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 2002:a24:7597:: with SMTP id y145-v6mr2120043itc.30.1526588630331; Thu, 17 May 2018 13:23:50 -0700 (PDT) X-Received: by 2002:a9d:5c8d:: with SMTP id a13-v6mr818oti.0.1526588630053; Thu, 17 May 2018 13:23:50 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!feeder.erje.net!1.eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed9.news.xs4all.nl!85.12.16.68.MISMATCH!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!v8-v6no1005092itc.0!news-out.google.com!b185-v6ni1174itb.0!nntp.google.com!u74-v6no987110itb.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Thu, 17 May 2018 13:23:49 -0700 (PDT) In-Reply-To: <1193667974.548270050.319144.laguest-archeia.com@nntp.aioe.org> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=47.185.233.194; posting-account=zwxLlwoAAAChLBU7oraRzNDnqQYkYbpo NNTP-Posting-Host: 47.185.233.194 References: <9169bb0d-626f-4f6d-82c9-8a9b7543a084@googlegroups.com> <92b78739-e2c5-4e45-bbd8-f80ec4918691@googlegroups.com> <6dc39990-16eb-4717-8b8a-1d41c2767530@googlegroups.com> <1103700103.548265160.819002.laguest-archeia.com@nntp.aioe.org> <4a2e4dc5-aec6-4e59-91cd-9476abdbac7c@googlegroups.com> <1193667974.548270050.319144.laguest-archeia.com@nntp.aioe.org> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <2f4dd5ae-a481-4eb4-93ff-2c1cc3cb10bb@googlegroups.com> Subject: Re: disruptors of & inventory of Ada compilers and latest their era of ISO8652 compliance From: "Dan'l Miller" Injection-Date: Thu, 17 May 2018 20:23:50 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Received-Bytes: 4674 X-Received-Body-CRC: 4263781711 Xref: reader02.eternal-september.org comp.lang.ada:52406 Date: 2018-05-17T13:23:49-07:00 List-Id: On Thursday, May 17, 2018 at 12:19:22 PM UTC-5, Luke A. Guest wrote:=20 > Dan'l Miller wrote:=20 > > Wait, GNAT has its own full-fledged IR=20 >=20 > Of course it does, every compiler builds up an AST IR prior to lowering t= o=20 > another IR. GNAT doesn=E2=80=99t use a symbol table, everything is in the= tree.=20 GIGI is apparently the name of GNAT's tree transducer, where at least one o= f the GIs stands for =E2=80=9CGENERIC instantiation=E2=80=9D as indicated b= y the following commit comment. (Perhaps GIGI stands for GENERIC instantia= tion GIMPLE instantiation?)=20 https://github.com/gcc-mirror/gcc/commit/404455fef970eea7f65545ed7ed87501ef= 925718=20 According to Figure 1 in the following reference, GIGI feeds fragments of t= he semantically-adorned tree to either GENERIC or GIMPLE.=20 https://www2.adacore.com/gap-static/GNAT_Book/html/node5.htm#fig:frontal-gn= at=20 It seems that there are 4 variants of bolting the entirety of LLVM into GNA= T:=20 1) make the entirety of LLVM conform to be yet another ISA in GCC fed by lo= w-GIMPLE=20 or=20 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 preser= ve some information that LLVM would prefer to be thrown away as a form of s= emantic blindness=20 or=20 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 sema= ntic blindness=20 or=20 4) rewrite nearly all of GIGI* as GigiEmittingLlvm (or contorting a few let= ters: GiggleVM for short) to transduce the fully-semantically adorned AST t= o LLVM IR instead of to any of GCC's IRs; this one is clearly the best if t= oday's GIGI is as dumb as a rock regarding further adornments of _ARM_-defi= ned Adaness semantics to the supposedly already-fully-semantically-adorned = AST. If GIGI is doing absolutely more than nose-to-the-notAda-grindstone f= ocusing 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.=20 * 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 app= arently seems to have had the word metastasize on its mind throughout its d= esign phase).=20 ** This GIGI-is-as-dumb-as-a-rock-regarding-devising-even-more-Ada-semantic= s seems quite likely given the elaborateness of the grinding that precedes = GIGI.=20 *** except for the mere presence of LLVM's entire codebase in the GCC repos= itory and GiggleVM calling into this LLVM-subsumed codebase in a single GPL= v3ed GCC executable=20