From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Lennart Borgman Newsgroups: gmane.emacs.devel Subject: Re: clang vs free software Date: Sun, 26 Jan 2014 13:35:34 +0100 Message-ID: References: <87fvqtg02v.fsf@flea.lifelogs.com> <52D81960.2080408@yandex.ru> <52DA8C17.4080707@yandex.ru> <52DC00E5.3020803@yandex.ru> <52DC6A26.3020003@yandex.ru> <87k3dv9z85.fsf@uwakimon.sk.tsukuba.ac.jp> <87eh439w1n.fsf@uwakimon.sk.tsukuba.ac.jp> <87ha8yqvup.fsf@engster.org> <87r47zezcc.fsf@fencepost.gnu.org> <52E448A0.6010405@dancol.org> <87a9ejb5rz.fsf@fencepost.gnu.org> <52E4FBD8.3020407@dancol.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=e89a8f3bb00f42567604f0ded6d2 X-Trace: ger.gmane.org 1390739781 9954 80.91.229.3 (26 Jan 2014 12:36:21 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 26 Jan 2014 12:36:21 +0000 (UTC) Cc: David Kastrup , Emacs-Devel devel To: Daniel Colascione Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jan 26 13:36:26 2014 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1W7Ows-00049G-H1 for ged-emacs-devel@m.gmane.org; Sun, 26 Jan 2014 13:36:26 +0100 Original-Received: from localhost ([::1]:54394 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W7Owr-0001PG-Sl for ged-emacs-devel@m.gmane.org; Sun, 26 Jan 2014 07:36:25 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44783) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W7Owm-0001P1-VG for emacs-devel@gnu.org; Sun, 26 Jan 2014 07:36:22 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W7Owl-0004Ox-9A for emacs-devel@gnu.org; Sun, 26 Jan 2014 07:36:20 -0500 Original-Received: from mail-we0-x232.google.com ([2a00:1450:400c:c03::232]:36042) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W7Owh-0004OM-Tw; Sun, 26 Jan 2014 07:36:16 -0500 Original-Received: by mail-we0-f178.google.com with SMTP id t60so4186102wes.23 for ; Sun, 26 Jan 2014 04:36:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=j6akPMkBeZpX07sxUFd5V//k1+p/V6Pch8R5Bj9E1e4=; b=PmMKG5VUfYn72GEID9JvLyIIk3e1YyWn4XMsZggerk8eFxml3zoEoDweuzARP6CDOm Su0fPkb7Zr3dx0mAqPY5xJ5ADu4oIhIUpJpbl2n1X6U/k6uanYN5edgTQ6XVftz79aia a88CyHn1juHdBozqMdnMMjzmSkQr4yVmtNb1cmYZX2Mjf8ZtyVrxptKn2S+SKQVeb+ql 1EGvLkbLur0Zm6OjuQ5XozXjOvWGHJv1MGtlFcD2nHCG4sLqNorhr/qw17I7gIW5Xecp l22U+PW+ApWiRxbxe63e8UQVXpgT4A5sfp61GmoVMp2e+iUq38LnoMfyP/UzcE/MEk20 zWmA== X-Received: by 10.180.108.130 with SMTP id hk2mr8971702wib.16.1390739774918; Sun, 26 Jan 2014 04:36:14 -0800 (PST) Original-Received: by 10.194.216.227 with HTTP; Sun, 26 Jan 2014 04:35:34 -0800 (PST) In-Reply-To: <52E4FBD8.3020407@dancol.org> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:400c:c03::232 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:169116 Archived-At: --e89a8f3bb00f42567604f0ded6d2 Content-Type: text/plain; charset=UTF-8 On Sun, Jan 26, 2014 at 1:13 PM, Daniel Colascione wrote: > On 01/25/2014 10:45 PM, David Kastrup wrote: > >> Daniel Colascione 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 --e89a8f3bb00f42567604f0ded6d2 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
On S= un, Jan 26, 2014 at 1:13 PM, Daniel Colascione <dancol@dancol.org> wrote:
On 0= 1/25/2014 10:45 PM, David Kastrup wrote:
Daniel Colascione <dancol@dancol.org> write= s:

On 01/25/2014 03:02 PM, Richard Stallman wrote:
[[[ To any NSA and FBI agents reading my email: please consider =C2=A0 =C2= =A0]]]
[[[ whether defending the US Constitution against all enemies, =C2=A0 =C2= =A0 ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]<= br>
We don't want to make a program's entire AST available for parsing<= br> 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. =C2=A0This will not serve to achieve anything but leave everybod= y
more annoyed.

The previous three paragraphs demonstrate succinctly why effort and attenti= on have shifted away from GCC and toward LLVM. The latter system provides u= tility and none of the sanctimony. It allows users to accomplish their goal= s instead of hearing complaints that their goals are politically incompatib= le with the software.

Imagine applying your stance to web browsers: you might argue that a free w= eb 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 bro= ader world.

Componentization is simply table stakes for a modern compiler suite. That t= his architecture permits interaction with non-free tools is unavoidable in = the same way that free operating systems must be able to run non-free progr= ams. Without this functionality, GCC's userbase will evaporate, and wit= hout users, GCC will become a very ineffective vehicle for advancing softwa= re 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 the= y are with a componentized Clang: at least in the former case, the individu= al components retain their copyleft character, and free solutions can compe= te on their merits in niches were non-free components exist. In an equilibr= ium 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. =C2=A0So why would i= t have
become relevant?

Do you really need the difference spelled out for you? Previously, there wa= s no free compiler of acceptable quality aside from GCC. Previously, integr= ation with external tools was less important. Now Clang and LLVM exist. The= world is much different than it was during GCC's earlier existence. = =C2=A0GCC will never again pull off another coup like the release of the Ob= jective-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 i= mpaired functionality for the sake of using copyleft software when libre so= ftware (likely with non-free but gratis extensions) exists that fulfills th= eir needs.

+1
--e89a8f3bb00f42567604f0ded6d2--