Forgot your password?
typodupeerror
GNU is Not Unix Open Source Software

LLVM & GCC Compiler Developers To Begin Collaborating 279

Posted by timothy
from the integration-nation dept.
An anonymous reader writes "While RMS is opposed to LLVM over its BSD-like license rather than the GPL, LLVM/Clang and GCC developers have agreed to try to start cooperating in an "open compiler initiative" to jointly tackle common issues that plague both compilers and issues that can be better served by working together rather than creating fragmentation between the two popular open-source compilers."
This discussion has been archived. No new comments can be posted.

LLVM & GCC Compiler Developers To Begin Collaborating

Comments Filter:
  • by paxcoder (1222556) on Saturday February 08, 2014 @06:07PM (#46198863)

    I'm not sure how GCC could benefit from this.
    While theoretically GPL could subsume BSD code produced from the collaboration, I reckon it's more likely that brains are going to migrate rather than code. And I don't see those working on LLVM (for commercial interest) migrating to GCC.
    If I were RMS I'd be worried.

  • by kthreadd (1558445) on Saturday February 08, 2014 @06:11PM (#46198891)

    Well, just getting both camps into the same room from time to time would be an improvement.

  • by paxcoder (1222556) on Saturday February 08, 2014 @06:14PM (#46198905)

    RMS knows that (and has made statements to that effect): GPL exists precisely because it's not a perfect world.
    While you may call it a freedom, "freedom" to kill would not be a beneficial one.
    Speaking metaphorically, that's what BSD license grants you: A way to murder free software in the black hole of proprietary software.
    Do companies contribute back? Sure, some do, some of the things. But everything else is competition.
    And therein lies the real difference: GPL is against proprietary software, it aims to provide free software to everyone. BSD isn't and doesn't.
    Kinda like free vs open.
    TL;DR: No.

  • by kthreadd (1558445) on Saturday February 08, 2014 @06:15PM (#46198915)

    One of the areas where the licensing of gcc have been very successful is within embedded hardware. Gcc has gained a high reputation within this field which has lead to adoption by several vendors of embedded systems. These firms are not known for their generosity or cooperability, so without the GPL it is unlikely that the changes they needed had been contributed back upstream. This is of course only speculation, but I would say that the GPL has overall been advantages to gcc.

  • by thoth (7907) on Saturday February 08, 2014 @06:29PM (#46198999) Journal

    I was a compiler grad student, and my university had its own intermediate representation it did work with. Back then (mid 90's) there was also SUIF (stanford university intermediate form), something I forget from University of Illinois... there were probably others too. But some big-name CS departments focused on other stuff, databases, operating systems, AI, and weren't necessarily up there in compilers or revealing the details of their intermediate form (not that it's was a secret, merely from academia the algorithm is more important than the intermediate form used).

    Now, my old school adopted LLVM. I recently checked as I'm working with LLVM/Clang and found that quite interesting. I can't even pull up Stanford's SUIF compiler group research page (suif.stanford.edu, maybe I'm just unlucky or it's gone/moved/temporarily down). And LLVM/Clang is from University of Illinois... so yeah, I'm sure they are using it too.

    The benefit to GCC from this is to not become obsolete in 5-10 years, from a steady influx of improved algorithms and tuning from a body of people that can easily contribute. Just from the fact LLVM/Clang is easier to work with, universities using it for their classes/research means that there is a steady crop of undergrads/grads familiar with LLVM/Clang and its set of libraries. They can contribute, and the research community doesn't have to roll its own intermediate form for research algorithm implementation and then throw that out when it comes to implementing the same algorithms in an actual intermediate language that is used in a real compiler. When you're a student, the last thing you want to do when you've got a project due in the semester, or you are trying to write your thesis/dissertation and graduate, is screw with compiler internals that are purposely difficult to work with (GCC).

    Yes, GCC has a core group that has done an excellent job. But they are facing commercial interests improving the LLVM/Clang (i.e. Apple and Obj-C) plus now the OpenCL and OpenMP work going on, and on top of that an ever growing population of former students with skills/knowledge and perhaps the desire to contribute.

    f I were RMS I'd be worried.

    Agreed. Those years he opposed modularizing GCC might have really hurt the project in a way that isn't done being felt yet.

  • by Anonymous Coward on Saturday February 08, 2014 @06:31PM (#46199007)

    Do companies contribute back? Sure, some do, some of the things. But everything else is competition.

    I would be very interested in seeing real statistics on this, because my experiences with companies using BSD style licensed code in their software suggests the exact opposite. There are a number of reasons to use open source software in your project, the chief among them being "not reinventing the wheel". The problem is, the moment you generate your own proprietary fork, you're back to reinventing the wheel. Chances are, you made the changes because the software in question didn't quite do what you wanted it to do, or to fix a bug. Great, so now you've got your own branch, and every time you update this software with the latest "official" version for whatever reason (including perhaps, not reinventing the wheel for some new feature) you have to apply your patches and changes, and hope that the patches you built against version X are still valid against version Y.

    In my experience, the only time companies don't give back is when they've made such massive changes that they would be maintaining their own branch anyway. And with changes that large, it's extremely unlikely the main branch would ever integrate them all back in, which means the company is maintaining their own fork, regardless of whether or not they've released the code. Now, you can argue (as RMS does) that regardless, the important thing is whether the new code is open, not whether it's ever merged back, but there are considerations to be had as well. Forks split and consume development resources. Different projects all doing the same thing slightly differently create more work for people trying to target those projects, such that writing new useful software that takes advantage of other available resources either requires multiple code paths to handle each resource (think vendor specific CSS tags but worse) or can't be meaningfully built without someone writing additional code.

  • by paxcoder (1222556) on Saturday February 08, 2014 @06:34PM (#46199019)

    What do you think the purpose of copyleft (of which GPL is just a manifestation) was? The problems it adressed persist.
    Now let me address the "freedoms" you're defending. There's always the quote "your freedom to wave your fist ends where my nose begins", but I'm not going to argue that in this case - let's assume users don't have freedoms like FSF asserts. Let's listen to you and focus on corporate freedoms:
    You're saying people should have the "freedom" to leech, because this technically means the least amount of restrictions on a code. But in fact, what you're really defending is the right of authors of derivatives to restrict what their users can do. And you know what? I agree that they have that freedom: They built it, they should be able to do with it whatever they want. But the dissonance in your opinion is this: The author of the original piece of code which they built on also has the same right! So if you're going to defend people who impose restrictions that hurt end-users, why attack those that use the same right in the purpose of maximizing the freedoms of those same end-users?
    So there are restrictions in both stories, just that BSD is asocial and GPL isn't: BSD says "do what thou wilt" and that inevitably favors the bully. Mind you, the bully (=the warlord in the case of anarchy) is going to impose his own rules. GPL says instead: Fair play rules are valid for everyone.

  • by Anonymous Coward on Saturday February 08, 2014 @06:38PM (#46199043)

    Speaking metaphorically, that's what BSD license grants you: A way to murder free software in the black hole of proprietary software.

    I find it hilarious that you use this analogy in a thread talking about a BSD licensed compiler (clang) that Apple wrote, and then fully open sourced more freely than the competition..

  • Build compatibility (Score:5, Interesting)

    by TheloniousToady (3343045) on Saturday February 08, 2014 @06:46PM (#46199079)

    Having read TFA, this collaboration appears to be partly about build compatibility. So far, it sounds like LLVM/Clang has been imitating GCC options. But what happens when one or the other of them adds a new option or feature? That might break builds designed for the other one. So, it sounds like the two groups would like to start communicating and coordinating so that both systems can be compatible at a build level in the future. Implicit in this is that both would continue to exist as independent entities and that build compatibility would be a primary goal for both. Perhaps some deeper form of technical collaboration might even be possible in the future.

    Then again, I may have that all wrong. I know nothing about it except what I learned from reading TFA. If that causes a problem, I'll try not to do it again.

  • by smitty_one_each (243267) * on Saturday February 08, 2014 @06:58PM (#46199129) Homepage Journal
    RMS is like a typecast actor. He has his role, and plays it unswervingly.
    However, if there are ways to help out the studio, even if he's not in the film, what's the issue?
  • by xororand (860319) on Saturday February 08, 2014 @07:03PM (#46199161)

    RMS has been one of the most important men of the last 50 years or so.
    His contribution to society is immense.
    We need more like him to fight for our freedom.

    Just imagine a world with only proprietary software.
    Locked into golden prisons.
    No thanks.

  • by Anonymous Coward on Saturday February 08, 2014 @07:09PM (#46199197)

    I agree with this sentiment but you also have to conciser the number of ideas, projects and companies that never even leave the ground because they aren't willing to entertain the idea of including GPL licensed code because it means they would have to open up the source of their entire project. I think this is a point that most devs that defend GPL to the death fail to conciser.
    GPL is a giant viscous legal thorn bush for ANY developer who has ANY reason they can't or don't want to release the source of their code and this potentially limits the progress of society just as much as a lack of open sorce libraries does.

    I mean, I'm allowed to use gpl code for private projects but nothing that could actually have a decent chance of supporting my cost of living because even through I have a bunch of novel and useful ideas for software, they would be poached and re-released a month after I made a switch to the GPL license because first mover advantage means absolutely nothing in the software engineering world unless you have millions of dollars to spend of marketing or a way of securing the redistribution of your ideas like closed source (or maybe the day I can finally afford a patent).

  • by maxwell demon (590494) on Saturday February 08, 2014 @07:16PM (#46199227) Journal

    Would they have BSD-licensed clang if there had not been the competing GPLed GCC? Who knows ...

  • by Arker (91948) on Saturday February 08, 2014 @09:30PM (#46199737) Homepage
    Except that you did it wrong.

    BSD gives the author freedom, but screws the user. (1-1=0)
    GP gives the author freedom, and preserves it for the user also. (1+1=2)

    Really, this is simple math, there is no excuse for such a fundamental mistake.
  • by tlhIngan (30335) <.slashdot. .at. .worf.net.> on Sunday February 09, 2014 @02:06AM (#46200747)

    RMS knows that (and has made statements to that effect): GPL exists precisely because it's not a perfect world.
    While you may call it a freedom, "freedom" to kill would not be a beneficial one.
    Speaking metaphorically, that's what BSD license grants you: A way to murder free software in the black hole of proprietary software.
    Do companies contribute back? Sure, some do, some of the things. But everything else is competition.
    And therein lies the real difference: GPL is against proprietary software, it aims to provide free software to everyone. BSD isn't and doesn't.
    Kinda like free vs open.
    TL;DR: No.

    You know what? EVERY GPL advocate says "Companies will steal your BSD code!!!!!! NOOOO!!! BAD!!!!"

    But you know what really irks people? GPL does exactly the same thing. You see, GPL projects can take code from BSD projects, but that BSD project cannot take any improvements the GPL project makes.

    In fact, GPL advocates do the same thing to BSD that they accuse "companies" of doing Even more hypocritically, they claim the GPL is superior because you cannot "close off" the code.

    So, the "superiority" of GPL is that it does to BSD projects (closing off the code) what RMS claims "companies" do. And argues that it's the superior license.

    So now the BSD guys can't even get the improvements back from an open-source project! What difference does it make if BSD allows companies AND open-source people to close off the code?

    Funny how the GPL was created to "prevent" the very thing it does! Even worse, it's even iffier for the BSD project to accept contributions from the GPL project because that code could be GPL tainted. Companies giving back the code generally make it available under the same BSD license.

    In fact, this very thing could be happening with GCC and LLVM - the LLVM guys make a fix for a problem, the GCC guys take it and fix GCC. Great, that's how open-source should work. But now, if the GCC guys fix a problem, the LLVM guys cannot take it, or even look at it (GPL taint). They may not even be able to take a patch. They have to independently fix it themselves.

The major difference between bonds and bond traders is that the bonds will eventually mature.

Working...