From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: =?ISO-8859-1?Q?R=FCdiger?= Sonderfeld Newsgroups: gmane.emacs.devel Subject: Re: clang vs free software Date: Tue, 21 Jan 2014 17:00:10 +0100 Message-ID: <3496352.tEhiuvcQfN@descartes> References: <87fvqtg02v.fsf@flea.lifelogs.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 1390320043 16162 80.91.229.3 (21 Jan 2014 16:00:43 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 21 Jan 2014 16:00:43 +0000 (UTC) Cc: David Engster , Richard Stallman , Stefan Monnier , John Yates To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Jan 21 17:00:49 2014 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 1W5dkv-0000Pr-0G for ged-emacs-devel@m.gmane.org; Tue, 21 Jan 2014 17:00:49 +0100 Original-Received: from localhost ([::1]:59182 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W5dku-0007ht-MF for ged-emacs-devel@m.gmane.org; Tue, 21 Jan 2014 11:00:48 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41303) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W5dki-0007hn-Fc for emacs-devel@gnu.org; Tue, 21 Jan 2014 11:00:42 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W5dkY-0007vg-MI for emacs-devel@gnu.org; Tue, 21 Jan 2014 11:00:36 -0500 Original-Received: from ptmx.org ([178.63.28.110]:36953) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W5dkY-0007vO-Fd; Tue, 21 Jan 2014 11:00:26 -0500 Original-Received: from localhost (localhost [127.0.0.1]) by ptmx.org (Postfix) with ESMTP id C1D602501B; Tue, 21 Jan 2014 17:00:24 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at ptmx.org Original-Received: from ptmx.org ([127.0.0.1]) by localhost (ptmx.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id D64vYVTOI421; Tue, 21 Jan 2014 17:00:23 +0100 (CET) Original-Received: from descartes.localnet (chello080108246092.7.14.vie.surfer.at [80.108.246.92]) by ptmx.org (Postfix) with ESMTPSA id A4CEB24FD2; Tue, 21 Jan 2014 17:00:21 +0100 (CET) User-Agent: KMail/4.11.3 (Linux/3.11.0-14-generic; KDE/4.11.3; x86_64; ; ) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 178.63.28.110 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:168835 Archived-At: On Tuesday 21 January 2014 10:34:01 John Yates wrote: > That really does not answer David's question. If you read it careful= ly he > called out "features that require an installed clang to work". That = is the > crux of the tension here. While the most obvious manifestation of cl= ang is > as a C/C++ compiler very similar to gcc it is also much more. That i= s > because it is architected as suite of libraries intended to be integr= ated > into more environments than just a compiler: >=20 > http://clang.llvm.org/features.html#libraryarch > http://clang.llvm.org/features.html#ideintegration >=20 > Tooling for analyzing and manipulating C/C++ is simply a space that g= cc is > not addressing. Based on its architecture it likely never will. >=20 > There exist now various packages integrating emacs will elements of c= lang. > These packages are not supporting clang as alternative compiler. Ra= ther > by exploiting clang interfaces that have no gcc analog they offer exc= iting > IDE-like features. GCC provides a plugin interface now which can be used to extract inform= ation=20 about the source. I started writing a plugin and Emacs interface based= on=20 that. It can show the callgraph, jump to definition, and show some=20 information about symbols. You simply add it to your normal compiler c= all. =20 But I didn't get very far and it requires a patched version of the gcc-= python=20 plugin. I hope I'll find enough time to continue working on it. Maybe Clang pr= ovides=20 better integration. But without an FFI it would have to be linked into= Emacs. =20 And GCC is the main compiler I use anyway. (Well I actually started by writing a GCC plugin to generate ETAG files= https://github.com/ruediger/gcc-etags But it got disappointing when I had to throw away a lot of the nice=20 information that GCC provides and generate the simplified ETAG format.)= Regards, R=C3=BCdiger