From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Perry E. Metzger" Newsgroups: gmane.emacs.devel Subject: Re: Emacs contributions, C and Lisp Date: Mon, 5 Jan 2015 13:36:24 -0500 Message-ID: <20150105133624.0b817474@jabberwock.cb.piermont.com> References: <83bnxuzyl4.fsf@gnu.org> <87d2i9ee8t.fsf@engster.org> <874n3ke1qn.fsf@engster.org> <87sir336qn.fsf@fencepost.gnu.org> <20140301215057.GA19461@thyrsus.com> <87fvn1y0vx.fsf@fencepost.gnu.org> <87fvn0senq.fsf@uwakimon.sk.tsukuba.ac.jp> <8761nusb90.fsf@uwakimon.sk.tsukuba.ac.jp> <87vbkovhh7.fsf@engster.org> <87387rvobr.fsf@engster.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1420483327 8064 80.91.229.3 (5 Jan 2015 18:42:07 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 5 Jan 2015 18:42:07 +0000 (UTC) Cc: monnier@iro.umontreal.ca, David Engster , emacs-devel@gnu.org To: Richard Stallman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jan 05 19:42:00 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 1Y8CWB-0002NS-Dd for ged-emacs-devel@m.gmane.org; Mon, 05 Jan 2015 19:36:43 +0100 Original-Received: from localhost ([::1]:33546 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8CWA-0003Cj-Mp for ged-emacs-devel@m.gmane.org; Mon, 05 Jan 2015 13:36:42 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58510) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8CVw-0003CR-Ae for emacs-devel@gnu.org; Mon, 05 Jan 2015 13:36:29 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y8CVu-00054C-Sl for emacs-devel@gnu.org; Mon, 05 Jan 2015 13:36:28 -0500 Original-Received: from hacklheber.piermont.com ([2001:470:30:84:e276:63ff:fe62:3400]:33008) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8CVu-000540-Lq; Mon, 05 Jan 2015 13:36:26 -0500 Original-Received: from snark.cb.piermont.com (localhost [127.0.0.1]) by hacklheber.piermont.com (Postfix) with ESMTP id 8E71A791; Mon, 5 Jan 2015 13:36:25 -0500 (EST) Original-Received: from jabberwock.cb.piermont.com (jabberwock.cb.piermont.com [10.160.2.107]) by snark.cb.piermont.com (Postfix) with ESMTP id 65C0E2DE97B; Mon, 5 Jan 2015 13:36:25 -0500 (EST) In-Reply-To: X-Mailer: Claws Mail 3.10.1 (GTK+ 2.24.25; x86_64-apple-darwin14.0.0) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 2001:470:30:84:e276:63ff:fe62:3400 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:181003 Archived-At: On Mon, 05 Jan 2015 12:50:42 -0500 Richard Stallman wrote: > > I understand that. What I'm saying is: For almost five years > > now (since gcc 4.5 introduced plugins), access to GCC's AST is > > wide open for everyone. However, in all that time (and to my > > knowledge) no one has used that to feed non-free backends, and > > that is in my opinion enough evidence that your worries are > > unfounded. They might have been valid in the past, but not > > since LLVM and clang have joined the scene. > > Since LLVM and Clang are not copylefted, they invite nonfree > extensions. They are a gaping hole in the defensive wall around our > city. > > > > To figure out just what Emacs needs, that's the task I am > > > talking about. > > > If you want to support things like completions, refactoring, > > symbol searches, etc., we need full access to the AST from > > inside Emacs. > > With all due respect, it is so important to avoid the full AST > that I'm not going to give up on it just because someone claims > that is necessary. So, I've been doing a bunch of complicated refactoring work in conjunction with my current academic research, and I've been forced to use clang/LLVM because I need the full AST. For example, I have to be able to go in and do things like finding all instances of particular kinds of pointer arithmetic and turn them into stylized forms of array indexing (the details of why are too complicated for even a fairly long email message.) It is only possible to do this because I have a full AST available. clang/LLVM also provide a very friendly set of libraries to make it easy for people to go in, walk the AST, pattern match on it, refactor it, etc. -- the tools are being used extensively in industry for refactoring support. I understand your feelings on the whole thing, but the whole reason I use LLVM for my current work is this capability. gcc just won't give me appropriate hooks. The libclang AST manipulation functionality was originally created because Apple wanted it to enable sophisticated IDE and refactoring capabilities in XCode's editor. I have wanted to have all that stuff in Emacs forever, but it is hard without having access to tools that generate a full AST of the code being examined. For Emacs to be able to compete with non-free tools, it is important that it have access to similar capabilities as the non-free tools have. Perry -- Perry E. Metzger perry@piermont.com