4 ms·
Kudos to Apple for doing the right thing. It is within Apple's rights to not release the code at all. Or they could have just dumped what they had, warts and a
by maxharris 13y ago
Kudos to Apple for doing the right thing.
It is within Apple's rights to not release the code at all. Or they could have just dumped what they had, warts and all, leaving the mess for other maintainers to sort out. Or they could have plugged away silently, getting ready for a release without notifying anyone (which would have resulted in unnecessary duplication of effort - think Linux on IBM mainframes). What they've done here is the most respectful and responsible thing possible.
- ajross 13y agoI'm reading this over and over and still not understanding how withholding source code is "the right thing" and worthy of praise. Either it's an open source toolchain or it's not. Apple's iOS compiler isn't. There's no particular shock there -- the platform it targets certainly isn't open either. We don't freak out when MSVC is released without source. But we don't praise Microsoft either. Maybe it will be open source some day. If it is, then is the appropriate time to deliver "kudos" -- certainly not now.
- kps 13y ago> Either it's an open source toolchain or it's not. LLVM is an open source toolchain. Not every project built on LLVM is an open source toolchain. For copyleft ideologues this is a problem. Not everyone is a copyleft ideologue.
- mcphage 13y ago> I'm reading this over and over and still not understanding how withholding source code is "the right thing" and worthy of praise Because the other option is to do a code-dump of their customized code, making it nearly impossible to merge back into the main trunk. They've done that before, and gotten bitched out about it (and rightfully so). Doing it this way shows that their goal is to move the project forward by adding their new contributions, not merely fulfilling their legal obligation to "get it out there", regardless of whether the main project gets any benefit.
- x0x0 13y agoand of course, they have absolutely zero such obligation
- gilgoomesh 13y agoThe "right thing" is merging it back into LLVM instead of hoarding it in their private repository. Apple, like many proprietary companies, don't use the public repository for any working branches, so a meticulous and time-consuming merge back into the trunk (which will have changed on its own in the meantime) is required. Additionally, since large companies like Apple tend to be magnets for lawsuits, everything the company publishes (even in open-source code repositories) may need to be reviewed by lawyers (or at least more senior engineers) to make sure there's no plagiarism, accidental inclusion of privately licensed code or leaking of confidential information.
- ajross 13y agoSure. But the "right thing" hasn't been done yet, so why are we sitting here praising (!) Apple for not having done it yet? This is the kind of stockholm syndrome that drives me crazy in the iOS world. People have internalized that Apple is a "good guy" that supports open source projects and uses an open source compiler, so suddenly when they don't there is this need to rationalize the behavior. Just stop. They shipped a closed source compiler. That's not immoral but it's not praiseworthy either. They promise it will be open in the future, and I trust that the developers are sincere (though often management has other priorities attached to their time). When it happens, that's when you should praise. Doing it now is just encouraging poor development practices. And let's be clear: from the perspective of open source this is poor practice. It certainly doesn't have to be this way. Itanium and x86_64 both had working gcc implementations months to years in advance of hardware availability. ARM did their part releasing the specs (again, well over a year ago). On the other side of the fence Linaro et. al. have done great work porting gcc to the architecture. But LLVM/clang doesn't support it yet, because the implementation is an Apple-proprietary closed source compiler. To repeat: very much not praiseworthy.
- axman6 13y agoYes, dumping a huge diff of all the changes they've made to their internal LLVM project today would definitely be the right thing to do; I'd guess it's on the order of at least hundreds of thousands of lines of code. What Apple are doing here is making sure it can be cleanly added to where LLVM has got to outside Apple, and not just saying "hey, you want our code? Well here it is, you try and make it work!" Yes this takes longer, but, as they say, it's the right way to do things with an open source project used commercially.