From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: David Engster Newsgroups: gmane.emacs.devel Subject: Re: A unified project root interface Date: Wed, 20 Mar 2013 08:13:24 +0100 Message-ID: <874ng6tugb.fsf@engster.org> References: <20130309174419.6e1cadb4@forcix.kollektiv-hamburg.de> <87hakh2299.fsf@fimbulvetr.bsc.es> <513FBA1C.5040100@siege-engine.com> <87vc8vyy66.fsf@engster.org> <5143C11D.8070705@siege-engine.com> <87sj3vv35h.fsf@engster.org> <20130316160203.6b889aba@forcix.kollektiv-hamburg.de> <87ehffuf1g.fsf@engster.org> <20130317001630.125e1987@forcix.kollektiv-hamburg.de> <87y5dmsz5u.fsf@engster.org> <20130317191817.764a44f5@forcix.kollektiv-hamburg.de> <87ppywtj9s.fsf@engster.org> <87li9juabi.fsf@engster.org> <87d2uvtdeb.fsf@engster.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1363763615 27536 80.91.229.3 (20 Mar 2013 07:13:35 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 20 Mar 2013 07:13:35 +0000 (UTC) Cc: Jorgen Schaefer , emacs-devel@gnu.org, "Eric M. Ludlam" , John Yates To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Mar 20 08:13:57 2013 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 1UIDDh-0006JL-CM for ged-emacs-devel@m.gmane.org; Wed, 20 Mar 2013 08:13:57 +0100 Original-Received: from localhost ([::1]:52367 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UIDDJ-0006bh-W2 for ged-emacs-devel@m.gmane.org; Wed, 20 Mar 2013 03:13:33 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:51781) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UIDDG-0006Yv-3T for emacs-devel@gnu.org; Wed, 20 Mar 2013 03:13:32 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UIDDE-0007vR-Md for emacs-devel@gnu.org; Wed, 20 Mar 2013 03:13:30 -0400 Original-Received: from randomsample.de ([83.169.19.17]:34784) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UIDDE-0007vC-As for emacs-devel@gnu.org; Wed, 20 Mar 2013 03:13:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=randomsample.de; s=a; h=Content-Type:MIME-Version:Message-ID:Date:References:In-Reply-To:Subject:Cc:To:From; bh=mXVXZKyZ63OJxdVOfTml248RJHK0uLXdoAiuJ0YPV4U=; b=AQfTpjf2RD2VdOHmRlnaojY9CxF6U0ShrTIR+45Y/4gXMQfgbvHlk+WPgAw+rLBBz4MdotPKp4qEIIj43Gh2HyJsKgO+7p4PNHsYGw6SLc6m1Z1AoY4m506UznS6T+EJ; Original-Received: from dslc-082-083-058-027.pools.arcor-ip.net ([82.83.58.27] helo=spaten) by randomsample.de with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1UIDDB-0002cD-Bg; Wed, 20 Mar 2013 08:13:25 +0100 In-Reply-To: (Stefan Monnier's message of "Tue, 19 Mar 2013 23:21:54 -0400") User-Agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.2.93 (gnu/linux) Mail-Followup-To: Stefan Monnier , John Yates , Jorgen Schaefer , "Eric M. Ludlam" , emacs-devel@gnu.org X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 83.169.19.17 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:157986 Archived-At: Stefan Monnier writes: >>>>> I took the sense of the OP to be that the concept of a project-root >>>>> deserved to become part of the core set of emacs concepts unrelated to >>>>> optional packages e.g. much as file and directory local variables. > >>>>> Once the concept gets pulled into the core extension author simply >>>>> assume existence of project-root functionality without needing to have >>>>> to enable in any particular way. >>>> OK, if this is something which should be available with emacs -Q right >>>> at startup, then EDE is out. It indeed is too big for that. >>> It should be possible to write the code such that the project-root part >>> of EDE doesn't require loading too much code. >> Yes, but no matter how small, EDE depends on EIEIO, so this would mean >> that EIEIO is loaded right at startup. I thought this would be >> considered a showstopper, even when we clean up its namespace use. > > Right, preloading EIEIO is not what I was planning to do, indeed. > IOW, I think the challenge is to extract the "project-root" part of EDE > in such a way that it doesn't require preloading as much code. > That might require splitting EIEIO, or some other approach, maybe, > I don't know. I don't think that's a practical approach. In EDE, a project *is* a class. I would however like to ask if such a 'project-root' feature is absolutely needed right at startup time. I'm not sure about the overhead involved when loading files, which might be annoying to people who don't need it. OTOH, we already have vc-find-file-hook enabled by default, which I guess renders such questions moot... BTW, I was wondering if the vc package couldn't just provide the current root; it felt kind of silly to implement scanning for vcs markers, when 'vc' actually already did that. This way, we could implement a 'project-root' function, which first checks if there's an EDE project, and if not, it could return the root directory from 'vc' if the current file is under version control. -David