3 ms·
> LLVM is just a proprietary-able version of GCC. It isn't just that. It's also a compiler framework, somewhat usable as a library without being part of its co
by JoshTriplett 6y ago
> LLVM is just a proprietary-able version of GCC.
It isn't just that. It's also a compiler framework, somewhat usable as a library without being part of its codebase. And I really do mean somewhat usable; the LLVM experience for use as a library is not great, but it's wildly better than GCC's. I think that, not just the license, is a big part of what made LLVM successful.
- pjmlp 6y agoGCC has plenty of frontends to choose from. The license was the biggest deal.
- JoshTriplett 6y agoAll of those frontends live inside the GCC source tree. Which requires copyright assignment to contribute to. And for a long time, it was difficult to "casually contribute" to GCC; you had to work towards "commit access", and it wasn't anyone's job to review other people's patches, so often it just didn't happen. And there are various other barriers to contribution as well. LLVM's license was certainly a factor, and I'd never suggest otherwise, but there were many other reasons that GCC couldn't help kick off a wave of language design and experimentation the way LLVM did.
- pjmlp 6y agoNo they do not. GNU Pascal, Modula-2, Modula-3, BASIC and plenty of OEM derived ones were never part of GCC source tree. I had to study GIMPLE and GCC integration as part of my compiler design studies back in the 90's, using those nice Walnut Creek CD-ROMs.
- JoshTriplett 6y agoSure, you could also fork all of GCC as part of your frontend. That's still a massive undertaking compared to a framework that's designed to be used as a library.
- qalmakka 6y agoDeveloping a GCC frontend is a massive PITA, and the worst of all it was made purposefully so complicated because of RMS' concerns about closed compilers. He actually brought LLVM's existence onto himself, because it was somewhat clear no one would have bothered writing a new compiler if it had been possible to use it's frontend for other things (even from free software it's hard) and they kept the license as "GPLv2 or later" instead of pushing for v3 that arguably makes 0 sense with GCC (it's not like it's going to be put in a closed box any time soon). Sometimes in life it's better to be a bit heterodox, but have influence and leverage, than being alone on your high castle. GCC can be as open as it gets, but pushing people away in the name of freedom has actually only given reasons to the industry to move away from it, which is sad and could be avoided.
- pjmlp 6y agoSure, now you get to enjoy all those PS4 optimizations, and watchOS bitcode portability fixes in LLVM.
- qalmakka 6y agoThe point is, these things would have happened no matter what. RMS simply overplayed its leverage, and the magic that kept GCC at the centre of everything for decades broke. If he could just stop being a zealot for a split second and actually tried to understand the situation, he could have maybe been able to foresee that Apple had the people, resources and will to reimplement a whole compiler infrastructure that could threaten GCC's dominance, but he neglected it (it famously didn't care about Apple's offer to merge LLVM into GCC under the GPL). Sometimes even the best of intents are shadowed by people's inability to compromise.
- pjmlp 6y agoThat magic was UNIX vendors started to charge for their compilers, and as we have seen by the BSDs have taken the world of UNIX clones. Sometimes the hate for a license prevents people to grasp what is ahead of them.
- 6y ago