← Back to context

Comment by peppermint_gum

2 years ago

One thing I don't understand about Swift is why it uses a private fork of LLVM. Why can't they upstream whatever changes they need?

Because the same also applies to clang, and contrary to what people think, Apple like every other big tech, is only as nice to FOSS as they need to be for their own purposes.

Same applies to all C and C++ compiler vendors, that have replaced their proprietary compilers (there are plenty more than just clang/gcc/msvc), with LLVM.

Such is the freedom of Apache/MIT/BSD style licenses.

  • I would not say its about niceness, its more about necessities. If ya don't own something, the walls are high to have anything changed, naturally. Because it might not be aligned with what the owner has had in it's mind. And you want to move quickly. So you fork and apply your changes. But i also think, in the long run, it hurts, bcs at some point, you forks are too diverged. But so is life.

Because Apple does not direct the LLVM project, and they have their own corporate designs and plans. I'm sure they upstream what changes they think will be accepted, but there's no guarantee upstream would accept what they want or need let alone on the timeline they need it.

I’ve just read the swift build guide and there’s no sign of a closed-source version of LLVM. What are you talking about?

  • peppermint_gum didn't mention a closed-source version of LLVM either. "Private" just means "their own" here.

    • > "Private" just means "their own" here.

      "Fork" is actually the word that means "their own". The "private" does indeed mean "proprietary" in this context.