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:a6b:bec1:: with SMTP id o184-v6mr743019iof.8.1527090398536; Wed, 23 May 2018 08:46:38 -0700 (PDT) X-Received: by 2002:a9d:4795:: with SMTP id b21-v6mr428889otf.10.1527090398377; Wed, 23 May 2018 08:46:38 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!feeder3.usenet.farm!feed.usenet.farm!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!u74-v6no1014169itb.0!news-out.google.com!f20-v6ni792itd.0!nntp.google.com!u74-v6no1014167itb.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Wed, 23 May 2018 08:46:38 -0700 (PDT) In-Reply-To: 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: <5c2523c1-9ea5-453c-b80e-9cb0dcd16de0@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: DragonEgg has been revived From: "Dan'l Miller" Injection-Date: Wed, 23 May 2018 15:46:38 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Xref: reader02.eternal-september.org comp.lang.ada:52621 Date: 2018-05-23T08:46:38-07:00 List-Id: [fixed typos] On Wednesday, May 23, 2018 at 2:26:49 AM UTC-5, Simon Wright wrote:=20 > Simon Clubley writes:=20 >=20 > > What I would like to see is an Ada compiler that can generate code for= =20 > > a wide range of targets without any GPL restrictions on the generated= =20 > > code.=20 >=20 > Pretty sure that's called GCC.=20 Pretty sure that you haven't read the Object Code clauses in GPLv3 and the = Target Code clauses and Eligible Compilation Process clauses in the Runtime= Exception v3.1. GPL restrictions galore on the generated code there in Ta= rget Code & Eligible Compilation Process (in Runtime Exception v3.1) intera= cting with Object Code, where Object Code is =E2=80=A2everything=E2=80=A2 n= ot Source Code (in GPLv3). IR would therefore be Object Code due to being = not Target Code and not Source Code. Just because IR-based technologies haven't historically been utilized widel= y yet in the enterprise (and thus receive the attention of Sarbanes-Oxley i= nternal-controls compliance in the finance department and contract complian= ce in the legal department), doesn't mean that technologies in the ballpark= of McSema (resurrect IR from hardware-processor machine code) and GraalVM = (mix LLVM IR with JVM bytecode to produce hardware-processor machine-code v= ia Polyglot) will not be utilized by the enterprise tomorrow.=20 > People=20 historically (There, fixed that for you; tomorrow's IR-IR-everywhere-for-w= orld-plus-dog is a new era.)=20 > are perfectly happy to use GCC for C-based commercial projects in=20 > spite of the fact that libgcc, and GNU libstdc++, if you're that way=20 > inclined, have *exactly* the same runtime exception as FSF GNAT's RTS=20 > and the GNAT Pro RTS.=20 >=20 > The formal position is that the GCC compiler itself doesn't assert any=20 > licensing restrictions over target code generated by it beyond that=20 > derived from the original source code.=20 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 res= trictions on Target Code and on Eligible Compilation Process (via Runtime E= xception v3.1) by merely passing, say, MIT/X11-licensed or BSD-licensed sou= rce code through the modern GCC compiler to generate the Target Code for th= at MIT/X11-licensed or BSD-licensed executable or DLL. Simon, you are =E2= =80=A2factually incorrect=E2=80=A2 nowadays (post-GPLv2) in your claim =E2= =80=9Cthat the GCC compiler itself doesn't assert any licensing restriction= s over target code generated by it beyond that derived from the original so= urce code=E2=80=9D, because the =E2=80=A2=E2=80=A2GPLv3 license of the mode= rn GCC compiler itself=E2=80=A2=E2=80=A2 spreads (dare I say, virally) to t= he otherwise MIT/X11-licensed or BSD-licensed Target Code=20 1) if that Target-Code hardware-processor's machine-code is lifted by, say,= McSema back to LLVM bitcode IR=20 or=20 2) if somehow a GCC-written IR derived from that MIT/X11-licensed or BSD-li= censed source code and then fed into, say, LLVM and/or Polly and/or GraalVM= stand-alone* executable(s) which then itself produces the hardware-process= or machine-code=20 or=20 * i.e., as they are packaged today as executables that are invoked downstre= am (long) after modern GCC's executable finished executing=20 3) #1 & #2 above are just the first 2 examples of emerging technology in th= e IR domain and in the rework-the-machine-code domain.=20 3.1) For example, imagine an anti-malware add-on (that, for the sake of dis= cussion here, violates the Target Code or Eligible Compilation Process clau= ses of a modern-GCC-written executable or DLL) to operating systems that re= works the machine-code at link-load time to eliminate:=20 3.1.1) buffer-overrun injection of worms; and/or=20 3.1.2) removes viruses/etc-malware that have attached themselves to the exe= cutable or DLL and/or=20 3.1.3) randomizes the layout of the machine code each link-loader-time so t= hat malware cannot easily recognize that executable or DLL.=20 4) Indeed, viruses that modify a modern-GCC-written Target Code to insert t= he virus into machine code could quite easily violate either the Target Cod= e clause of GPLv3 or the Eligible Compilation Process clause of the Runtime= Exception or both (unless the virus fully complied with the entirety of GP= Lv3, including providing its source code to those people to whom the virus = was distributed/infected).=20 Please note that each of #1, #2, #3.1, and #4 are all performed by a party = other than the original developer of the MIT/X11-licensed source code. Not= e especially that each of #1, #3.1, and #4 can clearly all be performed by = a party other than the person who invoked the GCC compiler to write out tha= t executable or DLL file. (Only #2 seems to need an overt extra act at the= time of GCC-compilation.)=20 On the surface (conceivably shockingly preposterously), merely running a cl= osed-source permissive-licensed modern-GCC-compiled executable or DLL throu= gh, say, McSema can allow the downstream 3rd-party person who lifted the GC= C-compiled machine code to that LLVM bitcode IR to then demand the source c= ode (!) to that otherwise closed-source (!) permissively-licensed executabl= e o DLL, because not only is the IR GPLv3-licensed, but, more bizarrely mor= e importantly, the GCC-compiled hardware-processor machine-code executable = or DLL is retroactively (!) GPLv3-licensed (!) under the Target Code and/or= Eligible Compilation Process clauses' overt retroactive revocation of righ= ts on the machine code that was generated by modern GCC. This seems prepos= terous, but merely mechanically turning the crank of the Target Code & Elig= ible Compilation Process language in GPLv3 & its Runtime Exception seems to= quite directly say this (at least to me under my plain-language reading of= the terms of the license contract, as I am permitted to do for myself unde= r Texas contract law).=20 disclaimer:=20 [I am not a lawyer who has passed the bar in any jurisdiction whatsoever. = Do not rely on any of this for any purpose. Seek the counsel of an attorne= y duly certified for the system of law within the jurisdiction(s) in which = you reside or operate.]=20 Pretty sure all this above are examples of where Shark8 would use the term = =E2=80=9Call the morass of licensing surrounding=E2=80=9D GPLv3-with-Runtim= e-Exception-v3.1-licensed modern GCC.=20 > I can see that people, especially commercial lawyers, might be confused= =20 > about this, especially if they read=20 the Target Code clauses or Eligible Compilation Process clauses of the Runt= ime Exception v3.1 (There, fixed that for you; that is what they need to re= ad.)=20 > all the hot air that's been blasting over this newsgroup lately.=20 Yeah right. Encouraging people to actually read the Target Code and Eligib= le Compilation Process clauses of the Runtime Exception v3.1 and revealing = why it is important that they do so is dismissed as =E2=80=9Chot air =E2=80= =A6 blasting=E2=80=9D.