all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Andreas Röhler" <andreas.roehler@online.de>
To: emacs-devel@gnu.org
Cc: "Eric M. Ludlam" <eric@siege-engine.com>
Subject: Re: About CEDET, Completion, and compilers
Date: Fri, 14 Mar 2014 07:47:25 +0100	[thread overview]
Message-ID: <5322A5FD.6030304@online.de> (raw)
In-Reply-To: <53224F2B.3070600@siege-engine.com>

Am 14.03.2014 01:36, schrieb Eric M. Ludlam:
> On 03/13/2014 09:40 AM, Andreas Röhler wrote:
>> Am 13.03.2014 04:04, schrieb Eric M. Ludlam:
>> [ ... ]
>> Hi Eric,
>>
>> yes, CEDET is a very interesting tool.
>>
>> BTW just reading at SO an answer WRT to IDE's, which IMO also stresses
>> the usefulness of further CEDET-development:
>>
>> http://stackoverflow.com/questions/22372526/integrated-development-environments/22372626#22372626
>>
>>
>> There was a remark in the thread saying something like:
>> CEDET provides a toolset, but no-one uses it - beside CEDET itself.
>
> I am familiar with this sentiment.  I believe this may be true when it comes to the EDE project style that generates Makefiles.  While that is a nifty idea, it is hard to
> implement in a flexible and robust way.  As such, it is pretty good for simple projects, but is too aggressive an idea to claim as a general tool.  Folks who come at CEDET
> from the IDE mindset tend to start there and get disappointed.
>
> There are many other tools in CEDET that many users do use and depend on.  There are 345 members on the cedet-devel mailing list.  Only 1 of them is me.  That seems like a
> pretty good user base.
>
>> Maybe it's an occasion to make that point up:
>>
>> As for me, the maybe silly reason is EIEIO. Never understood what it's
>> good for - and didn't want to learn something not understood...
>> WRT what's reported from other OO-tools, was not surprised to experience
>> slowness.
>>
>> The problem with OO-programming seems some hardly predictable
>> multiplying of procedures.
>> In addition EIEIO is written in Emacs Lisp, which isn't known to be very
>> fast itself.
>>
>> So at some point got the idea CEDET will never be reliably fast...
>>
>> Sorry for that.
>> Given that's true - what about dropping EIEIO and re-building everything
>> in plain Emacs Lisp?
>
> Before I wrote CEDET, I built a set of tools that did similar things and ran into some serious problems making it work.  I took a step back, and instead focused on
> infrastructure, such as a parser-generator instead of writing more parsers with regexp, and then an object system, instead of managing polymorphism by hand every time I
> called a function.  I don't think it is really possible to build something as flexible as CEDET without a CLOS like tool.
>
> The key thing that EIEIO lets me do is define interfaces that allows modules to work together.  For example, there is a tag-table concept in the semantic system for
> managing lists of symbols found in the source code it parses.  The parser system all knows how to populate and maintain a table.  There is also code that searches tables so
> you can find a tag to jump to, for example.  By defining the core interface as a table class with EIEIO, I can also create other classes that manages tag tables from GNU
> Global, and just stick it in a list of other tables to search.  The code searching tables doesn't have to know  about GNU Global.  The Global person doesn't have to know
> about jumping to tags. And no-one has to write some weird bit of code that reaches into a plist to get a function symbol to call.  I was able to move the Java completion in
> CEDET from in-file only to surprisingly robust for Android in an afternoon just by writing a database that parses a few.jar files.  Nifty.
>
> When I think of IDEs that are heavily OO, I tend to think that the UI is built that way, with more doo-dads to click on than you could possibly use.  There is no UI code
> (ie - widgets) in CEDET based on EIEIO.  In fact, I think COGRE is the most UI like thing I've built with EIEIO, mostly on a lark to see if it could be done.  It turned out
> ok.
>
> As for performance, there was a time when EIEIO didn't compile.  That was pretty darn slow.  I've spent many hours in the profiler tuning it, and it is much better now, and
> EIEIO barely shows up when I profile high-level tools.
>
> Does that help?
> Eric
>
>

Thanks a lot! Will have a closer look again ASAP.

Cheers,

Andreas




  parent reply	other threads:[~2014-03-14  6:47 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-13  3:04 About CEDET, Completion, and compilers Eric M. Ludlam
2014-03-13 13:40 ` Andreas Röhler
2014-03-13 14:04   ` João Távora
2014-03-13 14:21     ` Andreas Röhler
2014-03-14  0:36   ` Eric M. Ludlam
2014-03-14  2:26     ` EIEIO Daniel Colascione
2014-03-14  3:35       ` EIEIO Eric M. Ludlam
2014-03-14  6:42       ` EIEIO David Engster
2014-03-14  9:41       ` EIEIO Eric Abrahamsen
2014-03-14 20:13         ` EIEIO Eric Schulte
2014-03-15  6:54           ` EIEIO Thien-Thi Nguyen
2014-03-16  1:06             ` ELPA Go integration Was: EIEIO Eric Schulte
2014-03-16 10:36               ` Thien-Thi Nguyen
2014-03-24  8:33                 ` Thien-Thi Nguyen
2014-03-17 14:36               ` Stefan
2014-03-25  2:05                 ` Stefan
2014-03-14 10:24       ` EIEIO João Távora
2014-03-14  6:47     ` Andreas Röhler [this message]
2014-03-23 14:57 ` About CEDET, Completion, and compilers Richard Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5322A5FD.6030304@online.de \
    --to=andreas.roehler@online.de \
    --cc=emacs-devel@gnu.org \
    --cc=eric@siege-engine.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.