Stallman on GCC, LLVM, and copyleft
Stallman on GCC, LLVM, and copyleft
Posted Jan 25, 2014 14:06 UTC (Sat) by Wol (subscriber, #4433)In reply to: Stallman on GCC, LLVM, and copyleft by coriordan
Parent article: Stallman on GCC, LLVM, and copyleft
Only if NEITHER wins!
If GCC wins, then nobody wins, as it will stagnate.
And also, its world view will prevail, which is a bad thing - the loss of diversity in views is not a good thing. I gather CLang takes a very different view of how things should be done, which is refreshing, and while not all those views may be right, they're unlikely all to be wrong.
Cheers,
Wol
Posted Jan 25, 2014 22:03 UTC (Sat)
by coriordan (guest, #7544)
[Link] (32 responses)
Nonsense. GCC made massive progress for decades before LLVM arrived.
While it's true that LLVM has incited the GCC developers to make extra progress in certain areas, it is also leading companies to hire developers to work on LLVM when they probably would have hired them to work on GCC, and some developers with interesting ideas are trying them out in LLVM instead of GCC.
So GCC, which gives an advantage to free software, has fewer developers, and all the effort put into LLVM ends up helping proprietary software as much as it helps free software.
If you're primary interest is technical progress in compilers, then fair enough, the competition is only a good thing. But if, like me, your primary interest is for free software to improve, and to displace proprietary software, then we need GCC to win (or at least always be in the lead).
Posted Jan 25, 2014 22:16 UTC (Sat)
by rahulsundaram (subscriber, #21946)
[Link] (13 responses)
https://www.youtube.com/watch?v=NURiiQatBXA
It appears Google wanted to improve GCC to make it work better with IDE's and other tooling and the technical decisions done to preserve the goals of GCC licensing ending up pushing them towards Clang. A more modular GCC would probably have kept them in the GCC world and it was technically always a better choice. It appears GCC is moving towards that goal now anyway.
When GCC was the really the only player in town, they could push vendors to play by their rules but when there is a competition with Clang, they have to focus on the technical aspect more since the licensing gambit may not work as well as before.
Posted Jan 26, 2014 17:00 UTC (Sun)
by coriordan (guest, #7544)
[Link] (7 responses)
There were many ways to do what they wanted, without donating their code to proprietary compilers. But Google didn't care enough about that.
(I don't understand why so many people ignore all the choices of third-parties and instantly jump to the accusation that RMS should be doing more for them.)
Posted Jan 26, 2014 17:07 UTC (Sun)
by rahulsundaram (subscriber, #21946)
[Link] (6 responses)
I find it somewhat disturbing that you characterize any code contributions to a permissively licensed project as "donating" to proprietary compilers. I don't think Google is concerned about proprietary compilers and you shouldn't expect them to do that. They will work with projects they find easier to work with and in this case, it was LLVM.
GCC could have been made more modular if not for the fact that RMS didn't want it to be more modular because he was concerned about the impact of licensing. Nobody is asking RMS to do more. They were asking RMS not to get in the way of technical decisions that was better for the project. RMS's perspective is understandable but ultimately I don't think it has helped GCC.
Posted Jan 26, 2014 17:31 UTC (Sun)
by coriordan (guest, #7544)
[Link] (5 responses)
GCC could have been turned into a platform for non-free compilers if not for the fact that RMS stood firm against this. That would be catastrophe.
GCC now has a plugin interface, and it's currently being improved, and there are plans for the interface to expose more of GCC's internals, but this has to be done carefully to avoid catastrophe.
> Nobody is asking RMS to do more
People want a more stable plugin interface, they want more internal status to be exposed. Look, here's a mail by RMS saying that GCC could expose more without inviting any problems:
"making available the symbol table (identifiers and their types)
But instead of offering to do some of this work, some people just complain about RMS not waving his magic wand and doing it for them.
Posted Jan 26, 2014 18:02 UTC (Sun)
by rahulsundaram (subscriber, #21946)
[Link] (4 responses)
You sound like a fanboy now. Nobody has ever asked RMS to do anything for them with relationship to GCC. I bet you can't find any references backing up your claim. This is a mischaracterization of what happened and is just not true.
You should recognize that there is a big difference between wanting GCC to be easier for tooling and wanting it to be a platform for proprietary things. This is precisely why I gave you a clear example of Google. Google is NOT interested in proprietary compilers or proprietary tools around GCC. They just wanted GCC to be more usable for the tooling they needed. ex: clang-format. Jumping through hoops to navigate the licensing restrictions which in turn imposed technical restrictions was an additional burden. This has cost contributors to the project and led to more Clang adoption which GCC now has to respond to.
Posted Jan 26, 2014 18:53 UTC (Sun)
by coriordan (guest, #7544)
[Link] (3 responses)
In your next comment you said RMS was to blame for the lack of modularity, so you're saying Google's decision is RMS's fault. I pointed out that this is also wrong, and I gave you a link to RMS suggesting ways to increase the modularity of GCC. He's not holding up the work - if someone wants to do it, it has his blessing right there.
> Google is NOT interested in proprietary compilers or proprietary tools
That's good to hear. I hope they help out with the modularisation RMS suggested, and I hope they understand when some things aren't possible or have to be done slightly differently to avoid GCC being used by other companies as a platform for non-free compilers or tools.
Posted Jan 26, 2014 21:04 UTC (Sun)
by deepfire (guest, #26138)
[Link] (1 responses)
Reposting links by stevenb:
Posted Jan 26, 2014 23:04 UTC (Sun)
by coriordan (guest, #7544)
[Link]
Posted Jan 27, 2014 21:54 UTC (Mon)
by rahulsundaram (subscriber, #21946)
[Link]
Nope. Your choose to interpret it that way. My point was that licensing affects technical choices and the technical choices affected Google's participation. That is merely a statement of fact. Now whether losing some of the contributions that would resulted in a better GCC from an organization which seems to have been inadvertently affected those technical choices despite them having no interest in doing what the licensing restrictions was supposed to prevent is worth pondering over. Instead of jumping in thinking I am trying to blame a specific person, I suggest you focus on the broader issue at play here.
Posted Jan 26, 2014 18:24 UTC (Sun)
by pbonzini (subscriber, #60935)
[Link] (4 responses)
Posted Jan 26, 2014 18:37 UTC (Sun)
by coriordan (guest, #7544)
[Link]
Posted Jan 26, 2014 18:54 UTC (Sun)
by rahulsundaram (subscriber, #21946)
[Link] (2 responses)
Posted Jan 27, 2014 10:10 UTC (Mon)
by pbonzini (subscriber, #60935)
[Link] (1 responses)
Posted Jan 27, 2014 15:21 UTC (Mon)
by rahulsundaram (subscriber, #21946)
[Link]
Posted Jan 26, 2014 1:29 UTC (Sun)
by Wol (subscriber, #4433)
[Link] (17 responses)
Where today's GCC is actually a *fork* of the old GCC, because the old GCC was stagnating badly? (And the original GCC was scrapped when the two re-merged.)
I think history shows that without competition, most things stagnate - and GCC is no exception.
Plus, as should have been obvious from my post, I am not a fan of group-think. "Winner takes all" is *not* good. Monoculture is dangerous ...
Of course interesting ideas are being tried out in LLVM rather than GCC. And how many of those ideas are incompatible with GCC? Do you want to see those ideas still-born? I certainly don't!
Cheers,
Posted Jan 26, 2014 14:25 UTC (Sun)
by jwakely (subscriber, #60262)
[Link]
Posted Jan 26, 2014 15:09 UTC (Sun)
by coriordan (guest, #7544)
[Link] (15 responses)
Not really. If you look into it, it's kinda par for the course for such a big, long-running project.
The facts are that for two years, out of GCC's 28 years of development, a bunch of developers developed the GCC codebase in a parallel repository. Both projects were GPL'd, and both development teams strongly supported free software and the FSF. The EGCS fork lead to a bunch of technical improvements, and they are now part of GCC.
That's healthy competition. GCC never stagnated. And this didn't harm the free software community or the advancement of free software. It didn't cause people to start helping proprietary compilers.
> "Winner takes all" is *not* good
I want GCC to improve, but I won't be hoping for improvements in Intel's compiler or some proprietary Apple compiler based on LLVM just as a way to light a fire under the feet of the GCC devs. RMS said it well:
"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."
Competition can be great, but I want free software compilers to always be in the lead.
Posted Jan 26, 2014 18:48 UTC (Sun)
by Wol (subscriber, #4433)
[Link] (8 responses)
Oh, and it's dead easy, AND PERFECTLY LEGAL, to make a closed compiler based on GCC. Thing is, it's not very practical.
And as others have pointed out, it just turns out it's equally impractical to make a closed compiler based on LLVM/Clang.
Trouble is, I think this thread is turning into a GPL2/3 type argument, where we have the Free Software Fanatics on one side, and the engineering pragmatists on the other (Linus vs RMS).
Anyway, what's to stop GCC pinching ideas from LLVM/Clang? If they're good, I'm sure they will.
Cheers,
Posted Jan 26, 2014 20:06 UTC (Sun)
by oldtomas (guest, #72579)
[Link] (7 responses)
Please, stop that. Fact is, LLVM wouldn't be where it is now were it not for those you call "Free Software Fanatics".
As much as you may despise them, I know I owe much more to RMS than I owe you.
Posted Jan 26, 2014 20:48 UTC (Sun)
by Wol (subscriber, #4433)
[Link] (6 responses)
But when "you" tell "me" what licence I have to use for *my* software (which is what a lot of these comments are - people complaining that someone else has made a "wrong" choice of licence), I think I'm well within my rights to use the word "fanatic". Fanatics think they have the right to tell other people what to do, and that is what is happening here.
I'm a casual LibreOffice developer. Given the opportunity, I want to contribute much more. But that doesn't give me the right to complain that the other developers went along with the wrong licence when they chose MPL. That's their decision, their choice, their right.
And indeed, I *really* *can't* see what's wrong with Google et al choosing to contribute to LLVM/Clang under the BSD licence. It's free and open for GCC to take if they want. You have NO RIGHT WHATSOEVER to complain about what eg Google choose to do with their own property/code - if they choose to give it away to all and sundry that is THEIR RIGHT AND FREEDOM!
Cheers,
Posted Jan 26, 2014 20:54 UTC (Sun)
by Wol (subscriber, #4433)
[Link] (1 responses)
I did not call RMS a fanatic, which you implied in what you said. In fact, I generally refer to him as a prophet. It's his followers who demand that the world must follow "the way of RMS" ...
Cheers,
Posted Jan 27, 2014 9:17 UTC (Mon)
by oldtomas (guest, #72579)
[Link]
> I did not call RMS a fanatic,
No. You talked loosely about "the Free Software Fanatics".
> which you implied in what you said.
No. I just was miffed at this (deliberate or not) tactics of invoking such a nebulous group of people and leaving to each one's phantasy who you are actually talking of (coriordan put that more succintly as "red herring").
> But when "you" tell "me" what licence I have to use for *my* software (which is what a lot of these comments are [...]
I'll assume that this is the "generic you". Would you mind pointing at least to an example of someone telling you what license you have to use on your projects?
Posted Jan 26, 2014 23:18 UTC (Sun)
by coriordan (guest, #7544)
[Link] (3 responses)
Strawman. No one told you you have to do anything.
I and others have pointed out that the best way to support free software's future is to use copyleft licences.
> It's free and open for GCC to take if they want.
And it's open for Apple and Intel to take too. GCC used to have an advantage in certain domains, and LLVM is (or could in the future be) neutralising those advantages by providing them to Intel, Apple, etc. Those advantages lead to people contributing to GCC. Being able to use LLVM as a platform to start from, certain companies are now more likely to make their own proprietary LLVM-based compiler than contribute to any free software project.
Posted Jan 27, 2014 9:33 UTC (Mon)
by ibukanov (guest, #3942)
[Link] (2 responses)
As it was pointed above there is no big difference between GCC and LLVM in this regard. One just needs to follow NVidea example where they create a proprietary virtual machine and use GCC to generate code for it. That requires more work, but it just means it is harder for a small company to use GCC in a proprietary code, a big company have enough resources to pay lawyers to find loopholes and developers to implement workarounds.
Posted Jan 27, 2014 9:53 UTC (Mon)
by Cyberax (✭ supporter ✭, #52523)
[Link]
Posted Jan 27, 2014 10:06 UTC (Mon)
by coriordan (guest, #7544)
[Link]
There obviously is since companies are building proprietary compilers on top of LLVM, and no one (or almost no one, if the Nvidia example is correct) is building proprietary compilers on GCC.
> a big company have enough resources to pay lawyers to
GCC has been everywhere for 25 years. Show me the list of big companies paying lawyers and developers to make proprietary compilers from GCC. Why did NeXT/Apple release their Objective-C compiler under GPL? Did they not have enough lawyers or developers?
Reality contradicts your theory.
Posted Jan 27, 2014 11:52 UTC (Mon)
by dakas (guest, #88146)
[Link] (1 responses)
Posted Jan 27, 2014 22:21 UTC (Mon)
by nix (subscriber, #2304)
[Link]
What was worthwhile, and what I think you may have meant, was that the egcs project continued to use the same copyright-assignment rules as GCC, so the FSF would not refuse to call it 'GCC' if the experiment were to prove successful.
Posted Jan 27, 2014 22:17 UTC (Mon)
by nix (subscriber, #2304)
[Link] (3 responses)
It was a 'fork' more of governance than of codebase and more of codebase than of developers. "Both development teams" were the same people (except that only Kenner could commit to GCC, which effectively explains why EGCS won). The same mailing lists were used: the same everything was used except for the rules about who could commit.
I'm not sure this even counts as a fork. An experiment, yes, but not a fork.
Posted Jan 28, 2014 3:43 UTC (Tue)
by coriordan (guest, #7544)
[Link] (2 responses)
I didn't follow the EGCS story at the time, but I always jump in when someone claims that after managing a dozen large-scale software projects, each for years or decades, the two-year EGCS story from fifteen years ago is somehow proof that RMS has poor project management skills.
Posted Jan 28, 2014 11:27 UTC (Tue)
by dakas (guest, #88146)
[Link] (1 responses)
Posted Jan 30, 2014 0:00 UTC (Thu)
by nix (subscriber, #2304)
[Link]
Stallman on GCC, LLVM, and copyleft
Stallman on GCC, LLVM, and copyleft
Stallman on GCC, LLVM, and copyleft
Stallman on GCC, LLVM, and copyleft
Stallman on GCC, LLVM, and copyleft
> that RMS didn't want it to be more modular
would not cause this problem. It just needs someone to write the code."
https://lists.gnu.org/archive/html/emacs-devel/2014-01/ms...
Stallman on GCC, LLVM, and copyleft
Stallman on GCC, LLVM, and copyleft
Stallman on GCC, LLVM, and copyleft
http://gcc.gnu.org/ml/gcc/2013-11/msg00410.html
http://gcc.gnu.org/ml/gcc-patches/2013-12/msg00842.html
Stallman on GCC, LLVM, and copyleft
Stallman on GCC, LLVM, and copyleft
Stallman on GCC, LLVM, and copyleft
Well, there's some good news.
Stallman on GCC, LLVM, and copyleft
Stallman on GCC, LLVM, and copyleft
Stallman on GCC, LLVM, and copyleft
Stallman on GCC, LLVM, and copyleft
Stallman on GCC, LLVM, and copyleft
Wol
Stallman on GCC, LLVM, and copyleft
Stallman on GCC, LLVM, and copyleft
but I want free software compilers to always be in the lead.
Wol
but I want free software compilers to always be in the lead.
but I want free software compilers to always be in the lead.
Wol
but I want free software compilers to always be in the lead.
Wol
but I want free software compilers to always be in the lead.
but I want free software compilers to always be in the lead.
but I want free software compilers to always be in the lead.
but I want free software compilers to always be in the lead.
but I want free software compilers to always be in the lead.
> find loopholes and developers to implement workarounds.
Stallman on GCC, LLVM, and copyleft
The facts are that for two years, out of GCC's 28 years of development, a bunch of developers developed the GCC codebase in a parallel repository. Both projects were GPL'd, and both development teams strongly supported free software and the FSF. The EGCS fork lead to a bunch of technical improvements, and they are now part of GCC.
And I think that this may have been the largest single long-term benefit of the XEmacs/Emacs fork: the Egcs developers painstakingly avoided taking any steps that would have prevented a remerge of the fork in spite of not being in synch with the FSF's and/or Richard Stallman's objectives.
I doubt that this would have worked in the way it did without the lessons from the big Emacs schism.
And I very much commend the temporarily forked community for the discipline they exercised in order not to complicate a future merge.
Stallman on GCC, LLVM, and copyleft
And I think that this may have been the largest single long-term benefit of the XEmacs/Emacs fork: the Egcs developers painstakingly avoided taking any steps that would have prevented a remerge of the fork
That wouldn't have been a problem, since the fork was not remerged: almost no work was done on 'the real' GCC during the egcs period, so egcs was just redesignated 'GCC' at the end of it. No merge was needed.
Stallman on GCC, LLVM, and copyleft
The facts are that for two years, out of GCC's 28 years of development, a bunch of developers developed the GCC codebase in a parallel repository. Both projects were GPL'd, and both development teams strongly supported free software and the FSF. The EGCS fork lead to a bunch of technical improvements, and they are now part of GCC.
This is, I think, an inaccurate portrayal of history. The facts are that for two years, out of GCC's 28 years of development, all the GCC developers (including the then official maintainer of the (stagnating) GCC, Richard Kenner) experimented with a new governance methodology under a new temporary project name. When this was a wild success, it supplanted the original.
Stallman on GCC, LLVM, and copyleft
Stallman on GCC, LLVM, and copyleft
but I always jump in when someone claims [...] the two-year EGCS story from fifteen years ago is somehow proof that RMS has poor project management skills.
That's like talking about the housing skills of a building. It somehow still misses the point.
Stallman on GCC, LLVM, and copyleft