all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Eric M. Ludlam" <eric@siege-engine.com>
To: Daniel Colascione <dancol@dancol.org>
Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org
Subject: Re: Project systems (again)
Date: Fri, 18 Apr 2014 21:45:14 -0400	[thread overview]
Message-ID: <5351D52A.4010703@siege-engine.com> (raw)
In-Reply-To: <5350DB3E.3030803@dancol.org>

On 04/18/2014 03:58 AM, Daniel Colascione wrote:
>> >  Then how about asking the EDE developers to provide an "easy-ede"
>> >  layer which would conceal the complexity for those situations where
>> >  the corresponding power is not needed?
> That's what I'm proposing, except that I imagine EDE can sit on top of
> that layer, not that that layer could sit on top of EDE.

This thread has been pretty high level which I think has made the 
conversation less productive.  Daniel was asking detailed questions on 
the CEDET mailing list earlier and raised some good points there, which 
are related to his above statement.  From what I remember, the core 
issue is this;

EDE started out as a wrapper for automake, and detected those projects 
where all the subdirs of a project had a Makefile.am.  At least the 
projects I was using all did.

This resulted in a project detection system that didn't support projects 
where the key-file that was searched for (ie - Makefile.am) only showed 
up in one place, such as an .ant or Manifest file.

When support for projects of that nature were added, what I quickly 
found was that walking up the directory tree searching for them really 
hammered the auto-mounter on networked file systems.  What is there now 
is a bit of a hybrid that avoids walking up the directory tree.

The next issue was related to performance.  I spent a lot of time 
profiling and creating caches to make it fast enough to be used as the 
back-end for Semantic's auto-completion.  Wrangling large tables of tags 
organized by project required a lot from EDE's file management.

The result is something that is a bit challenging to extend if you don't 
want to follow one of the existing patterns, or if you try to add in the 
missing feature of detecting a project with a single root key-file from 
a sub-directory.

I would be interested in ideas on how to better support projects with a 
single root key-file.  If there were a simple service that only detected 
the root of a tree based on a key-file, or any other useful and similar 
mechanism identifying a project root, it would be pretty easy to update 
EDE to use it as one of it's mechanisms.  EDE is not dependent on any 
single way to do it.  If said system were very fast, then I could 
probably drop some of the cache-heavy and hard to debug code in EDE.

Also, the EDE project types (ie - Automake, Arduino, Android, etc) are 
independent from the detection system.  Once a project is detected, then 
the high-level project is created to represent it and operates 
independently.

Eric



  parent reply	other threads:[~2014-04-19  1:45 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-17 21:52 Project systems (again) Daniel Colascione
2014-04-18  6:37 ` Eli Zaretskii
2014-04-18  7:07   ` Daniel Colascione
2014-04-18  7:50     ` Eli Zaretskii
2014-04-18  7:58       ` Daniel Colascione
2014-04-18  8:49         ` Eli Zaretskii
2014-04-19  1:45         ` Eric M. Ludlam [this message]
2014-04-19 14:26           ` Stefan Monnier
2014-04-19 19:37             ` Eric M. Ludlam
2014-04-18 15:52     ` Stefan Monnier
2014-04-18 18:37     ` Alex Ott
2014-04-18 14:03   ` Dmitry Gutov
2014-04-19  8:55     ` Bozhidar Batsov
2014-04-19 14:28       ` Stefan Monnier
2014-04-19 16:52       ` Daniel Colascione

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=5351D52A.4010703@siege-engine.com \
    --to=eric@siege-engine.com \
    --cc=dancol@dancol.org \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    /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.