LLVM & GCC Compiler Developers To Begin Collaborating 279
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."
Open borders... one way? (Score:5, Interesting)
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.
Re:Open borders... one way? (Score:5, Interesting)
Well, just getting both camps into the same room from time to time would be an improvement.
Re: (Score:2)
Clearly you have never used IRC.
Re:Open borders... one way? (Score:5, Informative)
I'm pretty sure this is not about sharing code, but about collaborating on needed features via a shared spec. So both compilers implement something a standard way instead of coming up with new features independently.
Re: (Score:2)
For example?
Would GCC migrate to LLVM bytecode? What does that give us (except lack of diversity)?
Not sure what else could these two compilers have in common.
Re:Open borders... one way? (Score:5, Insightful)
For example, the pretty huge list of C and C++ extensions that both gcc and clang implement, and that are invented by the authors of said tools. It's much better that the two talk about it, and come up with one spec that both compilers implement than to have two competing standards that results in code one or other compiler can't deal with.
Re:Open borders... one way? (Score:5, Insightful)
Another thing would be to harmonize the representation of fundamental classes like std::string and std::vector, so those classes can be passed between codes compiled with both compilers, even though the implementation code for those classes might otherwise differ.
Re: (Score:2)
Re: (Score:2)
The level of micro-optimization that is required of a quality C++ standard library implementation pretty much makes it impossible - you can't use common techniques like pimpl, since that extra allocation/dereference would, in some cases, literally slash perf down in half for something designed to be really fast - ironically, both std::string and std::vector would actually qualify (think about the cost of indexing).
Re: (Score:2)
Sure, but the representation is tightly coupled to the code in this case - think small string optimization, for example. Once you define it, you may as well share the code because the optimal code for a given implementation is almost certainly going to be the same.
Re: (Score:3)
Why do they not use the same std library implementation? LLVM is a compiler, it can compile the same std library code. If the LLVM designers wanted to improve it, it was GPL with the library extension so at first glance it seems like they could have used it.
Re: (Score:2)
Yes, exactly. Practical compilers are always compelled to do extensions beyond the language spec, simply because people need to get work done. So if gcc and clang can agree on inter-operability of extensions, that is a huge help. It also is going to be influential in language spec committees when it comes time to drive some of those functions into the spec. Another area for fruitful collaboration that helps people get work done is to drive torward mix-and-match linking. Neither of the above require sha
Re:Open borders... one way? (Score:4, Insightful)
There's a boatload of stuff to agree on for better interop. The language itself (c/c++) says nothing about a lot of stuff people kind of expect these days.
Language extensions specific to compilers (e.g. __user), toolchains (e.g. llvm is working on lld, a linker, to replace the default system linker), security additions (e.g. if I build a library with gcc and specify stack protection and canaries, none of which are in the language standard, will I be able to link a clang built library and executable and actually have it work), etc.
Re: (Score:3)
llvm is working on lld, a linker, to replace the default system linker
Didn't GNU already adopt a modern linker (gold) quite recently?
Re: (Score:2)
Gold isn't default yet, but they are working on it. I very recently built it for an experiment, and presumably used the latest stable version of binutils at the time, and in that I'm pretty sure it didn't even build Gold by default and it definitely didn't install Gold as ld by default.
Re: (Score:2)
Re:Open borders... one way? (Score:5, Interesting)
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.
Re:Open borders... one way? (Score:4, Insightful)
"If I were RMS I'd be worried" (Score:3, Interesting)
However, if there are ways to help out the studio, even if he's not in the film, what's the issue?
You are not reading history. (Score:5, Insightful)
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... [gnu.org]
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.
Re: (Score:2)
On the other hand as a commercial programmer I like the fact that GCC is mature and very stable. I write for microcontrollers mostly, and don't really want major changes coming on a regular basis.
Also it seems that GCC usually produces faster executables, at least the last time I checked, so even if you do care more about performance it would seem to be the (free) compiler of choice.
Re: (Score:2)
So first, from my informal observations I think you'd find O'Caml much more commonly used than either of those for academic projects in compiler research.
Second, don't look at it from the point of view of what the researchers are writing their programs in, but rather look at what languages they're analyzing and what they're using to do it. And even though the researchers are writing in O'Caml or whatever, the programs they're interested in looking at are usually C, C++, or Java, because those are what is us
Re: (Score:2)
While C technically supports it, I'm pretty sure the number 1 GOTO language is BASIC :-)
Re: (Score:2)
Actually I believe the goto languages are Scheme and Haskell.
Nah, the GOTO language is Basic....
Re: (Score:2)
The wonderful thing about the GPL is the code doesn't just disappear when a company goes under, or decides it doesn't want to make a program anymore, or decides that some other program is more profitable, or decides to buy a competitor and halt both products and focus on their cash cow instead.
Neither does code written on a BSD-style license...
Comment removed (Score:5, Insightful)
Re: (Score:2)
The history of computer software and hardware design has been all about managing complexity in order to do more things with less people since the beginning.
As for your little tirade against the GPLv3 you have no clue about what the license changes mean. The only substantial difference is that anyone who distributes GPLv3 code *must* give the recipients a royalty free license to any patents they own that are required to be able to use that particular product. I do not think that is particularly onerous. In f
Re: (Score:3)
could you please clarify what's the problem with gplv3 in the context of gcc ?
a genuine question, i'm not aware of the details in this specific case - it's not like they host modified gcc or something...
also, fuck beta :)
Comment removed (Score:4, Insightful)
Re: (Score:3)
Of course, any code that requires a patent license to run isn't exactly free software either. And no free software project "with a brain" should accept code that opens up users to legal liability.
If companies like Apple and Google really are rejecting GPL v3 because of patent issues, that makes me think they want to use their patents against users of the software they are purporting to be "free." Are users of the LLVM compiler going to wake up one day to a lawsuit from one of these companies alleging pate
Re: (Score:2)
could you please clarify what's the problem with gplv3 in the context of gcc ?
a genuine question, i'm not aware of the details in this specific case - it's not like they host modified gcc or something...
Just as an example: Apple uses a compiler _at runtime_ to compile OpenGL and OpenCL to the hardware. They use LLVM for that. If your favourite game is running on MacOS X or iOS, and it uses OpenGL, LLVM is built into the app (or more likely into the graphics driver). _That_ isn't possible with gcc without releasing the whole graphics driver. And that's something Apple doesn't want to do.
Note that with GPL 2 license, what Apple wanted to do was fine. Now it isn't. The problem for gcc is that compiler writ
Re: (Score:3)
No that would be in complete violation of GPL
Re: (Score:2)
You want more projects like OpenDarwin, based on Apple "opening" "their" code? They closed shop after wasting a few years because Apple was just using them as unpaid labor without giving them enough to result in a useful whole, and dragging their feet even doing that.
The goose is laying golden eggs on the terms of the GPL and it's not letting itself get slaughtered like the teethless BSD goose.
Sorry, but those are two different things. It doesn't matter what the license is if all you've got is part of the code -- a GPL code fragment is no more a complete package than a BSD code fragment.
LLVM is a complete package originating in and maintained by academia. Different different different.
Re: (Score:2)
The chips, the designs...we are talking about INSANE complexity folks, it is just not something "a couple of guys banging away in their basement" is gonna be able to do. What you have to have is dozens of highly skilled, highly trained guys working on this stuff 8-12 hours a day every day...the requires funds folks, no way you can get around that.
Don't disagree that is how it is or seems now, but that is defeatist fantasy talk. There is no reason people have to play the games that corporations play. There is no reason everyone has to follow along with what our "leaders" tell us we have to do.
There is no reason we need the "latest and greatest" (full of backdoors) because that is what is selling (being shoved down everyone's throat) at the moment.
In that case, I have a C64 in my loft I can see you for $300 bucks -- guaranteed free of backdoors.
Re: (Score:2)
While theoretically GPL could subsume BSD code produced from the collaboration
Yeah, ask Theo DeRaadt [slashdot.org] about that.
Re:The GPL is like the Slashdot Beta: Unwanted! (Score:4, Interesting)
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.
Re: (Score:2)
Re:The GPL is like the Slashdot Beta: Unwanted! (Score:5, Interesting)
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.
Re: (Score:3)
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.
Re: (Score:3)
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.
Re: (Score:2)
Compare it to any violation of rights you wish. The GP's assertion that corporate profits trump rights is pants on head crazy.
Re: (Score:2)
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".
Re: (Score:2)
Re: (Score:2)
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 you
Re: (Score:2)
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"?
Re:The GPL is like the Slashdot Beta: Unwanted! (Score:4, Informative)
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.
Re: (Score:2)
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 wherea
Re: (Score:2)
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.
Re: (Score:2)
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 com
Re: (Score:2)
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 [gnu.org] 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 de
RMS needs to get over the GPL (Score:3, Insightful)
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.
Re:RMS needs to get over the GPL (Score:4, Interesting)
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.
Re:RMS needs to get over the GPL (Score:5, Interesting)
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.
Re: (Score:3)
Re: (Score:3)
Another advantage of keeping involved and contributing back is that you get to influence the direction in which the upstream project goes (if the maintainers aren't too obstinate). And through that you make better use of the work produced by people you don't have to pay. Also, contributing a patch back lets you exploit the quality assurance provided by the project, be it explicit or implicit in the fact that your patch will be used and tested in practice by a lot of more people.
I'd say it makes business sen
Re: (Score:3, Interesting)
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..
Re: (Score:2)
A BSD licensed compiler that an University of Illinois student wrote, which eventually got hired by Apple to continue working on it in order to replace the GCC compiler Apple used to use before.
Re: (Score:2, Insightful)
GPL = "You better give some something back buddy if you want to use this"
Re:RMS needs to get over the GPL (Score:5, Informative)
Actually, no. You may use GPL'd code any way you like (that's freedom 0) and share with others (freedom 2). You can likewise modify the software any way you like (freedom 1). And all this time, you need not release source code. The condition to release the source only kicks in with freedom to distribute your changes (freedom 3), so only when there is a third person involved with your derivative you have to grant them the same freedoms you've been given by the original author.
In fact, this was a problem with SaaS: You could've modified free software, and run it in the back on your servers, and say that you're simply providing a service to the end user, and since he's not getting the modified program, he doesn't get to have its source either. This is what AGPL is designed to address, and thus it's mostly used for web software. So with AGPL, as soon as you use a program, whether you have a copy, or are executing it online, you get access to the source.
Re:RMS needs to get over the GPL (Score:4, Informative)
Neither the BSD nor the GPL remove (not can they remove) the aspect that copyright requires that a person must get permission from the original copyright holder if they are creating a derivative work of something copyrighted. In that light, both the BSD and GPL licenses essentially state that everyone who adheres to the terms of the license is free to create derivative works, thereby effectively granting such permission... but still only to people who adhere to the terms of the license.
Of course, the terms of the BSD license are pretty lax in comparison to the GPL... the former being not much beyond keeping the copyright notices in header files intact, while the latter license requires that the derivative work be released under the same license.
Re: (Score:3, Interesting)
Re: (Score:2)
Sure. Ask the Wine developers why they switched from BSD to LGPL.
Re: (Score:2)
So the GPL argument that BSD is bad because the code can be taken and relicensed is bad because BSD code can be taken and relicensed? I love your logic! :D
Re:RMS needs to get over the GPL (Score:5, Interesting)
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.
Re: (Score:3, Interesting)
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 thei
Re: (Score:2)
You are trying to sell the wrong thing.
Software is not scarce, the only way to sell it like it is scarce is by artificially making it so. That is what closed source software (or like you mentioned patents) do.
Making mony with GPL licensed code is not that hard, (many others are doing it), but you have to sell the thing that is truly scarce: Your time and knowledge.
Have them pay you to make it or improve it, or sell support.
Re:RMS needs to get over the GPL (Score:5, Insightful)
Re: (Score:2)
On the contrary, that point is exactly *why* we GPL advocates advocate it. We don't want to enable companies which have no intention whatsoever to be part of the community. They're free to do everything themselves, and good luck to them. But giving them a leg up to get off the ground just so they can be selfish assholes with their ideas? Why should we? And yes, sharing your *ideas* and *implementations* is what we mean by being part of the community. If this isn't for you, then don't let the door hit you on the way out, thanks.
hm I see your point, but i don't have a problem with enabling companies to be selfish.
You only exclude the entrepreneurs by being viral. The large companies will jump in and be selfish because they already have teams they can dedicate to being selfish and rolling their own if they want. They'll just use BSD or something.
The entrepreneurs create new technologies, so excluding them just kills new smaller markets that larger companies wouldn't have entered anyways.
Maybe it's not a big deal and maybe its good w
Re: (Score:2)
But giving them a leg up to get off the ground just so they can be selfish assholes with their ideas? Why should we?
Well, that's a matter of opinion, but many of us would hold that it's better for the ecosystem as a whole if you do.
There are two fundamentally different ways to look at this (with nuances coming later):
1) The greatest good comes from allowing anyone to stand on anyone's shoulders.
2) The greatest good comes from having more people scrambling to climb on top.
Even if you think that the two can coexist, there's still the question of which you believe will lead to the greatest good and whether or not you would
Re: (Score:2)
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
Well yeah, actually, that is the point.
Re:RMS needs to get over the GPL (Score:4, Interesting)
Would they have BSD-licensed clang if there had not been the competing GPLed GCC? Who knows ...
Re: (Score:2, Insightful)
They would;t have written it in the first place if GCC hadn't gone GPLv3.
Up until that point they were distributing GCC as their main compiler with Xcode, and used it to build OS X itself.
With the arrival of GPLv3, designed to shut them (and others, like Tivo) out, they had no choice but to move away from GCC. They either had to use a pre-existing compiler (potentially expensive to licence) or write their own, hence LLVM and Clang.
Re: (Score:2)
Would they have BSD-licensed clang if there had not been the competing GPLed GCC? Who knows ...
There was no competition. Apple was a GCC user, distributor, and contributor until GPLv3. Apple never opposed open source compilers, in fact they're in favor of them because they don't have the staff on hand to write a finely optimized compiler themselves. The problem was the restrictions that would have been placed on them with GPLv3.
Re: (Score:2)
They may have released the compiler front end, they never released their Objective-C runtime library making the code worthless and hard to maintain - apple would publish their updates as required without any of the effort necessary to stay compatible with anything but their own non-GPL runtime.
Fortunately, they don't have a monopoly on Obj-C runtimes.
http://www.gnustep.org/ [gnustep.org]
http://www.cocotron.org/ [cocotron.org]
Re: (Score:2)
LLVM was not developed by Apple and is not an Apple project, so its license has nothing to do with them. And they do a have a proprietary fork of both clang and llvm that they use internally. The open source clang/llvm has much worse ARM and iOS support than the Apple version. They prefer to keep the open source version cripled rather than open source all of their improvments to it.
Re: (Score:2)
No, Chris Latner started clang while at UIUC. Apple hired him to continue.
On the flip side, there would be *no* free Objective C compiler had gcc used a non-copyleft license. Apple (well, NeXT, now better considered Apple-in-exile) tried to run around the GNU GPL but failed. They were forced to release the source, leading to gobjc. Note that gobjc has not been able to keep up with Apple's Objective C and C++ changes *because* of Apple's switch to an LLVM-based system. Also, note that previous Apple ani
Re: (Score:2)
No, Chris Latner started clang while at UIUC. Apple hired him to continue.
Totally false. Chris Lattner started LLVM while at UIUC. Apple hired him in 2005 to continue LLVM, using GCC as the front-end. Apple didn't create Clang until approximately 2 years later (open-sourced in mid-2007), as they realized GCC wasn't adequate for their needs (one particular point being GCC moving to GPL3, another being the monolithic and unweildy GCC codebase).
Re: (Score:2)
I don't know which platforms you use, but I am guessing they suck in general.
For all platforms I use gcc is just fine.
Re: (Score:2)
Re: (Score:3, Insightful)
The GPL guarantees that if you have access to the binary you have access to the source. BSD/etc do not. In other words: BSD gives you the "freedom" to restrict others freedom. That isn't something people on the free software front consider positive.
Maybe it's you who should get over the fact rms believes in free software. You're entitled to your opinion, he's entitled to his. It isn't like he's pointing a free 3D-printed gun to your face and forcing you to write GPL'd code to extend emacs.
Re: (Score:3)
It all depends on your definition of freedom. I don't believe Linux would have the diversity of corporate backing without the GPL. The GPL is what allows IBM, Google, RedHat, and other heavy weights the freedom to collaborate for mutual benefit while still being competitors. Every contributor and developer operates on an equal legal footing with the GPL. The BSD works fine for many people, and for companies, like Apple. But Apple definitely is not collaborating on core OS X proper with other companies.
Re: (Score:2)
Re: (Score:2)
The only freedom that BSD/etc have that GPL does not is the freedom to completely fuck over your users. And no, that is not a "freedom" I want you to have, you fucking dog shit.
A representative of the GPL, ladies and gentlemen.
"Anyone who doesn't like the GPL is dog shit". Pretty much sums up RMS' position succinctly at any rate.
Re: (Score:2)
Nice ad hominem. Which is usually the last resort if you have no further factual arguments. I leave the conclusion to the reader.
Exactly. I see you noticed my point, which is why I posted logged in, replying to an AC comment doing exactly what you're pointing out so succinctly.
It's not strictly an ad hominem, since I merely restated the brave AC's point. I didn't call him names or question his intelligence. Although, I did compare his argument to RMS' classic argument for the GPL, so if you think that being compared to RMS is an ad hom then my point is even more fitting.
I leave the conclusion to the reader, when taking the whole thre
Cooperation (Score:2)
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.
Re: (Score:2)
Isn't that what they chose by selecting the BSD license? t least it won't disappear into a black hole where they can't even look at the improvements like when their code gets used in a proprietary program.
Of course, since they are different code bases they would probably need their own implementation anyway.
Build compatibility (Score:5, Interesting)
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.
Re: (Score:2)
Having read TFA, this collaboration appears to be partly about build compatibility. So far, it sounds like LLVM/Clang has been imitating GCC options.
Apple used to have something called LLVM-GCC. I think it's still there so things like make, or other things that assume GCC still work, but at least in their Xcode tools they no longer support LLVM-GCC.
I hope that many others projects will do the same (Score:2)
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.
Re:Bizarre Personal Cult (Score:5, Interesting)
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.
Re: (Score:2)
It takes an extremist to shift the Overton window.
Re: (Score:2)
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
Re: (Score:2)
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
Re: (Score:2)
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
Re: (Score:2)
Yes. Because Joseph Swan didn't sell his bulbs to anyone. Not.
you stumbled on truth, have the balls to see it? (Score:2)
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?
that's funny (Score:2)
I like the way you said that. That was funny.
You are lame. (Score:2)
Re: (Score:2)
On the contrary, some purity is always needed to refresh natural atrophy.
Re: (Score:2)
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.