[quote=PulkoMandy]
Personally, I think the no-compromise decisions of the FSF is not a good thing. IT is for this reason that a lot of projects are using llvm instead of gcc.[/quote]
I’m not so sure, I think the reason that a lot of projects are using LLVM instead of GCC is because of the JIT properties made available by LLVM as well as it being a newer and as such better code base than GCC (although it is being improved continously as well), LLVM was initially written as a new backend for GCC, and has relied on GCC’s fronted for most of it’s development.
As for Apple, yes they switched and started funding LLVM because of GPLv3, as GPLv3 contained patent clauses, and should Apple distribute GPLv3 licenced software they may end up unable to sue for certain software patents, which of course is something they like to do. So they were stuck with GCC 4.21 (last version under GPLv2) and as such had to look for an alternative, hence LLVM, which they later combined with their c language frontend CLANG.
As it stands, LLVM is a more modern compiler toolchain than GCC in design, obviously. GCC still remains better at code generation (as in speed of generated code) and has started to modernize it’s codebase in response to the competition from LLVM/Clang and as such we have two great open source and free compiler toolchains available, both with strong development, which is great.
[quote=PulkoMandy]
While gcc is free software (under the GPL), writing a proprietary plug-in for it is disallowed. What is that free software licence that prevents you from doing whatever you want with the code? Isn’t that just as restrictive as proprietary software?[/quote]
No, you can do whatever you want with the code, however when you are ‘distributing’ the code to others, you have to pass on the same rights to them as those you recieved under the GPL licence.
This is the whole point of GPL and as such of FSF, that you as a recipient of GPL software should have the rights to the source code of said software, so that you can examine, modify, copy and run modifications of said software.
It’s perfectly fine not to think these are end-user rights that are worth protecting (and thus disagree with FSF), but claiming that it’s ‘as restrictive as proprietary software is ridicoulus’, what GPL does through copyright is to give and preserve rights to end users which proprietary typically removes (source code availablitiy, right to copy and distribute etc).
This of course ties in with why FSF would not allow proprietary plugins for GCC, the whole point of GCC was to provide a compiler toolchain under the conditions of GPL, which gave end users the right to examine and modify the code of the compiler and ALL it’s components.
Proprietary plugins fly in the face of that, as it does the exact opposite. Actually this is one of the areas where I fear popularity of LLVM could be detrimental to the point fully of open toolchains, there’s already proprietary plugins for LLVM and they will continue to grow, this in turn most likely means that features that would be included in to the open source LLVM project will instead be pay-for proprietary plugins, or worse only available on certain platforms in their forked versions of LLVM/CLANG (like how Swift is only available on OSX LLVM/Clang forked toolchain, with no word on whether or not it will be made available as open source and included in to the open LLVM / Clang projects.
What made GCC such a huge force in computing and bootstrapped what we today call the open source ecosystem is that it was fully competitive with proprietary offerings (eventually eclipsing most if not all of them in most aspects) which in turn was due to every enhancement being made to GCC actually making it in to the project and available to all, not as proprietary plugins which would have fragmented it’s usefulness.
So if you find LLVM’s plugin system which makes it easy to tap in to and extend LLVM through proprietary plugins a great boon, just keep in mind that there is a downside to it as well.
On the contrary, it’s my impression that if a company intends to contribute code they will be very happy to do so under GPL which means that anyone else using their code will have to return the favour (this is in part why Linux is the largest cooperatively developed piece of software in the world in my opinion), while if they want to make use of open source software then permissively licenced software is of course favoured as it means they can do whatever they want.