From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.devel Subject: Re: Replace trivial pcase occurrences in the Emacs sources Date: Wed, 24 Oct 2018 17:30:26 +0200 Message-ID: <877ei7mkfh.fsf@web.de> References: <20151216202605.GA3752@acm.fritz.box> <877fjrkpdf.fsf@fencepost.gnu.org> <56892334.4000106@yandex.ru> <8760zakb7q.fsf@fencepost.gnu.org> <56892BDA.6060103@dancol.org> <871t9yk98g.fsf@fencepost.gnu.org> <568936F0.3060505@yandex.ru> <87wprqitj5.fsf@fencepost.gnu.org> <56893C8C.3060200@yandex.ru> <87oad2irtd.fsf@fencepost.gnu.org> <5689456A.1010601@yandex.ru> <87egdy8tyz.fsf@fencepost.gnu.org> <56895FDE.4060406@yandex.ru> <8760za8r4a.fsf@fencepost.gnu.org> <87h9iunkcg.fsf@web.de> <87h8hc4xw2.fsf_-_@web.de> <83tvlcsnee.fsf@gnu.org> <87pnw037ar.fsf@web.de> <83ftwvs7y9.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1540395109 29369 195.159.176.226 (24 Oct 2018 15:31:49 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 24 Oct 2018 15:31:49 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: Stefan Monnier , emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Oct 24 17:31:44 2018 Return-path: Envelope-to: ged-emacs-devel@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 1gFL8K-0007Vr-Cl for ged-emacs-devel@m.gmane.org; Wed, 24 Oct 2018 17:31:44 +0200 Original-Received: from localhost ([::1]:49058 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gFLAR-0005be-0B for ged-emacs-devel@m.gmane.org; Wed, 24 Oct 2018 11:33:55 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:34742) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gFL7e-0003fX-HS for emacs-devel@gnu.org; Wed, 24 Oct 2018 11:31:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gFL7Y-0007vk-JU for emacs-devel@gnu.org; Wed, 24 Oct 2018 11:31:02 -0400 Original-Received: from mout.web.de ([212.227.15.3]:59563) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gFL7M-0007W2-0I; Wed, 24 Oct 2018 11:30:44 -0400 Original-Received: from drachen.dragon ([94.218.210.177]) by smtp.web.de (mrweb004 [213.165.67.108]) with ESMTPSA (Nemesis) id 0LqoAk-1fc8jx4Bpi-00eLnm; Wed, 24 Oct 2018 17:30:28 +0200 Original-Received: from drachen.dragon ([94.218.210.177]) by smtp.web.de (mrweb004 [213.165.67.108]) with ESMTPSA (Nemesis) id 0LqoAk-1fc8jx4Bpi-00eLnm; Wed, 24 Oct 2018 17:30:28 +0200 In-Reply-To: <83ftwvs7y9.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 24 Oct 2018 18:03:26 +0300") X-Provags-ID: V03:K1:c9DaJYmmnXXgwhcAk0AY/gC64UqJU72aiSJIdddhLuf01Z+AyxL UXtf2EY1foy3a0P5gX5IWh7M88lMKPV07tLLKFrbjYmfADenbdOyORlKg3qMtwGwbFN4RJh 0XWcn/jy/UkZUG7a591kPA+pe+Ww1dp5N8FMA0w2PgGIJt50ZU/99d1H5tT7yfq98aefmqu fXcVZX/dpXrkLNXKqPntA== X-UI-Out-Filterresults: notjunk:1;V01:K0:x/2+D5xwwNU=:bHsizjc8QfstX3/PLqgc4k txMj1/DHERPYOOLsBbqWF7yGNITkXibaaQRLHAOeLxSiuhAxPoX0QQkI4GIW6m+E+oPWN8da3 WQUphbHyIWeOKhK6Ktmjei5lqfWEXABD9olUEuZ5yUJdLLKQQ9PCmzNeEmLGK6I8pamy1qnCe UwYJyrOPVDIDzaOGIZ9ox3QiYMJaR4YLtHHGZUrd+RbUaC69rHtgNbgOoWhXqgoZdHa7/BAFT vDXVSsymoQ2LGLyjqFiOViobFMCgZ5U2uS2n26mBxmVl8uuMgOXfMwRgbz0599PqpxKiZi9Aq yDfJVEv36emTLPFO2x5hIjMulhlqa5n2a3oaCcK3KhunxeLz0Jux2bv0KGNPcg1oa9s4zVtOK a7bRyhU4kWOPYf0/z+ra7Lf9PuMklLXIzktZ9+TjLblEuxaNXejMIZ8Z7rPVUgOUKJZk4uz2Y 1uNexFBRGnWo+6TWg1lTEFg4GFbFkc9bOql4/zpyOTGAvnQWjwh/uh+yfOX9aAwGYzoVQnIWe jOnmoHaRxgmAoqXy1AkkeZm+cGXTJHa7Ach0q5n153s1ukzLIAlIjvLdlMR4jryxI5ByfcPMI ItRHz7FhAwHI0+XBrouiWrE38MYxou9CXLoFxlaxTxcvBgT+/7OcbmUt4oCme7CbAICE2Y3EN OnvFa3Sxkfv80xE2ibU1BRGc+m8OArFj8YfjFfrtn9fsnDA/lPPtD8Mw+r9o9/Qc49IIg4kaP 8qOC7AOdjkPLDZrsM8aMzJrlvEEhM0/+s8BOJaXSovHzLHV5oIVdvVnnCnOJHRIm+eTvR4Zn X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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" Xref: news.gmane.org gmane.emacs.devel:230631 Archived-At: Eli Zaretskii writes: > FWIW, my main problem is not even with cl-case, it's with 'cond'. It > seems like we have some 'pcase' epidemic, whose first symptom is that > people stop using 'cond' and start using 'pcase' instead. A few > examples: > > todo-mode.el: > > (pcase this-param > ('edit (todo-edit-item--text)) > ('header (todo-edit-item--text 'include-header)) > ('multiline (todo-edit-item--text 'multiline)) > ('add/edit (todo-edit-item--text 'comment-edit)) > ('delete (todo-edit-item--text 'comment-delete)) > ('diary (todo-edit-item--diary-inclusion)) > ('nonmarking (todo-edit-item--diary-inclusion 'nonmarking)) > [...] > > auth-source-pass.el: > > (pcase (length matching-entries) > (0 (auth-source-pass--do-debug "no match found") > nil) > (1 (auth-source-pass--do-debug "found 1 match: %s" (car matching-entries)) > (car matching-entries)) > (_ (auth-source-pass--select-one-entry matching-entries user))))) > > bs.el: > > (setq bs-buffer-show-mark (pcase bs-buffer-show-mark > (`nil 'never) > (`never 'always) > (_ nil)))))) > > calculator.el: > > (<= inp (pcase calculator-input-radix > (`nil ?9) (`bin ?1) (`oct ?7) (_ 999)))) > > lpr.el: > > (pcase (count-lines (point-min) (point-max)) > (0 "") > (1 ": ") > (_ ":\n")) FWIW, these are the major cases I wanted to treat, but I wanted to replace them with equivalent cl-case forms, not with `cond's. > (Quick: what's the difference between `require and 'require in this > case?) There is none any more. > easy-mmode.el: > > (pcase keyw > (`:group (setq group (nconc group (list :group (pop keys))))) > (`:global (setq keys (cdr keys))) > (_ (push keyw extra-keywords) (push (pop keys) extra-keywords)))) > > (Aren't keywords supposed to be self-quoting? then why they are > explicitly quoted?) Yes. > We have dozens of such fragments in our codebase, which just makes the > sources harder to read, especially for people who aren't fluent with > 'pcase' (which seems to be the case with many of us). These are all cases I would want to fix, but unless the whole pcase form can be trivially rewritten as cl-case, I want to leave pcase, really. Michael.