From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.bugs Subject: bug#47992: [External] : bug#47992: 27; 28; Phase out use of `equal` in `add-hook`, `remove-hook` Date: Sun, 25 Apr 2021 01:23:03 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12813"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Daniel Mendler , "47992@debbugs.gnu.org" <47992@debbugs.gnu.org>, "jakanakaevangeli@chiru.no" To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Apr 25 03:24:13 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 1laTVM-0003CH-SL for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 25 Apr 2021 03:24:12 +0200 Original-Received: from localhost ([::1]:42098 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1laTVL-0000R2-M8 for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 24 Apr 2021 21:24:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51072) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1laTVC-0000Qs-4n for bug-gnu-emacs@gnu.org; Sat, 24 Apr 2021 21:24:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:58430) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1laTVB-0001AJ-Tm for bug-gnu-emacs@gnu.org; Sat, 24 Apr 2021 21:24:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1laTVB-0007iL-Kg for bug-gnu-emacs@gnu.org; Sat, 24 Apr 2021 21:24:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Drew Adams Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 25 Apr 2021 01:24:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47992 X-GNU-PR-Package: emacs Original-Received: via spool by 47992-submit@debbugs.gnu.org id=B47992.161931381729623 (code B ref 47992); Sun, 25 Apr 2021 01:24:01 +0000 Original-Received: (at 47992) by debbugs.gnu.org; 25 Apr 2021 01:23:37 +0000 Original-Received: from localhost ([127.0.0.1]:41743 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1laTUn-0007hi-4b for submit@debbugs.gnu.org; Sat, 24 Apr 2021 21:23:37 -0400 Original-Received: from userp2120.oracle.com ([156.151.31.85]:34282) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1laTUi-0007hQ-7N for 47992@debbugs.gnu.org; Sat, 24 Apr 2021 21:23:35 -0400 Original-Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13P1Ka4u051355; Sun, 25 Apr 2021 01:23:06 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2020-01-29; bh=gJFl+8O1i/OKueZWWZ4z/VNioxQmXmJSlw1j/O0kndg=; b=TG81PVJH/p3fTmORDC4h/wlM2F3wFO1V2OXBamt8rbcUG3KwblndRdNk6QwOESfy+SkR 19tmuj5567c1ZU1TYykmu2ufrvRE99Ju0UUAlk/5/mkmYyUIJjbWBMKdjBuWw0HPROdo h+q4Vnv6UOZQm6lG9kSbBPjcf1dNndqZFFsJn74wil3kaG2mWdvjHDZwOqib2/3EM5jK VElYR7LQcd/2p0JyC+1vhBoKwrQBkFhm1g3ctp+qf+rcFegqzhGTgirg6R5DPrkgqxQ7 7xQ/j02T4rreGbhlar/Py16NsDYFYBnFbdX67G4HIdV8lQmnx2j2y7NPK23qUY2KeLEu DA== Original-Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by userp2120.oracle.com with ESMTP id 384byp0um7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sun, 25 Apr 2021 01:23:06 +0000 Original-Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 13P1KB5j151473; Sun, 25 Apr 2021 01:23:05 GMT Original-Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2170.outbound.protection.outlook.com [104.47.58.170]) by userp3020.oracle.com with ESMTP id 384w3pbja3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sun, 25 Apr 2021 01:23:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nz9MqYRSC5TvXFSAcYzk+UciWUFmqm+6F3Mk1H5Ep2DgCTHjoBd4VhcsVIeeHq7xO2fvwUtDLgGY44nKTbcM/lMjuWwS5QatGNgyPZnWFCyrwxe87rVsJZNjQ9kDdQD06IjbajnrwtRrW3wBQ/3iOxMtDoWwYuf2O1S4dkZ88eBxB8ZHX0pFktC5qpJG22vi8IYQRln7C0VHf6AkZBXYtyw9m5JgJ2ciFk2llb84+qrjQr513EnNJAk5wTq+jWC0uHKUFlc8m4FvO7fGn/90z0HMobU6JtB2oGSoxomoonEZlcOBgSFGSjN/BJSKwLumQbSJmIfj79dyR+pITyWfnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gJFl+8O1i/OKueZWWZ4z/VNioxQmXmJSlw1j/O0kndg=; b=X0thiBryLUUHiwUhZ3A30PMKVrW0odj2AzkFG1bUVfEdiE5WNPpSUPGYqkpNi2MRrg94Dj/m9dv+S/Mf4Dj+s+IjRE06rjImrBJHta9ZQtXDBRsi0hNCtvn4FCuecdlVrm5MydDOB6i1Ux1Kg0MRgzblYXc/HjmcLAhcsgL2DJiWgzHKmCleyQVbBjaKeX7YSrtpkiZOL1hoYnJuHXzE5YSJqnbG5MOjRMKTkIvaQznNV944pcanfBDH+MM6ZCfJtxsilKfanCEzt0NO3bli3gMhREvps7xnAc3DRUKtMq86o78cnoTR00OctU3GL4N5AD1DWwxDGIewPLo/A6J5/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gJFl+8O1i/OKueZWWZ4z/VNioxQmXmJSlw1j/O0kndg=; b=b5bobsEJe7zCV6tdxz1ZI97W7gw8l0UE/5cRpUPNBKMrV8z6igni+ZRni5V5mhtZMxEKF1p4GVQGtx0et6+/SiZgGMpZZ+JRCCAIedxehQTPaN5+lZerznwXStwOlSVxMHNUiOnfDoi8P7gRStzOpYqWDFhn5eYyjY/cYSyeF8I= Original-Received: from SA2PR10MB4474.namprd10.prod.outlook.com (2603:10b6:806:11b::15) by SA2PR10MB4491.namprd10.prod.outlook.com (2603:10b6:806:f8::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21; Sun, 25 Apr 2021 01:23:03 +0000 Original-Received: from SA2PR10MB4474.namprd10.prod.outlook.com ([fe80::2109:9725:fd4a:6494]) by SA2PR10MB4474.namprd10.prod.outlook.com ([fe80::2109:9725:fd4a:6494%6]) with mapi id 15.20.4065.021; Sun, 25 Apr 2021 01:23:03 +0000 Thread-Topic: [External] : bug#47992: 27; 28; Phase out use of `equal` in `add-hook`, `remove-hook` Thread-Index: AQHXOVlplAKe4jS4J0a4UimtXIDqy6rEZNCw In-Reply-To: Accept-Language: en-US Content-Language: en-US authentication-results: iro.umontreal.ca; dkim=none (message not signed) header.d=none;iro.umontreal.ca; dmarc=none action=none header.from=oracle.com; x-originating-ip: [73.170.83.28] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9f6d632c-f245-46ff-6ffc-08d90788ac63 x-ms-traffictypediagnostic: SA2PR10MB4491: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 275nGhWOVM7yaJl4DASZpv1pEuWyHqV1ibzIgcPu4Uh25L+K6U+IUDXXemZgVuagpDj7PSdEjga27tEjdXlBw4ndNwojd1dCx157q6Ku6vJ2mxWkY6nnzKsD74Brcr6O2RKbGcP7O3yy6g0lZC/3lAcqWULLlI0h9eURqa4Vq7tRsukKoCbWto6cppI6x4Bu8RDZoMFd9c+GJF9SOfSqlw/M5HtGm1ZkTN5HnYmfpsywIkoahe7rF/oVQdy9w75qNSI7qWxnO2vJWjKRDTFTe2LRMmsIkSs618akATLPz8T6dKmMehByTgjvntfwgjPTjjRj9c8sQpuPZFvLwMSOQ57I2LmUw/5nhOIp8tJH1E82LuSzxNbrUHL+uvjdd078efjEAIfjNV2nrfVzboSkKGQBmM1+24bxXoxmjCrN2VAk/wiQ6PFYuOZNgbmvUzaqGIcI6bTHNHDo0sEV4npgeVculcFQjwOKSCuRHdwWnxSj/2gpvvdHAxduaKgDY0Y1jLLXW4GYCoG562rEm+Tjo3AyOL3Pf+0ZTM6/toMqMJnU2jJqO7/KMbU9RIvoPMm7+/eOkcu9xPQAsXd8LxPFI7zUemTpJhJwF6JP7PEy5/68MUNeERFkqcLWU3bsQuN3vUixJoDJCMY4D7WxWuupCw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR10MB4474.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(136003)(376002)(39860400002)(396003)(346002)(122000001)(83380400001)(316002)(66446008)(76116006)(38100700002)(8936002)(64756008)(7696005)(66556008)(66946007)(44832011)(55016002)(4326008)(8676002)(26005)(33656002)(52536014)(6916009)(296002)(54906003)(66476007)(5660300002)(186003)(6506007)(478600001)(86362001)(71200400001)(9686003)(2906002)(81973001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: 9sKwImIBLISrm06WHz/3K489KhZjRmOS1eud+LDPSwQ2C2MDPsOFmiW00ruWcY0U9qgWDURgKcXarGZv+NBSDMcFqa+PEsJY6fpM8nGdN3sJj2KX1GsIR/umsSmBJtFxVewwmJ5IvjdlM8Vf29V+tvriTmzCNxbUbyKctTONI0axjgSTcCgxmIfCVzkVwcTexbxZltu2Umck1X4QiGDt0rBw5f1KX2WgS8bThMxHF/53CuiXq7Vsw5n7m0C5+HrTFA8wzv6KKb2sPyUj0u+3RbJyk/vkMd4fNAJPzVBXt88TWPfQLEdtTRcJQKDcY6BrlMglUo3TVE9la5z22FnBgI0y4GT7vQhknqK35obyRMPE3w8AjGtdsISyORJyhcha5OzHTU2kBwb0caAr8V4etYTfV4xR1jVcK6js6EjnbmMoS7SwpgloII9sK+rGHzaknW2TuKRR4UDZrFYcijVUWz42KMzm2lEUF0V1O8eChZbN/txKdNtjxfUzMTHIPuATqYhIHw6INHUcEqJK+SsrX9iygIQunFSNHDAciqVSAGXB3UbzR1jiD3MToqfnB7JtbiDDvreGXCnFX+nHy4Avc/nyZnP0nCpIhXMgERuBOAWpvDAgTnd6YPLpe9pNLKmB1YDIfhEbyeC6odPJZAjr9VgF6eItnjM2uFusoUxETRiQimA3PbwhDXbcBltEFhH6Mc6SPxBjVVtP5jG0cJagxnK4+H7djJJJlAhe+pDCbsxTwK35s0MSd1mpNdgW SDiqjM6sA7pxqf76lvfSUHECyBD9PZ7APJF312CnjO3N+684ZA+WGlbIyJ+UMNevJagzoIdvagO2mn3WpyfuS3BKBiQzr7EDHR x-ms-exchange-transport-forked: True X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4474.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9f6d632c-f245-46ff-6ffc-08d90788ac63 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Apr 2021 01:23:03.8561 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: wMeA9LB/5mi3+TmYt7CqkzRiJqhfqo5gePKsWw7Ph4ZwbMiy0bq3LKUo5R44GX2RCRjvHJ1tFJUskA66p0300Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4491 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9964 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 mlxscore=0 mlxlogscore=780 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104250007 X-Proofpoint-ORIG-GUID: fyU8J6U_RnqXyvBdw0XgtwnQRKouux3d X-Proofpoint-GUID: fyU8J6U_RnqXyvBdw0XgtwnQRKouux3d X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9964 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 mlxlogscore=999 suspectscore=0 clxscore=1015 mlxscore=0 bulkscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104250007 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" Xref: news.gmane.io gmane.emacs.bugs:204837 Archived-At: > > So instead of just advising users not to use lambda forms > > (which makes sense), you'd make it no longer work at all > > for interpreted lambda forms (except rare cases where > > they might actually be `eq' - e.g., same list structure)? >=20 > It would still work for lambda forms, just differently (arguably, > in a way that's more often right than the current way). Please elaborate. Comparing lambda forms using `eq'? Not clear to me how that works in the general case. (eq (lambda () foo) (lambda () foo)) ? I don't see that it works at all, let alone works more often than the current way: (equal (lambda () foo) (lambda () foo)) > > Perhaps `equal' can be fixed to do something better with closures? >=20 > There's no magic: `equal` has to check the structural equality, so it > has to recurse through the whole structure, including all the > closed-over variables to which it refers. That's what I was hinting. I don't see the magic either. > > E.g., if the `eq' test in `equal' fails for a > > closure arg then return nil? (I'm not proposing that.) >=20 > That's what using `eq` would do, so you seem to agree with > Daniel's proposal here. Not at all. I was saying that that's what I understand him to be proposing, in the context of `add-hook'. If that made sense for that case (which it doesn't, to me) then I should think it would make sense in general (which I don't think it does - no such magic). How does comparing closures with `eq' makes sense for `add-hook' but not in general? That was the question. I don't see that it makes sense for either.