Live data from Hacker News

Clang and FSF's strategy

gcc.gnu.org

91–100 of 143 posts

Re: Clang and FSF's strategy

#91

esr seems to conflate technical differences with political issues here. clang is not superior in some areas because it isn't GPL'd. It's because it is a newer project with more resources and different priorities. Sure, it attracted some developers who didn't like gcc's and the FSF's policies, but so do all kinds of crappy proprietary products. The point is, gcc doesn't need to relax its policies to better compete wit…

Does GCC need to compete with clang at all? What's that mean exactly? Other than in terms of compile speed, it just seems like most modern compilers sort of reach some level of maturity and you really have to fabricate benchmarks to demonstrate that interesting of a difference between them.

ESR is just trolling. What his bug is, I don't know. Seems like he's dancing around something that might be interesting and more inline with the social observation that he's a little better at. I assert that GCC doesn't actually compete and doesn't need to compete. It just has to be available and it simply has to have hackers that are willing to work on it for the principle. Let's just assume that clang takes over the world, consistently produced better code than GCC, etc.. What exactly does that matter to GCC? Presumably hackers will stop working on GCC, but guile, hurd, and numerous other GNU projects show that that isn't always the case. I think that as long as GNU exists and they have some money and fans, there will be GCC contributors. Is there some other fear of what will happen if people use a different tool chain? Conversely, BSD has depended upon GCC for decades and I'm not convinced that that has affected it in any way and their switch to clang I suspect isn't going to radially alter things either. If we go back a week or two, I don't know that emacs' choice of revision control software makes any difference to its use, it may have some amount of impact on people contributing to it but I don't think that is clear cut either, there are A LOT of emacs contributions that aren't in the main tree... Also these projects don't want 'drive by' contributions, they want actively involved supporters.

Seems like he's dancing around some social observations that he wants to be true but can't prove or they might not be true. People hack on stuff because they have an itch, that itch might be technical need, it might be some sense of aesthetic that they think isn't being answered, it could also be related to something like freedom. When do other factors outweigh the itch? Now maybe GCC is GNU's most important software asset and there is some larger social thing ESR is worried about or has observed.

Re: Clang and FSF's strategy

#92
post #26

As other's have noted, GCC has a plugin system (and not a [edit:stable] external interface) -- so that extensions/tools (plugins) will have to link to GCC, and be covered by the GPL. This is similar to how the Linux kernel tries to limit binary drivers, by explicitly not having a stable ABI (although, in the case of the Linux kernel I think it is also a case of "we don't want the burden of maintaining an outdated, in…

As far as I know the LLVM tools (and it's not just clang there are others as well like clang-analyzer and lldb) that come with XCode are just binaries of the open source project. If there are any differences I haven't noticed them and I've built and used LLVM tools from source builds as well as Apple's binaries.

Since Apple has so much influence over the project they can simply get the changes they want into the project so that diminishes their need for their own changes.

The things they want to hold back almost entirely go into XCode's IDE. For instance XCode's IDE has a very nice visualization for the clang-analyzer. The visualization is just using the output from the open source analyzer. You can even replace the clang-analyzer with a newer version and use it from XCode. By keeping the visualization implementation in XCode itself they can maintain an advantage for their platform.

I'd say that this just proves his point since Apple has chosen not to produce a proprietary compiler and instead to contribute to LLVM.

Re: Clang and FSF's strategy

#93
post #68

Earlier quoted context omitted.

You are the one conflating the technical and political. This has little to do with licenses. GCC is written poorly on purpose in order to make it difficult to work with gcc. They do not want gcc to be used as a typical unix tool, doing some task and then having the output piped to some other tool to do some other task. They want you to have to directly extend gcc to add whatever functionality you want, this way you w…

> GCC is written poorly on purpose in order to make it difficult to work with gcc That's a strange conspiracy theory that has been posted here several times and debunked as well. It seems particularly odd to me because when I worked at a university 15 years ago, everyone in the compiler research world would occasionally hack on gcc to add features, retarget it, add optimizations etc. ... It didn't seem prohibitively…

It's not a conspiracy theory. Could you point to the 'debunking' because I don't see one that contains any actual evidence?. There are lots and lots of public mailing list posts by RMS and other GCC engineers explaining their reasoning for not making GCC more modular. The reasons were political.

For example RMS vetoed the first attempts to add support for Java bytecode to GCC because he thought it would allow people to interact with GCC from other non-free software: http://gcc.gnu.org/ml/gcc/2001-02/msg00895.html

That same reasoning is why there is no GCC equivalent to LLVM IR or libclang or libtooling.

https://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00...

Part of the reason why clang/llvm weakens our commnity, compared with GCC, is that the clang front ends can feed their data to nonfree tools.

There are some links in this wiki page that cover some of the arguments made against adding support for plugins to GCC. http://gcc.gnu.org/wiki/GCC_Plugins under 'Potential disadvantages of supporting a plugin architecture in GCC'

Here is a post from a GCC maintainer explaining that RMS was personally blocking the inclusion of this much desired basic functionality for political reasons: http://gcc.gnu.org/ml/gcc/2007-11/msg00193.html

> Is there any progress in the gcc-plugin project ?

Non-technical holdups. RMS is worried that this will make it too easy to integrate proprietary code directly with GCC.

Re: Clang and FSF's strategy

#94
post #26

As other's have noted, GCC has a plugin system (and not a [edit:stable] external interface) -- so that extensions/tools (plugins) will have to link to GCC, and be covered by the GPL. This is similar to how the Linux kernel tries to limit binary drivers, by explicitly not having a stable ABI (although, in the case of the Linux kernel I think it is also a case of "we don't want the burden of maintaining an outdated, in…

Why not just write the license in such a way that linking against the stable ABI requires your code to also be GPL licensed? Is there a legal reason why the requirement can only apply to the original source code and not the compiled source code? Don't the "proprietary binary" people exert some kind of license over their proprietary binaries? And why can't the Linux Kernel have a versioned ABI? I don't know enough abo…

> Why not just write the license in such a way that linking against the stable ABI requires your code to also be GPL licensed?

Well, for one thing, its dubious than ABI's are copyrightable (for much the same reasons as that is true for API's, see Oracle v. Google), so work derived from an existing products ABI quite likely doesn't need a copyright license, so therefore is unlikely to be effectively restrictable by way of a gratuitous copyright license.

Re: Clang and FSF's strategy

#95
post #31

I found the counter-argument made in the first reply to be more compelling. http://gcc.gnu.org/ml/gcc/2014-01/msg00178.html Whether you agree with the FSF or not, their whole existence stems from their beliefs about software freedom. If they compromise their principles in exchange for 'market share', then they quite literally have no purpose.

Correct. Don't forget one of the most striking differences between free software vs open source software is the promotion of a community of people who add to the public knowledge of software engineering, not merely to make better software artifacts. If you had to choose, which would you foster? An individual truth or a community of truth seekers? FSF is clearly about the latter.

I guess I see it a bit different and GCC is a pretty good example.

LLVM and clang can be used in pretty much any project. They have provided every developer tools to use in anyway we wish. GCC's parts cannot be included in other projects because they are licensed in such a way that tells us that the GCC code is more important than the code we are using. Why does a 1,000 line GPL count for more than 100,000 lines of some other license?

I think the best community is a voluntary one, and with security the way it is, I would rather developers who don't want to be part of the community benefit from the code just as I like the idea of everyone (who can) being vaccinated.

GPL generates a self-selected community that has barriers to participation with other communities because the GPL code is held as more important than the rest.

Re: Clang and FSF's strategy

#96
post #82
post #75

Earlier quoted context omitted.

All of the fancy static analysis that Xcode does is completely tied to clang, for example. Xcode doesn't do static analysis; Clang/LLVM does, and it's perfectly possible to do it from the command line, or embed it in other tools. (This is an example of the difference between LLVM's modular library architecture and GCC plugins — LLVM doesn't insist on being ‘on top’.)

So it is easily replaceable? You could easily tell xcode to use gcc if gcc supported the same kind of static analysis? How would you do this?

Yes it's replaceable. I've used it with newer builds from the open source project. They even provide binaries and instructions: http://clang-analyzer.llvm.org/xcode.html

If by replaceable you mean using some other analyzer, I'd say it's not easily replaceable but if you can produce an analyzer that produces similar output and that's has the same options, then sure. clang in fact did that sort of thing with their gcc driver.

Re: Clang and FSF's strategy

#97
post #31

I found the counter-argument made in the first reply to be more compelling. http://gcc.gnu.org/ml/gcc/2014-01/msg00178.html Whether you agree with the FSF or not, their whole existence stems from their beliefs about software freedom. If they compromise their principles in exchange for 'market share', then they quite literally have no purpose.

Correct. Don't forget one of the most striking differences between free software vs open source software is the promotion of a community of people who add to the public knowledge of software engineering, not merely to make better software artifacts. If you had to choose, which would you foster? An individual truth or a community of truth seekers? FSF is clearly about the latter.

> Don't forget one of the most striking differences between free software vs open source software is the promotion of a community of people who add to the public knowledge of software engineering, not merely to make better software artifacts.

Even if that is a real ideological division between the two, pragmatically I think that the permissive licenses that the FSF argues are less than ideal have done more after the initial demonstration of the value of F/OSS to promote a community of people who add to the public knowledge of software engineering than have copyleft licenses.

I think the divide over licensing approaches is as much over differing views of effective tactics and the real conditions in the environment as it is about differing views of values and strategic goals, and that permissive vs. copyleft is the real current divide more than free software vs. open source, and that, over time, the permissive side is gaining ground for reasons that have nothing to do with the main cited ideological differences between the open source and free software camps.

Re: Clang and FSF's strategy

#98
post #88
post #85

Earlier quoted context omitted.

I don't work for Apple and have never seen Xcode source, but my guess (based on what I would do) would be that Xcode invokes Clang/LLVM as libraries rather than a standalone binary, in order to keep persistent state. In principle GCC could present such an interface, but in practice FSF policies prevent it. The point is that the static analysis can be used directly or by other tools (there is a web interface, for inst…

So... it's not apparently possible without modifying the source code. So like I said originally, what Xcode is using for static analysis is apparently Apple's choice, not yours nor mine.

Yes; what's the point? Nobody's making you use Xcode (I don't), and nobody's stopping you using the Clang/LLVM features like static analysis outside of Xcode. If you want, you're free to call clang's static analysis from GNUstep's Xcode clone¹ (assuming GNUstep's license allows that; LLVM's certainly does), or any other IDE or editor.

¹https://github.com/gnustep/gnustep-xcode

Re: Clang and FSF's strategy

#99
post #3

Sounds like the open source vs free software debate all over again. I don't have a strong position in that one, but I find GCC's position rather obvious: They want to support free tools, and they explicitly don't want to support proprietary tools. I cannot believe that this isn't obvious to esr, of all people. Is this just him trying to start a flame war? edit: I'm now aware that esr is not talking about license rest…

GCC's position [is] rather obvious: They want to support free tools I don't have a strong position either, but unless you work for the FSF in their PR department, software developers should really be stating the FSF's position accurately, which is: The Free Software Foundation only want to promote free^H^H^H^HFree Software Foundation-licensed tools, primarily tools that use its GPL license. To the FSF, "free" is just…

> To the FSF, "free" is just a shorthand way of saying "Free Software Foundation-licensed".

Not entirely true; the FSF recognizes lots of other licenses as "free".

Its true that the FSF thinks that its licenses are the most appropriate for promoting software freedom.

I think they're wrong: if you can convince people that Free Software has value, you don't need a copyleft license forcing them to give back, and if you can't convince them of that, a copyleft license doesn't help you get them to create free software, it just prevents them from engaging with it at all, gets them to commit to an alternative, and makes them less likely to to commit back even if they later realize a value in Free (since if they commit to a non-Free third-party alternative, the cost of switching it out is higher.)

Re: Clang and FSF's strategy

#100
post #68

Earlier quoted context omitted.

You are the one conflating the technical and political. This has little to do with licenses. GCC is written poorly on purpose in order to make it difficult to work with gcc. They do not want gcc to be used as a typical unix tool, doing some task and then having the output piped to some other tool to do some other task. They want you to have to directly extend gcc to add whatever functionality you want, this way you w…

> GCC is written poorly on purpose in order to make it difficult to work with gcc That's a strange conspiracy theory that has been posted here several times and debunked as well. It seems particularly odd to me because when I worked at a university 15 years ago, everyone in the compiler research world would occasionally hack on gcc to add features, retarget it, add optimizations etc. ... It didn't seem prohibitively…

Why would you post an outright lie like that? Anyone can read the discussion and see multiple mailing list postings from RMS himself confirming the "conspiracy theory" is in fact reality. Quite an odd concept of debunking.
Post reply on HN