From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eric Ludlam Newsgroups: gmane.emacs.devel Subject: Re: IDE Date: Tue, 13 Oct 2015 23:01:12 -0400 Message-ID: <561DC578.4040102@siege-engine.com> References: <5610207A.2000300@harpegolden.net> <83fv1r3gzp.fsf@gnu.org> <83bncf3f9k.fsf@gnu.org> <5610E0BC.8090902@online.de> <83si5r106e.fsf@gnu.org> <831td9z18h.fsf@gnu.org> <5612E996.7090700@yandex.ru> <83bnc7tavr.fsf@gnu.org> <5618C92A.3040207@yandex.ru> <83a8rrt9ag.fsf@gnu.org> <871tcyexa9.fsf@fimbulvetr.bsc.es> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1444791780 3703 80.91.229.3 (14 Oct 2015 03:03:00 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 14 Oct 2015 03:03:00 +0000 (UTC) Cc: Dmitry Gutov , adatgyujto@gmail.com, emacs-devel@gnu.org To: =?UTF-8?B?TGx1w61z?= , Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Oct 14 05:02:50 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 1ZmCL2-0008G1-9s for ged-emacs-devel@m.gmane.org; Wed, 14 Oct 2015 05:02:48 +0200 Original-Received: from localhost ([::1]:40286 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmCL1-0005E0-Iw for ged-emacs-devel@m.gmane.org; Tue, 13 Oct 2015 23:02:47 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:33742) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmCJp-0004qm-Mz for emacs-devel@gnu.org; Tue, 13 Oct 2015 23:01:45 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZmCJW-0001Fn-Ss for emacs-devel@gnu.org; Tue, 13 Oct 2015 23:01:32 -0400 Original-Received: from mail-qg0-f42.google.com ([209.85.192.42]:34751) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmCJW-0001Ff-LB; Tue, 13 Oct 2015 23:01:14 -0400 Original-Received: by qgez77 with SMTP id z77so32446129qge.1; Tue, 13 Oct 2015 20:01:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-type:content-transfer-encoding; bh=mSmE6ofnngDc+PtipRaIWFw478poJRN93WarcU0mYVQ=; b=fxeJeNSXRr5ZpbU42nJAfQh5+ppMhk1vfIgdZd1e8w8ZzRohEPCkQh197baNpC77u+ O4lOQZ6WfAtt2Il9Kc8w01c99Edc15gVsjhZu2Ko6obbkyEJFmkqNe8boNNggkbNbvdP cntQXNCzGs29zBiCIZWCrGLyJFKzSW/X0xI4c3q2H+IBgnYnEJP/1gIk1vRoJkJVFIN7 pg+EHcFMyfuQQZwX2VZjfRLlKxwB6jzc4CARf8JKaktMUu+tVSqL4ApcFDiLum4gJU7q rhvlbXcTQQlYH14WVrsfnD2gKmzqt+NKhS1kZwPIguf9KKuNxJGnqCcFHTnHaHYBlDPg OWBQ== X-Received: by 10.140.39.180 with SMTP id v49mr914543qgv.98.1444791674273; Tue, 13 Oct 2015 20:01:14 -0700 (PDT) Original-Received: from [192.168.1.202] (pool-71-184-198-118.bstnma.fios.verizon.net. [71.184.198.118]) by smtp.googlemail.com with ESMTPSA id 145sm2536006qhb.20.2015.10.13.20.01.13 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Oct 2015 20:01:13 -0700 (PDT) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 In-Reply-To: <871tcyexa9.fsf@fimbulvetr.bsc.es> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.85.192.42 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:191526 Archived-At: On 10/13/2015 09:02 AM, Lluís wrote: >> Let's not reiterate past discussions: you forget CEDET. > Just thinking out loud: it seems to me that many people forget that CEDET is, > from my understanding, a framework for writing tools first, and a set of such > example tools later. Thanks for the reminder. I forgot to bring that part up in this iteration of the conversation. >> >And if anyone_really_ cares about supporting C/C++, they should be >> >working with and on GCC's libcc1, which is available for quite some >> >time already. > If this is the libgcc1 you mean [1], I'm not sure it's suitable for code > completion. Instead, GCC should be modified to hook into the frontend parser or > the generic AST and then parsing that, which is no small feat. Fortunately, > hooking is already possible using GCC plugins [2]. > > [1]http://gcc.gnu.org/onlinedocs/gccint/Libgcc.html > [2]http://www.codesynthesis.com/~boris/blog/2010/05/03/parsing-cxx-with-gcc-plugin-part-1/ > > With this, it's a relatively easy (but time-consuming) task to build an external > tool that parses files on-demand. The ideal would be some kind of persistent > daemon+database, as was discussed in the CEDET list quite some time ago, but > that's an entirely different story. Yes, I remember those discussions. I was able to put in examples of an external parser by integrating exuberent ctags which is a bit weak for CEDET needs, but was never able to get any help figuring out how to make gcc or any other compiler provide the data I wanted. I tried some stuff with using debug symbols and gdb, but that was a flop. The ectags example showed marked performance improvement by delegating parsing outside the Emacs process. A second area was an external database for looking up symbols. I pulled in GNU Global and a couple others as proof of concept examples, but never got around to anything custom, as that was a bit bigger task. The lack of an external parser to use with it made the project more daunting. Eric