Live data from Hacker News

Extracting the abstract syntax tree from GCC

lwn.net

91–100 of 112 posts

Re: Extracting the abstract syntax tree from GCC

#91

> It took many years before the GNU Compiler Collection (GCC) changed its runtime library exemption in a way that allowed for GCC plugins, largely because of fears that companies might distribute proprietary, closed-source plugins. Am I the only one who finds it ironic that purported "free as in freedom" software is/was being held back because of fears of what someone can do with that freedom? Though once useful, the…

The one freedom the GPL doesn't have is the freedom to take the freedom away. In BSD and similar you easily can. It is the taking away of freedom that is at the crux of all this.

> In BSD and similar you easily can.

Nope. My taking BSD code and producing a proprietary, closed source product it in no way impacts someone else's freedom to do the same, nor does it remove some freedom they previously had.

Re: Extracting the abstract syntax tree from GCC

#92

Earlier quoted context omitted.

Depends on how define "freedom". I should have the "freedom" to block off my street at night, because the traffic keeps me awake. But dang society (and laws) don't let me do that! Clearly, my "freedom" is being impinged by others! Right? /s

That's not really a correct analogy though. If I take a piece of software and keep my changes to myself, it would be fair to say that I'm antisocial and selfish, but overall I have not negatively impacted anything -- I've simply refused to reciprocate the benefit I've received. That makes me a jerk, but objectively nothing bad has happened. Whereas if you were to block off your street, you're actively depriving peopl…

> If I take a piece of software and keep my changes to myself, it would be fair to say that I'm antisocial and selfish, but overall I have not negatively impacted anything -- I've simply refused to reciprocate the benefit I've received. That makes me a jerk, but objectively nothing bad has happened.

The GPL explicitly allows you to be a jerk in this way.

It just doesn't allow you to then jerk other people around by sending the software you've modified to other people without the same rights that you exercised in order to be a jerk in the first place. Because then something objectively bad would have happened.

> In this case RMS is actively refusing a feature that would be a boone (sic) for many people, because he want's to make sure it doesn't help people he dislikes.

Phrasing this emotionally ("dislikes") is weak. These are not people rms (or anyone else) "dislikes", they are people who want to remove your freedom to use software.

> That's not defending freedom, it's just being a prick.

Well no. It's preventing non-free software from being written. Which is defending freedom.

You're simply arguing for different collateral damage. rms is happy to have less software written if it prevents the production of non-free software. He's preventing harm. You're happy to have more software written but don't care if that includes software that doesn't let people use it freely. You're allowing harm.

Neither of you is being a prick, at least not in your politics.

Re: Extracting the abstract syntax tree from GCC

#95
post #21

Earlier quoted context omitted.

The fear that someone else might be "better" than you so you're intentionally going to make it impossible for them to even compete is a really dumb argument. Imagine if this was done in sports. And that seems to have been the whole intention behind this. Make sure no non-GPL backend can be used because god forbid it's better than ours. The shame!

> The fear that someone else might be "better" than you so you're intentionally going to make it impossible for them to even compete is a really dumb argument. Imagine if this was done in sports. It is done in sports. Most sports forbid you from taking drugs that enhance your performance, or are seggregated by sex in order to account for the "natural" (?) unequal distribution of muscular mass across sexes, because we…

Intel is indeed moving to LLVM for this reason and being totally transparent about it.

From https://software.intel.com/en-us/blogs/2009/05/27/why-we-cho...

--- LLVM is distributed under the Illinois Open Source License, which is nearly identical to the BSD license and is very open for use both by open-source and proprietary projects. Some other projects, such as Open64, are licensed under more restrictive licenses like the GPL, which were not compatible with our own licensing model. ---

So, what RMS feared is exactly what's happening with Clang, and he's right in terms of pushing the GPL to prevent this sort of thing.

Now, whether or not this is actually bad is another question. Personally, I think this sort of bleeding between proprietary and open source ultimately improves the ecosystem as a whole.

Re: Extracting the abstract syntax tree from GCC

#97
post #41

Earlier quoted context omitted.

Because RMS' stance has nothing to do with your productivity, and has everything to do with giving you the right to look at every single detail of GCC and make it work better for yourself. If he did open it up for a proprietary component to make its way into GCC (while avoiding the licensing terms), and it becomes mainstream, you have lost that right to view and modify the software that runs on your box, and that is…

> the right to look at every single detail of GCC and make it work better for yourself. And yet, the referenced discussion breaks down into RMS on one side and people who want to make gcc work better for themselves on the other.

By acting on his own fears RMS is hurting the project. World doesn't stop because he doesn't like something. It feels like RMS lost touch with reality. Companies that care for things impossible with gcc already use LLVM, and will continue doing so. Some don't work openly but that doesn't mean useful code won't be pushed upstream. What's relevant to all - more often than not will.

This is bad news for everyone because competition is good. I want two solid open source compilers. Look what happened with gcc error messages when Clang showed up: they were horrendous compared to what LLVM/Clang had to offer. So gcc had to catch up. But if it's impossible to compete in the race because RMS doesn't want to - everyone gets screwed. But I guess that for RMS it's a win-win situation: he'll have his proof that BSD-licensed software can kill one on GPL.

Re: Extracting the abstract syntax tree from GCC

#98
post #92

Earlier quoted context omitted.

That's not really a correct analogy though. If I take a piece of software and keep my changes to myself, it would be fair to say that I'm antisocial and selfish, but overall I have not negatively impacted anything -- I've simply refused to reciprocate the benefit I've received. That makes me a jerk, but objectively nothing bad has happened. Whereas if you were to block off your street, you're actively depriving peopl…

> If I take a piece of software and keep my changes to myself, it would be fair to say that I'm antisocial and selfish, but overall I have not negatively impacted anything -- I've simply refused to reciprocate the benefit I've received. That makes me a jerk, but objectively nothing bad has happened. The GPL explicitly allows you to be a jerk in this way. It just doesn't allow you to then jerk other people around by s…

> Phrasing this emotionally ("dislikes") is weak. These are not people rms (or anyone else) "dislikes", they are people who want to remove your freedom to use software.

How is disallowing a feature for political reasons any different than this? This is a useful feature that he's refusing, that people want, because it might help out the bad guys. He's basically willing to screw over his customers (the users), to make a point.

> You're happy to have more software written but don't care if that includes software that doesn't let people use it freely. You're allowing harm.

Lol. I make software. I want people to use it, and I want to make money for my efforts. I have zero interests in their politics. To me, that's freedom. If that's "allowing harm" I will happily do it.

Let me give some credentials here. I make a plugin for unity 3d. I sell it. It's not my day job, but I do make some money from it. When I sell it, I also include the source code, because I realize that developers are sometimes going to need to customize this product for their own needs. Even if they distribute what they do (which I hope they do! That's the point right?), I don't ask that they contribute their changes back, because that was their blood sweat and tears and they already paid their due (IE, the price of the product). Good for them. I'd be incredibly appreciative if they contributed their changes back, but they already paid their due, so I ask nothing of them. To me, although this particular thing is not the BSD license, I feel like it's in the spirit of that. "Here's some code, contribute back if you can". The GPL license on the other hand seems pretty un-inclusive. It's basically like, "here's some software... You can use it I guess but we mostly meant this for people that follow our cause..." The entire thing seems incredibly political, which makes me uninterested since I don't subscribe to their cause for various reasons.

Re: Extracting the abstract syntax tree from GCC

#99

Its hard for me to come up with a way in which this is not RMS advocating restricting the freedom of users of GCC. If he is so opposed to proprietary software using GCC output why not use a license that prohibits that? Its not even too late for new versions since the FSF owns the copyright to all GCC code.

> why not use a license that prohibits that He is opposed to proprietary software using his code which he gave to the world on the condition that it, and derivative work, remains open for its users to view and modify. The work belongs to the FSF, so it's ultimately their decision what happens with it, in pursuit of the goal of software which you can legally inspect and modify for yourself.

Yes, but is he throwing the baby out with the bathwater here? Does crippling GCC in this aspect make using alternate toolchains more palatable, as they expose the interfaces needed to do the decently complicated actions a lot of modern developers count on. If people abandon gcc because of restrictions like this, is the FSF really acting in its own best interest?

Re: Extracting the abstract syntax tree from GCC

#100
post #80

Earlier quoted context omitted.

Defective by Design is a FSF commentary about about how you should be able to use digital media in the same ways you would use physical media. They say nothing about the existing limits on your ability to re-distribute software or media (in fact, the FSF and GPL depend on copyright protections).

But it sure sounds to me like the shoe fits. Enough that GCC is now existentially threatened by LLVM. ADDED: and I believe this is ~95% because of RMS's stewardship of the project (which already semi-died and was replaced by a fork), not the GPL, which is not a bad fit for a complete work like a compiler.

Would Apple's desire not to use the GPLv3, and subsequent funding of LLVM be related to RMS' actions?
Post reply on HN