3 ms·
Minor correction on the first difference between LLVM and GCC: LLVM is under a permissive license, not a weak copyleft one. You seem to have misunderstood the
by zvr 6y ago
Minor correction on the first difference between LLVM and GCC: LLVM is under a permissive license, not a weak copyleft one.
You seem to have misunderstood the goals of RMS, GCC, and the GNU project. It was never about creating "the best" compiler (if there can ever be a "best" of everything). The goal was and is to create the "best" Free Software compiler.
It's great that the currently openly released version of LLVM is of great quality. However, exactly because this project does not have "RMS's political constraints" (as you write), there is no guarantee that this will continue to be so.
- geofft 6y agoOops, thanks for the correction. I'm not claiming the goal is to produce the best compiler. In fact, I do believe it's a danger that LLVM is not copyleft, because there's no guarantee of people contributing back improvements. But I'm worried that because of GCC's design choices, people won't contribute improvements to it either, the way Apple stopped contributing to GCC. And I'm concerned that the free software philosophy has no explanation for why Apple is contributing to LLVM despite LLVM making all the "wrong" choices. I do still believe in the philosophy, but it is making me wonder if I should, because we have 30+ years of data that seemingly don't line up with its predictions. LLVM is still free software, despite not being copyleft, and if at all one can define the "best" free software compiler, there's a serious argument that LLVM is already there. And it works: it's already being used to compile the Linux kernel on a bunch of Android phones, and http://clang.debian.net http://clang.debian.net can compile 96% of the dostro. It's entirely possible that a major GNU distribution will switch to LLVM in the next few years, because there's no reason not to (it's still free software) and some advantages from it. Copyleft is a means to an end - gaining contributions and preserving user freedom - not an end in and of itself. The GNU Operating System would be of no value if it did not work, for instance, which is why the project set out to build a coherent system instead of just a bunch of interesting code. I agree with you that, in principle, the lack of copyleft on LLVM means we have no guarantee that it will remain a world-class compiler into the future. But GCC has the copyleft, and it has the non-modular architecture, and we also have no guarantee, empirically, that it will remain a world-class compiler. Its lead is slipping. There are already plenty of things LLVM can do that GCC can't. New languages are being built on top of LLVM, not GCC. The pressure that existed on NeXT to build an Objective-C compiler on top of GCC and release it is gone - and Mozilla built a Rust compiler on top of LLVM and released it without that pressure. So what is the copyleft actually accomplishing? And if it is accomplishing something important, does GCC have a plan to overtake LLVM and become the compiler of choice for new projects?