Hacker News new | past | comments | ask | show | jobs | submit login

But if you made that argument you'd have to make it with facts. :) The plain truth is that clang is free software, and (c.f. linked article) is very much a "first class citizen" in existing free software environments.

Apple's variant is not free software, and that sucks. So it seems reasonable to argue that it would have been "better" had LLVM been copyleft. But that only extends as far as the facts on the ground, so arguing that we're seeing the "end of free compilers" seems silly to me.




> But if you made that argument you'd have to make it with facts.

We don't have enough facts yet to make the determination - clang is fairly young still - but for now we do have precedences and motives. Precedences you can look up and motives - well Apple dumped GCC because they wanted to be able to do things without legally being required to publish source. So it isn't entirely without reason to wonder if clang will face a second class future due to its license.


There are many, many reasons people might want to avoid the GPL that have nothing to do with wanting to get out of a legal obligation to publish source. The FLOSS world is filled with innumerable high-profile, very successful projects that avoided the GPL for reasons that had nothing to do with wanting to keep some things proprietary.

Sometimes people just want to share software without making a political statement that they may not agree with, or imposing a legal and/or social burden on others (or assuming one for themselves).

The adversarial, black-and-white, with-us-or-against-us accusations that some GPL advocates are known for are actually a big reason why many people don't like the GPL, and associate it with carrying a lot of baggage in addition to the actual legalese that defines the license.


"well Apple dumped GCC because they wanted to be able to do things without legally being required to publish source."

Apple dumped GCC because they wanted control over their own destiny. They could not get GCC to go in the direction they wanted, and it was just a much larger amount of engineering effort to accomplish their goal.

Apple gave not a crap about publishing source to their GCC changes. In fact, they wished they could get more changes into GCC.

The licensing stuff is tangential. Yes, it's their stated reason, but it's a cover story. Do you really think lawyers run Apple?


Hm... I don't quite buy that as the whole story. The gcc stuff may all be true (I certainly don't have any knowledge otherwise), but I don't see where it generalizes to clang/LLVM.

Apple certainly isn't wishing they could "get more changes into" LLVM, they're deliberately witholding the extensive changes they have. The iOS 64 bit toolchain is an almost completely closed-source thing, despite being derived from a free software base. If Apple "gave not a crap" about releasing source, they had an obvious path to do so. That they haven't (and that they've invited PR messes like this argument) implies to me that they don't want to release it.


" The iOS 64 bit toolchain is an almost completely closed-source thing, despite being derived from a free software base."

It would have been this way with GCC too. They had already written their own linker, etc. Apple didn't give a crap about releasing GCC patches, because it was not for an architecture they controlled.

Much like embedded gcc developers often do, for architectures they control, they are probably just delaying the release until it no longer provides what they perceive to be a competitive advantage.

They would have done this with GCC too (and did in the past!)


> The licensing stuff is tangential. Yes, it's their stated reason, but it's a cover story.

So it's a pure coincidence they stopped updating gcc in OSX right when it moved to GPLv3? And the reason they stopped updating bash, Emacs, etc., and dumped Samba, is also because those projects didn't move in the direction they wanted?


I can only speak to GCC because I actually know what happened there, and actually talked to the people making the decision.

You talk about the rest as if it actually mattered to their developers. They stopped updating X11 and java too.

Have you considered that they stopped to look and just stopped updating the stuff that didn't matter to them anymore?


For years developers begged Apple to update gcc, and they did not do it. Mind you, that was at a time when Clang was not nearly where it is today. They dumped Samba and replaced it with a new development of their own that was vastly inferior. They still ship an ancient bash 3.2.51, although developers wanted a new version for years. They even backported the shellshock patch for that. I draw my conclusions from those facts, not from some hearsay. I can't believe you actually think that the GPLv3 is a "cover story". A cover for what? That they think they can do it better? Why would they need a cover story for that? Why would they even care?


They stopped updating GCC precisely when they decided, and announced, they were moving to llvm/clang.

Past that, you literally ignored the main point: They stopped updating plenty of opensource stuff, you've just picked out the GPLv3 stuff and said "it's all because of this"


> They stopped updating GCC precisely when they decided, and announced, they were moving to llvm/clang.

Not true. They switched to clang with OS X 10.7. That was 2011. At that time, their gcc fork, based on 4.2 and carefully avoiding any GPLv3 code, was already ancient and loaded with problems. Past that, you literally ignored the main point: why would they need a "cover story" in the first place?


Your timeline is way off.

llvm-gcc was introduced with Xcode 3.1, and clang/llvm in xcode 3.2. It targeted 10.5. This was well prior to 2011 , and seeded well before it was released. Again, you don't have to believe me, Chris's resume shows this:

http://nondot.org/sabre/Resume.html#Apple

"In this time period, my group expanded use of LLVM within Apple, supported new clients, built new features, and extended LLVM in many ways. We shipped llvm-gcc 4.2 in the Xcode 3.1 and major improvements for it in the Xcode 3.1.1 release."

That time period was in 2006-2008.

Apple made a decision that it was going to move if it could meet certain performance goals in the 2006/2007 time frame.

GPLv3 was not released until June of 2007.

In any case, this argument is pointless, you can just ask Chris why they moved.


> Apple gave not a crap about publishing source to their GCC changes. In fact, they wished they could get more changes into GCC.

So now that they are using LLVM hopefully they will grow out of their wishing and actually push out the sources for iOS clang toolchain some time soonish? Yeah I don't buy that.


Which changes in particular are you referring to?

(Given they care mainly about swift, Apple certainly doesn't care about keeping clang changes secret)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: