From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?=C3=93scar_Fuentes?= Newsgroups: gmane.emacs.devel Subject: Re: Contradictiory directions Date: Wed, 15 Dec 2021 22:15:50 +0100 Message-ID: <87bl1h4lix.fsf@telefonica.net> References: <20211211035614.15517.53830@vcs0.savannah.gnu.org> <877dc6tjz0.fsf_-_@yahoo.com> <871r2e5g4u.fsf@telefonica.net> <4228873.32GBL0O4vs@galex-713.eu> <87fsqt4t97.fsf@telefonica.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="17228"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) To: emacs-devel@gnu.org Cancel-Lock: sha1:/bySClCr5Iqm84tVREGs9f+LRyg= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Dec 15 22:31:53 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mxbsP-0004Hs-HT for ged-emacs-devel@m.gmane-mx.org; Wed, 15 Dec 2021 22:31:53 +0100 Original-Received: from localhost ([::1]:58690 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mxbsN-0000PC-Rz for ged-emacs-devel@m.gmane-mx.org; Wed, 15 Dec 2021 16:31:51 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:42960) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxbd9-00018M-K8 for emacs-devel@gnu.org; Wed, 15 Dec 2021 16:16:07 -0500 Original-Received: from ciao.gmane.io ([116.202.254.214]:39882) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxbd4-0007uJ-P4 for emacs-devel@gnu.org; Wed, 15 Dec 2021 16:16:07 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1mxbd2-0004aW-EE for emacs-devel@gnu.org; Wed, 15 Dec 2021 22:16:00 +0100 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:282080 Archived-At: Stefan Monnier 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.