From unknown Sun Jun 22 07:48:55 2025 X-Loop: help-debbugs@gnu.org Subject: bug#62117: 29.0.60; cl-letf on a map place has side-effects Resent-From: Augusto Stoffel Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 11 Mar 2023 07:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 62117 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 62117@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.167852067518340 (code B ref -1); Sat, 11 Mar 2023 07:45:02 +0000 Received: (at submit) by debbugs.gnu.org; 11 Mar 2023 07:44:35 +0000 Received: from localhost ([127.0.0.1]:56463 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1patu6-0004lj-Qn for submit@debbugs.gnu.org; Sat, 11 Mar 2023 02:44:35 -0500 Received: from lists.gnu.org ([209.51.188.17]:49520) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1patu5-0004lb-I9 for submit@debbugs.gnu.org; Sat, 11 Mar 2023 02:44:34 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1patu5-0000mW-8F for bug-gnu-emacs@gnu.org; Sat, 11 Mar 2023 02:44:33 -0500 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1patu3-00035O-67 for bug-gnu-emacs@gnu.org; Sat, 11 Mar 2023 02:44:32 -0500 Received: by mail-ed1-x530.google.com with SMTP id o12so29549928edb.9 for ; Fri, 10 Mar 2023 23:44:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678520668; h=mime-version:user-agent:message-id:date:subject:to:from:from:to:cc :subject:date:message-id:reply-to; bh=dhTjq4gIBZlp4GNb5aFo6/qhWy0ZLorhCF+8YkeL3Xg=; b=UvytrQvxMNeu9PbWCPEEZXHmoW5J/t9I4PVIc93OpJyodWWAXzLbTJdgXTrXkl7VFF 0NuqjWcxLJ/IDFwMjhj+onsoqlv1g73nV4O2WsbfLqu5tOpb6N2gmQEq0zyZy0LVCv37 /14gWxbVg1Pvrghn6SRPCRsmGkATeHlD4kTCPZ/cAgKBd/zsmVA1XIjzDgWAZrCqrb7Z Z0v2XP9KtwoCliu94KyLzQj1IWKIryOfLG1TTeW6s4tzEG4UQklocDuKo7eIWfzBVXnF XpXSjovnRXDG5cWEJ/oRaeMthTWi8+JP1AwZpU1j36IOQ/UdGeSc3KxLbZOQLSAzuobE xzjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678520668; h=mime-version:user-agent:message-id:date:subject:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=dhTjq4gIBZlp4GNb5aFo6/qhWy0ZLorhCF+8YkeL3Xg=; b=BBySMS5uEB2458ANg/0GF9wfyGu+E5XcD9vnP2SfEY0J/EnAGn5o/RhYXcUaPyNPfv STj3F4VOCQAlRnUpgYzm7bbY1RQuUojQVXHfHG3RGfM/gp8ub4EUOlDj6XSOq+VTjMjd JvJxObJm0ESvAFnt/zOI7chPMtKKgQHtGCpAyrhUDjjVLsMgfyoHWvqFPdBxawV4eA8K wtkwTF3IZ7sJgL6QFuEaEzcLKClwQ84gYPvPjafwd8RyKma+9O9jwl9PmdkgzIxKfSz0 sPK7+JM3ifusRPqky0aEtfOtYX8AtV4bH1O13YyjggPTtoJHJFrOE4tQKFY/egkPJ0ry wIMg== X-Gm-Message-State: AO0yUKXEK55mwgOFzkuJy13WoKiYYYXvSZ4mYCsRchpgtZ6gI04G92KV knBI/GPzCih9OaJfDa6P33czWy7DVTC+OQ== X-Google-Smtp-Source: AK7set/hjUl/t8WNRs1ZyF8eVFqtCcxmglSyNFlyZYZQQ21aQhJhAZWWtS9QEabgjkvge9bsgn3s6Q== X-Received: by 2002:aa7:c952:0:b0:4fa:a1a1:9e14 with SMTP id h18-20020aa7c952000000b004faa1a19e14mr393519edt.30.1678520668497; Fri, 10 Mar 2023 23:44:28 -0800 (PST) Received: from ars3 ([2a02:8109:8ac0:56d0::8b3a]) by smtp.gmail.com with ESMTPSA id m5-20020a50d7c5000000b004c0057b478bsm853228edj.34.2023.03.10.23.44.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Mar 2023 23:44:28 -0800 (PST) From: Augusto Stoffel Date: Sat, 11 Mar 2023 08:44:26 +0100 Message-ID: <875yb7vijp.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2a00:1450:4864:20::530; envelope-from=arstoffel@gmail.com; helo=mail-ed1-x530.google.com 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_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Consider this example: --8<---------------cut here---------------start------------->8--- (require 'cl-lib) (defun f (map) (cl-letf (((map-elt map 'a) 1)) map)) (let ((map '(b 2))) (f map) map) => (b 2 a nil) (let ((map (make-hash-table))) (f map) (map-length map)) => 1 --8<---------------cut here---------------end--------------->8--- I would expect `f' to have no side effects, so get (b 2) and 0 respectively in the two examples. For comparison, plist-get as a place has no side-effect: --8<---------------cut here---------------start------------->8--- (defun g (map) (cl-letf (((plist-get map 'a) 1)) map)) (let ((map '(b 2))) (g map) map) (b 2) --8<---------------cut here---------------end--------------->8--- Of course it's usual to treat a nil entry and no entry as equivalent in Lisp, but this behavior can be a problem e.g. when constructing data to pass to other programs. From unknown Sun Jun 22 07:48:55 2025 X-Loop: help-debbugs@gnu.org Subject: bug#62117: 29.0.60; cl-letf on a map place has side-effects Resent-From: Michael Heerdegen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 12 Mar 2023 00:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 62117 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Augusto Stoffel Cc: 62117@debbugs.gnu.org Received: via spool by 62117-submit@debbugs.gnu.org id=B62117.167857922717163 (code B ref 62117); Sun, 12 Mar 2023 00:01:02 +0000 Received: (at 62117) by debbugs.gnu.org; 12 Mar 2023 00:00:27 +0000 Received: from localhost ([127.0.0.1]:58820 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pb98U-0004Sl-QW for submit@debbugs.gnu.org; Sat, 11 Mar 2023 19:00:27 -0500 Received: from mout.web.de ([212.227.17.12]:38799) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pb98T-0004SV-4Z for 62117@debbugs.gnu.org; Sat, 11 Mar 2023 19:00:25 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=s29768273; t=1678579216; i=michael_heerdegen@web.de; bh=0vgylCGnGTpZvb9pw2Jsw/M2oFh+vE3FKCUCbb7PhVE=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date; b=O2pYQns/71bEVaLdaxujeRJFPxoAba4qhYqsMT5WQymHNCzd8Te0Ox+9oDWGceLXz K1X7MMQtYogGCf4AnNZA4zUbUVRqcg6kSulWsOYPHafPh1tIffT+In1ZglozTfx4rE Sq71y2XS9Id48TgH1Q8j7NaEUYQZCdsVppKSncddl2YDO/oIzrZFyK+hs20gThttzs PGuTRgO0NM3USLKDDNUQim5PgBUKH9N0+FMOYQK4ippIK3S1OHOX5a/HyqAVMFKmjx 5FgMaZr3w4VbZORsEDxk1woLBC4TT7X2zF5wMFOOufO9k/QMajpyDo8IZ1jkpw4PpR VVaCv88eiTrUw== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 Received: from drachen.dragon ([178.14.74.115]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MLijy-1psoXf3k2a-00Hxp0; Sun, 12 Mar 2023 01:00:15 +0100 From: Michael Heerdegen In-Reply-To: <875yb7vijp.fsf@gmail.com> (Augusto Stoffel's message of "Sat, 11 Mar 2023 08:44:26 +0100") References: <875yb7vijp.fsf@gmail.com> Date: Sun, 12 Mar 2023 01:00:12 +0100 Message-ID: <87sfeaj0tv.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:pgcjHaUHJ3nKwA8CsmU9599qs2MgSEVHqrIzbs0bVRSrAJD5IsP yuUj9h8Rs3jHDG1xLNjtlgL4VsF/URvgxHHeChQQSDfwinjn4tnwKjajmUsA6vWkiBLeOaN UDTyl9FhomqQ2RzGziYnO9/WeGP1RPDdMfngk89gqOVLmykLeh3h0PgMG+lAgFPF+VrhAt0 lO0POVnjmnnSz7F5W4FSw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:pAxk3R6wZMo=;qXk8lpVVUTaiNu6zH0krwW8G0C6 HnO/afpBtzDwsiDMnf3b2AmHOq4j1Zv8dLvHFWHCjEZnEuQQ+yjwZbzSwT6nAIyA0+pTIdASj J+fCF/fFMXDneFsQtOEl9LpKoRw0knP+JF5mfaqyA8jw0HKJO4vf1/M3k4mgvsmZmth4Lhc/M F0ajul98ZLp4avgu9Qx75p5Oy3WDmGjF8HwgyHFMpX5kbZ4MDVEdgZ634qKjXcJOg4sZX9GuV lpqZrCIBfCFQp9I/1M1nacxiZ0W67P8RtIqGoxsYALY01pgcHrwwZ4d115A+eFct+2AFuAPZu 3gq9J+d2cyn81+AhfnwvmdTYVGt3suLNpxvksacHirj1wM4UAr9sVTtZmToUy7xNWIp1zwkr5 LBBGBsvn3xwKIQyJ8QNPCReEByrBv8vQ7h1s6ZkefoprpQS/C33zksM6DPBM5RkIXKmL8givI XsoE8ELESKlFIEL7SmxBQs1HpDT5nXg/WqIii9015kAzlfcJruwyybQ7GmJsB3ERI6S9wg7qS ymWiwRBl4cLvswHRKJpHYZWMbzNBtPyH7M1bIGi50H44/RjVY8KSbyEwbFiTDbgARlML9E9C3 H9jWI4JJ+e3o+509xJXx5dyQdmUCq5vdhHlictjeeZFCVdCHFbNKA6VBDfqmT6m5TlWbhM6j3 aVrTilbHTt8/gWqLo83GXI4wO/BQoLb+jX2IC/r4piBuUR0e+bP/XZiyD1gxYBB0vd9wUvX1e OEKjzlBk+KGeBsrgsOPNSAvCIs2GF0RG0N9ttuBbm3V3+gXoCw3zoEtnE0GnUjHIuAE2HdV8q 6AwSSSpZHoD+YHMNVA5zo2vhES+wCQVyloRx7l6KWxzy44al63lZIPSDL1Y8mAfxOytmtb8Ys Dspy2iXYuOLzfMwjx+EFy9550q+W3Iezme1CE/LKZ3cvrTi86raEmSkcOg+uWQ1vBGA/z/eYR fkLV33Y/zp/cKXkC2XSTCwTxgss= X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Augusto Stoffel writes: > Consider this example: > > (require 'cl-lib) > (defun f (map) > (cl-letf (((map-elt map 'a) 1)) > map)) > > (let ((map '(b 2))) > (f map) > map) > => (b 2 a nil) > > (let ((map (make-hash-table))) > (f map) > (map-length map)) > => 1 > > > I would expect `f' to have no side effects, so get (b 2) and 0 > respectively in the two examples. This is a symptom of a general limitation of `cl-letf'. Currently you can't rely on a "no side effect" behavior. There are other examples like that (`alist-get') and cases that are worse (binding `buffer-local-value' of a variable in a buffer with no buffer local binding doesn't remove the buffer-localness - that's one reason why that gv had been deprecated). > Of course it's usual to treat a nil entry and no entry as equivalent in > Lisp, but this behavior can be a problem e.g. when constructing data to > pass to other programs. I would say: if it is a problem, map.el is the wrong abstraction for your case. That's the genuine idea of map.el: that the inner structure of a map doesn't matter. So I would close this one - unless you have some enlightening idea that would be an obvious improvement with no downsides and backward compatibility problems. Thanks, Michael. From unknown Sun Jun 22 07:48:55 2025 X-Loop: help-debbugs@gnu.org Subject: bug#62117: 29.0.60; cl-letf on a map place has side-effects Resent-From: Augusto Stoffel Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 12 Mar 2023 06:11:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 62117 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Michael Heerdegen Cc: 62117@debbugs.gnu.org Received: via spool by 62117-submit@debbugs.gnu.org id=B62117.167860140720376 (code B ref 62117); Sun, 12 Mar 2023 06:11:02 +0000 Received: (at 62117) by debbugs.gnu.org; 12 Mar 2023 06:10:07 +0000 Received: from localhost ([127.0.0.1]:58961 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pbEuF-0005Ia-0S for submit@debbugs.gnu.org; Sun, 12 Mar 2023 01:10:07 -0500 Received: from mail-ed1-f44.google.com ([209.85.208.44]:40855) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pbEuD-0005Hm-3F for 62117@debbugs.gnu.org; Sun, 12 Mar 2023 01:10:06 -0500 Received: by mail-ed1-f44.google.com with SMTP id fd5so2668780edb.7 for <62117@debbugs.gnu.org>; Sat, 11 Mar 2023 22:10:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678601399; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=YRj4ouKY6zveHc3BufVIr5N1cwk04YmhubvAD3PjXhg=; b=p/bwlg71U38jOiX6h2ekF7jn2ntx/nrylA+mff8KYJS+1wXPWAkw77ULVJW9xzKoYI evkj3kRA+c27Svj7456/RRdUgMqNSDagq4ESdmFNpso4qKv+mV2uvrfMr52d8h2vGUBz 5JM6SsEVG7Wf/ecWN0Mxk2AmK7cNJEiXg7/gaGc3v5lItqe9OBrmFHWPRm2CskklZcwS CEAw2R/G8FoWXTHqhvun89KTHUFxO5wNVo3wHQN7wCSUaDMot9aVzv2aryq43h87jIs1 9FYiaLsNp1pccSuemefSn+QWrPuR3Li9kIpd9vPMRmrKYAIh9hQUY8Ue2KFfFWpCHUB6 4Eag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678601399; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=YRj4ouKY6zveHc3BufVIr5N1cwk04YmhubvAD3PjXhg=; b=ZaDKr5G5SbUjklbu45DENvIDy2oyNjDWMTEWX2SttSI4iuWwmLvP3o2yhw8qSTNlLZ yy0oJBz5Tu0xB3jOpdlIcEJTCKSoDjkdACIwodn8A4Ul8t/NPy5Rfu76a0E98P9Xh0a3 RdmuzLVrtuFipsiM44BnX7vehjM822NwoL0l8A8bhRUvB45V5TuNerk50h5/TZlDBOu7 IyK6fP+5OxZH/WTc8QvwBaPQGkFvZMrOZqNVqxX/foip9EqRVTSjQeVwlUgY/DurjKn+ oPSuKFHIK2bw24cXotkzo1QhYqPvMPWziAFRChmQJplH4tznx6HOuO2/YeLwxPxblU18 obEA== X-Gm-Message-State: AO0yUKVumy0tRKdj6DS9PNfOZFh2cXSCW+7sJ0X+4JeOjvfpzNszhQzi TOepiC6DOB0z0JDZjnMiyDj3N8PWCD5gSA== X-Google-Smtp-Source: AK7set9i8renM6pGzurvDYucam5QxYNtgquz6CpZ5u54Mhh4lHYe3tCTLURNJnt6XSYG9+zzOo04lQ== X-Received: by 2002:a50:ed94:0:b0:4bc:7eb9:4b2c with SMTP id h20-20020a50ed94000000b004bc7eb94b2cmr29432361edr.35.1678601398664; Sat, 11 Mar 2023 22:09:58 -0800 (PST) Received: from ars3 ([2a02:8109:8ac0:56d0::8b3a]) by smtp.gmail.com with ESMTPSA id n6-20020a509346000000b004bf5981ef3dsm1860383eda.94.2023.03.11.22.09.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 11 Mar 2023 22:09:58 -0800 (PST) From: Augusto Stoffel In-Reply-To: <87sfeaj0tv.fsf@web.de> (Michael Heerdegen's message of "Sun, 12 Mar 2023 01:00:12 +0100") References: <875yb7vijp.fsf@gmail.com> <87sfeaj0tv.fsf@web.de> Date: Sun, 12 Mar 2023 07:09:56 +0100 Message-ID: <87edpufqkr.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Sun, 12 Mar 2023 at 01:00, Michael Heerdegen wrote: > Augusto Stoffel writes: > This is a symptom of a general limitation of `cl-letf'. Currently you can't > rely on a "no side effect" behavior. There are other examples like that > (`alist-get') and cases that are worse (binding `buffer-local-value' of > a variable in a buffer with no buffer local binding doesn't remove the > buffer-localness - that's one reason why that gv had been deprecated). Right, so let's drop this bug. >> Of course it's usual to treat a nil entry and no entry as equivalent in >> Lisp, but this behavior can be a problem e.g. when constructing data to >> pass to other programs. > > I would say: if it is a problem, map.el is the wrong abstraction for > your case. That's the genuine idea of map.el: that the inner structure > of a map doesn't matter. This is not right. map.el doesn't abstract away the nil entries. They make a difference all over, e.g. in map-length, map-do, map-empty-p... From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 12 01:10:31 2023 Received: (at control) by debbugs.gnu.org; 12 Mar 2023 06:10:31 +0000 Received: from localhost ([127.0.0.1]:58964 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pbEud-0005JI-9z for submit@debbugs.gnu.org; Sun, 12 Mar 2023 01:10:31 -0500 Received: from mail-ed1-f45.google.com ([209.85.208.45]:44931) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pbEub-0005J5-I4 for control@debbugs.gnu.org; Sun, 12 Mar 2023 01:10:29 -0500 Received: by mail-ed1-f45.google.com with SMTP id r15so9370518edq.11 for ; Sat, 11 Mar 2023 22:10:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678601423; h=subject:from:to:message-id:date:from:to:cc:subject:date:message-id :reply-to; bh=aZll5ij2OsjFIFzwzn86kLXFh+059q9vodnDmL1x5c0=; b=KxIiEJvWqAbmt6dS906KUXs8TWTXQOlUTnfa09tyyKWy5xhTZWsGOjml8KyiQoXJQD /ntXVODP/JGFh7w8yroFHCtBnTMIulzFgc9CKxvlzGuTFXHzPSf4V1YdrjTTzmlGCUZa 5XPMQyJ5OF9eYkrTxpF6IHP3WOOp1oumyHPgNFED3+Y+Jm+VAVBIhEzhx+CVY0laSH0B WLP7JwUb7iYRmaJ6Ih9H4cWsq6ik/dJaXBluWNupPpbE7w7ute/k52fPTuAlrRwv62FG QNX6l9HcGumQDEBiAtnMeDLUzim91KSqmfQpfn7t1PkYw+OMPisBuFl5ZiviwZGvrgTQ 4vYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678601423; h=subject:from:to:message-id:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aZll5ij2OsjFIFzwzn86kLXFh+059q9vodnDmL1x5c0=; b=tDSxSoTIA/XT8aMKnsYL0RZK565ajsqfpy1SE+n/49GIQZ9D+L4ooPpHAwdlOrYqYj VZRpTy/gM2U+45byKsRewpJW340lGYxjOn5Xc+0BMbDRIrkY5rox5GpuIYNwfvur33lz wdaX8TsAPETxRqR0c8d+Su+F6MBqsWVZzoGNC21RFcSeKMbNjRJ2RkpMTj+FtDH//0YD sEaY0r5kLod37bT1RbpO79arJIFG8r8zo3A0cJrSnIhSZKMeIlDn2QAUUFpK1664aBgB RdQ2x3Ua/2nXN0/Z6yyeDoaiHyz6XYWCHFCyBwN+RQpj9qChxzd7LcRPrVxqo0VcOXjf hWVQ== X-Gm-Message-State: AO0yUKU152PEwVxKDqXl38wrIKV3JsI5FVjqB5RauHeIU6zcwHTM/OcP SLnZBqF7p2mTALiHnQM1RNG4u77dvQupeA== X-Google-Smtp-Source: AK7set//xGi8f29niJskXetDFF7Zrdr1zRJP8een7jZDnJPArPWGGLRQNVQ/ZkEA83qZpHQhRaIo4w== X-Received: by 2002:a17:907:a683:b0:921:a80f:ec36 with SMTP id vv3-20020a170907a68300b00921a80fec36mr3442337ejc.63.1678601423487; Sat, 11 Mar 2023 22:10:23 -0800 (PST) Received: from ars3 ([2a02:8109:8ac0:56d0::8b3a]) by smtp.gmail.com with ESMTPSA id pk10-20020a170906d7aa00b008d1693c212csm1894306ejb.8.2023.03.11.22.10.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 11 Mar 2023 22:10:23 -0800 (PST) Date: Sun, 12 Mar 2023 07:10:22 +0100 Message-Id: <87cz5efqk1.fsf@gmail.com> To: control@debbugs.gnu.org From: Augusto Stoffel Subject: control message for bug #62117 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) close 62117 29.1 quit From unknown Sun Jun 22 07:48:55 2025 X-Loop: help-debbugs@gnu.org Subject: bug#62117: 29.0.60; cl-letf on a map place has side-effects Resent-From: Michael Heerdegen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 15 Mar 2023 02:15:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 62117 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Augusto Stoffel Cc: 62117@debbugs.gnu.org Received: via spool by 62117-submit@debbugs.gnu.org id=B62117.167884644616397 (code B ref 62117); Wed, 15 Mar 2023 02:15:02 +0000 Received: (at 62117) by debbugs.gnu.org; 15 Mar 2023 02:14:06 +0000 Received: from localhost ([127.0.0.1]:38813 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pcGeT-0004GP-Q8 for submit@debbugs.gnu.org; Tue, 14 Mar 2023 22:14:06 -0400 Received: from mout.web.de ([212.227.15.14]:60879) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pcGeS-0004Fm-Mk for 62117@debbugs.gnu.org; Tue, 14 Mar 2023 22:14:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=s29768273; t=1678846438; i=michael_heerdegen@web.de; bh=9jNvUvYgXApmrQym+SjJMA46hB8gvk0Q/ktsElJSlCE=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date; b=R27AdOi3OpoAbOON4uCsoxJEi9mQJ8p209BDwvxMUjMKAnQHxlw9AuUQLIUcLDTvC cdpN8o4x1jS6zFoQIy+xvuf/eaZBMWCowgodrxnNdobU4zZgjGJze+O0HlCkwyjHbE +IsKREyq+qO1kXUzaZSWHD4I/ERu142Vlos6VO3Qkz5kzSyDuu58tSiVce3/KNXmHc 8U95HvpwZtJG7ESn3z1AiCPEK5lYKPvaZHJc6IyjnPLNagyQHNGTkAYwIaPtr5OBp5 1T4elktn86Q30rtmAvnKqVkTLo3ofehHjc8a8FdkGUOMGzL6GB3Dh6uFtuAQkMKyax NTEdjyEYDsC9Q== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 Received: from drachen.dragon ([178.14.74.146]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1Mhnvw-1q7Dgk0ODA-00e5Ef; Wed, 15 Mar 2023 03:13:58 +0100 From: Michael Heerdegen In-Reply-To: <87edpufqkr.fsf@gmail.com> (Augusto Stoffel's message of "Sun, 12 Mar 2023 07:09:56 +0100") References: <875yb7vijp.fsf@gmail.com> <87sfeaj0tv.fsf@web.de> <87edpufqkr.fsf@gmail.com> Date: Wed, 15 Mar 2023 03:13:57 +0100 Message-ID: <875yb2oj6i.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:rqEsyctSwagEa3PuzWtKNbW0NbcEibiKzTsg5zsvysvIQBVJ9Qr Qp0+nZImBtXFb6OqP+OzMPos0xiiT0Gyz11antlipJaVLSHdk6EFBvXoQMEmhDpb5GdG3YX 7EqJiOPsToK44R2RxQbnQQvyuuYP42dDNqBMMRCwb+LdzT6VYIIVsCePeW1K4wHf63IdvbZ mrnqWvpo+ZzRgIFcLBTMg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:3WWeGHg2JOE=;gToc6avr6UlC4lxAF6M77Vorpi+ 8D8aVLxtodmQeCNGDJOZdQ1iPv3dVFZ6in4Ep/kA/jl4pWqlr2ojE7Q0uWTKon+u9UF0jvDVA prPVPZB7w83kNdtrKnwghFICg9wZ0d8JtTX3eFM+v6EC9kH10TCC4ACT+c+o3hfXVp6rGt8Lj cTuJZnI3L9rL33u8hF3ay6+gHhRoEG+Tzg8s1MHfmGoJiDp7kIxB6uSAGBd3x4ChZMrlOOcgN w48k38+VQz8SK/Uv5kI9Z/3MIedK7QXUvbhbddGRGGI+dw3arepAu1ptftx5u0wOS68pbfxMv JNH3dS/l7b+MeSExMjuS1z3PKs4yZjgiJnwNaXubxQ9YWnYzLenloSFvrBT413GDdMMf+4o6H x0bOIvlkyCOo7x5ZtB7BpaMHQVw1qNkaq8O49cmYFH8FZhk6WN+Kkvx4UZPKcS9392DSpjtHn 6qoB6i4ZnzxWvoWXUhDCqRIykwR5Nx0v6XccSkOu7zuCic2sV8GIRYeq1qw+bo5Ez72zyJGa+ eI2zBJUnxeXT+7EbABIDDOw6UJKOeMaZtyJxA2kyjtFfY9KH3RA14NB4X0S0sKmTZ9e9uBK7Y jCp2YgIFNkPe7R347SnjmQ4+FLiyFVE2JD8Fr/GPS8ad0YrRM5CquUse0Gr2C1zSwKK1dWMK4 386+TYkoPUD+Z/hW3kGzw9VmYfL6EBRM2VwsNW9d4bxccmvqm6TZ/BAi8w7FqnVmMWRnLFiRv gudO+2QnJ89om9f7U6DAeEbpVNftXk6gT1EE/M/7RV5wCaV3ZwHhpMhjt4/3Ytnt639AQ+qz+ HFgr4GRkQ9aiKjbDAsKNjyhjgvg01I83TjuC5LsRPFmTkjXHSYJ2DkuWzgcPSuV6pRSe+Znh9 9Eea//vHJUmC7Y0X4APIyrTOGqOJleyXfUeFK81CZbsgcUyuMhD58B2PFDVUFLrvSqPWfmJMU KzM8Tg== X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Augusto Stoffel writes: > >> Of course it's usual to treat a nil entry and no entry as equivalent in > >> Lisp, but this behavior can be a problem e.g. when constructing data to > >> pass to other programs. > > > > I would say: if it is a problem, map.el is the wrong abstraction for > > your case. That's the genuine idea of map.el: that the inner structure > > of a map doesn't matter. > > This is not right. map.el doesn't abstract away the nil entries. They > make a difference all over, e.g. in map-length, map-do, map-empty-p... Hmm - right, of course. For your original recipe, it would in theory help if the implementation of `map-put!' for hash tables would remove the entry if the set value is nil. But for the reason you gave, we probably don't want to do this. Unless maybe we do the same thing that had been done for `alist-get' and add an additional REMOVE argument to the generic functions `map-elt' and `map-put!' (I'm afraid that a lot of people that like using libraries such as map.el don't like using such an argument, though). `cl-letf' would still not be smart enough to distinguish the two cases (1) value was the default value and (2) there was no entry when restoring the gv binding. Michael.