Apple also has an entire website dedicated to the various pieces of source code for their OS, and other tools, and are actively developing clang/llvm (they hired the creator) which is under a BSD license ... WebKit is also a thriving open source implementation of a rendering engine for a browser and is actively used by various different projects.
Your comment brings absolutely nothing to this discussion other than unsubstantiated claims and misinformation.
a) out of date or unrealized (for which they are entitled to do with BSD code, but when it comes to GPL I file complaints)
b) redacted and uncompilable (they purposely remove source code for specific targets that is still listed in the build environment, or hold back critical header files for dependent libraries)
c) limited in scope (they release WebCore, because it is LGPL, but they actually /don't/ release a lot of WebKit)
Also, it is quite clear to everyone involved that the reason that they are actively developing Clang/LLVM is so that they can avoid gcc 4.3+, when it went GPLv3. It was hard enough for them before: gcc was the one place they have been unable to redact and hoard their ARM contributions, but with GPLv3 the situation becomes untenable for them.
So, since then, Apple's Xcode compiler has rapidly slipped out of date, and now they are forced to take over development of a BSD project just to stay competitive.
Frankly, this is actually a /win/ for the GPL: despite Apple's claims, Clang/LLVM is still very very far behind GCC in terms of correctness and compliance (certainly with recent specifications, like C++0x), which has made Apple's less-free choices result in an increasingly "dispreferred" deployment target for many projects.
How come GPLv3 (as opposed to GPLv2) is not in Apple's liking?
http://gcc.gnu.org/ml/gcc/2008-02/msg00516.html
For more details from other people who were discussing this issue, you can read a later thread that attempted to go into further detail, although I will not claim it will be elucidating:
(c) Actually, you can get the WebKit code and build it, and you'll have a WebKit browser to run. I've done it. Don't know what you are talking about. Did you expect the whole code for Safari? They sure give enough Webkit source for Google, Nokia, the GTK people et al to build a full featured browser upon...
2) "Also, it is quite clear to everyone involved that the reason that they are actively developing Clang/LLVM is so that they can avoid gcc 4.3+, when it went GPLv3."
Actually, it is not at all "clear". They started using it way back in 2005. Actually they wanted a better, faster, more flexible and dynamic compiler infrastructure, and LLVM provided that. And they use it for other stuff too, from graphics code to MacRuby.
3) "since then, Apple's Xcode compiler has rapidly slipped out of date, and now they are forced to take over development of a BSD project just to stay competitive".
Actually Apple had made huge improvements to XCode's compiler in XCode 3, even adding several new features to the core Objective-C language, and also made a HUGE improvement to the overall IDE and compiler (new static analyzer, new debugger, AST-based syntax assistance and code completion etc) with XCode 4 (currently in public beta 5).
4) despite Apple's claims, Clang/LLVM is still very very far behind GCC in terms of correctness and compliance
Bzzz, wrong.
5) (certainly with recent specifications, like C++0x)
Which are not even standard yet, and noone cares about while actually SHIPPING code.
Whatever man...
If you want an example, as you obviously don't believe me, RIGHT NOW Apple is not in compliance with the GPL as they have not released the source code to WebCore, which is licensed under LGPL, /as shipped/ for iOS 4.1 or 4.2. They have no requirement to release WebKit (which they simply /don't/ for mobile), but they /have/ to release WebCore.
Seriously: why did /anyone/ upvote this comment? The poster was either needlessly inflammatory without any new contributions ("Bzzz, wrong"), reliant upon straw men (I never claimed to want the code to Safari or any other project that is not explicitly open source), unrelated to the conversation (lumping unrelated features into the "compiler"), or downright off-topic (discussing anything other than Apple's open source website). Please educate me here.
1) c: Unfortunately, this is not generally true: Apple keeps an internal fork of WebKit that has numerous abilities not in their public trees, which happens to be why Android and WebOS both have totally incompatible mechanisms for adding multi-touch support to JavaScript despite iOS having been out with that functionality for years prior.
To be quite explicit, I dare you to find and recompile WebKit for iOS. Mobile is where all the action is these days, and Apple knows that: deal with it.
2) All but one of the previous gcc contributors from Apple are no longer allowed to read the gcc-patches mailing list, and they are also not allowed to work with any code from gcc 4.3+: Apple is now permanently locked at gcc 4.2 and cannot even backport changes from gcc 4.2.2 (as this was re-marked as GPLv3 when it was released). This is a serious /serious/ problem for Apple, as they /need/ a compiler.
3) I don't understand in the slightest why improvements to the debugger, an external analyzer, or better syntax completion in the IDE, have anything at all to do with the core compiler.
4) I'm sorry, but this has been my impression as a toolchain integrator and distribution vendor. LLVM, which only even supports two platforms (although having seriously broken semi-support for ARM) is often stated to be "catching up" in correctness to gcc, but is not there yet. The opinion that LLVM is somehow epic is something you only hear from incredibly pro-Apple developers. I mean, even Apple's port of gcc explicitly chooses incorrect results occasionally for performance (an interesting specific case being ___divdc3).
5) It is in "final final final draft". Meanwhile, even for C++, Clang doesn't totally work yet. Until just a couple months ago, Clang's website claimed the following:
> However, the implementation of Clang C++ is still somewhat immature, with remaining bugs that may cause compiler crashes, erroneous errors and warnings, or miscompiled code.
AFAIK, this situation has not changed since then, and my attempts to use it recently have, in fact, been met with the compiler crashing out instead of generating any code at all.
4) I'm sorry, but this has been my impression as a toolchain integrator and distribution vendor. LLVM, which only even supports two platforms (although having seriously broken semi-support for ARM) is often stated to be "catching up" in correctness to gcc, but is not there yet. The opinion that LLVM is somehow epic is something you only hear from incredibly pro-Apple developers. I mean, even Apple's port of gcc explicitly chooses incorrect results occasionally for performance (an interesting specific case being ___divdc3).
In order to keep their user-base on Actionscript/Flash, Adobe was banking on LLVM to get Flash to work on iOS devices before they were legally restricted from doing so. With the lifting of the ban, Adobe can now deploy Flash-based code on iOS devices[1]. LLVM is also used in many other commercial software project, so your argument doesn't hold.[1] http://www.adobe.com/devnet/logged_in/abansod_iphone.html
(Interestingly enough, the compiler in question that generated incorrect code so often that I had a catalog ruleset of "things not to do" was llvm-gcc, when I was first deploying Cydia and Telesphoreo to the jailbroken iPhone community. However, that was a while ago, and LLVM doesn't have those shockingly bad issues anymore.)
(It was just a few weeks ago, though, when chpwn started trying to get Cydia compiling with LLVM and kept getting "internal compiler error" on what seemed like some reasonably simple C++.)
See here for a nice chart where you can see those jumps in commits: http://techcrunch.com/2010/02/06/google-apple-webkit/
Curiously, I don't remember them being "forced" to use KHTML as their starting point...
Apple contributes back lots.
We're very happy that the BSD license has allowed Apple to use our code.
How is it stealing if it's open source, and the end result is the best desktop OS ever created? Sheesh
And Apple's work on open source Clang/LLVM and WebKit has been quite significant has it not?
As pointed out in other replies, Apple is working on clang because it doesn't want to deal with the GPL (unless you own Apple stock, you're the one losing because of this decision), and WebKit because it's derived from LGPL code.
How much work is Apple putting into making Darwin a usable Free Software OS? Versus how much work have Red Hat, Canonical, Novell, IBM etc. have put into making Linux available in a number of different, free distributions? The reason all has to do with GPL and copyleft. There is very little incentive for companies to invest in BSD code, and no disincentive for them to steal it. If Linux wasn't GPLed, it wouldn't be where it is today.
There's nothing wrong with what Apple is doing. However, if you think that somehow Apple releasing some of their code under the BSD justifies restricting their end-users to their locked-in App Store and their fight against the GPL, there is something morally off with your thinking.
Claiming that this makes the BSD a better choice than the GPL shows that you don't understand that Apple doesn't care about you and your open source; they'll take whatever is convenient. You're the one losing out, and you're justifying it to yourself as a good thing.
It's less confusing/misleading than free-as-in-beer vs free-as-in-speech vs free-as-in-dammit-you-cant-do-that-tivo.
> Apple is working on clang because it doesn't want to deal with the GPL (unless you own Apple stock, you're the one losing because of this decision)
Have you seen the sh##t g++ provides for error messages? clang++ is a massive improvement.
> There is very little incentive for companies to invest in BSD code, and no disincentive for them to steal it.
Which is of course why http://www.postgresql.org/community/contributors/ only includes people working out of their mothers' basements, why http://www.sqlite.org/index.html doesn't show any corporate sponsors, and why BSD died years ago...
> If Linux wasn't GPLed, it wouldn't be where it is today.
Yeah, I think the original license had something about "no commercial use" in it.
> think that somehow Apple releasing some of their code under the BSD justifies restricting their end-users to their locked-in App Store
I don't see how there's any relation between those?
> shows that you don't understand that Apple doesn't care about you and your open source; they'll take whatever is convenient
"Caring" is an emotion, which organizations don't seem to have.
Companies like Google are releasing all sorts of code under BSD on the off chance it gets used, or maybe even improved, or maybe even becomes some sort of de facto standard. Releasing the code under GPL would mostly disincentivize these behaviors.
There's also no reason why you can't dual-license a product, or license different parts of the same codebase under different licenses (for example, I release the unit test files in my Free Software projects into the public domain).
I know it's a strawman argument, but if you feel superior to Apple, how come you didn't come up with the iPhone innovation? Saying Apple doesn't care about me when they obsess about designing amazing products that blow away anything that existed before is a little big disingenuous.
As a funny sidenote, one could say that if you choose GPL you need to consult your legal-department. But if you choose BSD you don't even need a legal-department.
Directly benefiting FreeBSD: http://wiki.freebsd.org/BuildingFreeBSDWithClang
They've contributed infinitely more than "nothing" back. Literally...
- Webkit = LGPL = No Choice
- LLVM because gcc is a no go (GPL)
Now, here some downvotes too, because i insulted your oh so holy Apple company, boohoo..http://lists.freebsd.org/pipermail/freebsd-chat/2004-July/00...
http://www.trollaxor.com/2004/02/thank-apple-for-freebsd.htm...
As mentioned in the first link by Paul Robinson,
"If FreeBSD wanted more than attribution, perhaps the choice of BSD license was a bad idea. :-)"