From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: "Basil L. Contovounesios" Newsgroups: gmane.emacs.bugs Subject: bug#34852: 26.1; seq-intersection ignores nil as element Date: Thu, 14 Mar 2019 16:19:03 +0000 Message-ID: <87tvg5ctu0.fsf@tcd.ie> References: <87zhpxabn3.fsf@tcd.ie> <87va0lmwlg.fsf@web.de> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="203590"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: Michael Heerdegen , Nicolas Petton , 34852@debbugs.gnu.org, "Miguel V. S. Frasson" To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Mar 14 17:20: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.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1h4T5h-000qoS-GL for geb-bug-gnu-emacs@m.gmane.org; Thu, 14 Mar 2019 17:20:21 +0100 Original-Received: from localhost ([127.0.0.1]:40856 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h4T5g-0003BQ-Al for geb-bug-gnu-emacs@m.gmane.org; Thu, 14 Mar 2019 12:20:20 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:34274) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h4T5R-00038j-BD for bug-gnu-emacs@gnu.org; Thu, 14 Mar 2019 12:20:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h4T5P-0005WF-3Y for bug-gnu-emacs@gnu.org; Thu, 14 Mar 2019 12:20:05 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:58620) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1h4T5O-0005Vv-ON for bug-gnu-emacs@gnu.org; Thu, 14 Mar 2019 12:20:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1h4T5O-0002xv-G3 for bug-gnu-emacs@gnu.org; Thu, 14 Mar 2019 12:20:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: "Basil L. Contovounesios" Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 14 Mar 2019 16:20:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 34852 X-GNU-PR-Package: emacs Original-Received: via spool by 34852-submit@debbugs.gnu.org id=B34852.155258035211335 (code B ref 34852); Thu, 14 Mar 2019 16:20:02 +0000 Original-Received: (at 34852) by debbugs.gnu.org; 14 Mar 2019 16:19:12 +0000 Original-Received: from localhost ([127.0.0.1]:43931 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h4T4a-0002wk-IT for submit@debbugs.gnu.org; Thu, 14 Mar 2019 12:19:12 -0400 Original-Received: from mail-ed1-f53.google.com ([209.85.208.53]:34557) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h4T4Y-0002wX-GC for 34852@debbugs.gnu.org; Thu, 14 Mar 2019 12:19:11 -0400 Original-Received: by mail-ed1-f53.google.com with SMTP id a16so5154576edn.1 for <34852@debbugs.gnu.org>; Thu, 14 Mar 2019 09:19:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tcd-ie.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=OWlDL+BSl8ZBQZuO5E88Mgj4rj2leAiMknQpuZHAHSo=; b=zyqEuu2wf6Z8ON/LXZa18DY36vEN8zUMBaPwaAoTQNhAKHcRe3XSxc6EsgScWZC/VI I9dNMkt43ralPFhmNsEcC9V1KHMw8InD6Hy73JCT1Oj3yVdbf6M68l9/58qai84CHUYT DLmsSx7qtMhm8wdhPgE2PVYdlfZWnyW2T0shRrNsX5/E+QGl0UuspakWS9rDplbf8ks0 qPglp+tsc3auHGHfLgTnYLxcyrPVvFeSL/WhrSoAutLQWFf5Ibv9u/ZG/C1NKm109O5S uoEzJvQ2KzBhvHX6g4uSBL/BbJZ+g9uwub+N/hWrsVrGlayXoBpyQpRrATJdunLixTpA Lr0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=OWlDL+BSl8ZBQZuO5E88Mgj4rj2leAiMknQpuZHAHSo=; b=bR/rVjwua8FzZwlkvU8hLUGfC4qJNjLNPuaSrANcFeruyTwd67bbDPw11fXP99C4Jr 7WczQKqkZaTarT6zKfnVyeqoryV0cni+HRorrFi7vpGRu65MzdoGH2rHu0cr6FIjTOXq 2CopUvyXkqCnbBVTAJKvOJpULuOHexaL0JzhEPNwXlRzXYAhdltjuFAPwbLZxyqzCuBh 8dQ8I5ACXq0gmyp23ArSipY6lW2xcRcVMu4BGetL6OiI+y2jUDT5CWMe40zOZW21S0an F1C8TaM701w1Ahsfq4O/Ickq9moQxAj8ZFjs4/BPSRYNPQ1EA8jopdglqueR615hRryy LN1g== X-Gm-Message-State: APjAAAXG9t9roCsrJsuc5lb8SYX5Aetiu4X9EpTCN1yp2qXtazTRMW6T o2/02UA9muNIsq3ai0dSnCMVrA== X-Google-Smtp-Source: APXvYqwz9nKrqvnWIod8OcVyeBYpc1vLw9Yr6CZUjTTQt+PclaH7+LkjdHj2TNlOaZt0ErGFGojZTA== X-Received: by 2002:a50:d5cd:: with SMTP id g13mr11443108edj.136.1552580344674; Thu, 14 Mar 2019 09:19:04 -0700 (PDT) Original-Received: from localhost ([134.226.214.246]) by smtp.gmail.com with ESMTPSA id a9sm1187187eje.37.2019.03.14.09.19.03 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Thu, 14 Mar 2019 09:19:04 -0700 (PDT) In-Reply-To: (Stefan Monnier's message of "Thu, 14 Mar 2019 09:34:07 -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:156337 Archived-At: Stefan Monnier writes: > Yet another approach might be to make an exception in seq-contains if > the returned element is nil (and return something else in that case). > E.g. > > diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el > index 4a811d7895..d2398eb588 100644 > --- a/lisp/emacs-lisp/seq.el > +++ b/lisp/emacs-lisp/seq.el > @@ -360,7 +360,7 @@ seq-sort-by > Equality is defined by TESTFN if non-nil or by `equal' if nil." > (seq-some (lambda (e) > (when (funcall (or testfn #'equal) elt e) > - e)) > + (or e t))) > sequence)) > > (cl-defgeneric seq-set-equal-p (sequence1 sequence2 &optional testfn) This is both backward-incompatible and inconsistent. If we agree to make a backward-incompatible change, I would rather turn seq-contains into a proper predicate, as per my second patch. Besides, returning the element found isn't particularly useful to begin with, as the caller already has access to that value. Either way, we can install the backward-compatible first patch (which uses seq-position in place of seq-contains) to fix this bug, and later discuss any backward-incompatible changes to seq-contains. Thanks, -- Basil