From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 2002:ad4:448e:: with SMTP id m14mr1344213qvt.191.1592960575512; Tue, 23 Jun 2020 18:02:55 -0700 (PDT) X-Received: by 2002:a9d:64d7:: with SMTP id n23mr5211923otl.240.1592960575264; Tue, 23 Jun 2020 18:02:55 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!news.gegeweb.eu!gegeweb.org!usenet-fr.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Tue, 23 Jun 2020 18:02:54 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: google-groups.googlegroups.com; posting-host=47.185.233.35; posting-account=zwxLlwoAAAChLBU7oraRzNDnqQYkYbpo NNTP-Posting-Host: 47.185.233.35 References: <4d9fa282-830d-42f7-a3bf-ba127cb2ad06o@googlegroups.com> <8332f305-299f-45d7-9f9d-2cad924b24d8o@googlegroups.com> <9d941aca-2eb6-4f35-a346-c290c4666bdfo@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <14ffa125-e27d-4d34-8c12-27afb2ea0b13o@googlegroups.com> Subject: Re: Ada on Apple's new procesors From: Optikos Injection-Date: Wed, 24 Jun 2020 01:02:55 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Xref: reader01.eternal-september.org comp.lang.ada:59192 List-Id: On Tuesday, June 23, 2020 at 6:08:01 PM UTC-5, Luke A. Guest wrote: > On 23/06/2020 21:25, Optikos wrote: >=20 > > Wait, do the FSF GNAT repositories themselves now contain the mods for = LLVM instead of obtaining GNAT-LLVM mods from https://github.com/AdaCore/gn= at-llvm, which is pure-GPLv3 licensed. >=20 > There was no change required. GNAT has always had an interface to the > GCC compiler via a glue layer which fits the interface exposed by GNAT. > GNAT-LLVM just implements the same interface. Read the README in the > GNAT-LLVM repo, it tells you to download the FSF GNAT. >=20 > > https://github.com/AdaCore/gnat-llvm/blob/master/COPYING3 > >=20 > > If mixing FSF GNAT with any 1 or more non-data/non-script (i.e., compil= ed; linked) source file(s) in https://github.com/AdaCore/gnat-llvm, then RL= E evaporates because that 1 or more source file lacks the RLE; hence FSF GN= AT-LLVM would become pure GPLv3. > >=20 >=20 > The compiler links to GNAT-LLVM, the runtime doesn't. To cause RLE to elide itself, the Ada runtime does not need to link with th= e =E2=80=A2compiler; it needs the runtime to be linked to the user's =E2=80= =A2executable=E2=80=A2. In my opinion, the RLE requires a greater than 100= IQ and requires that higher intellect to have generous patience to discern= topics that are subtle. The RLE grants its exception only under certain s= trict terms; otherwise the RLE is written to self-destruct/implode legally,= reverting the user's executable to pure GPL. One of those strict terms is= Eligible Compilation Process. To clearly be an (RLE-)Eligible Compilation= Process, the Compilation Process must not write out (any?) intermediate re= presentation. But that is the scot-free way of achieving Eligible Compilat= ion Process; there might be messier ways. GNAT-LLVM seemingly depends on t= hose messier ways. The =E2=80=9Cany?=E2=80=9D there is what is an unsettled matter legally. S= ee below. the Narrow legal theory: When the RLE discusses IR, does it mean semantically-rich IR that represent= s an Ada (or C or C++) AST, and Java bytecode, LLVM textual IR, and LLVM bi= tcode IR doesn't count as IR? the Wide legal theory: Or when the RLE discusses IR, does it mean what the plain-meaning seems to = say: any IR of any technology of any form counts as IR from the point of v= iew of RLE's permission-grant? This becomes germane regarding the LLVM optimizer, which takes either LLVM = textual IR or LLVM bitcode (which is a binary representation of LLVM textua= l IR) as input and output, perhaps chained zero or more times. (Zero here = would be eliding the entire concept of optimization.) https://www.llvm.org/docs/CommandGuide/opt.html https://polly.llvm.org Under the Narrow legal theory above, the user of GNAT-LLVM can optimize to= their heart's content (even with hostile-to-GPL optimizer plug-ins, see be= low) because LLVM IR isn't the kind of IR that RLE is so concerned about, s= o no harm no foul. But under the Wide legal theory above, it becomes especially germane if GNA= T-LLVM produces LLVM textual IR or LLVM bitcode that is fed into an optimiz= er plug-in that is (or could be) hostile-to-GPL, such as an optimizer plug-= in that has a closed-source license or violates any of the other terms of G= PLv3 (e.g., patents). Under the Wide legal theory above, perhaps the legal= ly-safest usage of GNAT-LLVM for the user to have GPL-noncompliant license = on the executable is to entirely elide optimization by coaxing the LLVM too= lchain to proceed from compilation to linking without optimization. Using GPL-compatible open-source-licensed optimizer stages on LLVM textual = IR or LLVM bitcode under the Wide legal theory above is a grey area because= they seem to not meet the Eligible Compilation Process (due to inter-stage= visibility of the IR, so: bad) but each stage is GPL-compatible & open-sou= rce (so: good to go?). It is left as an exercise to the reader (and their = legal counsel) who is interested in this grey area to determine if LLVM opt= and poly and any other frequently-utilized LLVM IR manipulator plug-in is = GPL-compatible or not (and whether the Narrow or Wide legal theory is opera= tional in the user's jurisdiction). The rub: There is a risk that the mere nominal identicality of the term IR utilized = in LLVM would be construed (by confusion) as the term IR in the RLE by a ju= dge or jury if this were ever litigated. IR is IR, or so someone relying o= n identicality of name or acronym might say=E2=80=94leading to the wide leg= al theory above coming into play. In some audiences, IR from LLVM's perspe= ctive perhaps =E2=80=A2not=E2=80=A2 being IR from RLE's perspective might r= equire more IQ points than that audience has or is willing to invest in the= matter, resembling such playful mental effort as the now-famous =E2=80=9Ci= t depends on what the definition of =E2=80=98is=E2=80=99 is=E2=80=9D. The = Narrow legal theory requires that patience to meticulously think through in= stead of dismissing the whole mental effort as: IR=3DIR, or IR here is IR t= here and everywhere. The lazy person/judge/jury will tend to default to th= e Wide legal theory, just because IR here has the name techno-term as IR th= ere. > Pretty sure that the AdaCore people said it won't fall under GPL. Only an officer of the company or legal counsel would be able to normativel= y make that promise of estoppel. A mere employee would be only opining the= ir personal opinion.