7 ms·
>as Apple refused to continue work on gcc due to the licensing changes This. As stated in the accepted answer in the linked article, licensing issues are the r
by aspensmonster 13y ago
>as Apple refused to continue work on gcc due to the licensing changes
This. As stated in the accepted answer in the linked article, licensing issues are the real reason. Technical differences are ephemeral. The competition between GCC and LLVM has a habit of inducing improvments in both projects. By all means, at any given point in time one project can have an edge over another in this niche or that edge case. But fundamentally this is a philosophical divide between Free Software and Open Source Software.
- JoshTriplett 13y agoThis is a licensing debate, but please don't conflate that with a divide between "Free Software" and "Open Source". Both GCC and LLVM/clang qualify as both Free Software and Open Source software. Both terms encompass both copyleft and non-copyleft (all-permissive) licensing. GCC uses a copyleft license; LLVM/clang uses an all-permissive license. FreeBSD prefers to avoid dependencies on copyleft code, especially in their core; thus, they naturally prefer LLVM/clang.
- aspensmonster 13y agoApologies. That is a better comparison: A divide between copyleft licensing and permissive licensing.
- foobarbazqux 13y agoThen again, copyleft licensing is idiomatic of free software, and permissive licensing is idiomatic of open source software. This essay covers the essential differences: http://www.linfo.org/open_source.html http://www.linfo.org/open_source.html
- air 13y agoThat's a very misleading essay. "It is that, whereas free software is always also open source, open source software does not necessarily have to be free software. That is, software can be open source without granting its users the additional freedoms that free software guarantees." This is incorrect, and the example given was incorrect. The terms are identical in meaning. Open source was coined to be a trademark for free software.
- foobarbazqux 13y agoIf I give you Tivoized BSD code, this is open source but not free software, at least since GPLv3.
- air 13y agoFirst of all, creating a new free software license does not alter the freeness of any software/license. GPLv3 incompatibility does not make software non-free, otherwise Linux kernel would not be free anymore. Second, the Tivoised BSD code is free software. The fact that a piece of hardware exists that refuses to run a modified version of some BSD licensed code, does not make the code non-free.
- foobarbazqux 13y agoWell, I'm going to take the FSF as the authority on what freedom means with respect to software, since it's their term. They clearly view GPLv2 code as less free than GPLv3. https://www.gnu.org/licenses/rms-why-gplv3.html https://www.gnu.org/licenses/rms-why-gplv3.html Quoting the relevant bits about tivoization: > The manufacturers of these computers take advantage of the freedom that free software provides, but they don't let you do likewise... Freedom means you control what your software does, not merely that you can beg or threaten someone else who decides for you.
- air 13y agoI don't think this thread is worth continuing. - GPLv2 is free software https://www.gnu.org/licenses/license-list.html#GPLv2 https://www.gnu.org/licenses/license-list.html#GPLv2 - If I take the Linux kernel 3.10.6 and create a piece of hardware that refuses to boot up any other version, Linux kernel 3.10.6 is still free software.
- foobarbazqux 13y agoThe FSF defines freedom in terms of the four freedoms: use, modify, copy, distribute. When people started abusing the GPLv2 in ways they didn't think about, they came out with the GPLv3 to protect these freedoms. I think your argument is really with the FSF. There was no shortage of drama when Linus refused to upgrade the Linux license to GPLv3. Tivoization removes the freedom to modify your software (and still have it run). Again, quoting the FSF about tivoization: https://www.gnu.org/philosophy/free-sw.html https://www.gnu.org/philosophy/free-sw.html > Freedom 1 includes the freedom to use your changed version in place of the original. If the program is delivered in a product designed to run someone else's modified versions but refuse to run yours — a practice known as “tivoization” or “lockdown”, or (in its practitioners' perverse terminology) as “secure boot” — freedom 1 becomes a theoretical fiction rather than a practical freedom. This is not sufficient. In other words, these binaries are not free software even if the source code they are compiled from is free. I don't know what else to say. The FSF writes, "these binaries are not free software". They're referring to Tivoized Linux binaries. They get to make up the rules here. That includes changing their mind about freedom such that something that was formerly totally free is now less free. FWIW, I'm not advocating for or against GPL software.
- ajross 13y agoNo, it's really not in anything but an inaccurate tribal sense. The FSF has recognized BSD/MIT-style licenses as "free software" since before the Free Software Definition was published. The Open Source Definition recognized copyleft licenses in its very first drafts too. What you're thinking about is the fact that the "Open Source Movement" (and its formalization in OSI) were created largely to decouple the FSF (really RMS specifically) from the broader movement and remove his status as a default evangelist. Whether this is a good or bad idea is a flame war for another day (and it's been had more times than needed over the past 15 years), but it has absolutely nothing to do with the content of the licenses.
- foobarbazqux 13y agoI did mean the tribal sense, yes. It's more likely that someone talking about free software is a proponent of copyleft, and someone talking about open source software is a proponent of permissive licensing. Then again, there is open source code out there that is not free (in the RMS / FSF "four freedoms" sense) due to patents, tivoization, and the absence of a requirement that end users get access to modifications, e.g. you can run a website with open source software but I'm not guaranteed access to your changes.
- cperciva 13y agoThis is a licensing debate, but please don't conflate that with a divide between "Free Software" and "Open Source". Personally I'd call it a divide between "Free" Software and Free Software. The GPL's style of bringing freedom to the world reminds me of Operation Iraqi Freedom...
- mpyne 13y agoWell the GPL technique is used elsewhere, in far more places that OIF... For instance, there are laws constraining doctors from releasing sensitive medical information about persons for the greater good of society at large (since people should therefore not have to worry about their doctor leaking news of their embarrassing disease they are being treated for). Something as simple as everyone paying taxes to provide for things such as air quality testing so we don't end up like Beijing are another example, along with mandating carbon controls so that we can at least try to arrest runaway greenhouse effect that would cause global warming down the road. Sometimes long-term freedom does require constraint on permissible action. Sometimes it doesn't. But it's not sporting to compare someone who tries the former route to invading a country IMHO, even if you personally feel the latter is better.
- dfc 13y ago> Sometimes long-term freedom does require constraint on permissible action. mpyne nailed it. If anyone is looking for further discussion of this concept check out "Social Contract Theory."[1][2] [1] https://en.wikipedia.org/wiki/Social_contract https://en.wikipedia.org/wiki/Social_contract [2] http://www.iep.utm.edu/soc-cont/ http://www.iep.utm.edu/soc-cont/ Sidebar: It doesn't hurt that you get to say cheeky things like "Before the GPL life was nasty, brutish and short."
- cperciva 13y agoBefore the GPL life was nasty, brutish and short. ... never mind that GNU was around for 6 years, and BSD was around for 12 years before the GPL was published.
- pydave 13y ago> Both terms encompass both copyleft and non-copyleft (all-permissive) licensing. Then what's the difference between the two terms? I've always thought that they were quite different (RMS vs ESR). Especially when capitalized as pronouns. Edit: Nevermind. I missed ajross's response.
- JoshTriplett 13y agoThere are two answers to that. The more relevant one for the current discussion: people who use and identify with the term "Free Software" generally care about software freedom as a valuable principle independent of its practical benefits (in other words, software should be free because it's wrong to restrict developers' ability to use, copy, modify, and distribute it), while people who use and identify with the term "Open Source" generally care most about the practical benefits (software should be open because that's the most effective and efficient way to produce software). There's a great deal of overlap between those two communities, but in general those two terms imply a different set of underlying principles held by the speaker. People who want to be all-inclusive sometimes say "Free and Open Source Software" or FOSS. The origins of that distinction come from the original creation of the term "Open Source", often described as a marketing campaign for Free Software: the term often helps win over people (and businesses) who are unconvinced by software freedom as a principle but highly convinced by the effectiveness of Open Source as a software development model. In terms of literal definition, Free Software is defined by the Free Software Foundation's "four freedoms" (https://www.gnu.org/philosophy/free-sw.html https://www.gnu.org/philosophy/free-sw.html): use/run, study/modify, redistribute, and redistribute modified versions. Open Source is defined by the Open Source Initiative's Open Source Definition (http://opensource.org/osd http://opensource.org/osd), which in turn was derived from the Debian project's "Debian Free Software Guidelines" (DFSG, http://www.debian.org/social_contract http://www.debian.org/social_contract). In practice, almost every license that passes one definition passes the other; it's exceedingly rare to find a license that's actually Open Source but not Free Software or vice versa. Also worth noting: both terms are unfortunately ambiguous, in that "free software" (especially when not capitalized) can be confused with software available for no fee, and "open source" can be confused with software with source available but not under an Open Source license.
- jevinskie 13y ago> Technical differences are ephemeral. Hardly the case when you want to extend/embed your compiler frontend/backend. In this case, LLVM/Clang shine. They are written in fairly clean and comprehensible C++ libraries. Most CLI tools are well under 1k lines! GCC is a real pain to even comprehend, let alone extend/embed!
- belorn 13y agoClang only support a subset of the features that GCC has, so it is naturally easier to comprehend. Reading the user manual, more "tricky" GCC extensions is intentionally not implemented because they would be too hard to implement. If you think this is good/bad for Clang/GCC, depend if you ever used said features, or if one prefer a smaller compiler which has less features.
- chongli 13y agoIt's not really more/less features so much as it is a tradeoff. LLVM is extremely powerful in that it lets you write front-ends for many different languages without worrying about the complexities of native code gen. Likewise, it lets you write backends for other target platforms (i.e. JavaScript), allowing you to gain the ability to port those languages to new platforms easily. Thirdly, you can write optimizers for LLVM's intermediate representation and gain the benefit across most/all front-end languages and back-end platforms. GCC, on the other hand, seems to have a much narrower focus but with a lot more optimizations and weird extensions.
- statusgraph 13y agoThis is exactly GCC's architecture as well, where front-ends are transpiled into a generic language, which is then compiled into native code for a given platform.
- cperciva 13y agoThat's how GCC works internally, but neither the front-ends nor the back-ends are available to use individually. Indeed, RMS specifically avoided having a flexible architecture similar to llvm, because he was afraid such flexibility would be used for non-GPL "plugins".
- saurik 13y ago(Right. I think we are in agreement, but to be very clear for others who might only read these comments: the accepted answer is from where I quoted the "most notable" technical benefit.)