3 ms·
I don't think Google has poor motives at all. This is the way the wind is blowing. Google is almost certainly right to move to LLVM and you'd be far better situ
by tedks 12y ago
I don't think Google has poor motives at all. This is the way the wind is blowing. Google is almost certainly right to move to LLVM and you'd be far better situated to comment than I am.
Personally, I see something as big as Chrome moving to LLVM as a late-stage indicator of the mass adoption of the platform. I'm young, as you've pointed out, and I've never worked for Google, but I'd bet that this decision wasn't made lightly, and it certainly wasn't made early in the lifetime of clang/LLVM.
The people truly at fault for the things I fear, should they come to pass at all, are not the late adopters like Google, but the innovators who decided to put their energy into LLVM, knowing full well how dangerous it could be.
I don't and didn't mean to imply that Google is going to stop contributing, or that Google never has.
I do think that Google's decisions to contribute upstream are based on business sense, as opposed to morality, and I think that should the day come that it makes business sense for Google to not contribute back, or to release a non-free fork, it'll do that. As others in this subthread have pointed out, Apple has already distributed non-free LLVM modules.
The concern I have is that this is possible with LLVM, and it was not possible with GCC. When Apple wrote a non-free Objective-C frontend for GCC, they liberated it because the Free Software Foundation successfully enforced the GPL. There is no legal mechanism to force corporations to contribute back to LLVM, so they do it of their own goodwill, if they do it at all.
I think this is dangerous because it can lead to a world where there are no good free compilers. The people who wrote LLVM, the people who championed it early on and contributed to it, they could have realized this too, and they did nothing to stop it. I truly hope they acted the way they did because I am egregiously wrong, and that nothing I'm afraid of will ever happen.
To put things in perspective, GCC had one fork in its history already. I think that if it was forked again, redesigned extensively to make it easier to get parse trees and add modules and so on, with the legal requirement that all such modules be free in any distributed compiler, the FSF would eventually, hopefully, accept that as the canonical GCC. It would have been harder to do that than to make LLVM, maybe it would have cost the world a few years of compilers research, but it would have been possible, and it would have made for a more secure outcome.
- DannyBee 12y ago"The people truly at fault for the things I fear, should they come to pass at all, are not the late adopters like Google, but the innovators who decided to put their energy into LLVM, knowing full well how dangerous it could be." You are talking about things that people have been working towards for years. The people you see working on it now have been working on it since almost the beginning of LLVM. Google is the company that put their energy into LLVM, knowing how dangerous it may turn out. But you don't have to take my word for it, check the commit logs. Just because we didn't make a public pronouncement and try to get press for it doesn't mean it didn't happen. "I do think that Google's decisions to contribute upstream are based on business sense, as opposed to morality, " Then i'll just say you don't understand me or the folks that work for me. "The concern I have is that this is possible with LLVM, and it was not possible with GCC." It is in fact, possible with GCC, despite your claims. In fact, all you would have to do is change the C and C++ runtime libraries (which is entirely doable nowadays). That's it. The FSF knows you can interpose stuff legally as well. " with the legal requirement that all such modules be free in any distributed compiler," It is probably not possible to make such a license and have it compatible with various GPL versions, etc. "hopefully, accept that as the canonical GCC." You also seriously misread what would have occurred in this situation. People tried what you are suggesting. RMS said no for many years, right up until the point it was probably too late. Forking again was considered, by all the companies and people involved. But it wasn't worth it to any of them to have to have political fights with the FSF over software development every couple years, when they just want to get shit done.
- tedks 12y ago>Then i'll just say you don't understand me or the folks that work for me. I'm sorry, Google is a publicly traded company. Are you really saying that if there was a clear business reason to release proprietary LLVM modules, Google would damage their stockholders and continue to release them freely? I don't think I understand you. I never made that claim. I do think that corporations exist to make money. I don't think this is unreasonable, and I think it's unreasonable to ask me to take such a leap of faith in the opposite direction of common sense when considering any corporation, even one as benevolent as Google. >It is in fact, possible with GCC, despite your claims. In fact, all you would have to do is change the C and C++ runtime libraries (which is entirely doable nowadays). That's it. The FSF knows you can interpose stuff legally as well. The GCC is released under the GPLv3. There are some libraries inserted into compiled code with a linking exception, but it isn't clear to me how you could release a fork of the GCC under a proprietary license. If you make that claim, you're going to have to explain it in greater detail, because you're essentially claiming that the GPLv3 is totally toothless. My apologies if I've misunderstood you. >Forking again was considered, by all the companies and people involved. But it wasn't worth it to any of them to have to have political fights with the FSF over software development every couple years, when they just want to get shit done. I understand the desire to get shit done, but in some cases, you have to realize that there are dangers associated with charging ahead regardless of potential consequences. There's a reason why nuclear plants are rigorously regulated, even if a lack of regulation would probably cause more shit to be done. And actually, none of this discussion about GCC or the FSF or whatever is even relevant. The authors of LLVM could have just released it under the GPL. They chose not to. So if that decision costs the free world its compiler, they're who I'll blame. Not Google, unless Google was involved with that decision.