top | item 41208965

(no title)

peppermint_gum | 1 year 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?

discuss

order

pjmlp|1 year ago

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.

okr|1 year ago

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.

masklinn|1 year ago

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.

ChocolateGod|1 year ago

Doesn't Xcode ship with a closed-source build of LLVM (with patches) that you're referring to.

ezfe|1 year ago

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?

mkl|1 year ago

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