From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?Q?Adri=C3=A0?= Garriga Newsgroups: gmane.emacs.bugs Subject: bug#37400: Patch for bug in cl-reduce: function called with no arguments when list is empty Date: Fri, 13 Sep 2019 09:50:39 +0100 Message-ID: <18F2BFD9-81BA-4D56-8148-EC0FFA76A1AE@gmail.com> Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Content-Type: multipart/mixed; boundary="Apple-Mail=_EE6A2D24-C2AA-473A-89E6-2616C3AEF76E" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="1781"; mail-complaints-to="usenet@blaine.gmane.org" To: 37400@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Sep 13 16:39:22 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1i8mjJ-0000Nc-OP for geb-bug-gnu-emacs@m.gmane.org; Fri, 13 Sep 2019 16:39:21 +0200 Original-Received: from localhost ([::1]:44690 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i8mjI-0001M2-Cx for geb-bug-gnu-emacs@m.gmane.org; Fri, 13 Sep 2019 10:39:20 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:46774) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i8mi3-0000MO-U4 for bug-gnu-emacs@gnu.org; Fri, 13 Sep 2019 10:38:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i8mi3-00030l-0T for bug-gnu-emacs@gnu.org; Fri, 13 Sep 2019 10:38:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:36656) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1i8mi2-00030f-TY for bug-gnu-emacs@gnu.org; Fri, 13 Sep 2019 10:38:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1i8mi2-0007lN-Oo for bug-gnu-emacs@gnu.org; Fri, 13 Sep 2019 10:38:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: =?UTF-8?Q?Adri=C3=A0?= Garriga Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 13 Sep 2019 14:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 37400 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.156838547429825 (code B ref -1); Fri, 13 Sep 2019 14:38:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 13 Sep 2019 14:37:54 +0000 Original-Received: from localhost ([127.0.0.1]:45477 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i8mhs-0007kx-Ot for submit@debbugs.gnu.org; Fri, 13 Sep 2019 10:37:54 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:47898) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i8hHz-0003TE-QG for submit@debbugs.gnu.org; Fri, 13 Sep 2019 04:50:48 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48531) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i8hHy-0007Dd-Ks for bug-gnu-emacs@gnu.org; Fri, 13 Sep 2019 04:50:47 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i8hHx-0006La-Iw for bug-gnu-emacs@gnu.org; Fri, 13 Sep 2019 04:50:46 -0400 Original-Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]:37817) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1i8hHx-0006Kh-8T for bug-gnu-emacs@gnu.org; Fri, 13 Sep 2019 04:50:45 -0400 Original-Received: by mail-wm1-x32f.google.com with SMTP id r195so1833210wme.2 for ; Fri, 13 Sep 2019 01:50:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:mime-version:subject:message-id:date:to; bh=F/qZXSrZmNXo7dT0zLLjnK30Hu4m5JV3HcH0P3lWh8s=; b=NJZeFN4kcTpvysoYnZDL5g9pQnRboi3cKhoJnEPq2v3X9OGvNJPWiOnIps6LPJakqG its+JvqYrIkUhG5pmXtkSpfvYMspHnn4VtVBdC66S8b39cewYdti0sfQIsV3WTN/qTf1 LbLCkUYsifFEtsr5p+JeQrWfVtyAuQ9lfWNCNGJlaqJjXEVPz6wqPQ8XjEvf6Y8pqMD6 AfQKkewMMrCC//Mt6tHc/vXUQm+lJSKjizjF90lsdnObI6gaEiTYxZKaBTdW2KiIieCF ecbZTNSJHAAEmaUk82LJut2Ma84iuGZYlrGAUeKLyxEOY6duIir1XbjJGOYoXa7YFcIP nvDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:subject:message-id:date:to; bh=F/qZXSrZmNXo7dT0zLLjnK30Hu4m5JV3HcH0P3lWh8s=; b=ThKyJA1+UQ7OveDhbmdeD888/yKorMTCQpUPDEczFfKWG+tJiWVK7cQRaPJGHktM8F db4dzlIkbAr2BPAoGHpaV1UwsepNY2ENHQkmzEITDMJ1Jm3Lwi7VwFpPxcgCAjkfiECe Nadx85suT/b2cjVAFzy9WbO2jMrVaoMdGX0mV98PfXvEijBzlHND5aWzofbkENMcFvbG 8foBZixcrgt7VxptldCq1QEyP4bWRaKwkmMYFiRfHXBE2pNVUnO5t4OOdy+X+wlRCR91 MbJuZplgLqheZG7+eXu4uG2yvYApSCBLUw9QH7Izs/Pucphq35FWtISaImZBOtAeNYXv CxSQ== X-Gm-Message-State: APjAAAVxaJM2H9q7tuAlv4ja4EzennZMBx/NLlN2GehTXrHYbdR0VUU7 Iy7j68mDSn4pHAmANApzjICsDHS+E1Rmgw== X-Google-Smtp-Source: APXvYqyPHTamXeBn7P/R/YuSTG7qzbLYZWhFrZfkVe5yQ/IHwkl4PnXNeTOPq4VgGo0jqRU3GjoR2A== X-Received: by 2002:a1c:eb06:: with SMTP id j6mr2576625wmh.76.1568364643548; Fri, 13 Sep 2019 01:50:43 -0700 (PDT) Original-Received: from [10.106.104.81] (userh708.uk.uudial.com. [194.69.103.81]) by smtp.gmail.com with ESMTPSA id z4sm1070247wrh.93.2019.09.13.01.50.42 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 13 Sep 2019 01:50:42 -0700 (PDT) X-Mailer: Apple Mail (2.3445.104.11) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Mailman-Approved-At: Fri, 13 Sep 2019 10:37:51 -0400 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: 209.51.188.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:166405 Archived-At: --Apple-Mail=_EE6A2D24-C2AA-473A-89E6-2616C3AEF76E Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Hello Emacs developers, I found a bug in cl-reduce, which should be reproducible by running the = test in the patch. I'm running 26.2 but the bug is also present in = master. Please let me know if there are any problems with the patch = (including that it is useless :) or if I need to do something else. Thank you for your hard work maintaining Emacs! Adri=C3=A0 Garriga-Alonso --Apple-Mail=_EE6A2D24-C2AA-473A-89E6-2616C3AEF76E Content-Disposition: attachment; filename=0001-cl-reduce-avoids-calling-the-function-when-list-is-n.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-cl-reduce-avoids-calling-the-function-when-list-is-n.patch" Content-Transfer-Encoding: quoted-printable =46rom=203c5df36904c8a5e9137a90309795b3eb9f90dd73=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Adri=3DC3=3DA0=3D20Garriga-Alonso?=3D= =20=0ADate:=20Wed,=204=20Sep=202019=2011:36:48=20= +0100=0ASubject:=20[PATCH]=20cl-reduce=20avoids=20calling=20the=20= function=20when=20list=20is=20nil=0A=0A---=0A=20= lisp/emacs-lisp/cl-seq.el=20=20=20=20=20=20=20=20=20=20=20=20|=2031=20= ++++++++++++++--------------=0A=20test/lisp/emacs-lisp/cl-seq-tests.el=20= |=20=206=20++++++=0A=202=20files=20changed,=2022=20insertions(+),=2015=20= deletions(-)=0A=0Adiff=20--git=20a/lisp/emacs-lisp/cl-seq.el=20= b/lisp/emacs-lisp/cl-seq.el=0Aindex=20a15c994bc1..8da6ec5a2a=20100644=0A= ---=20a/lisp/emacs-lisp/cl-seq.el=0A+++=20b/lisp/emacs-lisp/cl-seq.el=0A= @@=20-134,21=20+134,22=20@@=20If=20SEQ=20is=20empty,=20return=20= :INITIAL-VALUE=20and=20FUNCTION=20is=20not=0A=20called.=0A=20=0A=20\n(fn=20= FUNCTION=20SEQ=20[KEYWORD=20VALUE]...)"=0A-=20=20(cl--parsing-keywords=20= (:from-end=20(:start=200)=20:end=20:initial-value=20:key)=20()=0A-=20=20=20= =20(or=20(listp=20cl-seq)=20(setq=20cl-seq=20(append=20cl-seq=20nil)))=0A= -=20=20=20=20(setq=20cl-seq=20(cl-subseq=20cl-seq=20cl-start=20cl-end))=0A= -=20=20=20=20(if=20cl-from-end=20(setq=20cl-seq=20(nreverse=20cl-seq)))=0A= -=20=20=20=20(let=20((cl-accum=20(cond=20((memq=20:initial-value=20= cl-keys)=20cl-initial-value)=0A-=09=09=09=20=20(cl-seq=20(cl--check-key=20= (pop=20cl-seq)))=0A-=09=09=09=20=20(t=20(funcall=20cl-func)))))=0A-=20=20= =20=20=20=20(if=20cl-from-end=0A-=09=20=20(while=20cl-seq=0A-=09=20=20=20= =20(setq=20cl-accum=20(funcall=20cl-func=20(cl--check-key=20(pop=20= cl-seq))=0A-=09=09=09=09=20=20=20=20cl-accum)))=0A-=09(while=20cl-seq=0A= -=09=20=20(setq=20cl-accum=20(funcall=20cl-func=20cl-accum=0A-=09=09=09=09= =20=20(cl--check-key=20(pop=20cl-seq))))))=0A-=20=20=20=20=20=20= cl-accum)))=0A+=20=20=20(when=20cl-seq=0A+=20=20=20=20= (cl--parsing-keywords=20(:from-end=20(:start=200)=20:end=20= :initial-value=20:key)=20()=0A+=20=20=20=20=20=20(or=20(listp=20cl-seq)=20= (setq=20cl-seq=20(append=20cl-seq=20nil)))=0A+=20=20=20=20=20=20(setq=20= cl-seq=20(cl-subseq=20cl-seq=20cl-start=20cl-end))=0A+=20=20=20=20=20=20= (if=20cl-from-end=20(setq=20cl-seq=20(nreverse=20cl-seq)))=0A+=20=20=20=20= =20=20(let=20((cl-accum=20(cond=20((memq=20:initial-value=20cl-keys)=20= cl-initial-value)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20(cl-seq=20(cl--check-key=20(pop=20= cl-seq)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20(t=20(funcall=20cl-func)))))=0A+=20=20=20=20=20=20= =20=20(if=20cl-from-end=0A+=20=20=20=20=20=20=20=20=20=20=20=20(while=20= cl-seq=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20(setq=20cl-accum=20= (funcall=20cl-func=20(cl--check-key=20(pop=20cl-seq))=0A+=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20cl-accum)))=0A+=20=20=20=20=20=20=20=20=20=20(while=20= cl-seq=0A+=20=20=20=20=20=20=20=20=20=20=20=20(setq=20cl-accum=20= (funcall=20cl-func=20cl-accum=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (cl--check-key=20(pop=20cl-seq))))))=0A+=20=20=20=20=20=20=20=20= cl-accum))))=0A=20=0A=20;;;###autoload=0A=20(defun=20cl-fill=20(cl-seq=20= cl-item=20&rest=20cl-keys)=0Adiff=20--git=20= a/test/lisp/emacs-lisp/cl-seq-tests.el=20= b/test/lisp/emacs-lisp/cl-seq-tests.el=0Aindex=206515eee9f2..56c1826483=20= 100644=0A---=20a/test/lisp/emacs-lisp/cl-seq-tests.el=0A+++=20= b/test/lisp/emacs-lisp/cl-seq-tests.el=0A@@=20-311,5=20+311,11=20@@=20= Body=20are=20forms=20defining=20the=20test."=0A=20=20=20=20=20=20=20= (should=20(eq=20(cl-assoc=20x=20a)=20(car=20a)))=0A=20=20=20=20=20=20=20= (should=20(eq=20(cl-rassoc=20x=20a)=20(cadr=20a))))))=0A=20=0A= +(ert-deftest=20cl-seq-reduce=20()=0A+=20=20(let=20((bad-add=20(lambda=20= (x=20y)=20(+=20x=20y))))=0A+=20=20=20=20(should-not=20(cl-reduce=20= bad-add=20nil))=0A+=20=20=20=20(should=20(equal=201=20(cl-reduce=20= bad-add=20'(1))))=0A+=20=20=20=20(should=20(equal=203=20(cl-reduce=20= bad-add=20'(1=202))))))=0A+=0A=20(provide=20'cl-seq-tests)=0A=20;;;=20= cl-seq-tests.el=20ends=20here=0A--=20=0A2.21.0=0A=0A= --Apple-Mail=_EE6A2D24-C2AA-473A-89E6-2616C3AEF76E--