comp.lang.ada
 help / color / mirror / Atom feed
From: "Dan'l Miller" <optikos@verizon.net>
Subject: Re: Is this Forum Moderated?
Date: Sun, 20 May 2018 09:18:15 -0700 (PDT)
Date: 2018-05-20T09:18:15-07:00	[thread overview]
Message-ID: <76f63959-e26a-407e-a029-b13fd12540d3@googlegroups.com> (raw)
In-Reply-To: <lylgce9ymm.fsf@pushface.org>

On Sunday, May 20, 2018 at 9:42:59 AM UTC-5, Simon Wright wrote:
> patrick writes:
> 
> > Would it also make sense to copy over the FSF version and start some
> > community development of it? There seems to be a fair amount of
> > grumbling about Adacore these days.
> 
> One could just fork https://github.com/gcc-mirror/gcc/ (usually only a
> few minutes behind the main SVN repo).
> 
> Best of luck with that.

It could be accomplished quite easily quite mechanically with low drama:

If the fork were done with a single laser-precise reason (e.g., to write an LLVM alternative to GIGI), then a very clean interface could be the very precise dotted line to cut along for a Leskov-Substitution-Principle drop-in of something new into GNAT (e.g., an LLVM alternative to GIGI).  Over along the threads of “disruptors of & inventory of Ada compilers and latest their era of ISO8652 compliance”, I proposed the name GigiEmittingLLVM as the name of the project.  (Because GigiEmittingLLVM has so many syllables, I squinted at it and said it 10 times fast to come up with a clipped-form nickname:  GiggleVM.  For people who don't enjoy injecting a little humor into their lives, I suppose it could be an initialism for GIGI Emits LLVM IR [GELI], pronounced jelly.)

If the fork of GCC GitHub were utilized for an LLVM alternative to GIGI (and thus to the entire backend of GNAT), this technique would not need to be terribly messy (as long as DragonEgg's metastasizing-design mistakes were all avoided).  All of GCC (and thus GNAT) could be merged in en masse.  All of LLVM could be merged in en masse.  If this fork didn't even fix GCC bugs and didn't even fix LLVM bugs, then the merge conflicts could be near zero for both GCC rebasing and LLVM rebasing.  If the LSP interface were the iterator/cursor that walks the fully-semantically-adorned GNAT IR tree (leaving all of GIGI itself untouched), then the only churn that would cause battle-royale merge conflicts would be changes to this iterator/cursor interface itself.  (New semantic adornments to the GNAT IR tree do not fall into this category; they are just more new-development new-feature-set new-bug-fix work on the GNAT-IR-to-LLVM-IR-GiggleVM/GELI's to-do list.)

There is a fair chance that LLVM already has all the primitives needed to express every conceivable Ada construct and semantics.   (GNAT didn't have to extend GCC's C IR very much over all these years; there have been 10 tree types added to GCC's C IR for Ada topics, and even 6 of those have varying degrees of ‘it never actually shows up in the tree downstream from GIGI’.)

The modus operandi for DragonEgg was apparently ‘metastasize like cancer’.  The modus operandi for GELI (or GiggleVM or whatever it would be called) would be precision laser-cut at the iterator/cursor that walks GNAT's fully-semantically-adorned Ada IR tree.  That way, GELI wouldn't need much “good luck with that”.


  parent reply	other threads:[~2018-05-20 16:18 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-20 11:46 Is this Forum Moderated? patrick
2018-05-20 12:07 ` Jere
2018-05-20 13:24 ` Dan'l Miller
2018-05-20 14:35   ` Dennis Lee Bieber
2018-05-20 13:57 ` Shark8
2018-05-20 14:26 ` Dennis Lee Bieber
2018-05-20 14:42 ` Simon Wright
2018-05-20 15:18   ` patrick
2018-05-20 15:53     ` patrick
2018-05-20 23:52       ` Shark8
2018-05-20 16:18   ` Dan'l Miller [this message]
2018-05-21 11:40     ` Brian Drummond
2018-05-21 15:06       ` Dan'l Miller
     [not found] ` <e3cac5bb-5e1e-47de-8401-219287dff804@googlegroups.com>
     [not found]   ` <pdruhr$70h$1@dont-email.me>
2018-05-20 17:34     ` Lucretia
replies disabled

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