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: Tue, 6 Jan 2015 14:39:33 -0500 Message-ID: <20150106143933.0090bc83@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> <83ppat84hk.fsf@gnu.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 1420573240 28238 80.91.229.3 (6 Jan 2015 19:40:40 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 6 Jan 2015 19:40:40 +0000 (UTC) Cc: Eli Zaretskii , monnier@iro.umontreal.ca, deng@randomsample.de, emacs-devel@gnu.org To: Richard Stallman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Jan 06 20:40:32 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 1Y8Zyn-000619-Ba for ged-emacs-devel@m.gmane.org; Tue, 06 Jan 2015 20:39:49 +0100 Original-Received: from localhost ([::1]:37986 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8Zym-0001LV-QH for ged-emacs-devel@m.gmane.org; Tue, 06 Jan 2015 14:39:48 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46397) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8Zyj-0001LK-GY for emacs-devel@gnu.org; Tue, 06 Jan 2015 14:39:46 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y8Zyi-0006VQ-DT for emacs-devel@gnu.org; Tue, 06 Jan 2015 14:39:45 -0500 Original-Received: from hacklheber.piermont.com ([166.84.7.14]:56655) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8Zyd-0006Tz-W4; Tue, 06 Jan 2015 14:39:40 -0500 Original-Received: from snark.cb.piermont.com (localhost [127.0.0.1]) by hacklheber.piermont.com (Postfix) with ESMTP id 8F617791; Tue, 6 Jan 2015 14:39:33 -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 48C852DE9AF; Tue, 6 Jan 2015 14:39:33 -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: 166.84.7.14 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:181012 Archived-At: On Tue, 06 Jan 2015 13:24:44 -0500 Richard Stallman wrote: > [[[ To any NSA and FBI agents reading my email: please consider > ]]] [[[ whether defending the US Constitution against all > enemies, ]]] [[[ foreign or domestic, requires you to follow > Snowden's example. ]]] > > > > 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. > > > What would you need to know or hear to make up your mind on this > > issue? > > I'd like to see an investigation that establishes just what data is > needed for each purpose. Say you want to do a global refactoring of a function that alters the parameters it takes -- the sort of thing modern IDEs do very well. You can't do that very effectively without the AST. Moreover, say you want to globally find all instances where a particular function's return is not tested for NULL and have the user manually check that they're not bugs -- this is the sort of thing modern development tools can do, and which you can't do without an AST. The Go programming language, during its development phase, relied heavily on a tool that updated old APIs and syntactic conventions into new ones to permit the code base to be modified constantly from old to new when serious changes were made to the language and its libraries. Those are pretty straightforward -- there are far more remarkable sorts of high level refactorings that now get done pretty straightforwardly with AST aware tools. The guys at Google who build a bunch of the LLVM libAST stuff have demos of doing very serious C++ refactorings in which large amounts of code gets rewritten to accommodate new paradigms. Programmers like programmable tools. That's one of the reasons Emacs is so successful. Being able to program your editor to do massive transformations of your source code is a really cool thing -- Emacs could actually be far better at this than XCode, Eclipse and all the rest if it could actually get access to AST information. Perry -- Perry E. Metzger perry@piermont.com