Slashdot Mirror


FSF's Richard Stallman Calls LLVM a 'Terrible Setback'

An anonymous reader writes "Richard Stallman has called LLVM a terrible setback in a new mailing list exchange over GCC vs. Clang. LLVM continues to be widely used and grow in popularity for different uses, but it's under a BSD-style license rather than the GPL. RMS wrote, 'For GCC to be replaced by another technically superior compiler that defended freedom equally well would cause me some personal regret, but I would rejoice for the community's advance. The existence of LLVM is a terrible setback for our community precisely because it is not copylefted and can be used as the basis for nonfree compilers — so that all contribution to LLVM directly helps proprietary software as much as it helps us.'"

11 of 1,098 comments (clear)

  1. Precisely by Anonymous Coward · · Score: 5, Informative

    This is exactly the problem with the GPL. Its advocates want everything to be free, and are giddy about the possibility of bringing suit against people who so much as linked to a GPL'd library and forcing their work to be GPL.

    It's viral, and not in a good way. Comments like "all contribution to LLVM directly helps proprietary software as much as it helps us" show your cards. Stallman not only is an advocate for free software; he would rather harm or hamstring free software in order to damage proprietary software.

    I'm not about to defend the practices of certain large corporations. But in education and medicine, institutional rules over IP forbid many people I know of from even linking to a GPL'd library. For us, if it's GPL'd then it is off limits.

    Also, having a friendly non-adversarial relationship with industry is useful and will result in much broader use of your software. For most FOSS projects, exposure and reaching a critical mass of contributors is crucial. The BSD is inherently helpful in this case. The GPL just scares people off, because it asserts control over code you haven't even written just because you decided to use something that happened to have a GPL license.

    So, no, Stallman, I disagree and furthermore I condemn your argument as unproductive, wrong, and unhelpful. You might have ground to stand on if LLVM were closed source but it's open - in fact, it's under a more permissive license than the GPL.

  2. Re:Lincense wars in... by Frosty+Piss · · Score: 5, Informative

    Many people started moving away from the GPL with version 3.

    --
    If you want news from today, you have to come back tomorrow.
  3. It's really simple... by dbc · · Score: 4, Informative

    People are focusing on BSD versus GPL, but really, the thing to see here is Stallman's definition of "community". If you would ever let your software be used by for-profit interests, you are not part of the community he is speaking of, and claims to speak for. It's just that simple, no flamage or politics implied by saying that.

    I've long said that people should chose a license the way they choose a screwdriver, not the way they would chose a religion. What are you trying to achieve? Want total world domination for a new protocol? Go BSD. Want to keep for-profit entities from rent-seeking based on your work? Go GPL.

    It's OK to be part of Stallman's community. It's also OK to not be part of Stallman's community. It's OK for RMS to be dissapointed with people who are not part of his community. It's OK for people not part of Stallman's community to not give a rat's ass what RMS thinks.

    I'll say this though, the number times I've originally dismissed one of RMS's ideas a crack-pot loony assertion, and then five years later come to see the point he was trying to make, is non-zero.

  4. It's about tactics: GPL helps free software by ciaran_o_riordan · · Score: 5, Informative

    Background reading:

    BSD, LGPL, and GPL are all free software licences. The user gets the same four freedoms in each case (use, study, modify, redistribute). But, using the BSD licence (or the LGPL) takes away an incentive to contribute to the free software project.

    GCC's technical advances create a big incentive for developers who are interested in compilers, and for companies with a commercial interest in a good compiler existing for their platform, to contribut to GCC - helping free software whether that's their priority or not. With a BSD-licence project, developers can choose to ignore GCC and fork LLVM instead, so neither GCC nor LLVM benefits.

    LLVM weakens GCC's ability to attract free software contributors. That's why Apple funds LLVM.

    It's not difficult to see which approach works best: Which OS has more contributors, *BSD or GNU/Linux?

  5. Re:More than one type of "freedom" by Microlith · · Score: 4, Informative

    It means that they're free to go to someone who can do something with it, and have them work their magic. It ensures that there are always options.

  6. Re:More than one type of "freedom" by Dagger2 · · Score: 4, Informative

    With GPLed software, they're free to do go anybody who can do something about it. With propriety software, there was only one place to go, and if they say "no" or they screw it up then you're fucked. Personally I wouldn't call those two situations exactly the same.

  7. Re:Sorry man, but not everyone agrees with you by ray-auch · · Score: 5, Informative

    - Is part of the bigger picture is that GCC doesn't make it easy to embed into an IDE?

    Yes, and the fact that that is (or was) deliberate on RMS / GGC's part, therefore changing it required policy / politics not just contributing some code changes.

    - If LLVM is "cleaner" under the hood so you don't need to be a compiler expert to modify / fix it, shouldn't that be a wake up call for GCC to clean up the code + architecture ?

    In one sense it already has - on gnu.org there are relatively recent pages around plans for modular gcc. Unfortunately it is now years behind on this and may never catch up, as many of those interested in working on things like this will probably use CLang / LLVM rather than work on getting GCC to do the job.

    There is also the issue that historically GCC architecture is deliberately unclean in order to prevent your previous (and following) suggestions. RMS does not want GCC to play any part in a toolchain/process which might have non-GPL parts, but that can't be controlled with copyright licence because simply reading / producing e.g an intermediate language does not make a derivative work. Hence GCC is locked-down technically so you can't access any of the intermediate steps. Some of it is probably historical accident of complexity and some is by design - but also by design it hasn't been cleaned up (so far).

    Essentially, in order to satisfy a licencing goal that can't be achieved with a licence, GCC has been deliberately crippled.

    RMS:

    The GNU Project campaigns for freedom, not functionality.
    Sometimes freedom requires a practical sacrifice,
    and sometimes functionality is part of that sacrifice.

    - If I want to just make a front-end for a new (programming) language why is it easier with LLVM then with GCC ?

    Because LLVM IR is _much_ better documented, because that was a goal of LLVM project. For political reasons why that is, see above.

  8. Re:LLVM was offered for GCC-Next by BonzaiThePenguin · · Score: 4, Informative

    Holy moly, I thought you were joking about that:
    http://gcc.gnu.org/ml/gcc/2004...
    http://gcc.gnu.org/ml/gcc/2007...

    Are we really supposed to be rooting for the people who will only share if they get something in return, and will intentionally make things difficult to try to get their way? That's hardly the noble cause they make it out to be. And then when LLVM tries to be as easy to use as possible and doesn't ask for anything in return, they belittle it.

  9. Apple's goal was better dev tools by SuperKendall · · Score: 4, Informative

    Because Apple's goal is to undermine GCC

    That was never Apple's goal. Remember that Apple used GCC for years.

    Apple's goal was instead to have a better development tool, and GCC was a roadblock. It was preventing enhancement of warnings the editor could give, real time feedback as to the code that was being written. It also had a somewhat primitive debugging experience (as much as I like GDB and have used it for many years, LLDB is better).

    Apple moved to LLVM not out of any wish to harm GCC but because it was no longer possible to advance without newer and more advanced compiler technology.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  10. Re:...but if you want free software to improve... by smash · · Score: 4, Informative

    Because it hit the scene when BSD was involved in a legal dispute. I believe Linus himself is on record as saying that if BSD was available at the time he would not have started Linux.

    --
    I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
  11. Re:Lincense wars in... by peppepz · · Score: 4, Informative
    Error messages are only slightly better in clang, because GCC has improved since version 4.2, and now even clang developers themselves explain that clang is better in caret positioning and colouring, which I wouldn't call being a generation ahead. See what the GCC wiki says about that.

    Clang is slightly faster than GCC, when compiling at the same optimization level.

    Clang is written in C++ and modular, and as result of this, it is more embeddable in third party projects and it can target multiple platforms with a single executable. Work is being done in GCC to address this but I'm talking about released code here.

    But when we consider less "hip" features, GCC makes faster code (which is usually the foremost interest of a compiler's user). And GCC supports more target platforms. And GCC supports more language features (FORTRAN, OpenMP, VLAIS).

    A GCC developer's benchmark about GCC's vs clang's speed of compilation and of the resulting code.