emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: clang vs free software


From: Lennart Borgman
Subject: Re: clang vs free software
Date: Sun, 26 Jan 2014 13:35:34 +0100

On Sun, Jan 26, 2014 at 1:13 PM, Daniel Colascione <address@hidden> wrote:
On 01/25/2014 10:45 PM, David Kastrup wrote:
Daniel Colascione <address@hidden> writes:

On 01/25/2014 03:02 PM, Richard Stallman wrote:
[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

We don't want to make a program's entire AST available for parsing
because that would make it easy to extend GCC with proprietary
programs.

It would also have made it easy to add modern features to Emacs and
other free editors. Symbol table information is flatly inadequate
given that in modern languages, typing information is highly
contextual.

Users will adopt tools that provide these features when FSF programs
support these features or not. If you keep these features out of GCC,
users will go to Clang. If you keep Clang integration out of Emacs,
users will either maintain out-of-tree integration or (eventually)
just fork Emacs, as the various starter-kit packages have already
essentially done.

It has been explained to you what the rationale behind making GCC
unsuitable as a black box component of parsing solutions is: there is no
point in licensing GCC under the GPL if we pull the basic teeth the GPL
has by allowing integration into a larger whole without having to obey
the GPL.

An adequate reaction to that would be to see what technical
possibilities there are for making GCC support the use cases you have in
mind without throwing it wide open, rendering its licensing choice
useless.

Instead, you ignore the reasons you have been given and choose to throw
a tantrum.  This will not serve to achieve anything but leave everybody
more annoyed.

The previous three paragraphs demonstrate succinctly why effort and attention have shifted away from GCC and toward LLVM. The latter system provides utility and none of the sanctimony. It allows users to accomplish their goals instead of hearing complaints that their goals are politically incompatible with the software.

Imagine applying your stance to web browsers: you might argue that a free web browser would be pointless if it allows users to run non-free _javascript_ and subvert the GPL --- now strip the _javascript_ interpreter from Firefox and see how much good that effort does users, software freedom, and the broader world.

Componentization is simply table stakes for a modern compiler suite. That this architecture permits interaction with non-free tools is unavoidable in the same way that free operating systems must be able to run non-free programs. Without this functionality, GCC's userbase will evaporate, and without users, GCC will become a very ineffective vehicle for advancing software freedom.

I hope that the GCC leadership comes to its senses here, because you're right about the component model encouraging the development of a non-free ecosystem. But users are still better off with a componentized GCC than they are with a componentized Clang: at least in the former case, the individual components retain their copyleft character, and free solutions can compete on their merits in niches were non-free components exist. In an equilibrium in which a permissively licensed compiler dominates, non-free software can simply appropriate from all components at will.

At the present rate, though, you might as well just add, on top of the GCC README, "look at my influence, ye mighty, and despair!".


Free software is great, but if nobody uses it, the entire enterprise
is futile, sad, and ultimately irrelevant.

That's exactly the situation GCC has started with.  So why would it have
become relevant?

Do you really need the difference spelled out for you? Previously, there was no free compiler of acceptable quality aside from GCC. Previously, integration with external tools was less important. Now Clang and LLVM exist. The world is much different than it was during GCC's earlier existence.  GCC will never again pull off another coup like the release of the Objective-C compiler.


How will the world be a better place when almost every every free
operating system and free development environment is based on Clang
and explicitly non-free derivatives are rampant?

Because there will still be a free software solution available without
the need to hope that everybody will be playing nice when extending it.

Will there be? If your "solution" doesn't actually meet user needs, it's not a solution. Users won't put up with significantly impaired functionality for the sake of using copyleft software when libre software (likely with non-free but gratis extensions) exists that fulfills their needs.

+1

reply via email to

[Prev in Thread] Current Thread [Next in Thread]