From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Florian Weimer Newsgroups: gmane.emacs.devel Subject: Re: Defending GCC considered futile Date: Wed, 11 Feb 2015 20:14:56 +0100 Message-ID: <87r3twmf9r.fsf@mid.deneb.enyo.de> References: <20150207202952.1042BC00A6@snark.thyrsus.com> <87wq3rocqb.fsf@uwakimon.sk.tsukuba.ac.jp> <20150209172445.290dc20e@jabberwock.cb.piermont.com> <20150211104229.2782cb00@jabberwock.cb.piermont.com> <837fvo77dy.fsf@gnu.org> <20150211112941.148f783d@jabberwock.cb.piermont.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1423682110 31194 80.91.229.3 (11 Feb 2015 19:15:10 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 11 Feb 2015 19:15:10 +0000 (UTC) Cc: Eli Zaretskii , emacs-devel@gnu.org To: "Perry E. Metzger" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Feb 11 20:15:09 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 1YLcke-0001vo-9K for ged-emacs-devel@m.gmane.org; Wed, 11 Feb 2015 20:15:08 +0100 Original-Received: from localhost ([::1]:46691 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YLckd-0007jJ-Hp for ged-emacs-devel@m.gmane.org; Wed, 11 Feb 2015 14:15:07 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40032) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YLckZ-0007fj-5A for emacs-devel@gnu.org; Wed, 11 Feb 2015 14:15:03 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YLckY-00017F-56 for emacs-devel@gnu.org; Wed, 11 Feb 2015 14:15:03 -0500 Original-Received: from albireo.enyo.de ([46.237.207.196]:36872) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YLckU-00015O-Fg; Wed, 11 Feb 2015 14:14:58 -0500 Original-Received: from [172.17.203.2] (helo=deneb.enyo.de) by albireo.enyo.de with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) id 1YLckQ-0004BO-T5; Wed, 11 Feb 2015 20:14:54 +0100 Original-Received: from fw by deneb.enyo.de with local (Exim 4.80) (envelope-from ) id 1YLckS-0007qh-Fo; Wed, 11 Feb 2015 20:14:56 +0100 In-Reply-To: <20150211112941.148f783d@jabberwock.cb.piermont.com> (Perry E. Metzger's message of "Wed, 11 Feb 2015 11:29:41 -0500") X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 46.237.207.196 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:182912 Archived-At: * Perry E. Metzger: > On Wed, 11 Feb 2015 18:14:17 +0200 Eli Zaretskii wrote: >> Modularizing GCC is not discouraged. It actually happens as we >> speak, check out the latest developments in GCC 5 and GDB. > > If this is the case, what is the problem with Emacs directly linking > against the GCC front end to get access to the C and C++ AST? The C front end does not produce an AST, it lowers immediately to GENERIC, whose only control flow constructs are conditional expressions and gotos. The C++ front end extends GENERIC with additional trees, preserving more information, but I do not know if it is sufficiently complete to qualify as an AST. I don't know if this can be fixed so that the result is still maintainable and there is no observable speed difference no matter what compiler flags you use. (I looked at this because I wanted to introduce syntax-driven unreachable code warnings, including a switch-case fallthrough warning.)