all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Perry E. Metzger" <perry@piermont.com>
To: "Eric S. Raymond" <esr@thyrsus.com>
Cc: dak@gnu.org, emacs-devel@gnu.org, Richard Stallman <rms@gnu.org>,
	slewsys@gmail.com, Stefan Monnier <monnier@iro.umontreal.ca>
Subject: Re: Contributing LLVM.org patches to gud.el
Date: Mon, 9 Feb 2015 15:04:11 -0500	[thread overview]
Message-ID: <20150209150411.1f0f4e4f@jabberwock.cb.piermont.com> (raw)
In-Reply-To: <20150208001527.GA30292@thyrsus.com>

On Sat, 7 Feb 2015 19:15:27 -0500 "Eric S. Raymond" <esr@thyrsus.com>
wrote:
> Richard Stallman <rms@gnu.org>:
> > More precisely, Apple intends LLVM and Clang to make GCC cease to
> > be a signal success and a reason for all sorts of companies to
> > work on a compiler that always gives users freedom.
> 
> This is silly.  Apple couldn't care less whether or not GCC is a
> success. What Apple needs is for a copylefted compiler not to be
> the *only* success.

I should like to correct a partial misperception here.

I don't think Apple's main motivation was to have a proprietary
compiler. On a purely technical level, LLVM makes lots of things
possible that Apple needed that GCC does not allow.

LLVM, for example, interfaces well to IDEs and refactoring tools,
which Apple needed, and now has built into XCode -- though note that
the support on the LLVM side is in the free software LLVM tree and is
in no way proprietary, and free software IDEs can make full use of
those interfaces. For another example, LLVM is modular so it is
possible to use it in producing static analysis tools, which Apple
needed, and are now built -- but again those analysis tools are in the
free software LLVM tree, not in a proprietary Apple tree, and may be
modified and incorporated into free software projects.

LLVM was created in academia, not by Apple, and it was specifically a
response to the fact that academics working on language tool and
compiler research simply couldn't manage to use GCC to get their work
done.  They wanted to do research on things like static analysis
tools, code transformation tools, link-time optimization, JITs, etc.,
and GCC deliberately makes it hard to use its pieces in such projects,
so they needed to build their own.

I myself use LLVM and not GCC for my academic research, which is
because my work is too difficult to do in GCC and very easy to do
under LLVM.

So to reiterate: LLVM was created because of GCC's deliberately
non-modular, non-reusable architecture, and not because GCC
was GPLed. The fact that LLVM is not GPLed and permits proprietary
forks is a side effect of the history (and potentially a very bad one)
but was not what caused LLVM to come about to begin with.

I think the lesson we can all draw is that architectural decisions
made for political strategy reasons are of limited utility.
Eventually, code designed for technical superiority will
become more popular than code with features missing for "strategic
reasons". If you want the more popular code to be free software, and
if you want it to be GPLed software, then you must assure that your
alternative is technically as good as it can be and suits the needs of
its users as well as it can.

As I understand it, the goal of making GCC non-modular was to prevent
the use of GCC to write proprietary front and back ends that do not
link directly to GCC. However, if GCC had been modular, it would have
been the focus of all the academic research, and all the tools built
on top would have been linked against GCC and thus would also have
been GPLed. In addition, Dragon Egg demonstrated that GCC could be
used as the front end to an LLVM compiler in spite of the
strategy. Also in addition, the non-modularity has not prevented the
creation of top quality proprietary front and back ends anyway, since
they can now be based on LLVM, which is arguably technically superior
to GCC at this point anyway and which permits that without much
trouble.

So again, I think if technical merit had been picked over "strategic
considerations", the strategic considerations would have been better
served.


Perry
-- 
Perry E. Metzger		perry@piermont.com



  parent reply	other threads:[~2015-02-09 20:04 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-05  7:46 Contributing LLVM.org patches to gud.el Andrew L. Moore
2015-02-05  8:53 ` David Kastrup
2015-02-05 14:15 ` Stefan Monnier
2015-02-06 12:41 ` Richard Stallman
2015-02-06 12:49   ` David Kastrup
2015-02-06 18:21     ` Richard Stallman
2015-02-06 19:00       ` Stefan Monnier
2015-02-07  8:46         ` Helmut Eller
2015-02-07 10:18           ` David Kastrup
2015-02-07 11:42             ` Helmut Eller
2015-02-07 11:53               ` David Kastrup
2015-02-09  0:06             ` Richard Stallman
2015-02-09  3:27               ` Stephen J. Turnbull
2015-02-15 22:50                 ` Richard Stallman
2015-02-16  5:19                   ` Stephen J. Turnbull
2015-02-16 16:23                     ` Richard Stallman
2015-02-09 11:21               ` David Kastrup
2015-02-09 14:21                 ` Stefan Monnier
2015-02-09 22:07                   ` Richard Stallman
2015-02-09 23:59                     ` David Kastrup
2015-02-10  2:40                     ` Stefan Monnier
2015-02-10  3:52                       ` Eli Zaretskii
2015-02-10  8:59                         ` David Kastrup
2015-02-10 16:00                           ` Eli Zaretskii
2015-02-10 16:41                             ` David Kastrup
2015-02-10 16:58                               ` Eli Zaretskii
2015-02-11  3:43                                 ` Stephen J. Turnbull
2015-02-11  3:47                                   ` Daniel Colascione
2015-02-11 10:37                                     ` David Kastrup
2015-02-11 10:51                                       ` Daniel Colascione
2015-02-11 13:22                                         ` Stephen J. Turnbull
2015-02-11 16:07                                           ` Eli Zaretskii
2015-02-12 16:26                                             ` Eli Zaretskii
2015-02-12 17:42                                               ` Daniel Colascione
2015-02-12 20:15                                                 ` Eli Zaretskii
2015-02-11 15:54                                         ` Eli Zaretskii
2015-02-11 23:12                                         ` Richard Stallman
2015-02-11 15:42                                     ` Eli Zaretskii
2015-02-11 15:41                                   ` Eli Zaretskii
2015-02-12  4:20                                     ` Stephen J. Turnbull
2015-02-12 11:23                                       ` David Kastrup
2015-02-12 13:13                                         ` Stephen J. Turnbull
2015-02-12 15:52                                         ` Eli Zaretskii
2015-02-11  4:26                               ` Stephen J. Turnbull
2015-02-11  7:44                                 ` Nicholas Allegra
2015-02-11 15:43                                 ` Eli Zaretskii
2015-02-11 16:21                                   ` Stefan Monnier
2015-02-11 16:27                                     ` David Kastrup
2015-02-11 16:42                                     ` Eli Zaretskii
2015-02-12  5:41                                   ` Stephen J. Turnbull
2015-02-12 16:33                                     ` Eli Zaretskii
2015-02-12 18:29                                       ` Stephen J. Turnbull
2015-02-12 17:34                                     ` Richard Stallman
2015-02-10 17:03                         ` David Engster
2015-02-10 17:18                           ` Eli Zaretskii
2015-02-10 17:36                             ` David Engster
2015-02-10 19:15                               ` Eli Zaretskii
2015-02-10 20:25                                 ` David Engster
2015-02-10 22:49                               ` Richard Stallman
2015-02-11 10:35                                 ` David Kastrup
2015-02-11 23:12                                   ` Richard Stallman
2015-02-10 18:07                             ` David Kastrup
2015-02-10 19:21                               ` Eli Zaretskii
2015-02-10 20:33                           ` Stefan Monnier
2015-02-11 23:08                           ` Richard Stallman
2015-02-09 16:08                 ` Eli Zaretskii
2015-02-09 22:08                   ` Richard Stallman
2015-02-09 20:00               ` Florian Weimer
2015-02-07 14:46           ` Stefan Monnier
2015-02-07 22:40         ` Richard Stallman
2015-02-07 23:04           ` David Kastrup
2015-02-08  0:15           ` Eric S. Raymond
2015-02-08  0:51             ` David Kastrup
2015-02-09 20:04             ` Perry E. Metzger [this message]
2015-02-10 22:49               ` Richard Stallman
2015-02-11 16:17                 ` Perry E. Metzger
2015-02-11 23:13                   ` Richard Stallman
2015-02-11 23:37                     ` Perry E. Metzger
2015-02-12 11:22                       ` David Kastrup
2015-02-12 14:45                         ` Stephen J. Turnbull
2015-02-12 17:34                       ` Richard Stallman
2015-02-13 10:11                       ` Tom
2015-02-13 10:20                         ` Eli Zaretskii
2015-02-13 10:27                           ` Tom
2015-02-13 11:00                             ` Eli Zaretskii
2015-02-14 15:22                             ` Richard Stallman
2015-02-12 11:08                     ` David Kastrup
2015-02-14 15:22                       ` Richard Stallman
2015-02-11 23:13                   ` Richard Stallman
2015-02-12 10:28                     ` David Kastrup
2015-02-13  9:25                       ` Richard Stallman
2015-02-09 20:13             ` Florian Weimer
2015-02-10 22:49               ` Richard Stallman
2015-02-08  3:55           ` Liang Wang
2015-02-08  9:30             ` David Kastrup
2015-02-09  0:04             ` Richard Stallman
2015-02-09  8:47               ` David Kastrup
2015-02-09 22:07                 ` Richard Stallman
2015-02-09 23:03                   ` David Kastrup
2015-02-11 23:09                     ` Richard Stallman
2015-02-09 16:15               ` Robin Templeton
2015-02-09 20:13                 ` Perry E. Metzger
2015-02-09 22:08                 ` Richard Stallman
2015-02-10  8:24                   ` Helmut Eller
2015-02-10  9:31                     ` David Kastrup
2015-02-10 10:44                       ` Helmut Eller
2015-02-10 10:53                         ` David Kastrup
2015-02-10 12:45                           ` Helmut Eller
2015-02-10 13:35                             ` David Kastrup
2015-02-10 15:42                             ` Yann Hodique
2015-02-10 16:11                               ` David Kastrup
2015-02-10 22:49                         ` Richard Stallman
2015-02-11 10:20                           ` David Kastrup
2015-02-11 15:16                             ` Stefan Monnier
2015-02-11 23:13                               ` Richard Stallman
2015-02-09 20:06               ` Florian Weimer
2015-02-09 20:34                 ` David Kastrup
2015-02-10 22:46                 ` Richard Stallman
2015-02-06 19:21       ` David Kastrup
2015-02-07  5:50       ` Stephen J. Turnbull
2015-02-06 14:57   ` Stefan Monnier
2015-02-07 12:44     ` Richard Stallman
2015-02-07 14:48       ` Stefan Monnier
2015-02-07 22:41         ` Richard Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150209150411.1f0f4e4f@jabberwock.cb.piermont.com \
    --to=perry@piermont.com \
    --cc=dak@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=esr@thyrsus.com \
    --cc=monnier@iro.umontreal.ca \
    --cc=rms@gnu.org \
    --cc=slewsys@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.