From unknown Sun Jun 22 04:16:59 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63671: Add function to test equality of hash tables Resent-From: Joseph Turner Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 23 May 2023 19:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 63671 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 63671@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.168487081432332 (code B ref -1); Tue, 23 May 2023 19:41:02 +0000 Received: (at submit) by debbugs.gnu.org; 23 May 2023 19:40:14 +0000 Received: from localhost ([127.0.0.1]:40446 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q1Xrh-0008PP-OB for submit@debbugs.gnu.org; Tue, 23 May 2023 15:40:14 -0400 Received: from lists.gnu.org ([209.51.188.17]:32940) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q1Xrf-0008PH-Kq for submit@debbugs.gnu.org; Tue, 23 May 2023 15:40:12 -0400 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 1q1Xrf-0001VV-6x for bug-gnu-emacs@gnu.org; Tue, 23 May 2023 15:40:11 -0400 Received: from out-2.mta0.migadu.com ([2001:41d0:1004:224b::2]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q1Xrc-0002Lk-QV for bug-gnu-emacs@gnu.org; Tue, 23 May 2023 15:40:10 -0400 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=breatheoutbreathe.in; s=key1; t=1684870804; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=nwnoTo7gorEnCdom/hnGn60ldV0mgADYDUps5zqnw9g=; b=MLqa6sYNW0x2cURIWadEoGjGe8ZRZJVHoqQecO4CQsG12PHjTTCnbRlHikTWmtZGNrm220 Z+yHiQZ+DC3LjhVaJdqme97cncgYVMKeZwW9EETRy5a7C7FnCvFZOKC3Gbydge3iRhY7SR vM+NhzmYNIBvyix6ghqUlXTs2FnOEBs= From: Joseph Turner Date: Tue, 23 May 2023 12:32:08 -0700 Message-ID: <87edn6bzvz.fsf@breatheoutbreathe.in> MIME-Version: 1.0 Content-Type: text/plain X-Migadu-Flow: FLOW_OUT Received-SPF: pass client-ip=2001:41d0:1004:224b::2; envelope-from=joseph@breatheoutbreathe.in; helo=out-2.mta0.migadu.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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) 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.4 (--) Hello! Would y'all be open to adding something like this? (defun hash-equal (hash1 hash2) "Return non-nil when the contents of HASH1 and HASH2 are equal. Table values are compared using `equal' unless they are both hash tables themselves, in which case `hash-equal' is used. Does not compare equality predicates." (and (= (hash-table-count hash1) (hash-table-count hash2)) (catch 'flag (maphash (lambda (key hash1-value) (let ((hash2-value (gethash key hash2))) (or (if (and (hash-table-p hash1-value) (hash-table-p hash2-value)) (hash-equal hash1-value hash2-value) (equal hash1-value hash2-value)) (throw 'flag nil)))) hash1) t))) Rudimentary test: (let ((hash1 (make-hash-table)) (hash2 (make-hash-table)) (hash3 (make-hash-table)) (hash4 (make-hash-table))) (puthash 'foo "foo" hash1) (puthash 'foo "foo" hash2) (puthash 'bar "foo" hash3) (puthash 'bar "foo" hash4) (puthash 'baz hash3 hash1) (puthash 'baz hash4 hash2) (hash-equal hash1 hash2)) We could use hash-table-test to compare predicates, perhaps dependent on the presence of a 'compare-tests flag? Best, Joseph From unknown Sun Jun 22 04:16:59 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63671: Add function to test equality of hash tables References: <87edn6bzvz.fsf@breatheoutbreathe.in> In-Reply-To: <87edn6bzvz.fsf@breatheoutbreathe.in> Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 24 May 2023 09:28:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63671 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Joseph Turner Cc: 63671@debbugs.gnu.org Received: via spool by 63671-submit@debbugs.gnu.org id=B63671.168492047214133 (code B ref 63671); Wed, 24 May 2023 09:28:02 +0000 Received: (at 63671) by debbugs.gnu.org; 24 May 2023 09:27:52 +0000 Received: from localhost ([127.0.0.1]:41552 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q1kme-0003ft-90 for submit@debbugs.gnu.org; Wed, 24 May 2023 05:27:52 -0400 Received: from mail-lf1-f47.google.com ([209.85.167.47]:60621) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q1kmb-0003fT-J6 for 63671@debbugs.gnu.org; Wed, 24 May 2023 05:27:50 -0400 Received: by mail-lf1-f47.google.com with SMTP id 2adb3069b0e04-4f3b5881734so662610e87.0 for <63671@debbugs.gnu.org>; Wed, 24 May 2023 02:27:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684920463; x=1687512463; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=I/hCct5/WJNRqV7dUR1+zNoXv6xReNuNd0J6PImw9Ks=; b=adpcGrEfqAhLtoUEs1REL0zVNsaG+3n8bxWTMK+aB6OYmXjAF6fxVs1h2JbHbHUwbZ sWgaxB8eye+uyQWOInBEVlDxTcrkL1Ymv4liRYb4mrtfhK1VQuel86+kARi57O7K0NAP w3yEcXhppICq1MC1qThsDv2a7Bte+1fdhcJP763wBLmxNNvchfwYfjAk2PQfEA3kcefv AWDx8TSTa9F52q6QbzJ/qOWb2mKi34kVXbNABZdp4/DpQ1EheuIfLAueQmpbuZ+wYDvQ oryYM1gNrZLo47x7pU1chiQn5DgGPq8mlzm33omPJeo2gkQaG23E5MkaOh8u4wqi5icP Wb7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684920463; x=1687512463; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:sender:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=I/hCct5/WJNRqV7dUR1+zNoXv6xReNuNd0J6PImw9Ks=; b=K5RatAA0aS2pLag4kU6dLgpTdUcR12zIHFs0cxloxgmp5ZJP1WwL0Wzx5xV2Zji8Kn v+m39FCPCxQwRrlyX+nXvcaQJ62e3p5irNj7F+scNz7WCOqgiKqUA+hxbG0AP5KQQDmZ wO6nzc+iz4vucp1Jb80jNWrdtSgTJvsijrBnISxdHde7blDyT712SX421E+7/nVKnQcW Rc8I6+08bfpbQkzJZzjPCzczFfVfj3iaEiiZGOb2hoia8APnryQR9pLahvY71xYSVw1V OoYyVYmCOywVXSWv9J3fZd5tQ43O6+Y3+6RsbikZVVexTv1M0gFI/UQmpo2TPrOppSGO c8EA== X-Gm-Message-State: AC+VfDzCau9B95Skmp6IIantKA/ntVHDr2eL7KUpywjTRM4tuFOj6cJa l3/cbh2LWfEpzvP7V7BpsKzKHB10T9s= X-Google-Smtp-Source: ACHHUZ7ZWZu1x60AYS9d3O1/GTXaT/Z89YcPDnAduAZPFF+GBUP4ZEaYrCbtQbkyPKQ8NMJdb3z4Tw== X-Received: by 2002:ac2:4570:0:b0:4f4:ca64:3c9d with SMTP id k16-20020ac24570000000b004f4ca643c9dmr589973lfm.54.1684920463075; Wed, 24 May 2023 02:27:43 -0700 (PDT) Received: from smtpclient.apple (c188-150-165-235.bredband.tele2.se. [188.150.165.235]) by smtp.gmail.com with ESMTPSA id x4-20020ac24884000000b004f3b258feefsm1654327lfc.179.2023.05.24.02.27.42 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2023 02:27:42 -0700 (PDT) From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Message-Id: Date: Wed, 24 May 2023 11:27:41 +0200 X-Mailer: Apple Mail (2.3654.120.0.1.15) 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 (-) Thank you, but this seems a bit too specific to your own requirements -- = maybe you can keep that procedure locally where you need it? The = standard library must be generally useful with clear semantics. From unknown Sun Jun 22 04:16:59 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63671: Add function to test equality of hash tables Resent-From: Joseph Turner Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 24 May 2023 17:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63671 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Cc: 63671@debbugs.gnu.org Received: via spool by 63671-submit@debbugs.gnu.org id=B63671.16849493491629 (code B ref 63671); Wed, 24 May 2023 17:30:02 +0000 Received: (at 63671) by debbugs.gnu.org; 24 May 2023 17:29:09 +0000 Received: from localhost ([127.0.0.1]:45026 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q1sIP-0000QC-5q for submit@debbugs.gnu.org; Wed, 24 May 2023 13:29:09 -0400 Received: from out-25.mta1.migadu.com ([95.215.58.25]:56638) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q1sIM-0000Q3-JS for 63671@debbugs.gnu.org; Wed, 24 May 2023 13:29:08 -0400 References: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=breatheoutbreathe.in; s=key1; t=1684949344; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hgS164ejr2tJQI1psLNCzB1jwhU0omWH51lITDpK3rQ=; b=jv9HoHWEF+IvL+YHuGn4ygFiXTyR6NGYF0UFL1AyH40UuQfJGvhET+kC9EgXFLZ7fQT4jq 0Wwm6LHh2dWdDTvrCIzFAaL2Z2JRZWhZj64P8owUJG6nvx+UdKoO3Coshszgonb50Cmc3/ se2ZmxP8S//j3e14zDNXZCZufQZfqCg= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Joseph Turner Date: Wed, 24 May 2023 10:27:13 -0700 In-reply-to: Message-ID: <87y1ldk59f.fsf@breatheoutbreathe.in> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT 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 (-) Mattias Engdeg=C3=A5rd writes: > Thank you, but this seems a bit too specific to your own requirements > -- maybe you can keep that procedure locally where you need it? It's no problem to keep the procedure local. > The standard library must be generally useful with clear semantics. Would extending `equal' to handle hash tables be generally useful? Joseph From unknown Sun Jun 22 04:16:59 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63671: Add function to test equality of hash tables Resent-From: Ihor Radchenko Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 24 May 2023 19:58:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63671 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Joseph Turner Cc: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= , 63671@debbugs.gnu.org Received: via spool by 63671-submit@debbugs.gnu.org id=B63671.168495822928820 (code B ref 63671); Wed, 24 May 2023 19:58:02 +0000 Received: (at 63671) by debbugs.gnu.org; 24 May 2023 19:57:09 +0000 Received: from localhost ([127.0.0.1]:45206 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q1ubd-0007Um-6F for submit@debbugs.gnu.org; Wed, 24 May 2023 15:57:09 -0400 Received: from mout01.posteo.de ([185.67.36.65]:44581) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q1ubZ-0007UF-8U for 63671@debbugs.gnu.org; Wed, 24 May 2023 15:57:08 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 2262B240028 for <63671@debbugs.gnu.org>; Wed, 24 May 2023 21:56:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1684958219; bh=vxoEVov4ADDE/3qrxa3VPVlu0CoBFozAnH/GhPr3r1o=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:From; b=XGpj+Tx5W2vLuDPkfaaTtuXHpynb4eFjgJ/s/ajTDp01wWnPf5jnyDU6oVscBfk5M dxfbP9F4pPhdBBcwTHC88ILfnAZoK8YICRZJpb85w4jsEkQGub2ZogwtQCnR/nKNQ0 mDFB+g5sB/Nul0tCpw7c3Lg5d+gxarP8POy0VMZdw7v7hhkiJPtA0I6XiKn20FTD41 D7/VjgT6SS6t7qYKBFSYq0YE+BFHhgSizuLqS+MBCIKhA9EN7RJMNr1wNgeg4LI8so ZiTiTCAg0EbNVytLN+izuzpYyjVU/fvWZ9PFWziHJjFwcjx43PvpEijT8+0+/QRXd7 fKQc2xbAcWHmg== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4QRMQf4V6Kz9rxN; Wed, 24 May 2023 21:56:58 +0200 (CEST) From: Ihor Radchenko In-Reply-To: <87y1ldk59f.fsf@breatheoutbreathe.in> References: <87y1ldk59f.fsf@breatheoutbreathe.in> Date: Wed, 24 May 2023 20:01:01 +0000 Message-ID: <87cz2p4hz6.fsf@localhost> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.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: -3.3 (---) Joseph Turner via "Bug reports for GNU Emacs, the Swiss army knife of text editors" writes: >> The standard library must be generally useful with clear semantics. > > Would extending `equal' to handle hash tables be generally useful? See https://yhetil.org/emacs-devel/871qvz4kdw.fsf@localhost/ -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at . Support Org development at , or support my work at From unknown Sun Jun 22 04:16:59 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63671: Add function to test equality of hash tables Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 24 May 2023 20:35:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63671 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Joseph Turner Cc: 63671@debbugs.gnu.org Received: via spool by 63671-submit@debbugs.gnu.org id=B63671.1684960465376 (code B ref 63671); Wed, 24 May 2023 20:35:01 +0000 Received: (at 63671) by debbugs.gnu.org; 24 May 2023 20:34:25 +0000 Received: from localhost ([127.0.0.1]:45220 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q1vBh-00005z-0u for submit@debbugs.gnu.org; Wed, 24 May 2023 16:34:25 -0400 Received: from mail-lf1-f50.google.com ([209.85.167.50]:62572) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q1vBb-00005d-NY for 63671@debbugs.gnu.org; Wed, 24 May 2023 16:34:23 -0400 Received: by mail-lf1-f50.google.com with SMTP id 2adb3069b0e04-4f3a611b3ddso295327e87.0 for <63671@debbugs.gnu.org>; Wed, 24 May 2023 13:34:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684960453; x=1687552453; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:sender:from:to:cc:subject:date:message-id:reply-to; bh=r+taTOWWqcpRL9eCqS9uJZK0BI8RNhspjXosqU94irw=; b=gezyJBworNCI9vGVlb7UFHWhOuSFdjlKyR1jwoSQNFewLuFXfSPRtp4+TGb5+zg/mJ v8zDx3TPIkhJsYg0vt3Vi+P3VXj39WbuLspz3E2rJyCZSpXTj/JGGxytiX5uDBVnvUpv HipI/vwWmH+CAv2GsszIQPO56/HlIchJDKqAXCGiHUlf2FmDLUejVw0wGjzqe8VnGfQf IpJEdNz+RX05GOkI8lvohek405uIQG6rcoYqNylJADli94ucyonukh+7uFFt4Q+Mi1XQ u8Ud+Nx4OwmvAiiOFZoJv9Du3aCPBrgDI+He9bJnBIMaG69fwK+0tJrcybBWnZQEcLIq e3iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684960453; x=1687552453; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=r+taTOWWqcpRL9eCqS9uJZK0BI8RNhspjXosqU94irw=; b=eG8wcFCp5rK/VaDb0DFi17JRTBkouDLLeoVZMtHRjzStPO0ssjUmdVqw/q5u39OEmP aNsevlhaldwVVa8smR1FTWjMtSvwFFrFNjgTX8EYcLH26FmZxlCbOa2KVY4HV5cQ8d+W VIrsqbY82nCZC3eBrUoi2+jSsriZOqH84HGAW0+5wGJPV/rsSjrxvwrmSb03fV9uZ4Wb coQx1T9YJIElHNmIVr2BaFPc5jBmcitp97PgCeygop466Y5bkQaez6umlU8JAtmM207e KjVPyFlaldjwDXDqOAuT8BaiCJTtCGvCb1mmGKcPyBC80MBjNqX/ilXpaTOKw7Sgk5Zi dhag== X-Gm-Message-State: AC+VfDw16JhbqsFRZdxHmkin6BujfqjvY1vSN06SdgM7OBruTQG9Mk7G FtXN0DhlqN3Gs6SEXJkVT8w= X-Google-Smtp-Source: ACHHUZ7ymvNZs40vwSI3pSKwMVVRz5+oAV8dfa0G4pv+cd/IJby8jJpD77ve5EuFaMjQYhJzBwyT4Q== X-Received: by 2002:ac2:5338:0:b0:4f4:a656:2466 with SMTP id f24-20020ac25338000000b004f4a6562466mr146729lfh.15.1684960453042; Wed, 24 May 2023 13:34:13 -0700 (PDT) Received: from smtpclient.apple (c188-150-165-235.bredband.tele2.se. [188.150.165.235]) by smtp.gmail.com with ESMTPSA id r27-20020ac252bb000000b004f38267a2f9sm1834416lfm.161.2023.05.24.13.34.12 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2023 13:34:12 -0700 (PDT) From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Message-Id: <567C6354-0FD1-4441-B5F7-8A9ADC44DB41@gmail.com> Content-Type: multipart/mixed; boundary="Apple-Mail=_34F072A2-5F60-4CD5-8FF8-0DC326FC01F1" Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Date: Wed, 24 May 2023 22:34:11 +0200 In-Reply-To: <87y1ldk59f.fsf@breatheoutbreathe.in> References: <87y1ldk59f.fsf@breatheoutbreathe.in> X-Mailer: Apple Mail (2.3654.120.0.1.15) 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 (-) --Apple-Mail=_34F072A2-5F60-4CD5-8FF8-0DC326FC01F1 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii 24 maj 2023 kl. 19.27 skrev Joseph Turner : > Would extending `equal' to handle hash tables be generally useful? It would, but doing so would be very risky at this point since it would = change long-standing semantics. We could make an augmented version of `equal` but what we really want is = one that works for user-defined types (see Ihor's reference to a = previous discussion). Anyway, here's an old patch I had lying around, in case we decide that = we do need a shoddy equality predicate for hash tables only. --Apple-Mail=_34F072A2-5F60-4CD5-8FF8-0DC326FC01F1 Content-Disposition: attachment; filename=hash-table-equal-p.diff Content-Type: application/octet-stream; x-unix-mode=0644; name="hash-table-equal-p.diff" Content-Transfer-Encoding: 7bit diff --git a/lisp/emacs-lisp/subr-x.el b/lisp/emacs-lisp/subr-x.el index 9cd793d05c..17ca80a297 100644 --- a/lisp/emacs-lisp/subr-x.el +++ b/lisp/emacs-lisp/subr-x.el @@ -93,6 +93,28 @@ hash-table-values "Return a list of values in HASH-TABLE." (cl-loop for v being the hash-values of hash-table collect v)) +(defun hash-table-equal-p (h1 h2 &optional value-eq) + "Whether the hash tables H1 and H2 are equal with respect to VALUE-EQ. +Equality means that the tables have the same equality predicate +and the same set of key-value pairs where keys are compared by +that predicate and values by VALUE-EQ, which defaults to `eq'." + (or (eq h1 h2) + (and (= (hash-table-count h1) (hash-table-count h2)) + (eq (hash-table-test h1) (hash-table-test h2)) + (progn + (unless value-eq + (setq value-eq #'eq)) + ;; Loop over the physically smaller table. + (when (> (hash-table-size h1) (hash-table-size h2)) + (cl-rotatef h1 h2)) + (catch 'done + (maphash + (lambda (k v) + (unless (funcall value-eq v (gethash k h2 (not v))) + (throw 'done nil))) + h1) + t))))) + (defsubst string-empty-p (string) "Check whether STRING is empty." (string= string "")) diff --git a/test/lisp/emacs-lisp/subr-x-tests.el b/test/lisp/emacs-lisp/subr-x-tests.el index 7f3916c2c0..923155eedb 100644 --- a/test/lisp/emacs-lisp/subr-x-tests.el +++ b/test/lisp/emacs-lisp/subr-x-tests.el @@ -743,6 +743,55 @@ test-with-buffer-unmodified-if-unchanged (with-current-buffer inner (should-not (buffer-modified-p)))))))) +(ert-deftest subr-x--hash-table-equal-p () + (cl-flet ((hashtab (test &rest elts) + (let ((h (make-hash-table :test test))) + (while elts + (let* ((key (pop elts)) + (val (pop elts))) + (puthash key val h))) + h))) + + (let ((h1 (hashtab #'eq 'a (list 1) 'b (list 2)) + (h2 (hashtab #'eq 'a (list 1) 'b (list 2))))) + (should (hash-table-equal-p h1 h2 #'equal)) + (should (hash-table-equal-p h2 h1 #'equal)) + (should (not (hash-table-equal-p h1 h2 #'eq))) + (should (not (hash-table-equal-p h2 h1 #'eq))) + (should (hash-table-equal-p h1 h1 #'eq))) + + (let ((h1 (hashtab #'eql 1 'a 2 'b) + (h2 (hashtab #'equal 1 'a 2 'b)))) + (should (not (hash-table-equal-p h1 h2))) + (should (not (hash-table-equal-p h2 h1)))) + + (let ((h1 (hashtab #'eql 1 'a 2 'a) + (h2 (hashtab #'eql 1 'a)))) + (should (not (hash-table-equal-p h1 h2))) + (should (not (hash-table-equal-p h2 h1)))) + + (let ((h1 (hashtab #'eql 1 'a 2 'a) + (h2 (hashtab #'eql 1 'a 2 'b)))) + (should (not (hash-table-equal-p h1 h2))) + (should (not (hash-table-equal-p h2 h1)))) + + (let ((h1 (hashtab #'eql 1 'a 2 'a) + (h2 (hashtab #'eql 1 'a 3 'a)))) + (should (not (hash-table-equal-p h1 h2))) + (should (not (hash-table-equal-p h2 h1)))) + + (let ((h1 (hashtab #'eql) + (h2 (hashtab #'eql)))) + (should (hash-table-equal-p h1 h2)) + (should (hash-table-equal-p h2 h1))) + + (let ((h1 (make-hash-table :test #'eql :size 1000 :rehash-size 3.5)) + (h2 (hashtab #'eql 10 'a 20 'b))) + (puthash 10 'a h1) + (puthash 20 'b h1) + (should (hash-table-equal-p h1 h2)) + (should (hash-table-equal-p h2 h1))) + )) (provide 'subr-x-tests) ;;; subr-x-tests.el ends here --Apple-Mail=_34F072A2-5F60-4CD5-8FF8-0DC326FC01F1-- From unknown Sun Jun 22 04:16:59 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63671: Add function to test equality of hash tables Resent-From: Joseph Turner Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 25 May 2023 02:48:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63671 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Cc: yantar92@posteo.net, 63671@debbugs.gnu.org Received: via spool by 63671-submit@debbugs.gnu.org id=B63671.168498287720312 (code B ref 63671); Thu, 25 May 2023 02:48:01 +0000 Received: (at 63671) by debbugs.gnu.org; 25 May 2023 02:47:57 +0000 Received: from localhost ([127.0.0.1]:45548 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q211A-0005HX-Vh for submit@debbugs.gnu.org; Wed, 24 May 2023 22:47:57 -0400 Received: from out-33.mta1.migadu.com ([95.215.58.33]:45081) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q2115-0005Ge-Co for 63671@debbugs.gnu.org; Wed, 24 May 2023 22:47:56 -0400 References: <87y1ldk59f.fsf@breatheoutbreathe.in> <567C6354-0FD1-4441-B5F7-8A9ADC44DB41@gmail.com> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=breatheoutbreathe.in; s=key1; t=1684982868; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6eWi/mBgXooftnFAQGxkYgNjMUocNkGrQ2Uq7k8DdTg=; b=SsKdSmDQv/CRmOEACclPkAPVeajERus3Z5pAzjYv5QjiGMhlmmz9IcZlRY30dzTiizFnpB L1DDdnAGplysvi+SgpxI3OCK2sXSTSSqLp8w6M1A8VYBMeQUUPRyJ0JQdMAS0r9YJfAUKc CRHezLmtcVSXT0kXX91nGmJiZgPs6u0= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Joseph Turner Date: Wed, 24 May 2023 19:44:29 -0700 In-reply-to: <567C6354-0FD1-4441-B5F7-8A9ADC44DB41@gmail.com> Message-ID: <87fs7ljfe8.fsf@breatheoutbreathe.in> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT 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 (-) Mattias Engdeg=C3=A5rd writes: > 24 maj 2023 kl. 19.27 skrev Joseph Turner : > >> Would extending `equal' to handle hash tables be generally useful? > > It would, but doing so would be very risky at this point since it would c= hange long-standing semantics. > > We could make an augmented version of `equal` but what we really want is = one that works for user-defined types (see Ihor's reference to a previous d= iscussion). > > Anyway, here's an old patch I had lying around, in case we decide that we= do need a shoddy equality predicate for hash tables only. Thank you for the references, Ihor and Mattias! Since this is a duplicate of Ihor's thread, my report should probably be closed. How do I close this report? Joseph From unknown Sun Jun 22 04:16:59 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63671: Add function to test equality of hash tables Resent-From: Ihor Radchenko Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 25 May 2023 06:28:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63671 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Joseph Turner Cc: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= , 63671@debbugs.gnu.org Received: via spool by 63671-submit@debbugs.gnu.org id=B63671.168499607922847 (code B ref 63671); Thu, 25 May 2023 06:28:02 +0000 Received: (at 63671) by debbugs.gnu.org; 25 May 2023 06:27:59 +0000 Received: from localhost ([127.0.0.1]:45702 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q24S7-0005wQ-83 for submit@debbugs.gnu.org; Thu, 25 May 2023 02:27:59 -0400 Received: from mout02.posteo.de ([185.67.36.66]:45475) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q24S3-0005vr-5X for 63671@debbugs.gnu.org; Thu, 25 May 2023 02:27:57 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id C083E240105 for <63671@debbugs.gnu.org>; Thu, 25 May 2023 08:27:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1684996068; bh=DDhk2Q1HXtmYWd91rOKniqdzmPcvUABkR3YaGgz7J7s=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:From; b=nD7B1hTgzCH9qA5O7zVhtqrLb8MW3mA13krhOvV1uxIFHCUlB3FGqGHikrqZhouoe SRUt8qpEawV/lKHhTeXJ08vqcxfJ4hOaSNaxR5Cqm8w97fzgoGpRAgDXj0SC/4Nw8M 2wKtQiXOmwMzGDxhSM62VDn8Efazk/b/AynucW+01/1MV4RebknroDVOP4SGGIookY cEcXM6amvGvLryVFnoOKT8JmNyivtyvLq5skB97ELF0Q7qdAdJOukSkc0c0Dah+ZqJ y4JPlpI29Q6CfHnDoVjZmDLI1j09556yM+jg1ZdEK7jia7HBgsMGzbg9yrDP6G7bFe NvNumF08Jd92A== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4QRdQW6TCTz6tn4; Thu, 25 May 2023 08:27:47 +0200 (CEST) From: Ihor Radchenko In-Reply-To: <87fs7ljfe8.fsf@breatheoutbreathe.in> References: <87y1ldk59f.fsf@breatheoutbreathe.in> <567C6354-0FD1-4441-B5F7-8A9ADC44DB41@gmail.com> <87fs7ljfe8.fsf@breatheoutbreathe.in> Date: Thu, 25 May 2023 06:31:52 +0000 Message-ID: <877cswyl9j.fsf@localhost> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.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: -3.3 (---) Joseph Turner writes: > Thank you for the references, Ihor and Mattias! Since this is a > duplicate of Ihor's thread, my report should probably be closed. If we are serious about adding this feature, lets not close this report. My email was on emacs-devel, and it is thus less visible compared to something being tracked on debbugs. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at . Support Org development at , or support my work at From unknown Sun Jun 22 04:16:59 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63671: Add function to test equality of hash tables Resent-From: Joseph Turner Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 25 May 2023 07:27:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63671 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Ihor Radchenko Cc: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= , 63671@debbugs.gnu.org Received: via spool by 63671-submit@debbugs.gnu.org id=B63671.168499956229337 (code B ref 63671); Thu, 25 May 2023 07:27:01 +0000 Received: (at 63671) by debbugs.gnu.org; 25 May 2023 07:26:02 +0000 Received: from localhost ([127.0.0.1]:45821 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q25MI-0007d5-DY for submit@debbugs.gnu.org; Thu, 25 May 2023 03:26:02 -0400 Received: from out-44.mta0.migadu.com ([91.218.175.44]:41651) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q25MF-0007ce-5j for 63671@debbugs.gnu.org; Thu, 25 May 2023 03:26:01 -0400 References: <87y1ldk59f.fsf@breatheoutbreathe.in> <567C6354-0FD1-4441-B5F7-8A9ADC44DB41@gmail.com> <87fs7ljfe8.fsf@breatheoutbreathe.in> <877cswyl9j.fsf@localhost> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=breatheoutbreathe.in; s=key1; t=1684999557; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=zx9FGDbJ5VyL0BRTNAOeld15975gvRCg/X19unsMoT8=; b=Qn2WoKzifbbXThZAUfNCodLvoM5s+78n/Gyq6ib+bcQah71Vs5JPTxDbzJnmL+XkFSCrjh ty/p/4G8ODUDb/c3L03/aTxHU3/lXYkDFn+zU/LfFa3KMeolMGFJLRihUoe4+pG1+3my/j zlZBveTommOETxn+46iLsmoWT7TwuAA= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Joseph Turner Date: Thu, 25 May 2023 00:22:50 -0700 In-reply-to: <877cswyl9j.fsf@localhost> Message-ID: <878rdckh3g.fsf@breatheoutbreathe.in> MIME-Version: 1.0 Content-Type: text/plain X-Migadu-Flow: FLOW_OUT 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 (-) Ihor Radchenko writes: > If we are serious about adding this feature, lets not close this report. > My email was on emacs-devel, and it is thus less visible compared to > something being tracked on debbugs. I would be happy to see this feature added to Emacs! Unfortunately, I won't be of much help right now since I have no C experience. From unknown Sun Jun 22 04:16:59 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63671: Add function to test equality of hash tables Resent-From: Joseph Turner Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 25 May 2023 07:27:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63671 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Ihor Radchenko Cc: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= , 63671@debbugs.gnu.org Received: via spool by 63671-submit@debbugs.gnu.org id=B63671.168499957029357 (code B ref 63671); Thu, 25 May 2023 07:27:02 +0000 Received: (at 63671) by debbugs.gnu.org; 25 May 2023 07:26:10 +0000 Received: from localhost ([127.0.0.1]:45824 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q25MP-0007dR-Nn for submit@debbugs.gnu.org; Thu, 25 May 2023 03:26:09 -0400 Received: from out-61.mta0.migadu.com ([91.218.175.61]:41822) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q25MN-0007dI-VJ for 63671@debbugs.gnu.org; Thu, 25 May 2023 03:26:08 -0400 References: <87y1ldk59f.fsf@breatheoutbreathe.in> <567C6354-0FD1-4441-B5F7-8A9ADC44DB41@gmail.com> <87fs7ljfe8.fsf@breatheoutbreathe.in> <877cswyl9j.fsf@localhost> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=breatheoutbreathe.in; s=key1; t=1684999567; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=zx9FGDbJ5VyL0BRTNAOeld15975gvRCg/X19unsMoT8=; b=KQ6VndjonKs+YP/FJ7WKejYp/wZB/liFSwp0bA4e9zsHqG7SFjROeBKE+Kl8YpPB/KkrB6 lTZWu3Ows9X1KOoqS6K56OVlcJXk7NtcVfkiIlp33Df9VurOT2DzK+VrlnEiIgAluRjEY9 8Lf3YMC28JZbP7iDhRIzMbhx0GwoPcw= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Joseph Turner Date: Thu, 25 May 2023 00:22:50 -0700 In-reply-to: <877cswyl9j.fsf@localhost> Message-ID: <875y8gkh2w.fsf@breatheoutbreathe.in> MIME-Version: 1.0 Content-Type: text/plain X-Migadu-Flow: FLOW_OUT 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 (-) Ihor Radchenko writes: > If we are serious about adding this feature, lets not close this report. > My email was on emacs-devel, and it is thus less visible compared to > something being tracked on debbugs. I would be happy to see this feature added to Emacs! Unfortunately, I won't be of much help right now since I have no C experience. From unknown Sun Jun 22 04:16:59 2025 X-Loop: help-debbugs@gnu.org Subject: bug#63671: Add function to test equality of hash tables Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 25 May 2023 08:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63671 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Ihor Radchenko Cc: 63671@debbugs.gnu.org, Joseph Turner Received: via spool by 63671-submit@debbugs.gnu.org id=B63671.16850026973121 (code B ref 63671); Thu, 25 May 2023 08:19:02 +0000 Received: (at 63671) by debbugs.gnu.org; 25 May 2023 08:18:17 +0000 Received: from localhost ([127.0.0.1]:45896 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q26Aq-0000oH-Rm for submit@debbugs.gnu.org; Thu, 25 May 2023 04:18:17 -0400 Received: from mail-lj1-f178.google.com ([209.85.208.178]:47218) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q26Am-0000nw-Im for 63671@debbugs.gnu.org; Thu, 25 May 2023 04:18:14 -0400 Received: by mail-lj1-f178.google.com with SMTP id 38308e7fff4ca-2af2e908163so3135571fa.2 for <63671@debbugs.gnu.org>; Thu, 25 May 2023 01:18:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685002685; x=1687594685; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=T20Z/k5l4wLkUEedrPVVUcbk0SwX1b/8Vsdl0ns+Cfs=; b=j/VG+XlBn7vZXmBse1WnD5K2168IiVNfoV0XrMBJJlpwOm+ViRztRcn9vaLZuoBUNh vIikSCvS6i+29Gow3k1QMTOTSziqP7krLHqPeLR8j234HdvncRTzsP3vefA6Hgk0kwLX 3o7NFZPBWLD933RLOCaiQFcda/9sx6KFdmH/VNB7WEZOMA0wBFlgHRaFoSc2zB1fAqtx /F0+PJ1DtGFHlnErss6m3qhPYzpjMEo7rmP6h5V7QD4Ahlnw35fg5+wE2qUjmbgsUb7s ynEHdZaLWvsMQC6cjuYwuK4MYRn7w3G5odvteSdXGhqoZ4hMvAzFosqwyFbcmq6+RvBR qp1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685002685; x=1687594685; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=T20Z/k5l4wLkUEedrPVVUcbk0SwX1b/8Vsdl0ns+Cfs=; b=jq03zQyRvgLPN3uTSfgvoINGKDqcHvdffyOlhcI3OmKPC//MWlYnrjYGqjOJBko3DP aQiGU0swsJ3CUn9IfBp+9Z2ISFPRbEaAcleMXFBqllDDi7h9EOJNo5fdFMLLWIhkYmPl e9tXyufqbMYHUCvvSTSMGUEhoN062NTovRIJpZXSNtK2cRBZ+en4ow7uy8JprsQlmiP1 Bn/xCahrt0tv+aIDdTz7tBzxc1DRLQEKfHZf0x5ntRcL7mLqkj4J63f/cQhrrNd4aDb5 kkMyTPEyJMpC8XZXH4+GzyKDKfYDiYIXy0lCDZkglTAorDJOUvg1/zSOknzrW9yTzB7l 1Pgw== X-Gm-Message-State: AC+VfDymDS3+c6Fd6ha9Payp4WyFHd/2/zXsMCUed5JbNfHw5XFnVumw 0GuVAKber9VJ2SnV4UeI9aI= X-Google-Smtp-Source: ACHHUZ4cQG3TcwqYg0kiSFxPIMRIOb3H931oQ97jF6iNtYPeefQCFmNaBXWsGZSJ97agwLxfhuL6Fg== X-Received: by 2002:a2e:80d8:0:b0:2a8:adc4:a928 with SMTP id r24-20020a2e80d8000000b002a8adc4a928mr782395ljg.18.1685002684968; Thu, 25 May 2023 01:18:04 -0700 (PDT) Received: from smtpclient.apple (c188-150-165-235.bredband.tele2.se. [188.150.165.235]) by smtp.gmail.com with ESMTPSA id e20-20020a2e8ed4000000b002a9ee18e9c7sm139647ljl.69.2023.05.25.01.18.04 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 25 May 2023 01:18:04 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= In-Reply-To: <877cswyl9j.fsf@localhost> Date: Thu, 25 May 2023 10:18:03 +0200 Content-Transfer-Encoding: 7bit Message-Id: <473991CA-F326-4FEF-9D00-F25396936246@gmail.com> References: <87y1ldk59f.fsf@breatheoutbreathe.in> <567C6354-0FD1-4441-B5F7-8A9ADC44DB41@gmail.com> <87fs7ljfe8.fsf@breatheoutbreathe.in> <877cswyl9j.fsf@localhost> X-Mailer: Apple Mail (2.3654.120.0.1.15) 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 (-) 25 maj 2023 kl. 08.31 skrev Ihor Radchenko : > If we are serious about adding this feature, lets not close this report. I for one am not, at least not now. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 04 04:26:12 2023 Received: (at control) by debbugs.gnu.org; 4 Sep 2023 08:26:12 +0000 Received: from localhost ([127.0.0.1]:48314 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qd4uS-0005Dj-DP for submit@debbugs.gnu.org; Mon, 04 Sep 2023 04:26:12 -0400 Received: from mail-lf1-x12f.google.com ([2a00:1450:4864:20::12f]:50520) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qd4uQ-0005DV-Iz for control@debbugs.gnu.org; Mon, 04 Sep 2023 04:26:10 -0400 Received: by mail-lf1-x12f.google.com with SMTP id 2adb3069b0e04-4ff8f2630e3so1950902e87.1 for ; Mon, 04 Sep 2023 01:26:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693815965; x=1694420765; darn=debbugs.gnu.org; h=to:subject:message-id:date:mime-version:from:from:to:cc:subject :date:message-id:reply-to; bh=sSDRoXRmtf3ut7SRYEJ0Uc7H7rCi6dvdveFiCep5+sQ=; b=FHT1zKEqeEe1PfsrtZHdlO7zSqhA/+hO6B5YBq1ViXDfLqOlRU70OhiPobF1MSjmlo UJSOZeO2KHhqD4jxclQGpr/HTUw+2sQDQ7K38Tt7xO1SylGS0+X1rhU8VGzUOXdunLS0 vxuc7gSoavC6jEbjaMdN62I6TSglbK7Wjs8Je4fGLPZkr9vXSg+eSvfIEOzD8fQVsodx GuUWDxOumRe/qRe6nZVVS1TQASjOmrHj0BzAUK6GpEnwsHgtU3DE/O35r3e1MV+H6eTV QHMctaFTvi9sc4UTqWhTOSO3z0nxiYLwSW3JUXh0oG9+UyKQ2Iy7jWQopTJVxDtWz1/X xE6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693815965; x=1694420765; h=to:subject:message-id:date:mime-version:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=sSDRoXRmtf3ut7SRYEJ0Uc7H7rCi6dvdveFiCep5+sQ=; b=kVFNMBerkUYRsnnHb9DNX7DPeZV6hyKkL0CZMCJ5dBsXFrFFVAOlO7LPmRTIoYb1Yr W7WihYM2CzF5xkDJbP7Z0sWSMTUjBkUwyd9Dgn8bPH3KUvkVlgJp1bazUtciI0JSaIcp PATAQlE869M7x9Xkx4QXWeTlHKsfRTsKYIwwtNdGkdZCX3B2LO7q39QG31ZBl4WPdKU+ VKqMF+rn/FrwhCHMvY0IWDKZTyBUVQU3eLTnR1AhVOeluSqsNrQ0uEfehdLKMj/cqFj2 pefMAs8q+rCXwvOFgsWPF+ENC17rgUw5i78GWT6lzXpGuOHXTrlhLWgESdvT8HpoOeFl 9Zow== X-Gm-Message-State: AOJu0YwKoyJR+D1LyW25hbhZ+v01WWu6pszGxayJJhWMbbnwXTKtHfH/ ZqcWCnVvi6YaF+Xn23H2aP/+6eBxBcG6/wFMOcOLBpC9Rv0= X-Google-Smtp-Source: AGHT+IFzJa4JNaCDyRCxGBH5HrY/tOKCq2AF9h3hSKahx947I+2IIiowfrHO6OxFZUgLjRwrfvdyUHp34wwbWGFrIcw= X-Received: by 2002:ac2:598d:0:b0:4fd:f80e:4977 with SMTP id w13-20020ac2598d000000b004fdf80e4977mr5838671lfn.19.1693815964776; Mon, 04 Sep 2023 01:26:04 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Mon, 4 Sep 2023 01:26:04 -0700 From: Stefan Kangas MIME-Version: 1.0 Date: Mon, 4 Sep 2023 01:26:04 -0700 Message-ID: Subject: control message for bug #63671 To: control@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" 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 (-) severity 63671 wishlist quit From unknown Sun Jun 22 04:16:59 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Joseph Turner Subject: bug#63671: closed (Re: bug#63671: Add function to test equality of hash tables) Message-ID: References: <87edn6bzvz.fsf@breatheoutbreathe.in> X-Gnu-PR-Message: they-closed 63671 X-Gnu-PR-Package: emacs Reply-To: 63671@debbugs.gnu.org Date: Mon, 11 Sep 2023 18:40:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1694457602-5491-1" This is a multi-part message in MIME format... ------------=_1694457602-5491-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #63671: Add function to test equality of hash tables which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 63671@debbugs.gnu.org. --=20 63671: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D63671 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1694457602-5491-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 63671-done) by debbugs.gnu.org; 11 Sep 2023 18:39:20 +0000 Received: from localhost ([127.0.0.1]:54808 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qflod-0001Pa-OH for submit@debbugs.gnu.org; Mon, 11 Sep 2023 14:39:19 -0400 Received: from mail-lj1-x22a.google.com ([2a00:1450:4864:20::22a]:60721) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfloZ-0001PF-RC for 63671-done@debbugs.gnu.org; Mon, 11 Sep 2023 14:39:18 -0400 Received: by mail-lj1-x22a.google.com with SMTP id 38308e7fff4ca-2bcb89b476bso81244821fa.1 for <63671-done@debbugs.gnu.org>; Mon, 11 Sep 2023 11:39:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694457545; x=1695062345; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date :mime-version:references:in-reply-to:from:from:to:cc:subject:date :message-id:reply-to; bh=BP/fAe/UxVgrJ25QAkWyN7vckXW/gmzVxuji90UhCtI=; b=hRIR5OT0geknuYSP2+WkxMsr1ohsTE8AgMaDyqCjOTyX2Tgz7cVN2SpohOIn8jKTqD Oowu+aV+aFR2MKW+KAocOJdOnN+qz4KK3i9eGuwAPjDJT4HfouMErCLsdky7B8DbUeaN XhlzVFS0phnar8JVxenWwtMN5ooyrUigluAk9yl61hCvctvw3aC2BA/EQ75pyM/ZVGK1 Cvs3AWkGeZYUCQamEPufIwnVXXj3I6+fx40hJHMVbqMIUSkqER4z7/xlFmSCuItEy9E9 7i2JtZ+yL8x18nK2SK7eL8IQ+56aYaJ/WKLdA30CtWpBnPBUtCU8M57pi+MhebWF5EHx coZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694457545; x=1695062345; h=content-transfer-encoding:cc:to:subject:message-id:date :mime-version:references:in-reply-to:from:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=BP/fAe/UxVgrJ25QAkWyN7vckXW/gmzVxuji90UhCtI=; b=UHQLIHbD7Aj6P7DF64JJf/QWnnqLkd9YkgC3m62hBRsjyH+Uky5oCs1AYdrRUnlF9/ TWfKZpqnVL/8rrcLHk7ljO/5lANZbPMTSozQ3vBX2b54JOsB4LtvfWcqsGEBGEiSRTGI qk69Jdieqr8m/X0GZ+U5HtVxjAV3vh1+9DZbQPiCMr+0Y3vHO+STU3+cLNDRlegSdBuR dGNk6WIlI9khPamtQ6hihr0rUqKx3QT1ZvyWCE/Kbdj0fKbudCiM6bZSZWmoHDKhYNy/ HIaFHDfOocpfefptYgC73zLmIGfXle5EEwBqYL+cNk4lVfzF2SsL3Ep8VqneXpcbY3DO +E5A== X-Gm-Message-State: AOJu0YxcOBDsjyF3SDHP85qezpLnHvZEwUksu6+BXvDUlqgiIv00CGw1 RMSvYol9mmZp3R5gGAHWLvWTLDCt0IwDy0O33Zs= X-Google-Smtp-Source: AGHT+IGbXL4LzTJlufVwO9/4fz/Rd+apZh8siYRn4KKMEvgGqyGuJEQ8XI+w1Msd7zGOec1/F2lrrhUmepYT/iIDlHk= X-Received: by 2002:a2e:9bcf:0:b0:2bc:dfc0:1afc with SMTP id w15-20020a2e9bcf000000b002bcdfc01afcmr9035478ljj.10.1694457544994; Mon, 11 Sep 2023 11:39:04 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Mon, 11 Sep 2023 11:39:04 -0700 From: Stefan Kangas In-Reply-To: <473991CA-F326-4FEF-9D00-F25396936246@gmail.com> References: <87y1ldk59f.fsf@breatheoutbreathe.in> <567C6354-0FD1-4441-B5F7-8A9ADC44DB41@gmail.com> <87fs7ljfe8.fsf@breatheoutbreathe.in> <877cswyl9j.fsf@localhost> <473991CA-F326-4FEF-9D00-F25396936246@gmail.com> MIME-Version: 1.0 Date: Mon, 11 Sep 2023 11:39:04 -0700 Message-ID: Subject: Re: bug#63671: Add function to test equality of hash tables To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= , Ihor Radchenko Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 63671-done Cc: 63671-done@debbugs.gnu.org, Joseph Turner 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 (-) Mattias Engdeg=C3=A5rd writes: > 25 maj 2023 kl. 08.31 skrev Ihor Radchenko : > >> If we are serious about adding this feature, lets not close this report. > > I for one am not, at least not now. Let's close this for now then. ------------=_1694457602-5491-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 23 May 2023 19:40:14 +0000 Received: from localhost ([127.0.0.1]:40446 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q1Xrh-0008PP-OB for submit@debbugs.gnu.org; Tue, 23 May 2023 15:40:14 -0400 Received: from lists.gnu.org ([209.51.188.17]:32940) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q1Xrf-0008PH-Kq for submit@debbugs.gnu.org; Tue, 23 May 2023 15:40:12 -0400 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 1q1Xrf-0001VV-6x for bug-gnu-emacs@gnu.org; Tue, 23 May 2023 15:40:11 -0400 Received: from out-2.mta0.migadu.com ([2001:41d0:1004:224b::2]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q1Xrc-0002Lk-QV for bug-gnu-emacs@gnu.org; Tue, 23 May 2023 15:40:10 -0400 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=breatheoutbreathe.in; s=key1; t=1684870804; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=nwnoTo7gorEnCdom/hnGn60ldV0mgADYDUps5zqnw9g=; b=MLqa6sYNW0x2cURIWadEoGjGe8ZRZJVHoqQecO4CQsG12PHjTTCnbRlHikTWmtZGNrm220 Z+yHiQZ+DC3LjhVaJdqme97cncgYVMKeZwW9EETRy5a7C7FnCvFZOKC3Gbydge3iRhY7SR vM+NhzmYNIBvyix6ghqUlXTs2FnOEBs= From: Joseph Turner To: bug-gnu-emacs@gnu.org Subject: Add function to test equality of hash tables Date: Tue, 23 May 2023 12:32:08 -0700 Message-ID: <87edn6bzvz.fsf@breatheoutbreathe.in> MIME-Version: 1.0 Content-Type: text/plain X-Migadu-Flow: FLOW_OUT Received-SPF: pass client-ip=2001:41d0:1004:224b::2; envelope-from=joseph@breatheoutbreathe.in; helo=out-2.mta0.migadu.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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit 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.4 (--) Hello! Would y'all be open to adding something like this? (defun hash-equal (hash1 hash2) "Return non-nil when the contents of HASH1 and HASH2 are equal. Table values are compared using `equal' unless they are both hash tables themselves, in which case `hash-equal' is used. Does not compare equality predicates." (and (= (hash-table-count hash1) (hash-table-count hash2)) (catch 'flag (maphash (lambda (key hash1-value) (let ((hash2-value (gethash key hash2))) (or (if (and (hash-table-p hash1-value) (hash-table-p hash2-value)) (hash-equal hash1-value hash2-value) (equal hash1-value hash2-value)) (throw 'flag nil)))) hash1) t))) Rudimentary test: (let ((hash1 (make-hash-table)) (hash2 (make-hash-table)) (hash3 (make-hash-table)) (hash4 (make-hash-table))) (puthash 'foo "foo" hash1) (puthash 'foo "foo" hash2) (puthash 'bar "foo" hash3) (puthash 'bar "foo" hash4) (puthash 'baz hash3 hash1) (puthash 'baz hash4 hash2) (hash-equal hash1 hash2)) We could use hash-table-test to compare predicates, perhaps dependent on the presence of a 'compare-tests flag? Best, Joseph ------------=_1694457602-5491-1--