14 comments

[ 2.2 ms ] story [ 24.3 ms ] thread
"Thanks to Lattner’s online resume and other sources, we know that LLVM is “deeply integrated” with Xcode, and that it was used to build the latest versions of Mac OS X and iOS."

Ugh. Linkbait headline and "brilliant" reporting--the "other sources" must be the entire front page of a Google search for "Xcode LLVM".

It seems like an incredible stretch to claim that it's the last thread holding Apple and Google together. I do not believe that there is a single Google or Apple engineer that would not want to reuse a tool or a library between the two companies.

Thanks, that's exactly what I just wanted to write.
The author doesn't seem to understand that this is just a compiler. From him, it sounds like LLVM is the magic sauce in smartphone software on the planet.
I actually know very little about the LLVM, so the article had me almost confused for a second until I confirmed that the LLVM is just a compiler as I thought.

Ignoring the issues with his analysis of google and apple being brought together by the LLVM, which has its own issues, this is a really horrible article.

And the android NDK uses the gcc.

LLVM is truly a wonder of modern software. By making the development of new programming languages easier, it's accelerating the development of new tools and techniques.
I really don't understand this point of view. LLVM is really cool, but its not revolutionary. It, like most (all?) other modern compilers uses an IR. GCC - the obvious comparison - has gone through at least two over the years. The original 1987 release had one. Promoting IR as an interop layer isn't new either (1992: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.1...). The JVM+CLR were both around by the time LLVM came to be too; CLR was supposed to be multi-language from the start. Modern GCC's IR layers were around not much later.

At the time apple bet on LLVM, it wasn't nearly as polished as it is now: they didn't pick it because it was great, but because of the liberal licensing (just like khtml, for that matter).

That's not to denigrate LLVM - clean, modern code that's easy to use is wonderful - but that doesn't make it a wonder. If I had to guess, I bet it's like 99% of other projects: lots of work, copying good ideas liberally from several sources, and solving the right problem at the right time.

The major difference with GCC's and other IRs is that LLVM and clang made it easy to use and embed the APIs in other software (due to the license as well as exporting a library). This made it much more convenient to make compilers, as well as code inspection and analysis tools (and even graphics drivers).

Sure, everything was possible before, but much harder for the average programmer interested in this stuff. With just Python and LLVM-python you can do very interesting things, quickly, without delving into GCC sources.

It may be possible that GCC cached up in that aspect, but back in the day I heard from language researchers, the GCC low and high level IR were a hell to introspect and required delving into the GCC source at a deep level.

The difficulty of accessing GCC's IR is partially deliberate - Stallman didn't want any convenient way for non-free software to take advantage of GCCs internals.
It would seriously surprise me if Stallman had much of anything to do with the current GCC IR, which is from 2003. But maybe I'm mistaken.

Do you have any reference for this intentional obfuscation in any version? It'd be disappointing even if it were the case in earlier versions, but conceivable, I guess...

WebKit regularly pulls changes from Blink and I'm sure the reverse is true too.

The One Last Thread Holding Wired Together Is Linkbait Headlines.

Regardless of the link-bait headline, I submitted this article because I thought it gave a satisfactory high-level overview of LLVM.
Ridiculous. Of course it's not holding the two companies together - they both use it, but it doesn't determine any kind of strategic direction common to the two.
LOL, exactly. Just like SQLite "holding" iOS and Android together, even though both mobile OSs use SQLite as the data store of choice!
The last thread holding them together is that Google is still primarily a services company and Apple a consumer electronics company. The extent of their divergence is a direct result of how far along they are at stepping on the other's toes (Android, Maps, Siri).