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=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED.IIfIc3CB/+nKo+wKq8+a0g.user.gioia.aioe.org!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: Re: Ada on Apple's new procesors Date: Wed, 01 Jul 2020 12:47:38 +0100 Organization: Aioe.org NNTP Server Message-ID: References: <4d9fa282-830d-42f7-a3bf-ba127cb2ad06o@googlegroups.com> <8332f305-299f-45d7-9f9d-2cad924b24d8o@googlegroups.com> <9d941aca-2eb6-4f35-a346-c290c4666bdfo@googlegroups.com> <76def2a5-667c-4009-b3b9-f0cf1c13a51bo@googlegroups.com> <3b5b2360-684c-4149-8662-98b53319cf94o@googlegroups.com> NNTP-Posting-Host: IIfIc3CB/+nKo+wKq8+a0g.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain X-Complaints-To: abuse@aioe.org User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (darwin) X-Notice: Filtered by postfilter v. 0.9.2 Cancel-Lock: sha1:bd8rPsJUUySVPHjwxeJsCA7Vflk= Xref: reader01.eternal-september.org comp.lang.ada:59292 List-Id: "Luke A. Guest" writes: > On 30/06/2020 22:57, Simon Wright wrote: >> The RTS released to customers is 99.99% the same, but it >> hasn't had the runtime exception removed. Likewise the FSF GCC RTS. So > > Nope. The FSF GCC has the LE in the COPYING.RUNTIME file. I don't understand your point.The preamble in COPYING.RUNTIME says This GCC Runtime Library Exception ("Exception") is an additional permission under section 7 of the GNU General Public License, version 3 ("GPLv3"). It applies to a given file (the "Runtime Library") that bears a notice placed by the copyright holder of the file stating that the file is governed by GPLv3 along with this Exception. When you use GCC to compile a program, GCC may combine portions of certain GCC header files and runtime libraries with the compiled program. The purpose of this Exception is to allow compilation of non-GPL (including proprietary) programs to use, in this way, the header files and runtime libraries covered by this Exception. If GNAT CE was inadvertently released with COPYING.RUNTIME there would be no effect because none of the RTS files "bears a notice placed by the copyright holder of the file stating that the file is governed by GPLv3 along with this Exception". >> The only reason that the GPL and the runtime exception are involved >> at all is because the RTS is released under those terms. If I write >> my own (clean-room) runtime under say the MIT license then the fact >> that a developer uses the GCC compiler (or GNAT-LLVM) has no effect >> on how they propagate the product; and since the GPL and the runtime >> exception aren't involved in the first place, using LLVM IR can't >> make any difference. > > Again, you're missing the whole point of this thread, it's the IR not > the runtime, that's the issue. If you want to use the FSF Ada RTS, you run up against this in the LE: "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. One would expect you'll have a difficult time persuading anyone that something called "LLVM Intermediate Representation" isn't an intermediate representation. [1] says "The LLVM code representation is designed to be used in three different forms: as an in-memory compiler IR, as an on-disk bitcode representation (suitable for fast loading by a Just-In-Time compiler), and as a human readable assembly language representation", which to me precisely matches "data in any format that is used as a compiler intermediate representation, or used for producing a compiler intermediate representation". [1] https://llvm.org/docs/LangRef.html#introduction