From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Okamsn via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#50927: Considering only entries with unique keys in map.el? Date: Fri, 01 Oct 2021 00:55:21 +0000 Message-ID: <9fda32d4-5c09-a047-18aa-a792211ffa06@protonmail.com> Reply-To: Okamsn Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_jSTdoaysrtT9fbo1OUivQfkYeHwrjsCe7Jx4mC1VFE" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="6601"; mail-complaints-to="usenet@ciao.gmane.io" To: 50927@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Oct 01 02:56:11 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mW6qR-0001V7-3q for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 01 Oct 2021 02:56:11 +0200 Original-Received: from localhost ([::1]:46060 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mW6qO-0000ib-PX for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 30 Sep 2021 20:56:08 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:40908) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mW6qI-0000iT-FB for bug-gnu-emacs@gnu.org; Thu, 30 Sep 2021 20:56:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:42796) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mW6qI-0000Uz-7k for bug-gnu-emacs@gnu.org; Thu, 30 Sep 2021 20:56:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mW6qI-0003R1-5q for bug-gnu-emacs@gnu.org; Thu, 30 Sep 2021 20:56:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Okamsn Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 01 Oct 2021 00:56:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 50927 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.163304974613180 (code B ref -1); Fri, 01 Oct 2021 00:56:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 1 Oct 2021 00:55:46 +0000 Original-Received: from localhost ([127.0.0.1]:54342 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mW6q2-0003QW-AJ for submit@debbugs.gnu.org; Thu, 30 Sep 2021 20:55:46 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:49466) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mW6py-0003QM-Ek for submit@debbugs.gnu.org; Thu, 30 Sep 2021 20:55:44 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:40870) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mW6py-0000gm-56 for bug-gnu-emacs@gnu.org; Thu, 30 Sep 2021 20:55:42 -0400 Original-Received: from mail1.protonmail.ch ([185.70.40.18]:48035) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mW6pv-00009x-Mq for bug-gnu-emacs@gnu.org; Thu, 30 Sep 2021 20:55:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1633049734; bh=EFj8YSpbZlRxs+Z5C561mJ0YVoaxJ3vZY9B9x8AyxCE=; h=Date:To:From:Reply-To:Subject:From; b=kJagijjEzn/1XOXF2N6LG5Hw2Res//CREZ89/TS56OkrzcmPcKqrkdvhDCzgYpyGz aGIK7fEoFN+ETNYEcN6eyC772fwXwpqRffkMmCVg4uhIY7zT/rQSem0DrkgBKuPs6a TxSTsbAlH/4IqQ7pwyYGP391n/iG9wLXVubto/2w= Received-SPF: pass client-ip=185.70.40.18; envelope-from=okamsn@protonmail.com; helo=mail1.protonmail.ch X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" X-ACL-Warn: , Okamsn Xref: news.gmane.io gmane.emacs.bugs:215998 Archived-At: This is a multi-part message in MIME format. --b1_jSTdoaysrtT9fbo1OUivQfkYeHwrjsCe7Jx4mC1VFE Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Some kinds of maps, such as alists and plists, can contain duplicate keys. These duplicates are effectively ignored in functions like `map-elt`, but are not ignored in functions like `map-do` or `map-length`. To me, it would make more sense if these functions only considered the valid entries in the map. For example, (map-pairs '(a 1 b 2 a 3)) currently returns '((a . 1) (b . 2) (a . 3)), even though '(a . 3) is meant to be ignored in actual usage, as it is preceded by an earlier entry with the same key. This is a misleading behavior. I do not know whether the current behavior is desirable. Is it? Please consider changing the library so that the duplicate, meant-to-be-ignored entries are actually ignored for functions that operate on the entire map. I have attached an example diff. Thank you. --b1_jSTdoaysrtT9fbo1OUivQfkYeHwrjsCe7Jx4mC1VFE Content-Type: text/x-patch; name=map-uniq.diff Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=map-uniq.diff ZGlmZiAtLWdpdCBhL2xpc3AvZW1hY3MtbGlzcC9tYXAuZWwgYi9saXNwL2VtYWNzLWxpc3AvbWFw LmVsDQppbmRleCA3NzQzMWYwYzU5Li45ZGIyZGRkOTVmIDEwMDY0NA0KLS0tIGEvbGlzcC9lbWFj cy1saXNwL21hcC5lbA0KKysrIGIvbGlzcC9lbWFjcy1saXNwL21hcC5lbA0KQEAgLTIwMiw2ICsy MDIsMjUgQEAgbWFwLW5lc3RlZC1lbHQNCiAgICAgICAgICAgICAgICAgICBtYXApDQogICAgICAg ZGVmYXVsdCkpDQogDQorKGRlZnVuIG1hcC0tcmVtb3ZlLWR1cGxpY2F0ZS1rZXlzIChtYXApDQor ICAiTWFrZSBhIHZlcnNpb24gb2YgTUFQIHdpdGhvdXQgZHVwbGljYXRlZCBrZXlzLg0KKw0KK1Vu bGlrZSBoYXNoIHRhYmxlcywgYXNzb2NpYXRpb24gYW5kIHByb3BlcnR5IGxpc3RzIGFsbG93DQor ZHVwbGljYXRlIGtleXMgaW4gdGhlIGRhdGEgc3RydWN0dXJlLiAgVGhpcyBmdW5jdGlvbiByZXR1 cm5zIHRoZQ0KK21hcCB3aXRoIHN1Y2gga2V5cyBhbmQgdGhlaXIgcmVzcGVjdGl2ZSBkYXRhIHJl bW92ZWQuIg0KKyAgKGlmIChtYXAtLXBsaXN0LXAgbWFwKQ0KKyAgICAgIChsZXQgKChmb3VuZC1r ZXlzKQ0KKyAgICAgICAgICAgIChyZXN1bHQpKQ0KKyAgICAgICAgKHdoaWxlIG1hcA0KKyAgICAg ICAgICAobGV0ICgoa2V5IChwb3AgbWFwKSkNCisgICAgICAgICAgICAgICAgKHZhbHVlIChwb3Ag bWFwKSkpDQorICAgICAgICAgICAgKHVubGVzcyAobWVtYmVyIGtleSBmb3VuZC1rZXlzKQ0KKyAg ICAgICAgICAgICAgKHB1c2gga2V5IGZvdW5kLWtleXMpDQorICAgICAgICAgICAgICAocHVzaCBr ZXkgcmVzdWx0KQ0KKyAgICAgICAgICAgICAgKHB1c2ggdmFsdWUgcmVzdWx0KSkpKQ0KKyAgICAg ICAgKG5yZXZlcnNlIHJlc3VsdCkpDQorICAgIChzZXEtdW5pcSBtYXAgKGxhbWJkYSAoYSBiKSAo ZXF1YWwgKGNhciBhKSAoY2FyIGIpKSkpKSkNCisNCiAoY2wtZGVmZ2VuZXJpYyBtYXAta2V5cyAo bWFwKQ0KICAgIlJldHVybiB0aGUgbGlzdCBvZiBrZXlzIGluIE1BUC4NCiBUaGUgZGVmYXVsdCBp bXBsZW1lbnRhdGlvbiBkZWxlZ2F0ZXMgdG8gYG1hcC1hcHBseScuIg0KQEAgLTIzNCw2ICsyNTMs NyBAQCBtYXAtbGVuZ3RoDQogICAoaGFzaC10YWJsZS1jb3VudCBtYXApKQ0KIA0KIChjbC1kZWZt ZXRob2QgbWFwLWxlbmd0aCAoKG1hcCBsaXN0KSkNCisgIChzZXRxIG1hcCAobWFwLS1yZW1vdmUt ZHVwbGljYXRlLWtleXMgbWFwKSkNCiAgIChpZiAobWFwLS1wbGlzdC1wIG1hcCkNCiAgICAgICAo LyAobGVuZ3RoIG1hcCkgMikNCiAgICAgKGxlbmd0aCBtYXApKSkNCkBAIC00ODksNyArNTA5LDcg QEAgbWFwLWFwcGx5DQogICAgICAgKGNsLWNhbGwtbmV4dC1tZXRob2QpDQogICAgIChtYXBjYXIg KGxhbWJkYSAocGFpcikNCiAgICAgICAgICAgICAgIChmdW5jYWxsIGZ1bmN0aW9uIChjYXIgcGFp cikgKGNkciBwYWlyKSkpDQotICAgICAgICAgICAgbWFwKSkpDQorICAgICAgICAgICAgKG1hcC0t cmVtb3ZlLWR1cGxpY2F0ZS1rZXlzIG1hcCkpKSkNCiANCiAoY2wtZGVmbWV0aG9kIG1hcC1hcHBs eSAoZnVuY3Rpb24gKG1hcCBoYXNoLXRhYmxlKSkNCiAgIChsZXQgKHJlc3VsdCkNCkBAIC01MDQs NiArNTI0LDcgQEAgbWFwLWFwcGx5DQogICAgICAgICAgICAgICAgICAgIG1hcCkpDQogDQogKGNs LWRlZm1ldGhvZCBtYXAtZG8gKGZ1bmN0aW9uIChtYXAgbGlzdCkpDQorICAoc2V0cSBtYXAgKG1h cC0tcmVtb3ZlLWR1cGxpY2F0ZS1rZXlzIG1hcCkpDQogICAoaWYgKG1hcC0tcGxpc3QtcCBtYXAp DQogICAgICAgKHdoaWxlIG1hcA0KICAgICAgICAgKGZ1bmNhbGwgZnVuY3Rpb24gKHBvcCBtYXAp IChwb3AgbWFwKSkpDQo= --b1_jSTdoaysrtT9fbo1OUivQfkYeHwrjsCe7Jx4mC1VFE--