Hacker News new | ask | show | jobs
by DannyBee 4572 days ago
This is an interesting rewrite of history. Chris gave a presentation at Apple and told them he could make a better compiler[1], and they hired him to work on LLVM (plus started to grow his team) well before they decided to stop contributing to GCC. There used to be parallel teams, each with about the same number of people. Hell, for a while, the LLVM team had less.

Apple was frustrated they couldn't get what they wanted out of GCC, and were getting patches and designs constantly rejected. This, combined with getting control over their destiny, and having serious needs for a modular compiler frontend for XCode (and their design for a compiler server/etc for GCC got shot down), plus Chris demonstrating good performance results + trajectory, led to them choosing LLVM.

But what do I know - I was there, in both communities, talking to the people who were involved in these decisions.

Realistically, if the SVP/VP in charge of Apple's developer tools had decided GCC was still the way to go, they would be working on GCC, GPLv3 policy or not.

Policies are not an end unto themselves.

All of this is completely orthogonal to the freezing of the GCC version. They could get what they wanted out of it in the pre-GPLv3 versions, given their future plans were LLVM based anyway, so they didn't make an exception for GCC when they banned GPLv3.

Of course, I'm not going to claim that apple didn't do other things more for licensing reasons, which a lot of can be explained by the desire to be able to share code between OS X and IOS in some places (and eventually, in a lot of places), and GPLv3 would have disastrous effects if they messed up. They calculated the eng cost, came up with "we have good alternatives, and can rewrite the rest", and did that, and banned GPLv3. However, they were making exceptions for years for certain pieces of software already. So if you had chosen any other example than LLVM, i'd probably agree with you. LLVM is just not a great example of "commercial pushback against GPL".

Apple's dropping of Samba would be a good example, since that is directly the reason they dropped Samba.

[1] One of my GCC friends walked out of this presentation complaining that he was selling them a bill of goods. Of course, he turned out to be wrong, but ...

1 comments

I don't really think I've rewritten anything. Is anything factually wrong with my post? GCC's version in OSX' dev tools, along with bash and afaik all gnu binaries, was frozen at the last version available with gpl v2. This is plain fact.

The conclusion I've drawn from it is that GPLv3 was a significant driver in the decision to seek out and drive forward a non-GPL compiler project. I didn't say it was the only factor, but I stand by my conclusion that it must have been a significant one.

The rewrite is the part where you continue to claim it was driven at all by licensing

"The conclusion I've drawn from it is that GPLv3 was a significant driver in the decision to seek out and drive forward a non-GPL compiler project. I didn't say it was the only factor, but I stand by my conclusion that it must have been a significant one."

I believe i've completely rebutted this statement with my response. I believe I accurately explained exactly what went into the decision to fund and use LLVM, and "seeking out and driving a non-GPL compiler project" was literally not on the list of things the decision makers (Ted, in this case) cared about.[1] If you have actual historical evidence to the contrary, that contradicts my explanation of what drove the decision to use LLVM, i'd love to hear it. So far what you've put forth is a single data point which I already explained, was, AFAIK, completely unrelated to the decision to use LLVM.

Also, Apple/Chris first suggested merging LLVM and GCC (http://gcc.gnu.org/ml/gcc/2005-11/msg00888.html), which would seem an odd strategy if licensing was the huge driver you claim it was.

Historically, the timeline isn't even close to right for your conclusion to be correct. Apple started seriously investing in LLVM in 2005, and the GCC GPLv3 switch didn't happen until 2009.

So, basically, you are welcome to stand by your conclusion, but it's, well, wrong :)

[1] In fact, Ted literally did not care about the licensing at all. They were considering using ICC as well, but this mostly got dropped after the switch to x86.

The timing is a fair point, though I think you ignore one factor: While gcc didn't switch to gplv3 until 2009, gplv3 was released in draft form in 2006.

So I'll concede that it likely wasn't a direct cause of the move to and support of llvm, clang didn't come along until later -- and after it must have been clear that gcc would eventually be gplv3 licensed.

God knows GCC's codebase is a rats nest that few people really want to work with, but if it hadn't been for gplv3 do you really maintain that apple wouldn't have stuck with it as a frontend for longer? The early releases of clang (and gcc+llvm before it) were problematic for a lot of mac developers at the time, after all.

"but if it hadn't been for gplv3 do you really maintain that apple wouldn't have stuck with it as a frontend for longer? "

Yes. Absolutely. It's been mentioned numerous times at conferences and other in-person meetings.

Apple did not write clang because of GPLv3. They wrote clang because they needed something that was

1. Faster than GCC 2. Offered better diagnostics 3. Could offer code completion and indexing for XCode.