Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.


Swift's LLVM fork is open-source, just not upstreamed. No Free Software license requires forks to upstream their changes.

https://github.com/swiftlang/llvm-project


Referring to their fork as "private" seems quite misleading then.


Yet you're complaining that they are using the licence exactly as they feel like.


Parent was not complaining. Parent was asking what the rationale is behind maintaining a separate LLVM fork instead of upstreaming and reducing the maintenance burden on Apple engineers.


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.


> Today there are a few non-trivial differences from LLVM, but we are actively working on either upstreaming or reverting those differences

https://github.com/swiftlang/llvm-project


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.


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


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: