comp.lang.ada
 help / color / mirror / Atom feed
From: "Dan'l Miller" <optikos@verizon.net>
Subject: Re: DragonEgg has been revived
Date: Tue, 22 May 2018 14:04:23 -0700 (PDT)
Date: 2018-05-22T14:04:23-07:00	[thread overview]
Message-ID: <f79077f8-1e89-408a-bb09-de63c463b8d1@googlegroups.com> (raw)
In-Reply-To: <57d6ccf6-23da-445c-89d6-b18143913018@googlegroups.com>

On Tuesday, May 22, 2018 at 3:17:11 PM UTC-5, Dan'l Miller wrote:
> On Tuesday, May 22, 2018 at 2:40:24 PM UTC-5, Shark8 wrote:
> > On Tuesday, May 22, 2018 at 6:29:10 AM UTC-6, Simon Clubley wrote:
> > > 
> > > What I would like to see is an Ada compiler that can generate code
> > > for a wide range of targets without any GPL restrictions on the
> > > generated code.
> > 
> > I'm getting ready to restart work on Byron. I figure that perhaps an Implementation Manual/Design Document would help explain the design underneath it and welcome new contributors. 
> > 
> > > 
> > > I'm not really bothered how that happens but LLVM seems like an
> > > interesting option.
> > 
> > I have mixed feelings on LLVM -- it would be nice to grab all the targets for it, but I also think it's a stupid
> > idea to build the compiler specifically for it.
> 
> Writing a compiler “specifically for” LLVM?  I thought that the whole premise of Byron was to write an Ada compiler for multiple back-ends:
> 1) libFirm:  https://pp.ipd.kit.edu/firm
> 2) LLVM
> 3) GCC
> 4) Graal for JVM:  http://www.graalvm.org
> 5) CLR for .NET & Mono
> and so forth.
> 
> Compared to Byron's laudable long-term clean-room-design goals, my GELI proposal* for an LLVM-backended GNAT is an interim stop-gap, focusing only on likely-not-clean-room generation of LLVM bitcode IR within a single GPLv3 GNAT executable, causing only ISAs' machine-code (not the IR) to be generated by LLVM-embedded-within-GNAT.
> 
> * described in a prior reply above
> 
> > Yeah; that's one of the big problems Byron [Ada 2012 in Ada 2012] is intended to address; the other big
> > one is to escape the stupid morass of licensing issues.
> 
> What is so bad about GPLv3 with Runtime Exception …
> 
> 1) … unless a person really really wants to re-work GCC-emitted machine code as lifted to LLVM bitcode IR via, say, McSema as not-GPLv3ed derivative works, needing disclosure of all source code?**
> or
> 
> 2) … unless a person really really wants to write LLVM bitcode IR out to a file to execute it on Sulong/GraalVM as not-GPLv3ed derivative works, needing disclosure of all source code?**
> or
> 
> 3) Can anyone think of any other precise downsides of GPLv3 •with• Runtime Exception?

I just thought of another one:

3) … unless a person really really wants to write LLVM bitcode IR out to a file to have Polly grind on it with all sorts of advanced optimizations.

Polly and GraalVM of course beget doing to them what was described above for LLVM:

H) Import the entirety of Polly within the GCC repository for compilation (along with the entirety of LLVM) into a single GNAT executable, so that LLVM bitcode IR is never emitted as a file by GNAT just to utilize Polly's polyhedral optimizations with GELI->LLVM.

H.a) Add all the command-line options for Polly to GNAT.

I) Import the entirety of GraalVM within the GCC repository for compilation into a single GNAT executable, so that LLVM bitcode IR is never emitted as a file by GNAT just to utilize GELI->LLVM->GraalVM's Sulong & Polyglot.

I.a) Add all the command-line options for GraalVM to GNAT.


  reply	other threads:[~2018-05-22 21:04 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-21 21:37 DragonEgg has been revived Simon Clubley
2018-05-21 22:20 ` Dan'l Miller
2018-05-21 22:26 ` Luke A. Guest
2018-05-22 12:12   ` Simon Clubley
2018-05-22  1:02 ` Dan'l Miller
2018-05-22 12:29   ` Simon Clubley
2018-05-22 12:41     ` Luke A. Guest
2018-05-22 15:25       ` Dan'l Miller
2018-05-22 19:40     ` Shark8
2018-05-22 20:17       ` Dan'l Miller
2018-05-22 21:04         ` Dan'l Miller [this message]
2018-05-22 22:33         ` Shark8
2018-05-23  1:58           ` Dan'l Miller
2018-05-23  7:26     ` Simon Wright
2018-05-23  8:11       ` Luke A. Guest
2018-05-23 14:10       ` Dan'l Miller
2018-05-23 15:46       ` Dan'l Miller
2018-05-23 15:51       ` Dan'l Miller
2018-05-23 19:27         ` Chris M Moore
2018-05-23 20:30           ` Dan'l Miller
2018-05-23 22:18             ` Chris M Moore
2018-05-24  0:12               ` Dan'l Miller
2018-05-24  8:00                 ` Simon Wright
2018-05-24  7:19         ` Simon Wright
2018-05-24 15:38           ` Dan'l Miller
2018-05-24 16:44             ` Dan'l Miller
2018-05-24 18:07               ` Lucretia
2018-05-25  0:09                 ` Dan'l Miller
2018-05-24 17:19             ` Simon Wright
2018-05-24 19:26               ` Dan'l Miller
2018-05-24 21:59                 ` Chris M Moore
2018-05-24 22:15                   ` Dan'l Miller
2018-05-24 22:22                     ` Dan'l Miller
2018-05-25  0:19                   ` Luke A. Guest
2018-05-25 13:16                     ` Simon Clubley
2018-05-25 13:29                       ` Lucretia
2018-05-25 17:08                         ` Simon Wright
2018-05-25 18:09                           ` Dan'l Miller
2018-05-25 16:25                     ` Jeffrey R. Carter
2018-05-25 17:01                       ` Dan'l Miller
2018-05-25  1:54                   ` Dan'l Miller
2018-05-25  2:56                     ` Luke A. Guest
2018-05-25  3:38                       ` Dan'l Miller
2018-05-25 11:12                         ` Brian Drummond
2018-05-24 20:50               ` Dan'l Miller
2018-05-24 20:56               ` Dan'l Miller
2018-05-24 21:00                 ` Dan'l Miller
2018-05-24 20:23             ` G. B.
2018-05-25  7:16             ` Chris M Moore
2018-05-25  8:09               ` Simon Wright
2018-05-25  8:28             ` Simon Wright
2018-05-25 20:02               ` Dan'l Miller
replies disabled

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