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:a37:7d43:: with SMTP id y64mr3881425qkc.168.1570024755432; Wed, 02 Oct 2019 06:59:15 -0700 (PDT) X-Received: by 2002:a05:6830:1bfc:: with SMTP id k28mr2876796otb.206.1570024755231; Wed, 02 Oct 2019 06:59:15 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!o24no10155304qtl.0!news-out.google.com!q23ni381qtl.1!nntp.google.com!o24no10155295qtl.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Wed, 2 Oct 2019 06:59:14 -0700 (PDT) In-Reply-To: <55a93d93-67a5-4cdb-a7e0-4c8117dc1278@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=47.185.223.245; posting-account=zwxLlwoAAAChLBU7oraRzNDnqQYkYbpo NNTP-Posting-Host: 47.185.223.245 References: <869af4e9-08df-486d-8c87-9040c39a151f@googlegroups.com> <0407f247-46a2-4649-8974-c11d539c399e@googlegroups.com> <55a93d93-67a5-4cdb-a7e0-4c8117dc1278@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <3facd621-48a1-4ffa-8af4-c1893dcebb42@googlegroups.com> Subject: Re: Well, they kept that quiet! From: Optikos Injection-Date: Wed, 02 Oct 2019 13:59:15 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Xref: reader01.eternal-september.org comp.lang.ada:57228 Date: 2019-10-02T06:59:14-07:00 List-Id: On Tuesday, October 1, 2019 at 11:43:23 AM UTC-5, Lucretia wrote: > On Tuesday, 1 October 2019 15:58:41 UTC+1, Optikos wrote: >=20 > > as quoted from the webpage at the 1st URL above: > >=20 > > =E2=80=9CLicense > >=20 > > =E2=80=9CThe GNAT LLVM tool is licensed under the GNU General Public Li= cense version 3 or later; see file > > COPYING3 for details.=E2=80=9D >=20 > That's the source of this LLVM binding, the compiler and runtime come fro= m FSF and are under GPLv3 with linking exception.=20 >=20 > Then there's LLVM which actually generates the final code. The compiler l= inks to the LLVM-C lib to > generate an in memory AST which generates the LLVM IR which is then passe= d onto the LLVM tools, > as/ld. https://www.gnu.org/licenses/gcc-exception-3.1.html There is a narrow path for gnat-llvm to walk gingerly along to preserve the= RLE's Eligible Compilation Process permission grant when an app utilizes a= ny portion of the FSF-sourced standard library, as shown by the embellishme= nt of your sentence there: The gnat-llvm compiler links to the LLVM-C lib to generate an =E2=80=A2in m= emory WITHIN THE SAME PROCESS=E2=80=A2 AST which generates the LLVM IR =E2= =80=A2IN MEMORY WITHIN THE SAME PROCESS=E2=80=A2 which is then passed =E2= =80=A2IN MEMORY WITHIN THE SAME PROCESS=E2=80=A2 onto the LLVM tools as/ld/= polly =E2=80=A2THAT ARE LINKED INTO THE COMPILER AS THE SAME PROCESS AS THE= COMPILER=E2=80=A2. If any of the =E2=80=A2identified=E2=80=A2 portions ar= e absent or flouted somehow, then gnat-llvm would naturally & obviously emi= t intermediate representation (IR) from the compiler to a disparate not-lin= ked-to-the-gnat-llvm-compiler process, causing the federation of compilatio= n processes* to no longer meet RLE's overtly-stated criteria for how to att= ain Eligible Compilation Process** status due to emitting IR as IPC or file= (s) between the federation of compilation processes. When an app is compil= ed by any federation of compilation processes that fails to meet RLE's over= tly-stated criteria for Eligible Compilation Process, then the RLE's permis= sion grant does not occur for that app that utilizes the FSF-sourced standa= rd library, causing that app's generated object code and executable or DLL = to be licensed under strict GPLv3 instead of GPLv3+RLE. * plural! ** singular! For gnat-llvm to always preserve the RLE's Eligible Compilation Process per= mission grant, then all portions of LLVM-world must be linked into 1 proces= s, not IPC among 2 or more processes as is sometimes commonplace with e.g. = polly: http://releases.llvm.org/8.0.0/tools/polly/docs/HowToManuallyUseTheIndividu= alPiecesOfPolly.html Manually executing polly as separate command lines as shown in the URL imme= diately above would clearly cause the federation of sequentially-executed p= rocesses* to no longer meet the RLE's definition of Eligible Compilation pr= ocess**, hence causing the RLE's permission grant to not occur for object c= ode and executable or DLL so generated, causing the generated object code a= nd executable or DLL to be licensed under strict GPLv3 due to linking to th= e FSF-sourced standard library without the RLE's (now null & voided) permis= sion grant. * plural! ** singular! Note however, executing polly =E2=80=A2not manually=E2=80=A2 within the inn= ards of a single compiler-invocation command line might perform a similar e= mission of IR as temporary files and a similar invocation of a sequence of = disparate polly processes (i.e., where polly might*** not be linked entirel= y within 1 compiler executable), which taken together again would cause thi= s sequentially-executed federation of compilation processes* to fail to mee= t RLE's overtly-stated definition of Eligible Compilation Process**, hence = again causing the RLE's permission grant to not occur, hence again causing = the binary object code and executable or DLL so generated to be licensed as= strict GPLv3 without the RLE's (now null & voided) permission grant. * plural! ** singular! *** This needs to be verified by analysis of how polly actually is invoked = =E2=80=A2not manually=E2=80=A2 within a single compiler command line. I us= ed to be this way long ago, as I understand it, but I have re-verified in r= ecent releases of Clang, polly, and now gnat-llvm. > So, I think you could argue that the final code is a combination of GPLv3= with LE (the runtime) and > whatever licence you want (your code). The question isn't whether your =E2=80=A2textual source=E2=80=A2 code has a= ny desired license; the question is whether that =E2=80=A2binary=E2=80=A2 a= pp's usage of the FSF-source standard library has the RLE permission grant = or not. > > The COPYING3 file contains GPLv3 verbatim without any GMGPLv2- or RLE-e= sque permission grants. > >=20 > > The burning question will be: will gnat-llvm ever be released in the f= uture=20 > into FSF GNAT's source tree so that it has FSF's RLE permission grants? = Only AdaCore can answer that > question. >=20 > AdaCore staff on IRC said "you'd be surprised" when I asked about licensi= ng for this ages ago, hinting > that it wouldn't all be covered by GPLv3 (no LE). I have never passed the bar in any legal jurisdiction. This posting is a r= emembrance for me of my own understanding for my own usage and to motivate = the reader to do their own analysis via their own reading of related materi= als. If your activities in life depend on the veracity of any statements h= erein, then you should consult a lawyer in your system of law's jurisdictio= n instead of relying on statements herein.