From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Noam Postavsky Newsgroups: gmane.emacs.bugs Subject: bug#25294: 26.0.50; Allow more catch-all values for cl-defmethod's &context plus major-mode specializer Date: Tue, 12 Dec 2017 18:58:32 -0500 Message-ID: <87lgi7cxcn.fsf@users.sourceforge.net> References: <874m1mo8ez.fsf@ericabrahamsen.net> <87efo0encf.fsf@users.sourceforge.net> <87d13kqz70.fsf@ericabrahamsen.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1513123149 857 195.159.176.226 (12 Dec 2017 23:59:09 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 12 Dec 2017 23:59:09 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux) Cc: 25294@debbugs.gnu.org To: Eric Abrahamsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Dec 13 00:59:05 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eOuS1-0008Qt-8i for geb-bug-gnu-emacs@m.gmane.org; Wed, 13 Dec 2017 00:59:05 +0100 Original-Received: from localhost ([::1]:32860 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eOuS8-0003sf-HH for geb-bug-gnu-emacs@m.gmane.org; Tue, 12 Dec 2017 18:59:12 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36819) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eOuS2-0003sO-Bd for bug-gnu-emacs@gnu.org; Tue, 12 Dec 2017 18:59:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eOuRy-0002Fq-FL for bug-gnu-emacs@gnu.org; Tue, 12 Dec 2017 18:59:06 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:50414) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eOuRy-0002Fj-BQ for bug-gnu-emacs@gnu.org; Tue, 12 Dec 2017 18:59:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eOuRx-0003Eu-Sh for bug-gnu-emacs@gnu.org; Tue, 12 Dec 2017 18:59:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Noam Postavsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Dec 2017 23:59:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25294 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo Original-Received: via spool by 25294-submit@debbugs.gnu.org id=B25294.151312312312422 (code B ref 25294); Tue, 12 Dec 2017 23:59:01 +0000 Original-Received: (at 25294) by debbugs.gnu.org; 12 Dec 2017 23:58:43 +0000 Original-Received: from localhost ([127.0.0.1]:59095 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eOuRe-0003EF-MU for submit@debbugs.gnu.org; Tue, 12 Dec 2017 18:58:42 -0500 Original-Received: from mail-it0-f43.google.com ([209.85.214.43]:37835) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eOuRd-0003E3-Di for 25294@debbugs.gnu.org; Tue, 12 Dec 2017 18:58:41 -0500 Original-Received: by mail-it0-f43.google.com with SMTP id d137so1596835itc.2 for <25294@debbugs.gnu.org>; Tue, 12 Dec 2017 15:58:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=jnaL/xAdung+WjlIp0CWSs+cWVVoYaOY/cZUmA6NUxo=; b=Bg1nIrZdJMAokBS75rvPtRicktJUtumPCWl96lTTTHecPln/kWscTb2GkCmQcqcHXK wJcnCB1Ch6H+ldCFji3BX2wc+6/h70uvuBWczPb/e2uOYzxLCBs03HvIkoI7Qz2UpFej 7oOQp0JqRNXjzyplaamysa6Qy50WRSypMdbdgRn4k9CgTTGPM3JzPsIoRsWisCojesyn NQ4HgPiHhXcexqzxGa/IMOb5DjwRLO09UG7j8kVVEZqUmFHiC17dMyg1ijkfY/VHGZUH hXduKBwJU44+93sQnALlH96g0hNKikbtdur3KR47Cnk5KyHdJyplM2G0pDdBt6vQPNfn vowQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=jnaL/xAdung+WjlIp0CWSs+cWVVoYaOY/cZUmA6NUxo=; b=YHFupk3bK2omdMKMwyzv4uwNHgAK+vDOmkZlleuP+pw+NngB49FCvJ30RPtf/MnbBn 80aEQtn7/zX0C2bYj/XAj83TNOdlNsyOJA7MvrUGyrEkhWuCu9JV1V/UOZN0bPxQQz5G zw1SGHlcxO+shEJcv8AftSFl6h5Lx2hSaRhg8e2mNtywA3nBuVqfSWeX8HIk5c3ou1dK i0OaVAFFg40xlPeeYuQlHHYPMyjVdhuel0SBPYoKip+xMcsTgWUtjZAJir4lZ/ze6C2C ErLPJxHFniRnUwXBGxc/JFyT3dQqAdpuK4WbwvcMHEsF++oIg/nOjwXNTf5m2xic2vmX ZMGQ== X-Gm-Message-State: AKGB3mKK6JZ7h/GhOWY1C4z04X5jigaa0uHC8GlGDt2relUem/+gM+xG 6oXGP55EcdOblkH2671qBIh4niP9 X-Google-Smtp-Source: ACJfBouaUKaOBNrhaWts6TCPjcKjr/zEPlGJgKTzXDqpm4tNGgHYAq7Cmhp4w7cQrWGIV2zLMgUoiQ== X-Received: by 10.36.60.212 with SMTP id m203mr696128ita.96.1513123115612; Tue, 12 Dec 2017 15:58:35 -0800 (PST) Original-Received: from zebian ([45.2.119.34]) by smtp.googlemail.com with ESMTPSA id e36sm354764itd.27.2017.12.12.15.58.32 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 12 Dec 2017 15:58:34 -0800 (PST) In-Reply-To: <87d13kqz70.fsf@ericabrahamsen.net> (Eric Abrahamsen's message of "Mon, 11 Dec 2017 21:42:43 -0800") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:141012 Archived-At: Eric Abrahamsen writes: > +Generic functions provide a new argument-list keyword, The way you phrased this might lead me to think that the &context keyword should go in the cl-defgeneric form (maybe it's not so bad when seeing in context under cl-defmethod, in patch form it's a bit disconnected). > +@code{&context}, which can be used to introduce extra specializers > +that test the general environment in which the method is run. This > +keyword should appear after the list of required arguments, but before > +any @code{&rest} or @code{&optional} keywords. I wonder if it would be clearer to add this to the @defmac header? @defmac cl-defmethod name [qualifier] arguments [&context (expr spec)@dots{}] &rest [docstring] body Hmm, maybe that ends up being too long. > The @code{&context} > +specializers look much like regular argument > +specializers---(@var{expr} @var{spec})---except that @var{expr} is an > +expression to be evaluated in the current context, and the @var{spec} > +is a value to compare against. For example, @code{&context > +(overwrite-mode (eql t))} will make the method applicable only when > +@code{overwrite-mode} is turned on. The @code{&context} keyword can > +be followed by any number of context specializers. Because the > +context specializers are not part of the generic function's required > +argument signature, they may be omitted in methods that don't require > +them. Otherwise looks fine.