emacs-devel
[Top][All Lists]
Advanced

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

Re: Contradictiory directions


From: Óscar Fuentes
Subject: Re: Contradictiory directions
Date: Wed, 15 Dec 2021 22:15:50 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)

Stefan Monnier <monnier@iro.umontreal.ca> writes:

Off-topic, so this will be my last message on this thread.

>> ... about Gcc either, because there are better *free* alternatives,
>> which arose in great part thanks to stances like this.
>
> But this is a poorly chosen example.  LLVM was developed originally
> because it was easier to start from scratch than to evolve an existing
> system that had accrued a lot of (necessary) complexity.  Back then it
> was mostly a vehicle for academic research and I've never seen any hint
> that circumventing the GPL was part of the motivation.

This is mostly true. To the point that the LLVM backend (Clang came much
later) was offered to Gcc.

> Then it got picked up by companies (mostly Apple) specifically because
> it didn't use the GPL, because they did not want to be forced to
> released their source code (this can be seen as the price we had to pay
> for GCC to get Objective C support, since many years earlier, NeXT was
> forced to release their Objective C compiler's source code because it
> was built on top of GCC, and Jobs really resented that; it's arguably
> also the reason why macOS has switched to Zsh and remained at Emacs-22).
>
> AFAIK the issue with support for plugins only appeared much later.
>
> So in the case of LLVM-vs-GCC, the reason for the heavy investment into
> LLVM is not so much the FSF's "stance" on anything, it's an opposition
> to the core principle of the GPL.

This is more complex than you make it appear :-)

> And oddly enough, last I checked, GCC is still pretty damn competitive
> with LLVM, despite all that investment, so "better" is debatable ;-)

The superiority of LLVM/Clang (and all its satellite projects) is in its
focus on technical excellence, on a broad sense: the code not only must
be performant, but clearly written and carefully architected as well.
The social dynamics was more open: broad changes were encouraged, no old
guard vetoing disruptive ideas, enthusiastic and welcoming community
etc. This caused that both the source code and the community appeared
much more attractive to all sorts of contributors, creating an snowball
effect. The openness of the design, which facilitated growing other
projects on top of it, caused a proliferation of academic, hobbist and
industrial derived works. Some of them are closed-source, but many are
not, and even the closed ones show a tendency to open and contribute to
upstream because it reduces costs.

Major Clang/LLVM contributors like Google would have no significant
issue with Gcc being GPL, but LLVM/Clang exists and it is much more easy
to work with (at all levels: technical and social.)

Meanwhile, Gcc was under severe imposed restrictions precisely on the
areas where LLVM/Clang excels. That's no coincidence: there was a demand
for those features. Now the grip over Gcc loosened a bit, but it carries
a rigid and obsolete architecture that will keep it inferior for many
years, if not forever. Any advantage on code generation will be erased,
sooner than later.

Since a few years ago Gcc improved after painfully breaking old
constraints, pressured by the new competitor, but I'm afraid that it
will be too little, too late. Linux compiles with Clang, and that's a
very worrying signal for Gcc, because if certain distributions migrate
to Clang, Gcc development will be over.




reply via email to

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