LLVM & GCC Compiler Developers To Begin Collaborating
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."
http://www.altslashdot.org/
in case y'all didn't know.
#F...BETA
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.
The GPL is not for everyone or every company, get over it.
The BSD[MIT/APACHE/ZLIB] licence is the only real free open source license. In a perfect world we wouldn't need licences at all and everyone wouldn't have a hissyfit every time someone borrowed code from someone.
I bet this works great for the GCC devs.
Unless they're going to work under the BSD license, LLVM will be screwed over because they aren't going to include GPL code into LLVM.
Mod me down, my New Earth Global Warmingist friends!
Please post this to new articles if it hasn't been posted yet. (Copy-paste the html from here so links don't get mangled!)
On February 5, 2014, Slashdot announced through a javascript popup that they are starting to "move in to" the new Slashdot Beta design. Slashdot Beta is a trend-following attempt to give Slashdot a fresh look, an approach that has led to less space for text and an abandonment of the traditional Slashdot look. Much worse than that, Slashdot Beta fundamentally breaks the classic Slashdot discussion and moderation system.
If you haven't seen Slashdot Beta already, open this in a new tab. After seeing that, click here to return to classic Slashdot.
We should boycott stories and only discuss the abomination that is Slashdot Beta until Dice abandons the project.
We should boycott slashdot entirely during the week of Feb 10 to Feb 17 as part of the wider slashcott
Moderators - only spend mod points on comments that discuss Beta
Commentors - only discuss Beta
http://slashdot.org/recent - Vote up the Fuck Beta stories
Keep this up for a few days and we may finally get the PHBs attention.
-----=====##### LINKS #####=====-----
Discussion of Beta: http://slashdot.org/firehose.pl?op=view&id=56395415
Discussion of where to go if Beta goes live: http://slashdot.org/firehose.pl?op=view&type=submission&id=3321441
Alternative Slashdot: http://altslashdot.org (thanks Okian Warrior (537106))
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.
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.
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?
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
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.
I'm not sure how GCC could benefit from this.
You are not reading history.
GCC moves too damn slow and doesn't include features that developers (and more importantly: the companies which pay developers) want. These days, that includes the changes between the GPLv2 and GPLv3 not being wanted by the people who pay the bills.
GCC was more or less started in 1984: http://www.gnu.org/gnu/thegnup...
GCC was almost replaced by the EGCS fork in 1997, and it took two years before RMS finally gave up on the idea of having the ultimate editorial control over the language implementation, and "blessed" EGCS as the replacement for GCC. When he did that, he gave up on limiting the OSs that the compiler worked on, and limiting the inclusion of things like #pragma (which used to exec "nethack" because RMS didn't like it), and some of the language front ends that are now included, like g77, which RMS didn't want.
GCC is on the verge of being marginalized again by LLVM; all the sexy compiler work is happening in LLVM, all the bright young minds in the compiler world are going to LLVM because it's a lot easier to make a front end for a new language or a back end for a different processor or embedded controller or virtual machine. LLVM is the "go-to" compiler for academic projects involving compiler research.
It makes sense; GCC: 1984; +15 years = EGCS: 1999; +15 years = ????: 2014.
RMS' recent appeal *might* be able to attract a bunch of new ideologues to the GCC project, and have them forsake LLVM work, but more likely course and project requirements for a degree, and after that, an employer, probably mean that LLVM is going to remain the "go-to" compiler for the new blood.
The idea that GCC can leverage some of the new blood by making it easier for them to work with code in both contexts, rather than leaving GCC in the ashbin of history, is about the *only* way to give GCC the transfusion of new blood it's going to need to survive another 15 years.
It also couldn't hurt to expand the number of (or replace) members of the "GCC steering committee" so that GCC can get a little more forward momentum. You can get forward momentum one of two ways: (1) more specific impulse, or (2) take off the parking brake.
Good move.
While forking is a necessary fact to develop a new idea (even into the original community), merging (at lead idea) is even more necessary long term consequence to avoid fragmentation. The most dangerous thing for open source communities is to start to see others projects and communities as futile and without interesting for learning something.
Desktop related projects should really start to go into that direction now.
While I do agree with Stallman over them using a BSD-3 like license. I do like LLVM and Clang. And working together will benefit both LLVM/Clang and GCC which is a good thing.
while
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.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
Why oh why are the shills always AC? They are giving AC a bad image.
It takes an extremist to shift the Overton window.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
You stumbled upon some truth. You did some thinking and came to a new realization. The only question remaining is, do you have the ability to learn from this, or will you choose to remain ignorant in order to protect the insane idea that you already knew everything before?
You can't be serious. BSD license is fine for people who largely don't care if their code is forked, patched, and closed, then used to compete against the original author or the community at large. While this gives the person doing this more freedom initially, it has the potential to deny the relevance of, and long term interest in, the original open project in the future. The end result is one less open source project in the market. This attack vector, used by aggressive vendors who want to kill open competition, is what the GPL was intended to prevent. In one sense BSD is one step closer to public domain than GPL, but it doesn't protect the community relevance, market value, and continued program source access, which is a loss of freedom for everyone else.
The GPL prevents this by providing legal guarantees for the freedom to tinker with that program indefinitely. The code and any modifications to it remain available to anyone because those who publicly distribute changed binaries must also publicly distribute source patches. With proprietary licenses you pay money for binaries (source, sometimes). With GPL code, your 'payment' for using it is giving any user the code you've added (if any) when requested. There's nothing viral or damaging about any of this because the answer is the same: if you don't like the license, ask the authors if they are willing to give you an alternative (since they still own the copyright), or don't use the code. If it's a library under LGPL then you can dynamically link against it without sharing the code that links to it. Most GPL libraries are LGPL now, so that's not an issue either.
The GCC guys have made it clear that programs compiled with gcc do not have to be GPL, and it's used in countless projects, both proprietary and OSS, for over two decades. I doubt it's going anywhere anytime soon.
First off the author always has the freedom to do whatever they want (assuming they haven't transferred copyright to someone else), the license only applies to *other* people. If you're the author of a derivative work and feel you should get to claim credit for the whole of "your" work, then by all means feel free to replicate the no doubt trivial amount of labor put into all those libraries you used.
BSD grants essentially unlimited freedom to developers directly downstream, but makes no attempt to preserve those freedoms for anyone further downstream.
GPL grants somewhat restricted freedoms to downstream developers, but in doing so they ensure that everyone further downstream continues to get the same freedoms.
--- Most topics have many sides worth arguing, allow me to take one opposite you.
anonymous cowards are boring.
On the contrary, some purity is always needed to refresh natural atrophy.
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.
Unless I ignore the Gnu implementation because of my commercial interests so the user never sees an implementation.
So we go back to Gnu = 0.
Seriously. I've seen projects and implementations totally scuttled over GPL. We would have LOVED to support the standard and commit code back, but the restrictions on our own code were unsustainable. So we went with BSD alternatives instead.
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.
Have to take issue with this. You make a fair point, but it is full of hyperbole and only half the story.
What do you think legal systems are if not asocial warlords and bullies who impose their own rules on the populace, only for their own gain?
If you know anything about governments, they inevitably favor the bully as well, that is the nature of them.
Two sides of the same coin.
Mind you, the warlord bully has branded things that benefit him "legal" and things that don't benefit the state "illegal" but that is just marketing; "legal" just means "backed by guns and money" so in either case it is bowing down to a warlord and hoping they keep things "fair" for everyone.
GPL says instead: Fair play rules are valid for everyone.
Devil's advocate: BSD leaves you alone to protect yourself and defend your turf how you like, GPL relies on empowering an existing bully under the theory that will stop other bullies, and that empowering the "legal" bully is a lesser evil.
Rhetorical question: What do you call an infinite number of arbitrary legal systems, always at war with each other, spying on each other endlessly, if not complete and utter anarchy?
Upon loading the article page I was confronted with some spam video that started playing and blasting audio unrequested. Is this the next shoe to drop? First beta, next auto playing video ads? I've never disabled ads on slashdot and I disable my adblocker BECAUSE the ads haven't been annoying.
What is going on at slashdot?!?!
We are the Dice.
You will be SlashingtonPost'ed.
Resistance is futile.
Prepare to welcome your new Kardashian overlords.
I see even classic Slashdot is now pretty much unusable on dial up anymore.
That's odd, the GPL tells me pretty plainly that I get to have a nice flat, eat, and make my child-support payments, all while promoting freedom.
Il n'y a pas de Planet B.
Yes. I used to read that Edison 'invented' the light bulb and similar crapola when I was a kid. In fact this view was expounded in US TV kid shows. Heck if you listened to what was said it was like he had invented every single application of electricity developed in the XIXth century. Then I learned better. Then again they also used to say in the same TV shows that Columbus 'proved' the Earth was round and that people back then used to universally think the Earth was flat. Both of which is BS. Eratosthenes is turning in his grave now.
You are assuming everyone considers those four points to all have an equal value. - for example, is the GPLs "gives the author freedom" actually equal to the BSDLs "give the author freedom"? Not really, but yet you equate them....
So much wrong with your "simple math".
Now I understand the fear about the GPL being contagious. People just fear that he didn't wash his hands before writing it, and therefore it is full of pathogens! ;-)
The Tao of math: The numbers you can count are not the real numbers.
It's the equivalent to a text-on-one-page link for multipage stories. I've never seen any of those modded down.
The Tao of math: The numbers you can count are not the real numbers.
If only there was a system for measuring how much people are willing to give for what they give up or for they create... some token maybe that would the exchange countable and enumerable... so that all these "feed good" philosophies would not be based on what one person thinks the exchange rate should be for ideas, but on what all participants think the exchange rate should be for ideas.... some universal enumerative token... nah, can't happen.
Any guest worker system is indistinguishable from indentured servitude.
I've read many Edison biographies over the years, and it's true that the things he gets full credit for had some roots in work others were doing. I know of two exceptions: the phonograph and the carbon microphone (for telephones). Both were completely original and were important innovations.
In the case of RMS, it's striking that the also has done very little original work. In fact, the whole basis of the GNU was to replicate UNIX. Now that's something to be proud of - especially when the hardest part of imitating UNIX, the kernel, was done by a kid from Finland. The only truly original major thing RMS has ever done that I'm aware of is create the GPL. That may explain why he now devotes all his energy to that single idea. Either that, or he truly believes in it. The most successful hucksters always believe in their own snake oil.
Although the GPL is original, I agree with the AC above that "free software" either isn't all that significant, or if it is, would have been invented by somebody else. ("Necessity is the mother of invention.) And even though the phonograph was original to Edison, it's hard to imagine that we would not have sound recording today if he had never been born.
I am not actually doing that, no.
For instance 'gives the author freedom' was simply taking what the poster I replied to had conceded and running with it. My contribution was not the original meme, simply reshaping it to a more appropriate shape with a bit of tongue in the cheek.
Neither license actually gives the author freedom. The license is not for the author. A license amounts to a covenant not to sue from the author - who needs mental, not legal, help if he tries to sue himself.
The BSD license gives your immediate downstream maximum freedom, including the ability to cut off freedom, refuse to offer it, to their own downstream.
The GPL license gives immediate downstream nearly the same thing, minus only the ability to cut off the freedom of their downstream.
There's very little more to it.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Friends don't let friends enable ecmascript.
I like the way you said that. That was funny.
We would have LOVED to support the standard and commit code back, but the restrictions on our own code were unsustainable
In other words, your project could not be viable without oppressing your users. Sounds like good riddance.
Give me Classic Slashdot or give me death!
so you had bad teachers. serious history books correctly assert Edison developed the first *commercially viable incandescent light*
Edison himself did invent some very useful things, directed others to refine other things, made yet other inventions a commercial success. maybe you should read about him
Yes. Because Joseph Swan didn't sell his bulbs to anyone. Not.
BSD gives the author freedom, but screws the user. (1-1=0)
If I use a BSD-licensed program how does that "screw the user"?
BSD code works much the same way, you have more freedom with the initial version but there's nothing to stop future versions offering you no freedom whatsoever.
So just use the original version or fork that original version and continue development. The BSD license does not force you to contribute everything you do back (it is your choice what and how much you contribute back), and really that's the way it should be IMHO, it should be about people collaborating because they see a benefit in doing it, not because they are forced to do it. Permissive licenses allow those who may not share the same ideology in its entirety to collaborate to at least some degree whereas restrictive licenses force their ideology and an exclusion policy like that is not productive.
RMS himself said the reason he does not like LLVM is because "all contribution to LLVM directly helps proprietary software as much as it helps us", if you don't accept his ideology in its entirety he won't help you, that is just religious extremism. It allows free and proprietary vendors to work together and RMS is directly opposed to that collaboration.
...also don't resort to argumentum ad absurdum by comparing the freedom to distribute source code to the freedom to torture and murder people, that's just silliness.
This attack vector, used by aggressive vendors who want to kill open competition, is what the GPL was intended to prevent.
Which "aggressive vendors" have done this? Even the most locked-down ones like Apple have contributed back and made their sources available, not only to the free software community but even to their direct competitors. Look at Webkit, Darwin, Clang/LLVM, CUPS, OpenSSL, etc...
But even then RMS is opposed to the very existence of LLVM just because it is a project that competes with GCC but does not share his ideology and he does not want to allow collaboration between free software and proprietary software developers which he makes quite clear and that sort of zealotry should be discouraged:
"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."
http://gcc.gnu.org/ml/gcc/2014-01/msg00247.html
comparing BSD license to child slavery seems like a fair comparison
Compare it to any violation of rights you wish. The GP's assertion that corporate profits trump rights is pants on head crazy.
Give me Classic Slashdot or give me death!
Ok but where is this actually happening? People have been raving on about this for decades in the restrictive vs permissive license debate. Restrictive cuts off collaboration with proprietary vendors and permissive relies on proprietary vendors contributing back voluntarily. There's always the anti-permissive doom-and-gloom scenarios but when have they ever actually played out like that? And even if they did you could just fork the permissive codebase to a restrictive one which would cut off the proprietary vendors and just continue on as before without that collaboration.
No...all the GPL says is that the copyright holder isn't surrendering any of his or her rights to control who is allowed to make derivative works by stipulating requirements that must be fulfilled by anyone who wants to make a derivative work. Considering that you need the original copyright holder's permission to make a derivative work anyways, it hasn't taken away any freedoms that would ordinarily have existed otherwise.
File under 'M' for 'Manic ranting'
1) the copyright holder has that right by default. not exercising it means they still have that right... they have to rather explicitly give it up to not have it.
2) As long as copyright lasts on each derivative work. Bear in mind that for absolutely *ANY* copyrighted work, you need the copyright holder's permission to make a derivative work anyways... the terms of the GPL merely state that anyone who will agree, as determined by whatever actions that they decide take, to the terms of that license will automatically be granted such permission.
File under 'M' for 'Manic ranting'
After reading carefully *all* replies in slashdot, phoronix and the list, I wanted to reply to a few topics that have shown recurrently, and are not fitting in the GCC list.
1. RMS should be worried
No, he shouldn't. This is not about mixing licenses, it's not about taking away freedoms and it's not about stealing GCC's shine. RMS's contribution to society cannot be overstated, and I don't mean to obfuscate the importance of GPL, GNU, etc. This simply has *nothing* to do with politics, or copyright, or patents.
2. Only LLVM will benefit, because GCC can already use LLVM's code
While the latter is true, it doesn't imply the former. Also, this is not about being better than GCC, it's about both toolchains being better to the users, which I'm am both. This is not about competition, but collaboration.
Some people say GCC is going to die soon, I disagree. Other people say GCC will rust a bit with all the new blood going to LLVM, that might be a bit more real, but still, highly exaggerated. In any case, GCC is not immune to the outside world. With LLVM being actively encouraged by the kernel community to be compatible, the "one true compiler" position is being slowly replaced by a "number of free/open toolchains available", and in that scenario, GCC will benefit from collaboration as much as LLVM.
I can't read the future, but if you ask me, collaboration is always better, no matter in which position you are.
3. Competition is good for both on innovation
This is true, but collaboration is *also* good. We're talking about free/open software, we can both collaborate where competition hurts our users, as well as compete for performance and new features. I'm not proposing on merging the two toolchains, that would be outright madness! Just that we agree on the size of our nuts and bolts.
4. Enforcing standards & discussions will curb innovation
Absolutely right! Every second we spend arguing is a second we don't spend coding. My idea is to have a sort of zero-cost model, where tools report *how* they do it and maybe even for what reasons, and other tools either agree on, or disagree. A discussion will only happen if there are disparate solutions AND both sides want to argue, which no one should be forced to.
This could wind up in two threads: either every one posts what they think is right and don't discuss anything, or discussion ensues, standards are proposed upstream (C++, ISO, POSIX, Dwarf, etc) and compilers implement a more sane interface and the users benefit. Either way we win, since at least we'll have some documentation. The third outcome is to no one submit anything, than, well, no one spent time anyway, so we haven't lost anything.
5. Other standards should be used instead
Indeed. But standards are slow, and for a reason, and compiler implement extensions that will become standards in the future. This is how it's always been and I don't see this moving away. If most/all free/open compilers implement a specific feature, it'll be more argument to the standard to adopt that feature.
Other bits like warnings, implementation of standard classes, data layout and things that really promote binary compatibility are toolchain specific, and if all agree, than we could *use* a mix of tools interchangeably. This is a win for all the users.
Godwin trap.
Continuing development of the original won't be terribly useful when the majority of users have moved on to the new incompatible proprietary version...
By continuing development you will have to reinvent the wheel to duplicate any changes in the proprietary version, reverse engineer to work out any incompatibilities and if you continue releasing your code under the same terms the proprietary version can always take your changes for free while you have to expend significant efforts to replicate theirs.
Plus a proprietary version is likely to have a much bigger marketing budget, and thus the lions share of end users, and with proprietary changes making it ever harder to use the original open version.
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
Continuing development of the original won't be terribly useful when the majority of users have moved on to the new incompatible proprietary version...
Why not? Aren't you developing it because you want to use it?
By continuing development you will have to reinvent the wheel to duplicate any changes in the proprietary version
If the proprietary version didn't exist you would still have to do that work to develop those features anyway.
Plus a proprietary version is likely to have a much bigger marketing budget, and thus the lions share of end users, and with proprietary changes making it ever harder to use the original open version.
Why does it matter whether that version has more users? I don't use a program because of the amount of other people that use it, I use it because it serves my needs.
If only we could always use what served our needs, and never had to interoperate with others...
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
How exactly does this preclude interoperability? Even in cases like office suites where you have proprietary products that aren't forks of a free programs (MS Office and iWork), a SaaS model in Google Docs and free options like Libre and Open Office there are people interoperating. In some cases you can end up with formatting problems but this is an extreme case where the products in question aren't even derived from the same code base at all yet allow for interoperability.
And even if the proprietary version was an incompatible fork why would people to move to a system that didn't allow them to interoperate if interoperability was important?