Hacker News new | ask | show | jobs
by tambourine_man 1104 days ago
Yet another one was going with LLVM.

Now that they had a decent running GCC on PowerPC they want to build a compiler infrastructure from scratch?

Apple is full of those decisions. I'm just glad they don't take advices from me.

1 comments

LLVM is because they don’t want GPLv3. They just went ahead with a stack where they can be in control on their own terms.

Basically GNU gambled and lost, they wanted to make a big stand against software patents and some other powerful forces had different opinions.

> LLVM is because they don’t want GPLv3.

LLVM and Clang are also about having a compiler stack that provides the information you need for a modern graphical IDE.

For instance, GCC had made some decisions that made it difficult to point to which line of code caused a particular error message.

Apple's Chris Lattner covered this in a 2007 tech talk he gave at Google introducing LLVM and the (then) new Clang project.

https://youtu.be/VeRaLPupGks?t=1133

> LLVM and Clang are also about having a compiler stack that provides the information you need for a modern graphical IDE.

Is that why all GNU utilities shipped with OSX were also stuck at the GPLv2 versions and never upgraded?

No. That's why LLVM and Clang were developed.
Yes. Apple won’t use GPLv3.

Some things have good replacements with other licenses, like zsh. Others, AFAIK, don’t, like rsync.

GPL v3 is part of it, but as I understand, back when the decision was made GCC was rather inflexible compared to LLVM/Clang which was also a big factor.
I believe LLVM was chosen because it was easier to make new compilers to work with it. GCC's intermediate representation was a bit of a mess for a long time and from what I understand, Apple did not find GCC's Objective-C support to be satisfactory.