3 ms·
Well, the blob is only added to the compiler portion of your code. Ex. In this article, only the Python script is under the GPL because of libgccjit. The .bf sc
by DSMan195276 12y ago
Well, the blob is only added to the compiler portion of your code. Ex. In this article, only the Python script is under the GPL because of libgccjit. The .bf scripts shouldn't/don't have a requirement to be under the GPL.
- the_mitsuhiko 12y agoIs that true? So you can use the JIT compiler in a non GPL project?
- ploxiln 12y agoYou've always been able to use gcc to compile non-gpl code into an executable, and distribute it. You've always been able to distribute a distro that includes gcc and also includes gpl-incompatible programs (like flash player, or apache-licensed programs). What has to be GPL is the application that you combine the gcc code with, either when you link in the new libgccjit, or in your python code that imports the python module that links to libgccjit, or if you modify/extend the code for gcc itself (or other GPL codebases).
- nitrogen 12y agoCan a GPL-licensed interpreter run non-GPL scripts? It seems like one should be able to build a GPL JIT+interpreter as a single application, then run whatever scripts they want on top of it.
- drewcrawford 12y agoThe GPL applies to "derivative works", which is a legal term without a precise technical definition. If you decide to write an interpreter for an existing language, and run existing programs on it, then those existing programs "probably" do not have to be under the GPL, for definitions of "probably" that Legal will not be happy about. If you write an interpreter for a made-up language and then write programs in that language as part of a thinly-veiled scheme to do an end-run around the GPL, then that "probably" violates the GPL. There is currently no bright-line rule separating those cases; this is something IP lawyers argue about themselves and reach wildly different conclusions.
- ploxiln 12y agoThe answer is yes. The interpreter is GPL, the programs it runs need not be. GCC and related projects usually have license clauses to explicitly confirm this, for example https://www.gnu.org/licenses/gcc-exception-faq.html https://www.gnu.org/licenses/gcc-exception-faq.html
- rogerbinns 12y agoImagine you had a large application, and wanted to add this library to it. To comply with the GPL, your application would have to be under a GPL compatible license. Such applications are a smaller subset of all applications hence the question. The LGPL does allow for the library portion to be GPL while the rest of the app doesn't have to be, but that isn't the license used in this case. Typically the LGPL favours more widespread adoption, while the GPL favours freedom at the cost of some adoption. LLVM also has a JIT and a far more permissive license, making it more attractive to those not using a GPL compatible license.
- desdiv 12y ago>LLVM also has a JIT and a far more permissive license, making it more attractive to those not using a GPL compatible license. Not to mention LLVM's JIT is far more mature. If you're reading this on Safari then LLVM is JITing for you right now: https://trac.webkit.org/wiki/FTLJIT https://trac.webkit.org/wiki/FTLJIT