7 ms·
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?
by peppermint_gum 2y 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?
- pjmlp 2y agoBecause 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.
- peppermint_gum 2y agoSwift'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 https://github.com/swiftlang/llvm-project
- pjmlp 2y agoYet you're complaining that they are using the licence exactly as they feel like.
- nequo 2y agoParent 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.
- Zambyte 2y agoReferring to their fork as "private" seems quite misleading then.
- okr 2y agoI 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.
- ezfe 2y agoI’ve just read the swift build guide and there’s no sign of a closed-source version of LLVM. What are you talking about?
- ChocolateGod 2y agoDoesn't Xcode ship with a closed-source build of LLVM (with patches) that you're referring to.
- masklinn 2y agoBecause 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.
- GeekyBear 2y ago> 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 https://github.com/swiftlang/llvm-project