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 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!news.gegeweb.eu!gegeweb.org!news.redatomik.org!newsfeed.xs4all.nl!newsfeed9.news.xs4all.nl!85.12.16.70.MISMATCH!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!fx01.am4.POSTED!not-for-mail Subject: Re: DragonEgg has been revived Newsgroups: comp.lang.ada References: <5c2523c1-9ea5-453c-b80e-9cb0dcd16de0@googlegroups.com> <293cf892-1320-49e6-a25f-a36ea098cd34@googlegroups.com> <59458046-3144-464e-af80-631b80a65930@googlegroups.com> From: Chris M Moore User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: <59458046-3144-464e-af80-631b80a65930@googlegroups.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 8bit Message-ID: X-Complaints-To: http://netreport.virginmedia.com NNTP-Posting-Date: Wed, 23 May 2018 22:18:18 UTC Organization: virginmedia.com Date: Wed, 23 May 2018 23:18:18 +0100 X-Received-Bytes: 5276 X-Received-Body-CRC: 1157721532 Xref: reader02.eternal-september.org comp.lang.ada:52628 Date: 2018-05-23T23:18:18+01:00 List-Id: On 23/05/2018 21:30, Dan'l Miller wrote: > On Wednesday, May 23, 2018 at 2:27:30 PM UTC-5, Chris M Moore wrote: >> On 23/05/2018 16:51, Dan'l Miller wrote: >> >> >> >>> You are so GPLv2; that is the way it was under GPLv2 back in the old days. Newsflash: nearly a decade ago, they relicensed modern releases of FSF GCC as GPLv3 with Runtime Exception v3.1 which does in fact have licensing restrictions on Target Code and on Eligible Compilation Process (via Runtime Exception v3.1) by merely passing, say, MIT/X11-licensed or BSD-licensed source code through the modern GCC compiler to generate the Target Code for that MIT/X11-licensed or BSD-licensed executable or DLL. Simon, you are •factually incorrect• nowadays (post-GPLv2) in your claim “that the GCC compiler itself doesn't assert any licensing restrictions over target code generated by it beyond that derived from the original source code”, because the ••GPLv3 license of the modern GCC compiler itself•• spreads (dare I say, virally) to the otherwise MIT/X11-licensed or BSD-licensed Target Code >> >> Nope. The Eligible Compilation Process covers the compilation process >> itself, not the end product. This was introduced to stop non-GPLed >> plugins to gcc. See https://lwn.net/Articles/301959/ > > Independent of why historically it was devised, the wording of Runtime Exception v3.1 is quite clearly applying to cases beyond merely that one historical case: > > “The "Compilation Process" transforms code entirely represented in ••non-intermediate•• languages designed for human-written code, and/or in Java Virtual Machine byte code, into Target Code.” > > Is intermediate representation written out as a file meeting the terms/definition of Target Code in the Runtime Exception? The following quotation answers that question: > > “"Target Code" refers to output from any compiler for a real or virtual target processor architecture, in executable form or suitable for input to an assembler, loader, linker and/or execution phase. Notwithstanding that, Target Code does not include data in any format that is used as a compiler intermediate representation, or used for producing a compiler intermediate representation.” > > The key word there is “notwithstanding”. It means that even if supposedly target code meets any of the definitions in the first sentence, its ability to actually be Target Code is ruined/spoiled by the second sentence. I'm pretty sure that “data in ••any format••” and “compiler intermediate representation” are pretty big clues about LLVM bitcode IR's standing in the terms of this Runtime Exception v3.1. You might like to read the comments in the article I referenced earlier. They specifically mention llvm plugins to gcc. Now if you're wanting to do something else with IRs that isn't supported/allowed, wouldn't that just be abusing Free Software for your own nefarious ends? > Chris, you are fixated on one case in history. The language of the Runtime Exception v3.1 that they authored is much broader than than one historical motivating case. Just read the Runtime Exception v3.1 yourself and you will see that the word plug-in never appears at all. Now imagine that all of LLVM and/or Polly outside of GCC is substantially equivalent to that non-GPLed plugin to GCC, but simply starts executing after a GCC compiler finishes executing by reading some sort of IR file written by GCC. Whether it was an actual plug-in into an orifice within GCC matters not one whit. What matters is whether a file that was not-Source-Code and not-Target-Code was written by GCC to feed into a downstream executable. Apparently llvm is GPL compatible so dragonegg appears to be legal. But what you describe in the para above is what the what the Eligible Compilation Process stuff was designed to prevent. Simon W was saying that FSF gnat/gnat pro can produce non-GPLed software. It seems we can also do it via dragonegg. But dumping the IR to a file is not allowed. I can't see how that's a restriction on the target code generated as you asserted. > > So in fewer words, I nope your nope. > Nope ** 3 -- sig pending (since 1995)