From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.devel Subject: Re: find-file-project Date: Wed, 20 Jan 2016 18:40:07 +0300 Message-ID: <569FAA57.5000302@yandex.ru> References: <86pp1j4ejm.fsf@stephe-leake.org> <55F899EA.7050700@yandex.ru> <86lhc73wog.fsf@stephe-leake.org> <55F8F2FA.6060902@yandex.ru> <867fnq1oe9.fsf@stephe-leake.org> <55F9A13A.3070101@yandex.ru> <55FB01BD.1070909@yandex.ru> <568C6DE5.8040201@yandex.ru> <568F1327.30905@yandex.ru> <569DD470.2060603@yandex.ru> <569ED9F6.3050003@yandex.ru> <569EE733.6090406@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1453304436 11779 80.91.229.3 (20 Jan 2016 15:40:36 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 20 Jan 2016 15:40:36 +0000 (UTC) Cc: Stephen Leake , emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Jan 20 16:40:32 2016 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 1aLus2-0006vm-JK for ged-emacs-devel@m.gmane.org; Wed, 20 Jan 2016 16:40:30 +0100 Original-Received: from localhost ([::1]:43663 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aLuru-0002s0-C7 for ged-emacs-devel@m.gmane.org; Wed, 20 Jan 2016 10:40:22 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49239) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aLurn-0002rp-8y for emacs-devel@gnu.org; Wed, 20 Jan 2016 10:40:19 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aLurk-00052W-2u for emacs-devel@gnu.org; Wed, 20 Jan 2016 10:40:15 -0500 Original-Received: from mail-lb0-x22e.google.com ([2a00:1450:4010:c04::22e]:34826) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aLurj-00052C-R4 for emacs-devel@gnu.org; Wed, 20 Jan 2016 10:40:12 -0500 Original-Received: by mail-lb0-x22e.google.com with SMTP id bc4so7283179lbc.2 for ; Wed, 20 Jan 2016 07:40:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-type:content-transfer-encoding; bh=b9yFj7/y1yZaY5O6QHdb9tWzLtQzp3SciqQR9rGWOoY=; b=xJ1UrX9OY89UzwLK98d1VtO6xOBMcX5KwXH8+daea2EsVoCyKkvG7vwWxtEZj2HV6I P25zodgDPn5O8hqStxr4PDZYzRgE6cdAbAF/S8nOmWsLVWN031049TdISvpYxZaETUXc mvDNJclclEISUtypJKf8q3tec9hkBd6d73veS6nW0OO4WtptuqjHMsN+ZoUsZbJypmWK kJkvmkDiY+lCMcDVzDxj9u74wnC1lTMBzOs7J5xbd8H62eXdof8wsDMaB3qi2UBxpdE4 wfBy+WUegtaO4UgrPSGwWp4G4bITNsxsXqfojlgeGqAN0CQs4Zy3preOnjkiSxLnl7/Z XK3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:subject:to:references:cc:from:message-id :date:user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=b9yFj7/y1yZaY5O6QHdb9tWzLtQzp3SciqQR9rGWOoY=; b=KlTnj6DQnnCmQDLI0pe8Btc4+Rer6WRpkpNWvaC4qNGOSr3wAf+YaYGxqmpXd5Z/5f p0SesjYuzLBbDbhkHXj+Bni0FIrXtP5PE/Mr8cxM53xoCLwMafex7APZVxBL0OLy70Nu 09GvmZJJzdEeEu2KIJxvlfdhieR2P4RBWtuSDzu3/FknqYWwMLcM0z97JrIWsV5pi0dY rwyTZQE3Qy+BHsCAmptziZh1L1o4kLShOl4e4VGElh8gQwtKrVrDKAJ47JK1dogvfmDF p/6DNNm/8XFx5Ka1VOKWY1qYHROCo7jwtvYF76YPEnvOQSVxs13wEOCSkCKVKZrl3dOE rSrg== X-Gm-Message-State: ALoCoQm18DuR53WIOntYmhVbLfvhMNiVzfIFOyLuXrL4pbMrbR5rCh/Xt7nFT+GUD0l3pJl+xGYMaprUBqjkfdAqxiv49sW7BQ== X-Received: by 10.112.168.194 with SMTP id zy2mr13972853lbb.120.1453304408903; Wed, 20 Jan 2016 07:40:08 -0800 (PST) Original-Received: from [192.168.1.190] ([178.252.127.222]) by smtp.googlemail.com with ESMTPSA id pq10sm4706247lbc.34.2016.01.20.07.40.07 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 20 Jan 2016 07:40:07 -0800 (PST) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:44.0) Gecko/20100101 Thunderbird/44.0 In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:4010:c04::22e 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:198439 Archived-At: On 01/20/2016 05:25 AM, Stefan Monnier wrote: >> Were you going to attach it? > > I was, yes. Thank you. >> The default method will handle lists/alists/hash-tables and >> functions. The specialized methods will handle "dispatchable" types. > > Right, but that still requires the a new "dispatchable" kind of > completion-table. But why do we care about that? Each backend author could invent their own "dispatchable" completion table (with cl-defstruct), or just use (cons 'my-special-table (lambda (string pred action) ...)) > That would allow us to keep using functions (rather than add a new kind > of completion-table), and simply give them a dispatchable type when we > need it. Ah, so they'll be kind of named closure subtypes. I'm still not sure how I feel about dispatching on such type. E.g. with cl-defmethod it would be like adding a new "method" to [the new special kind of] function. Do we really need for the new kind of table to be callable? Because if we just use the (cons ...) value above for this purpose, we can be sure that nobody will call all-completions on it by mistake (or they'll get a very weird result, at least).