From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: John Wiegley Newsgroups: gmane.emacs.devel Subject: Re: project.el semantics Date: Sun, 22 Nov 2015 08:55:40 -0800 Message-ID: References: <86pp1j4ejm.fsf@stephe-leake.org> <867flrbksb.fsf@stephe-leake.org> <56409F2D.9060300@yandex.ru> <86mvun9gz7.fsf@stephe-leake.org> <56415902.90103@yandex.ru> <86h9ktah9x.fsf@stephe-leake.org> <56429025.3070008@yandex.ru> <86r3jw4yrf.fsf@stephe-leake.org> <564340DC.5020008@yandex.ru> <86wptob2v6.fsf@stephe-leake.org> <5643CEAA.6000103@yandex.ru> <86si4bemyw.fsf@stephe-leake.org> <564478CA.20108@yandex.ru> <86y4e3c90y.fsf@stephe-leake.org> <56450CDB.9050604@yandex.ru> <564D3223.1050705@yandex.ru> <86h9kf655z.fsf@stephe-leake.org> <56515443.70408@yandex.ru> <5651597B.5090303@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1448211609 20704 80.91.229.3 (22 Nov 2015 17:00:09 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 22 Nov 2015 17:00:09 +0000 (UTC) Cc: Stephen Leake , emacs-devel@gnu.org To: Dmitry Gutov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Nov 22 17:59:59 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 1a0Xza-00087e-IA for ged-emacs-devel@m.gmane.org; Sun, 22 Nov 2015 17:59:58 +0100 Original-Received: from localhost ([::1]:56684 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a0Xza-0005Rr-Np for ged-emacs-devel@m.gmane.org; Sun, 22 Nov 2015 11:59:58 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:60909) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a0XzL-0005RX-P6 for emacs-devel@gnu.org; Sun, 22 Nov 2015 11:59:44 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a0XzG-00084Z-PG for emacs-devel@gnu.org; Sun, 22 Nov 2015 11:59:43 -0500 Original-Received: from mail-pa0-x22b.google.com ([2607:f8b0:400e:c03::22b]:33966) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a0XzG-00084V-JW for emacs-devel@gnu.org; Sun, 22 Nov 2015 11:59:38 -0500 Original-Received: by padhx2 with SMTP id hx2so167034107pad.1 for ; Sun, 22 Nov 2015 08:59:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:in-reply-to:date:message-id:references :user-agent:mail-followup-to:mime-version:content-type; bh=WYlOoTZThWdrilRxWfEaR8cFkaud/aNQOP3pPyE/Szs=; b=usiRMpsHIyCv60JT4sN/XYz9jpOb8qFETUBnhz8K93m4CUr/e6UZ+yjJH7j3oHdAg0 xn2/85ATnUlkkBE9rintbXDkoH3B08y2UOnQ8ybHOZtN76D09b1my0kAX29o4u5QV/st N1lZKKEcDXXpnMqYfEsvMfIrweppRsgnJU+ToXxybyY6ozjIavc44BuyRg6WAuWNTnts f9AuQh7QzhJnT3OQDA1y3SWGZo6oRVSn2wpntoGHJtavY4wbj7vY7qFOln7d3FR7IyXL Kt2zFow1V7/nlIV0KkThDKJXpb6NV21gO7GgBK6x8kCtnzgI2sZcxZ5NG/OJD1wa/nJu hrtw== X-Received: by 10.68.68.165 with SMTP id x5mr31395141pbt.14.1448211577916; Sun, 22 Nov 2015 08:59:37 -0800 (PST) Original-Received: from Vulcan.local (76-234-68-79.lightspeed.frokca.sbcglobal.net. [76.234.68.79]) by smtp.gmail.com with ESMTPSA id rn7sm7228697pab.23.2015.11.22.08.59.35 (version=TLS1 cipher=AES128-SHA bits=128/128); Sun, 22 Nov 2015 08:59:36 -0800 (PST) X-Google-Original-From: "John Wiegley" Original-Received: by Vulcan.local (Postfix, from userid 501) id F3BF410A80CD0; Sun, 22 Nov 2015 08:59:34 -0800 (PST) In-Reply-To: <5651597B.5090303@yandex.ru> (Dmitry Gutov's message of "Sun, 22 Nov 2015 07:58:19 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (darwin) Mail-Followup-To: Dmitry Gutov , Stephen Leake , emacs-devel@gnu.org X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:400e:c03::22b 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:195038 Archived-At: >>>>> Dmitry Gutov writes: > Or, vice versa, some other third-party package can only expect the > "recursive" kind of directories, and traverse them that way. That would work > fine on most projects out there, but would lead to undesirable effects if > someone tried to use it with the Ada backend. I'm still not sure why this means we need to encode restrictions within project.el, rather than, say, in Ada mode, or whichever other mode is providing information to project.el for the traversal of its related elements. > IME, freedom rarely implies correctness. I want as much freedom of expression as we can get away with, so long as the default and expected use cases remain easily within reach. I feel, though, as if I've lost my grip on the vision for this project again. As I understand it, it has two main components: 1. Ways to determine members of a project. 2. Ways to usefully apply this information. I think our discussion so far have been in the area of #1 only, right? And is that because we're stuck on how to define membership? As long as, at the level of project.el, membership can optionally be a list of "collection functions", this would allow near infinite expressiveness while not detracting from the standard use cases of recursive and non-recursive directory traversals. I don't think we gain anything by "baking in" what membership means, and disallowing flexible definitions. Such a road leads us to continuing to have to extend and hack project.el's interface, as users run into the limits of what it can express. Which Stefan already has done with ada-mode. We shouldn't even be discussing ada-mode! There is a simple design path that can allow Stefan to define his project contents however he wants. Such questions should not even be an issue at this level of the API. John