From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: David Kastrup Newsgroups: gmane.emacs.devel Subject: Re: Contributing LLVM.org patches to gud.el Date: Thu, 12 Feb 2015 11:28:58 +0100 Message-ID: <87k2znpgnp.fsf@fencepost.gnu.org> References: <87mw4rxkzv.fsf@fencepost.gnu.org> <20150208001527.GA30292@thyrsus.com> <20150209150411.1f0f4e4f@jabberwock.cb.piermont.com> <20150211111722.181a2201@jabberwock.cb.piermont.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1423736962 10139 80.91.229.3 (12 Feb 2015 10:29:22 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 12 Feb 2015 10:29:22 +0000 (UTC) Cc: esr@thyrsus.com, emacs-devel@gnu.org, monnier@iro.umontreal.ca, slewsys@gmail.com, "Perry E. Metzger" To: Richard Stallman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Feb 12 11:29:17 2015 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 1YLr1J-0008Fe-Be for ged-emacs-devel@m.gmane.org; Thu, 12 Feb 2015 11:29:17 +0100 Original-Received: from localhost ([::1]:49449 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YLr1I-0007cs-I1 for ged-emacs-devel@m.gmane.org; Thu, 12 Feb 2015 05:29:16 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:48009) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YLr1E-0007cR-Jl for emacs-devel@gnu.org; Thu, 12 Feb 2015 05:29:13 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YLr1A-00076i-6t for emacs-devel@gnu.org; Thu, 12 Feb 2015 05:29:12 -0500 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:46835) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YLr1A-00076e-3C for emacs-devel@gnu.org; Thu, 12 Feb 2015 05:29:08 -0500 Original-Received: from localhost ([127.0.0.1]:54008 helo=lola) by fencepost.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YLr11-0000DV-CV; Thu, 12 Feb 2015 05:28:59 -0500 Original-Received: by lola (Postfix, from userid 1000) id E7FA4E0D89; Thu, 12 Feb 2015 11:28:58 +0100 (CET) In-Reply-To: (Richard Stallman's message of "Wed, 11 Feb 2015 18:13:32 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::e 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:182942 Archived-At: Richard Stallman writes: > [[[ 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. ]]] > > You said > > > The distinction here, of course, is that LLVM does not *require* that > > you link the components together, or indeed, that you use them as > > a compiler at all. > > and then you said > > > I am afraid that I'm having trouble seeing what the ultimate > > distinction is -- again, LLVM all links together too. > > However, from what you said above, LLVM doesn't NECESSARILY all link > together. That is the point. Depending on the definition of "linking". The LLVM project is, in a way, a collection of compiler utilities, just like we have GNU textutils and GNU dirutils (which are now combined into something). The copyright from cat has no hold over the distribution of tac. In a similar vein, the copyright of Bison has no hold over the distribution of Flex, and yet we do not consider Flex an attack on GNU. > Anyway, LLVM is just for comparison. Since it is not copylefted, > how its parts relate to each other does not affect anything. > The issue applies to GCC. > > It is good for the parts of GCC to be modular. And it is fine for > these modules to be able to link with other programs, too. > > What I am worried about is for these modules to be used with nonfree > programs by NOT linking them together. That that would lead > to proprietary use which ultimately is bad for users' freedom. > > I prioritize users' freedom above technical merit, and that's why I > wrote GCC. If not for that, I wouldn't have had to write a C compiler > at all -- I could have used one of the proprietary ones. Those compilers were not free. Prioritizing users' freedom above technical merit did not force us to rewrite the non-copylefted X Window System, or to rewrite the non-copylefted Flex (which I believe to be still used for generating part of GCC). It did not force us to replace TeX which Texinfo, the GNU documentation system, uses for generating all of its printed manuals. Let me quote from the GNU Manifesto, from the section "Some Easily Rebutted Objections to GNU's Goals": =E2=80=9CCompetition makes things get done better.=E2=80=9D The paradigm of competition is a race: by rewarding the winner, we encourage everyone to run faster. When capitalism really works this way, it does a good job; but its defenders are wrong in assuming it always works this way. If the runners forget why the reward is offered and become intent on winning, no matter how, they may find other strategies=E2=80=94such as, attacking other runners. If the runners get into a fist fight, they will all finish late. Proprietary and secret software is the moral equivalent of runners in a fist fight. Sad to say, the only referee we've got does not seem to object to fights; he just regulates them (=E2=80=9CFor every ten yards you run, you can fire one shot=E2=80=9D). He really ought to break them up, and penalize runners for even trying to fight. At the current point of time, I see us getting into fist fights with other free software. Clang/LLVM do not exist because Apple wants to damage GCC: the initial Clang code was offered by its author working at Apple for inclusion into GCC in 2005. Of course, this would have included the respective copyright assignments. This contribution was rejected. Not even on philosophical grounds, but rather mostly because of technical reasons that have by now become irrelevant. The reason Clang/LLVM thrived even without GCC is because it met technical needs that GCC was not able to cater for satisfactorily. These reasons were initially rooted in the history and code base of GCC. However, in the last decade they have increasingly become political, focused on avoiding the reuse of GCC for things not planned by its developers and/or copyright owners. But flexible reuse of components is the reason for the success of UNIX-like operating systems including GNU. It is what enables research and development and rapid prototyping, and consequently strong roots into academics. By confining the use of GNU to those software designs which cannot be untangled without triggering copyright problems, we are no longer hacking copyright for the sake of software freedom, but we are hacking software freedom for the sake of copyright. We have managed to turn copyright into a weapon we wield against ourselves. --=20 David Kastrup