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: Thu, 21 Mar 2013 17:32:32 +0100 Message-ID: <87hak4af33.fsf@engster.org> References: <20130309174419.6e1cadb4@forcix.kollektiv-hamburg.de> <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> <874ng6tugb.fsf@engster.org> <87ppyurpxa.fsf@engster.org> <514A5A68.3070907@siege-engine.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1363883717 21558 80.91.229.3 (21 Mar 2013 16:35:17 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 21 Mar 2013 16:35:17 +0000 (UTC) Cc: emacs-devel@gnu.org, Stefan Monnier , Jorgen Schaefer , John Yates To: "Eric M. Ludlam" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Mar 21 17:35:39 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 1UIiSo-0004s0-TH for ged-emacs-devel@m.gmane.org; Thu, 21 Mar 2013 17:35:39 +0100 Original-Received: from localhost ([::1]:35999 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UIiSR-0006jK-Jb for ged-emacs-devel@m.gmane.org; Thu, 21 Mar 2013 12:35:15 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:52476) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UIiSJ-0006Vx-81 for emacs-devel@gnu.org; Thu, 21 Mar 2013 12:35:11 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UIiPz-0008Mt-5B for emacs-devel@gnu.org; Thu, 21 Mar 2013 12:32:45 -0400 Original-Received: from randomsample.de ([83.169.19.17]:43145) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UIiPy-0008KP-Ob for emacs-devel@gnu.org; Thu, 21 Mar 2013 12:32:43 -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=0QzCr7l3GIQLdMZYX7QADu45ZROJkkGGcdQouV5rT60=; b=I8p9bU1jVylQc+UElKYzvOQTatHePqU1yYqo7Zi4VXggd4c+AnTvjcWKfAfw7oymnEi3nEp9oC9gQFHURDeAZmNolkUeYftOzUkYStd93dtM4FxGtIGBHXIYu0cbVcce; Original-Received: from dslc-082-083-046-047.pools.arcor-ip.net ([82.83.46.47] helo=spaten) by randomsample.de with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1UIiPp-0007xx-LF; Thu, 21 Mar 2013 17:32:33 +0100 In-Reply-To: <514A5A68.3070907@siege-engine.com> (Eric M. Ludlam's message of "Wed, 20 Mar 2013 20:55:04 -0400") User-Agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.2.93 (gnu/linux) Mail-Followup-To: "Eric M. Ludlam" , Stefan Monnier , John Yates , emacs-devel@gnu.org, Jorgen Schaefer 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:158034 Archived-At: Eric M. Ludlam writes: W> On 03/20/2013 01:47 PM, Stefan Monnier wrote: >> Sorry, I mostly meant "split eieio.el". What parts? Well, that's >> a good question. I think if I knew, I'd have done that already ;-) >> Maybe a first split would be "all the code in eieio.el up until the end >> of the first big eval-and-compile". >> At least, if the aim is to get rid of those nasty eval-and-compile. > > This email, and browsing in eieio.el in the CEDET repository gave me > an a-ha moment. I think I know how to "split" eieio such that the > eval-and-compile elements are fixed, and have a much nicer eieio.el in > the process. My initial experiments show I'm on the right track. > > David, is there something that needs merging from Emacs to CEDET I > need to worry about before making massive structural changes in EIEIO? No, it's all already merged to upstream, including the renames by Stefan. > If the goal is to use EDE's detection scheme and data, but not load > EDE project classes, then we are all set already since the EDE project > classes are not directly involved in detecting the projects. If the > goal is to not use EIEIO at all, then we'd end up just using a plist > other random data structure instead of using EIEIO to do it. This > wouldn't be a big deal because AFAIK, these classes aren't subclassed, > so impact would be small. Let's talk examples, then. Say we have (ede-project-autoload "vcs-root" :name "VCS ROOT" :file 'vcs-root :proj-file 'ede-check-for-vcs-dirs :proj-root 'ede-vcs-root-dir :proj-root-dirmatch "NONE" :class-sym 'ede-vcs-root-project :load-type 'ede-vcs-root-load :new-p nil :safe-p t) So from that we'd take the list of slots, which is practically a plist, and would write something akin to ede-dir-to-projectfile, but using plist-get/set instead of oref/oset? And what would happen when `ede-check-for-vcs-dirs' returns t? Would that load EDE then, or would we try to go on to provide the basic functionality (like getting the root) with a class-less version? -David