From unknown Sat Aug 16 18:20:36 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#60659 <60659@debbugs.gnu.org> To: bug#60659 <60659@debbugs.gnu.org> Subject: Status: 30.0.50; tree-sitter: identical nodes are not `equal' Reply-To: bug#60659 <60659@debbugs.gnu.org> Date: Sun, 17 Aug 2025 01:20:36 +0000 retitle 60659 30.0.50; tree-sitter: identical nodes are not `equal' reassign 60659 emacs submitter 60659 Mickey Petersen severity 60659 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 08 09:55:31 2023 Received: (at submit) by debbugs.gnu.org; 8 Jan 2023 14:55:31 +0000 Received: from localhost ([127.0.0.1]:60732 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pEX59-0007KG-5p for submit@debbugs.gnu.org; Sun, 08 Jan 2023 09:55:31 -0500 Received: from lists.gnu.org ([209.51.188.17]:38984) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pEX54-0007Ic-It for submit@debbugs.gnu.org; Sun, 08 Jan 2023 09:55:29 -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 1pEX54-0000cu-8f for bug-gnu-emacs@gnu.org; Sun, 08 Jan 2023 09:55:26 -0500 Received: from mail-cwlgbr01on2115.outbound.protection.outlook.com ([40.107.11.115] helo=GBR01-CWL-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pEX51-0005kb-HE for bug-gnu-emacs@gnu.org; Sun, 08 Jan 2023 09:55:26 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XSPpSKrKZJ2QRQLN2FY2uAsrYwEi5dXxVi12o9wilAoV/QhYyhqJa6EwIbwdeF9kPfyLR2Zyvi1DpL8NC7YCOiOybWoUVlXoTcOUUzNRgJN7C4/ysGISLUA9I1sObyADFpK/DEFuL0vBqoXBLzEhReW6RKGyASWkXVYXbFJJD8uepIejWldeZH9TGcuDl3GS/Z3ugPKN2wCngAm8Tdot5vJwHKR7eim8xrNUVfzzAyC0VGCfUW86bvq9yGz8EW7dtctx6tBuGU54j6AZ8TOmbTLCEufhotQRLfNX4OrYSiYP6BI3phsapiDln2/sWRLRzp74vxd8myTytIPcOAAhVg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=JRQmL2Wd2B1Hy9YV1NMR6/3p9kiRTR2PIolo4Ivq6pU=; b=ZOymT0Rnvo84i7dYWMbyzDZY5s/rV+TrYrhCRDRSaV6mpoXma/tCvKy4odCcWx20lG6wrPdidaqHCU8ANmAscMZt4LW/GPXCVfIhywgLXDrKndw/UsmqPSCPEHTkl3BWMet37i9pJFbB0FQjJBxUfZ0uBoTKzIjgsUjeglsI6+s+750Tfdgx/6bcX53ym1axJ81SpECnW5StwrUSx1Ol5zFLISDastesSn7hei8CFRtpmR8Fco6OFyJrmDX96namD3irv2vOQFGm0aRRKO/UWyclzBSFFcZoTl71Q+rTH8g/mVSRapBAUXJ/n4wTrqImruHm820KZGWGZoZ0BwswUw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 178.79.136.144) smtp.rcpttodomain=gnu.org smtp.mailfrom=masteringemacs.org; dmarc=pass (p=none sp=none pct=100) action=none header.from=masteringemacs.org; dkim=pass (signature was verified) header.d=masteringemacs.org; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semantical.onmicrosoft.com; s=selector1-semantical-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JRQmL2Wd2B1Hy9YV1NMR6/3p9kiRTR2PIolo4Ivq6pU=; b=acP+PgsOa+U+U7/mOeWZHO+o/hCqF+A8eLU5siEocvtC2AdaQ6w9mgnK5O54fuBFegIxavlQjAA0mxsPEsKoOqjaFOcWrcimmuEpiWSp52F1waPSihXwnGn+Bf9OEdGbuF/4bXXkz8dm5b4XQXNmrv1mkoCKgyPmI4EGw73kJzM= Received: from LO2P265CA0334.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a4::34) by LO4P265MB6041.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:29b::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18; Sun, 8 Jan 2023 14:55:20 +0000 Received: from LO2GBR01FT029.eop-gbr01.prod.protection.outlook.com (2603:10a6:600:a4:cafe::df) by LO2P265CA0334.outlook.office365.com (2603:10a6:600:a4::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Sun, 8 Jan 2023 14:55:20 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 178.79.136.144) smtp.mailfrom=masteringemacs.org; dkim=pass (signature was verified) header.d=masteringemacs.org;dmarc=pass action=none header.from=masteringemacs.org; Received-SPF: Pass (protection.outlook.com: domain of masteringemacs.org designates 178.79.136.144 as permitted sender) receiver=protection.outlook.com; client-ip=178.79.136.144; helo=semantical.co.uk; pr=C Received: from semantical.co.uk (178.79.136.144) by LO2GBR01FT029.mail.protection.outlook.com (10.152.42.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5966.17 via Frontend Transport; Sun, 8 Jan 2023 14:55:20 +0000 Received: by semantical.co.uk (Postfix, from userid 5001) id B45AD114002; Sun, 8 Jan 2023 14:55:19 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=masteringemacs.org; s=masteringemacs.org; t=1673189719; bh=JRQmL2Wd2B1Hy9YV1NMR6/3p9kiRTR2PIolo4Ivq6pU=; h=From:To:Subject:Date:From; b=Lwb1/KX/YQRznDeRSnD7gxoZ0DMj8cd4dVunLI5HjErYQG77LohsoldfQrX8i6Qrr 8N+Nd1e6qvVFy9fKdE91QmDSeOt8gsmYYFlNnR7nWPf4ogf4b2fkJzFA43jsi1p7DL KqqmbXQdxNU8dxdUHmIARzZceeLITL0aqPp2Ua7U= X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on semantical.co.uk X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,NO_RECEIVED, NO_RELAYS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 From: Mickey Petersen To: bug-gnu-emacs@gnu.org Subject: 30.0.50; tree-sitter: identical nodes are not `equal' Date: Sun, 08 Jan 2023 14:55:16 +0000 Message-ID: <87lemdjctn.fsf@masteringemacs.org> Content-Type: text/plain X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LO2GBR01FT029:EE_|LO4P265MB6041:EE_ MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: e60a0fe2-ff0f-4a94-50f8-08daf1885cdc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: slsayN77oA3fSR2pMPG4SCpoArQa8tOw08QMO7cR7KJbmRPzUXfv8H3QqtYKFLtclx65CKtRtZsgtLXJP531Qv5G/U7B9r+R+Mn8Hmrn3Rkl20cKb/VulfD2P8oxk2I6NhD/rPynX8chraB9kBxjLN1yjTfIytLerz4cCfEigqpQmlC7326I5Nqnz6fMvaTlCQ5S0/iGyCTqmoi2f4wSP7GU3XRa+axJTQnfUc640dj4sYXQO38i8Tjv/FxUgvPij4nfLwd2dQGNR9FILlAvuokepf6mtEVfu9eKuyQYpfV09rnfDCoo7YKmflyvQRFiVxHbOoBC8yWmivI3WcDm6+nxaC7ZBTJ1XbqOXPL5PqkMPkTFj2YvKp/A4lJ4PK2e/PooXjDeYdcOV8FB43MEZgL++W+nXgEg3+v8ACk+xfQMK3fSW7sPoREjNElVQcJluGi5UFsibjQZ2DkoFx5ElrdFSaBbOFFQ9GOjxP+buYE+S7K3FZ/WHA+O3pn6uUXLumwmINpYpLQ/CdJg9dlSqpTedGjJNucbEDhjEPXwOoLxfDscwz9YX87ititrBF6/dRWXjSjKDNmYSpkHuvD6qm+jdlMZd4fSxT3xrN/fbjkVqdAyD9v4mL8wCk49AAv7Ju9TmrKA4h+1uOJ3e1w1EGYJ5Hp9Ioa0BhoEc3SP4XT2lB1YQq9UP4PsSWi0tBVbO8Gs0f5wgP85nOFZH7sztTmo/2MhtgT5AlzxubY6hSLGUGpZyTZahvaNHkL0Zp9krlSRrv0JJcPJhtUxaTmhkA== X-Forefront-Antispam-Report: CIP:178.79.136.144; CTRY:GB; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:semantical.co.uk; PTR:semantical.co.uk; CAT:NONE; SFS:(13230022)(396003)(346002)(136003)(376002)(39830400003)(451199015)(46966006)(36840700001)(82310400005)(8936002)(2906002)(5660300002)(7596003)(47076005)(41300700001)(7636003)(42186006)(6916009)(70586007)(8676002)(70206006)(316002)(356005)(4744005)(36756003)(186003)(26005)(6266002)(40480700001)(2616005)(336012)(83380400001)(36860700001)(86362001)(478600001)(6666004)(38230200001)(81973001)(14776008)(79816003); DIR:OUT; SFP:1102; X-OriginatorOrg: masteringemacs.org X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jan 2023 14:55:20.1666 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e60a0fe2-ff0f-4a94-50f8-08daf1885cdc X-MS-Exchange-CrossTenant-Id: a4e27e3d-bab0-45e8-8942-e64cf9fbd34f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=a4e27e3d-bab0-45e8-8942-e64cf9fbd34f; Ip=[178.79.136.144]; Helo=[semantical.co.uk] X-MS-Exchange-CrossTenant-AuthSource: LO2GBR01FT029.eop-gbr01.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO4P265MB6041 Received-SPF: pass client-ip=40.107.11.115; envelope-from=mickey@masteringemacs.org; helo=GBR01-CWL-obe.outbound.protection.outlook.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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 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 (--) In order to check for node equality, one must use `treesit-node-eq'. But I see little reason why two identical nodes in in the same tree aren't `equal'? In GNU Emacs 30.0.50 (build 6, x86_64-pc-linux-gnu, GTK+ Version 3.24.20, cairo version 1.16.0) of 2023-01-02 built on mickey-work Repository revision: c209802f7b3721a1b95113290934a23fee88f678 Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12013000 System Description: Ubuntu 20.04.3 LTS Configured using: 'configure --with-native-compilation --with-json --with-mailutils --without-compress-install --with-imagemagick CC=gcc-10' From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 08 22:59:16 2023 Received: (at 60659) by debbugs.gnu.org; 9 Jan 2023 03:59:16 +0000 Received: from localhost ([127.0.0.1]:35383 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pEjJc-0001rn-Hc for submit@debbugs.gnu.org; Sun, 08 Jan 2023 22:59:16 -0500 Received: from mail-pj1-f44.google.com ([209.85.216.44]:38438) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pEjJb-0001rR-5h for 60659@debbugs.gnu.org; Sun, 08 Jan 2023 22:59:15 -0500 Received: by mail-pj1-f44.google.com with SMTP id m7-20020a17090a730700b00225ebb9cd01so11468812pjk.3 for <60659@debbugs.gnu.org>; Sun, 08 Jan 2023 19:59:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:from:to:cc:subject:date:message-id :reply-to; bh=qGXonmCjcBgc2mztqtvuK12wwDaablBxJbioBHVxMCs=; b=lRiU5VRjR95AqzM8PLPh1WTERV5eNHi0mNhZOHv9dlhTt3UlH+N1Nj+58cbiIrEj1b 8eIud09r1r9o0QXR6C8Bhku5HIEjbsLcl46jQVa0MH2diFp8pTejBVb1+Qi9fhvGTOgI uH0Bj3JXZaxSxb3GWzggkLA3aZ35OYYArD+JEsJjq+lY+LOVgAsQtI1DaMI2hIbgvv34 12dqgh2Y+z7NI5BviKsrxucHEznzX0hbCByfENPOcqZR+nq2KNCgLAtGKPDb3UDmdtUr 1WF4Z6Wd1IsdrQ0ImKgvW2C1NdeS/jVjf7Gb5N2h4onePcXcyrBqhMEQ5xQdSTuoIOAh VfBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qGXonmCjcBgc2mztqtvuK12wwDaablBxJbioBHVxMCs=; b=Q/iMa80E+/KCjPDCZGQiqQZ2wBw5n5RGCPrMYg9l6Uxw5NYQdHLJ0n7ZGQ5LXzTEFK NXAiVUHuQs37DKWULBepOT9eD/Ht+Wx0s/QrifyHiJ5ClT48taZbisd+rsnr8c+20j1J M9+GSvH/kkf8Df8fs5RRHfCs/k3a/5CWBd9+qOBcDTFEh414r02UFmGktJ/x4QLHqrbK Gv9xTtSH0yX0N5XI3OdxXP9sDgZDsYXVxL0/Yd9aXs1jidKTwISrhMAAsk2pXsApIWus Wi8TSU5yFn8MD9Y4FxBC1scp6uUkj/w+P8LKqI7AbW39/siKzHLaCL3i6ZfENn5sP80N 8YCA== X-Gm-Message-State: AFqh2krqbq8EKDRjR0LcQedbFhubpP5OZPyjogtOntVhh4i8ohjniWeo JjIsdkLW4Vjyi3nz3AKG+D7V6bDUCm8= X-Google-Smtp-Source: AMrXdXtJMj2r6Lnc1MAm6FFrzz2vl8XWzMA+p9L8Suit/r/5E+RPU2pEk8R3JRR08BHIzZCZdrsLbQ== X-Received: by 2002:a05:6a21:3d0a:b0:ac:6543:d515 with SMTP id bi10-20020a056a213d0a00b000ac6543d515mr81225396pzc.42.1673236749489; Sun, 08 Jan 2023 19:59:09 -0800 (PST) Received: from smtpclient.apple (cpe-172-117-161-177.socal.res.rr.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id k28-20020a634b5c000000b0046fefb18a09sm4134571pgl.91.2023.01.08.19.59.07 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 08 Jan 2023 19:59:09 -0800 (PST) From: Yuan Fu Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Subject: Re: bug#60659: 30.0.50; tree-sitter: identical nodes are not `equal' Message-Id: Date: Sun, 8 Jan 2023 19:59:07 -0800 To: Mickey Petersen X-Mailer: Apple Mail (2.3696.120.41.1.1) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 60659 Cc: 60659@debbugs.gnu.org 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 (-) Mickey Petersen writes: > In order to check for node equality, one must use `treesit-node-eq'. > > But I see little reason why two identical nodes in in the same tree = aren't `equal'? Indeed. I=E2=80=99ll see if I can extend equal to handle tree-sitter = nodes. Yuan From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 09 03:56:30 2023 Received: (at 60659) by debbugs.gnu.org; 9 Jan 2023 08:56:30 +0000 Received: from localhost ([127.0.0.1]:35738 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pEnxF-0005zN-RT for submit@debbugs.gnu.org; Mon, 09 Jan 2023 03:56:30 -0500 Received: from mail-cwlgbr01on2111.outbound.protection.outlook.com ([40.107.11.111]:10688 helo=GBR01-CWL-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pEnxD-0005z8-HX for 60659@debbugs.gnu.org; Mon, 09 Jan 2023 03:56:28 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LnZc2GOMF8EzshD5RkHNQ/m+2WkKHtMnts/LwCWIFTSqV8L4RXgl1RRgZidDmueZ5tbzpBk9P07itzX80UDzw6woI+xbz1u1R/S9C2CPgbj7sHzLHFpABpKd33v0nEHN1W9C+KJlQMGKq2eZ0Y55f56Jn7hXYJDqLWXnJ2XVy93dF2P2UE8KKGU6gIs2LbjPyF0L6Qa2sLGiUmZSfV6hTpvovP92hW4GYWe6C17lyIX3FfgOkfQRVWrgglCNyig6Jy9hJlM84zndyG6HG8JSkNu6NCNwKwGZy8PBW41Cgy5ZqhP/bWgx2ZmGQ+nqQn17kfzhDrntoQlxYdSgR5sGIg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=SuR56cGYcs3yQ8uUX4p86pGmteANkYHFzklmYcLXSBs=; b=MD6CpsLOU40yWsTwc273frIVPv+U20mRJW0rfoDB2yCtbIawmLT+cwNXRoAVqcwdy5v/M2eHAnIdTHd1gQoMBSO9YBp4Jl3xkHNq4nlZlnRF0aZkat4r2rnJ37NW1su44I8hMyTZt/AlCOtFH0Us/dI41NSW7GUSwZdFDvJUWDRjl0ZOmWFGB8Z+HQOBwTtmFFkUN1lmWJV6nlofN4w850ehZJ7Ovr+sQihYMPbWD9BLAJDT2fSVtPqFtxXqepdVoQmALhNa0MK6ZtgRKURyBLuD54BE5aatM9Ea2rhjS/hdeea6+zG1C8QlQwgLeeocXaFxyZyI7L6Hc5cSI8SLvw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 178.79.136.144) smtp.rcpttodomain=debbugs.gnu.org smtp.mailfrom=masteringemacs.org; dmarc=pass (p=none sp=none pct=100) action=none header.from=masteringemacs.org; dkim=pass (signature was verified) header.d=masteringemacs.org; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semantical.onmicrosoft.com; s=selector1-semantical-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SuR56cGYcs3yQ8uUX4p86pGmteANkYHFzklmYcLXSBs=; b=mKjARcoSHd6b92IgYGrsBKbc3s9sjRHGaPfABZlZJ8aKhrSC1Bw2VUPAORt1RDv1j6/XCYvwPrvVRlmD8ekfhXSWEMVidUWKHESJaHG4gHGHSeDi8uJMiCnvcy97Qe1PuzEwHImQbS3CCFIxWWnQeghO72gde9+lWxR2OAlLwvo= Received: from LO2P123CA0086.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:138::19) by LO6P265MB6190.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2b5::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18; Mon, 9 Jan 2023 08:56:18 +0000 Received: from LO2GBR01FT035.eop-gbr01.prod.protection.outlook.com (2603:10a6:600:138:cafe::78) by LO2P123CA0086.outlook.office365.com (2603:10a6:600:138::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Mon, 9 Jan 2023 08:56:18 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 178.79.136.144) smtp.mailfrom=masteringemacs.org; dkim=pass (signature was verified) header.d=masteringemacs.org;dmarc=pass action=none header.from=masteringemacs.org; Received-SPF: Pass (protection.outlook.com: domain of masteringemacs.org designates 178.79.136.144 as permitted sender) receiver=protection.outlook.com; client-ip=178.79.136.144; helo=semantical.co.uk; pr=C Received: from semantical.co.uk (178.79.136.144) by LO2GBR01FT035.mail.protection.outlook.com (10.152.42.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18 via Frontend Transport; Mon, 9 Jan 2023 08:56:17 +0000 Received: by semantical.co.uk (Postfix, from userid 5001) id BFB47114002; Mon, 9 Jan 2023 08:56:17 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=masteringemacs.org; s=masteringemacs.org; t=1673254577; bh=SuR56cGYcs3yQ8uUX4p86pGmteANkYHFzklmYcLXSBs=; h=References:From:To:Cc:Subject:Date:In-reply-to:From; b=y0tDzrguBt2xZgOFVBLOFkSx3bLMP9jAgTYNdyTX74n3/jZIffo2AxFsLNeBePlsZ FvsBnRiz/j7LLPoo8F/rQZb2/wxW9/DBlURs5f9D1QXDfJ3d9GmagF+Td8OWcMvAmN hMFON7GmQRzzZ5z3m7YubEOQ8U4FsUeuDMvx9hTw= X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on semantical.co.uk X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,NO_RECEIVED, NO_RELAYS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 References: User-agent: mu4e @VERSION@; emacs 30.0.50 From: Mickey Petersen To: Yuan Fu Subject: Re: bug#60659: 30.0.50; tree-sitter: identical nodes are not `equal' Date: Mon, 09 Jan 2023 08:55:19 +0000 Organization: Mastering Emacs In-reply-to: Message-ID: <874jt0jdch.fsf@masteringemacs.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LO2GBR01FT035:EE_|LO6P265MB6190:EE_ MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: ec78bf9a-5915-486f-84a5-08daf21f5f1d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AAr0K4m9swUBMWyOcRfwYzQPnMY23vh2EQvniLR+jYx8kEaSJGEQUODPR2PzmLgTiBwJYL6Id9Ffk8if1syAn9A7nFHbNPla0iLqgK+kpqq5KUS5wWwjUbYmT3sMXtJOMNJMdwlRhdhFHW4wOHyZq3j4fJg5JMSYxu/byc9WXMr8wRrjFE0Ebc0riR+ZDlWRnR+PX+g5YA+inQ4xtnfBPxzDNPuNdp20FeFKcGVlk5GS7JJNipsAq8y7EmeJN2qPnTEPfeplTWT/YK5ag6SitUGFR84njiiiyq+OqbtSW13gdtD4HzOtwKmnWZNYfCRnTVXxYfELuTGjTMYzL1+T2POznoUuz3VX5eJ1Et8yDq4WQtt0r0uUUoHwYY0fLs1tKGnJucA0ERQzDE4ErwjICqK6JAvFCP6UPUnku/WJgTR7eKr091nnb/Clj1Q4SZoiG4HkqAUv0Kwt0oLxXcjIFHO9/Y6KpWLARBQ/Hplk6cZyIl8ZiNA50ylOC03MtcUtJp84dVNF2d+ClR5yesFFGXOqAH1lnECTH/+yDsB+sVO/dWf/J04z9uBB6IW67ksrMTgFlDFd4Qeexhtfqb0gJrxYwbnUPmQcr/wpEzJ/FJsNY1owR/A81ROYU1NhQfeziW2u4GUP8ZRK0LDUY98k1p8ZF+jnttOrFVXkEtWWSEEXpqycAvBF0/j0Uf3ccwWjZkr0niMA2x0U5+O8k+eu0ocUWShyNt5inIc64S8Ns1QjmV/5IIEDEt1bh9LScuyb91VXF17pKoWnvMgiRNie5Q== X-Forefront-Antispam-Report: CIP:178.79.136.144; CTRY:GB; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:semantical.co.uk; PTR:semantical.co.uk; CAT:NONE; SFS:(13230022)(396003)(346002)(376002)(136003)(39830400003)(451199015)(46966006)(36840700001)(8676002)(36860700001)(83380400001)(86362001)(7596003)(7636003)(356005)(4744005)(5660300002)(2906002)(70206006)(6862004)(4326008)(70586007)(8936002)(41300700001)(82310400005)(40480700001)(6266002)(186003)(26005)(47076005)(2616005)(336012)(42186006)(316002)(478600001)(36916002)(36756003)(38230200001)(81973001)(79816003)(14776008); DIR:OUT; SFP:1102; X-OriginatorOrg: masteringemacs.org X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2023 08:56:17.9711 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ec78bf9a-5915-486f-84a5-08daf21f5f1d X-MS-Exchange-CrossTenant-Id: a4e27e3d-bab0-45e8-8942-e64cf9fbd34f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=a4e27e3d-bab0-45e8-8942-e64cf9fbd34f; Ip=[178.79.136.144]; Helo=[semantical.co.uk] X-MS-Exchange-CrossTenant-AuthSource: LO2GBR01FT035.eop-gbr01.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO6P265MB6190 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 60659 Cc: 60659@debbugs.gnu.org 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 (-) Yuan Fu writes: > Mickey Petersen writes: > >> In order to check for node equality, one must use `treesit-node-eq'. >> >> But I see little reason why two identical nodes in in the same tree aren= 't `equal'? > > Indeed. I=E2=80=99ll see if I can extend equal to handle tree-sitter node= s. > Nice one. This will allow for membership checks with `member' and such-like and it'll greatly cut down on custom code, particularly one you start writing tests! > Yuan From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 10 00:56:30 2023 Received: (at 60659) by debbugs.gnu.org; 10 Jan 2023 05:56:31 +0000 Received: from localhost ([127.0.0.1]:38518 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pF7cc-0000cW-KM for submit@debbugs.gnu.org; Tue, 10 Jan 2023 00:56:30 -0500 Received: from mail-pj1-f44.google.com ([209.85.216.44]:41932) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pF7cZ-0000cG-M8 for 60659@debbugs.gnu.org; Tue, 10 Jan 2023 00:56:28 -0500 Received: by mail-pj1-f44.google.com with SMTP id l1-20020a17090a384100b00226f05b9595so10229179pjf.0 for <60659@debbugs.gnu.org>; Mon, 09 Jan 2023 21:56:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:cc:date:message-id:subject:mime-version:from:from:to:cc:subject :date:message-id:reply-to; bh=GF990Nv67WM0Gf0uUfXCMIOwaupV1RoRY3lqG+Eufzg=; b=Pw8VTq3XR3g2+q2fMr+HlH3I3pWg+zhBeTBYXQU4bM0hXvZd9PShQFnCF9Y55TKJBn ksobi7u6D0Nn1UiqmQuq9N8NJWeZelFfdo7cqvwoNyKjqgWkZCVwyhVeQzH2XmeurbI/ M7FiJ20pA95FLvD92mCxOY/QZI4jgaYlva3KHvKZ4pS5IO9YKfvVUj/D8RCaiUjgRCbt GJNaDCs7DWUIcu0NvOhNZnuqI3KU9uVQF/UyHwuNvYmPhNBfgOYtmP781d4xSOHqWeKt o456VL/NA2t0r2NbOVEo/dy6oYFMqmilNCXPedAotnMRRbUdbdc2VNyaGjyAMbnGR7WI jJ3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:cc:date:message-id:subject:mime-version:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=GF990Nv67WM0Gf0uUfXCMIOwaupV1RoRY3lqG+Eufzg=; b=MX5yFb+CkwuruXb8m8rJyhXxwhgA7bwHbWMxjyyymrZz3KTuLNfrCGCWtXorqbk5Q4 yJMpx7lwp4FiiUmX76S0V/TsGTpkOCawmdjimcbfZPX3q77koMdLH11bH2N5pXz73qzk xqxXV/GwuQiaOdiJDRrTYz3nk49FZWJMZkFodgMHGsCv28MoRh/JyEq9NSpKmSNkjy9J vpHcE70I8XtaTrdJepn/42jBJmwJAAi72pNa5EaY5qbN3TxaXID5o0bppMwTIbyva1z8 /VLpwkkuJYfVtlrOpuX+x40XAk8tpqXfddfLCpac3+/n8r/fHQfC6vjpTxmyVMtNqI0v ys4A== X-Gm-Message-State: AFqh2koK3LSWx+MG9EpBqgr58SbG4k/ZDqj6Vp4ReOTKkc4iilakocfi RIZ3+oPmbffzwz8syb6DKBw= X-Google-Smtp-Source: AMrXdXsjU9TWajUfBKxHV+X/2zCgr44hYXSll3oIezd3DIysqq4OwJs0T1jwn0poQrN3yGen9Ad3xA== X-Received: by 2002:a17:902:f24a:b0:193:d12:f892 with SMTP id j10-20020a170902f24a00b001930d12f892mr11255700plc.0.1673330181607; Mon, 09 Jan 2023 21:56:21 -0800 (PST) Received: from smtpclient.apple (cpe-172-117-161-177.socal.res.rr.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id e6-20020a17090301c600b00192dda430ddsm7066389plh.123.2023.01.09.21.56.20 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 09 Jan 2023 21:56:21 -0800 (PST) From: Yuan Fu Content-Type: multipart/mixed; boundary="Apple-Mail=_6D3F371A-1E99-46C0-A697-E267056A43F4" Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Subject: Re: bug#60659: 30.0.50; tree-sitter: identical nodes are not `equal' Message-Id: <1B5F5D8C-8DD3-4ED1-95C2-E975461BC5FC@gmail.com> Date: Mon, 9 Jan 2023 21:56:19 -0800 To: Eli Zaretskii X-Mailer: Apple Mail (2.3696.120.41.1.1) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 60659 Cc: 60659@debbugs.gnu.org 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=_6D3F371A-1E99-46C0-A697-E267056A43F4 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Mickey Petersen writes: > Yuan Fu writes: > >> Mickey Petersen writes: >> >>> In order to check for node equality, one must use `treesit-node-eq'. >>> >>> But I see little reason why two identical nodes in in the same tree = aren't `equal'? >> >> Indeed. I=E2=80=99ll see if I can extend equal to handle tree-sitter = nodes. >> > > Nice one. This will allow for membership checks with `member' and > such-like and it'll greatly cut down on custom code, particularly one > you start writing tests! > >> Yuan Eli, does this look right to you? In particular, I=E2=80=99m not sure if = it=E2=80=99s ok to call a lisp function (Ftreesit_node_eq) inside = internal_equal, even though it never signals.=20 Yuan --Apple-Mail=_6D3F371A-1E99-46C0-A697-E267056A43F4 Content-Disposition: attachment; filename=equal.diff Content-Type: application/octet-stream; x-unix-mode=0644; name="equal.diff" Content-Transfer-Encoding: 7bit diff --git a/src/fns.c b/src/fns.c index 1aaf17914a2..c0ecc735bc5 100644 --- a/src/fns.c +++ b/src/fns.c @@ -38,6 +38,10 @@ Copyright (C) 1985-2023 Free Software Foundation, Inc. #include "puresize.h" #include "gnutls.h" +#ifdef HAVE_TREE_SITTER +#include "treesit.h" +#endif + enum equal_kind { EQUAL_NO_QUIT, EQUAL_PLAIN, EQUAL_INCLUDING_PROPERTIES }; static bool internal_equal (Lisp_Object, Lisp_Object, enum equal_kind, int, Lisp_Object); @@ -2822,6 +2826,10 @@ internal_equal (Lisp_Object o1, Lisp_Object o2, enum equal_kind equal_kind, && !memcmp (bool_vector_data (o1), bool_vector_data (o2), bool_vector_bytes (size))); } + if (TS_NODEP (o1)) + { + return !NILP (Ftreesit_node_eq (o1, o2)); + } /* Aside from them, only true vectors, char-tables, compiled functions, and fonts (font-spec, font-entity, font-object) --Apple-Mail=_6D3F371A-1E99-46C0-A697-E267056A43F4-- From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 10 08:11:04 2023 Received: (at 60659) by debbugs.gnu.org; 10 Jan 2023 13:11:04 +0000 Received: from localhost ([127.0.0.1]:39128 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pFEP9-0004yl-NG for submit@debbugs.gnu.org; Tue, 10 Jan 2023 08:11:03 -0500 Received: from eggs.gnu.org ([209.51.188.92]:38018) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pFEP8-0004yF-81 for 60659@debbugs.gnu.org; Tue, 10 Jan 2023 08:11:02 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pFEOy-0000bL-Ip; Tue, 10 Jan 2023 08:10:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=Qx+y7bFSHt1hl0G3XtAmIu0kiRMamU/p/J4YZRL+qYk=; b=OfmifuFeViauwxjVhUhf 9cxxCSlSwPa1/wZTgwp5YDJigcFDpqFggoDVS8DB79ca9CWeW4qUR7V7GP4t0VpuGOSfmWFvCGgLx S9kJZ44pFRjHMBdbZXF5YEj7WdizXtTcdVm9QLy4zqlRJqfpVx8KNLTnazlHHhwcRfwEd3JVmM1cE Au3WPh2Hk0VGu24GvZEq2oThINndcgU9+4SNDwUOOMv4XyJlpLtSBUEA5dLU1nOkg50sLWQ+AirAy ENOMTZv0U4hiQDmf2ApsDwqIwYU/M4TJ8Gmbt2KSoQ4AYrxR10f1qsMZGnEZY1VXga6pg5MJDGmrT d6NS4PJ7PJ0B+Q==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pFEOx-0006VW-SR; Tue, 10 Jan 2023 08:10:52 -0500 Date: Tue, 10 Jan 2023 15:11:20 +0200 Message-Id: <83bkn6o7pj.fsf@gnu.org> From: Eli Zaretskii To: Yuan Fu , Lars Ingebrigtsen , Stefan Monnier In-Reply-To: <1B5F5D8C-8DD3-4ED1-95C2-E975461BC5FC@gmail.com> (message from Yuan Fu on Mon, 9 Jan 2023 21:56:19 -0800) Subject: Re: bug#60659: 30.0.50; tree-sitter: identical nodes are not `equal' References: <1B5F5D8C-8DD3-4ED1-95C2-E975461BC5FC@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 60659 Cc: 60659@debbugs.gnu.org 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 (---) > From: Yuan Fu > Date: Mon, 9 Jan 2023 21:56:19 -0800 > Cc: 60659@debbugs.gnu.org > > Eli, does this look right to you? In particular, I’m not sure if it’s ok to call a lisp function (Ftreesit_node_eq) inside internal_equal, even though it never signals. It is better to make a C function from most of the body of Ftreesit_node_eq, but without the CHECK_NODE parts, and make both Fequal and Ftreesit_node_eq call that. Because CHECK_NODE can signal, right? Also, you should make sure up front that _both_ o1 and o2 are treesit nodes, otherwise they cannot be 'equal'. Lars, Stefan: any comments/suggestions? From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 10 21:57:14 2023 Received: (at 60659) by debbugs.gnu.org; 11 Jan 2023 02:57:14 +0000 Received: from localhost ([127.0.0.1]:41488 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pFRIg-0004Bi-5Q for submit@debbugs.gnu.org; Tue, 10 Jan 2023 21:57:14 -0500 Received: from mail-pf1-f175.google.com ([209.85.210.175]:44652) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pFRIe-0004BT-My for 60659@debbugs.gnu.org; Tue, 10 Jan 2023 21:57:13 -0500 Received: by mail-pf1-f175.google.com with SMTP id k19so10369559pfg.11 for <60659@debbugs.gnu.org>; Tue, 10 Jan 2023 18:57:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:cc:date:message-id:subject:mime-version:from:from:to:cc:subject :date:message-id:reply-to; bh=foL2zd+BZhNbaeyO9IDmftmgVT8DBag0w1xCXA+jekg=; b=WBFJuCMc90AwWRssEH0phyhYrCeMJVI/T5HGcCC9+pofROxyi8FZaadRDkmPy8n8EN WYtMra6fP4Lra5S7xNq1d/686RpuGYX+ruxwzBAiRJfhvcFGeQsfBmY39/nJa00+H2it MTvsQcfHo9Togx4/EIPacJd9rw4Q/xK683sNtDxLdcxJAy0CcZXls0VPmbBhC37DE8+M ude0dXFCxZ0ssYjGG1RJW3TZYIMyLE+nz9WRFq+du53QgjOwhZQ67CjKbuXjXN9hMPoi N+GLdfBkgqth0Za5N+d8G/mPyXPbpsF5Uma6a1ugB1FOsDQ4PW9ScVxIWLHWxVCRkSEH ofpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:cc:date:message-id:subject:mime-version:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=foL2zd+BZhNbaeyO9IDmftmgVT8DBag0w1xCXA+jekg=; b=GP/5UvBbd7Jmd3fpnSuicapRs9y1XhFxitSEllzBJ1uQAv+FpPDOCiTaxfku7O2k/T TC/YEw8QR2TaqPeMEydFwoPH2S3VsGAeCi8q2S4BMqfEIuqX0pXJaNttuncTqsLDUqJw XAbkDuoIHInEZ9AwtXm5qEwVkXszIrXLfOp+D4VDY4WASkgVuwOJ6lz75TdTQ0sIbDzp nILfTpC9TISdCY/UU2n2vIqpB8btsMNqgCA6JYVLWBdzPv56ZJx9lyoHjb4wOXLfOwoI cmQpwkds+zgDsdTVHlyUjrmhmzAlHN+xs+nW2jc8VN/zkb4HRUGTiGrQEunw6HzorPSq tKDw== X-Gm-Message-State: AFqh2kodWleDgb4ekLgfrAeR706x/oSG8NvJ7J4s1fi3JNQYbBp3nxWd NN1gU76tbYaw/dIqIjKSyv8= X-Google-Smtp-Source: AMrXdXv81hjkNL+DGHhR68MrhJcPdJRs0gk0zOmBg5wr/vBa9RkztW8ELOq3UOEvn8meQ5/GKWQ3Lg== X-Received: by 2002:a62:65c4:0:b0:589:a707:603f with SMTP id z187-20020a6265c4000000b00589a707603fmr6118825pfb.9.1673405825638; Tue, 10 Jan 2023 18:57:05 -0800 (PST) Received: from smtpclient.apple (cpe-172-117-161-177.socal.res.rr.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id d3-20020aa797a3000000b005811c4245c7sm8776835pfq.126.2023.01.10.18.57.04 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 10 Jan 2023 18:57:05 -0800 (PST) From: Yuan Fu Content-Type: multipart/mixed; boundary="Apple-Mail=_ED91F2EE-8A73-4249-8565-7D82AB1ED1D9" Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Subject: Re: bug#60659: 30.0.50; tree-sitter: identical nodes are not `equal' Message-Id: <3F1635BA-5EE9-4981-97EA-C8354D3000D1@gmail.com> Date: Tue, 10 Jan 2023 18:57:02 -0800 To: Eli Zaretskii X-Mailer: Apple Mail (2.3696.120.41.1.1) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 60659 Cc: 60659@debbugs.gnu.org, larsi@gnus.org, monnier@iro.umontreal.ca 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=_ED91F2EE-8A73-4249-8565-7D82AB1ED1D9 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Eli Zaretskii writes: >> From: Yuan Fu >> Date: Mon, 9 Jan 2023 21:56:19 -0800 >> Cc: 60659@debbugs.gnu.org >>=20 >> Eli, does this look right to you? In particular, I=E2=80=99m not sure = if >> it=E2=80=99s ok to call a lisp function (Ftreesit_node_eq) inside >> internal_equal, even though it never signals. > > It is better to make a C function from most of the body of > Ftreesit_node_eq, but without the CHECK_NODE parts, and make both > Fequal and Ftreesit_node_eq call that. Because CHECK_NODE can signal, > right? Also, you should make sure up front that _both_ o1 and o2 are > treesit nodes, otherwise they cannot be 'equal'. I should=E2=80=99ve included some context. There is code that checks = whether o1 and o2 have the same (pseudo vector) type and size[1], and returns early if not, so I only need to check the type of o1. And since I checked the type of o1, CHECK_NODE will always succeed. But still, using a C functions is more correct. How about this? --Apple-Mail=_ED91F2EE-8A73-4249-8565-7D82AB1ED1D9 Content-Disposition: attachment; filename=equal.diff Content-Type: application/octet-stream; x-unix-mode=0644; name="equal.diff" Content-Transfer-Encoding: 7bit diff --git a/src/fns.c b/src/fns.c index 1aaf17914a2..d5f7565d3d7 100644 --- a/src/fns.c +++ b/src/fns.c @@ -38,6 +38,10 @@ Copyright (C) 1985-2023 Free Software Foundation, Inc. #include "puresize.h" #include "gnutls.h" +#ifdef HAVE_TREE_SITTER +#include "treesit.h" +#endif + enum equal_kind { EQUAL_NO_QUIT, EQUAL_PLAIN, EQUAL_INCLUDING_PROPERTIES }; static bool internal_equal (Lisp_Object, Lisp_Object, enum equal_kind, int, Lisp_Object); @@ -2822,6 +2826,10 @@ internal_equal (Lisp_Object o1, Lisp_Object o2, enum equal_kind equal_kind, && !memcmp (bool_vector_data (o1), bool_vector_data (o2), bool_vector_bytes (size))); } + if (TS_NODEP (o1)) + { + return treesit_node_eq (o1, o2); + } /* Aside from them, only true vectors, char-tables, compiled functions, and fonts (font-spec, font-entity, font-object) diff --git a/src/treesit.c b/src/treesit.c index 55463122d14..6a1a5c5ea2a 100644 --- a/src/treesit.c +++ b/src/treesit.c @@ -2154,6 +2154,16 @@ DEFUN ("treesit-node-descendant-for-range", return make_treesit_node (XTS_NODE (node)->parser, child); } +/* Return true if NODE1 and NODE2 are the same node. Assumes they are + TS_NODE type. */ +bool treesit_node_eq (Lisp_Object node1, Lisp_Object node2) +{ + treesit_initialize (); + TSNode treesit_node_1 = XTS_NODE (node1)->node; + TSNode treesit_node_2 = XTS_NODE (node2)->node; + return ts_node_eq (treesit_node_1, treesit_node_2); +} + DEFUN ("treesit-node-eq", Ftreesit_node_eq, Streesit_node_eq, 2, 2, 0, @@ -2166,12 +2176,7 @@ DEFUN ("treesit-node-eq", CHECK_TS_NODE (node1); CHECK_TS_NODE (node2); - treesit_initialize (); - - TSNode treesit_node_1 = XTS_NODE (node1)->node; - TSNode treesit_node_2 = XTS_NODE (node2)->node; - - bool same_node = ts_node_eq (treesit_node_1, treesit_node_2); + bool same_node = treesit_node_eq (node1, node2); return same_node ? Qt : Qnil; } diff --git a/src/treesit.h b/src/treesit.h index 909609737d3..5382bc58817 100644 --- a/src/treesit.h +++ b/src/treesit.h @@ -191,6 +191,7 @@ CHECK_TS_COMPILED_QUERY (Lisp_Object query) extern void treesit_delete_parser (struct Lisp_TS_Parser *); extern void treesit_delete_query (struct Lisp_TS_Query *); extern bool treesit_named_node_p (TSNode); +extern bool treesit_node_eq (Lisp_Object, Lisp_Object); #endif /* HAVE_TREE_SITTER */ --Apple-Mail=_ED91F2EE-8A73-4249-8565-7D82AB1ED1D9 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii Yuan [1] ptrdiff_t size = ASIZE (o1); /* Pseudovectors have the type encoded in the size field, so this test actually checks that the objects have the same type as well as the same size. */ if (ASIZE (o2) != size) return false; --Apple-Mail=_ED91F2EE-8A73-4249-8565-7D82AB1ED1D9-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 11 07:25:55 2023 Received: (at 60659) by debbugs.gnu.org; 11 Jan 2023 12:25:55 +0000 Received: from localhost ([127.0.0.1]:41880 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pFaB0-00037W-NR for submit@debbugs.gnu.org; Wed, 11 Jan 2023 07:25:54 -0500 Received: from eggs.gnu.org ([209.51.188.92]:48964) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pFaAy-00037G-PA for 60659@debbugs.gnu.org; Wed, 11 Jan 2023 07:25:53 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pFaAt-0000b3-7g; Wed, 11 Jan 2023 07:25:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=wqy++PqKxefcDGdxJgOUXTlW354WWg0xlo87W+0i+x0=; b=IfGC0dsUovxl eiGOp0GY8SAjRolg2oUUEjW+7Wu1aTwOIU/u1Z/FRWIC56VeZTYJeW1A1C03DvPgqlJpoK44hrf5R P285zxs1IhM2yxAZs1RR9Z5OWVWod6T6Jx5EBnqE7JqqOxpwzgYSRPZ1ISYx6siBaGyUC9CnZwvEt bpU86TG4F59gDe2C0edNdrha1bzmpgT4w6FqwiV9a/aUBnqph/053mBVyBDSD/kzeWCmRpVoiaJd0 ocQBo5ZekLVzaF4s539Bp8BhQENfGUElZ/V7BVLmbfPHoGJyXLI3rpErfVR0NCIlTOHZsgJjt/l37 pyQTwx5DGSFbvTlAI3uBBA==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pFaAs-0000wF-GT; Wed, 11 Jan 2023 07:25:46 -0500 Date: Wed, 11 Jan 2023 14:26:18 +0200 Message-Id: <83k01tmf4l.fsf@gnu.org> From: Eli Zaretskii To: Yuan Fu In-Reply-To: <3F1635BA-5EE9-4981-97EA-C8354D3000D1@gmail.com> (message from Yuan Fu on Tue, 10 Jan 2023 18:57:02 -0800) Subject: Re: bug#60659: 30.0.50; tree-sitter: identical nodes are not `equal' References: <3F1635BA-5EE9-4981-97EA-C8354D3000D1@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 60659 Cc: 60659@debbugs.gnu.org, larsi@gnus.org, monnier@iro.umontreal.ca 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 (---) > From: Yuan Fu > Date: Tue, 10 Jan 2023 18:57:02 -0800 > Cc: larsi@gnus.org, > monnier@iro.umontreal.ca, > 60659@debbugs.gnu.org > > But still, using a C functions is more correct. How about this? Yes, this is what I had in mind. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 12 20:08:24 2023 Received: (at 60659-done) by debbugs.gnu.org; 13 Jan 2023 01:08:24 +0000 Received: from localhost ([127.0.0.1]:48915 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pG8YS-0000ho-7H for submit@debbugs.gnu.org; Thu, 12 Jan 2023 20:08:24 -0500 Received: from mail-pj1-f43.google.com ([209.85.216.43]:55238) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pG8YQ-0000hb-Cm for 60659-done@debbugs.gnu.org; Thu, 12 Jan 2023 20:08:23 -0500 Received: by mail-pj1-f43.google.com with SMTP id q64so20889204pjq.4 for <60659-done@debbugs.gnu.org>; Thu, 12 Jan 2023 17:08:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:from:to:cc:subject:date:message-id :reply-to; bh=VNX7AJKmCMwdrH1dsD364GZ0WP8zogv2G3E2lTzP9+w=; b=nnV6yaCSTVOtYaZuZySvGrqyw88tOr+53JUfWj00+uLf5efEHOc9vgtwOiSwUxe57E pArEIuTn+GxLsRflGlNmchh3UIQ515LScHAscDve6hlhYW3FrjLLVyJfCoNJG6zVeCIE wZ1hmigxjnN89fNoFCKuObbRiAmsdW+gI7s6n9JU92VyhoHGffuYUv9rFtjtplq5f7zr 5fTJOwemVLerPe01S7ATSNH//c0NBvgviZICcGrAVPAiNm86D2i+gxZ6xXU4BepMBkPJ KZ+VjXnjakp6d4BVogxbA+5hfWBH7gjplTsbgv0EELKKQarTeLxVKtGtn2IhzsLY5p0S NMsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VNX7AJKmCMwdrH1dsD364GZ0WP8zogv2G3E2lTzP9+w=; b=NMOsWymNYNN2moBcAfhzBJXhFwcPbuWvaiffCrwBYBpwvZaQy9joDfn2c6UGOlOi+B jMbPX+tPLaHuPEjvTAIKffL1ovIFBilv0RePOBF1Z1sm3KOa3f2wcaOCSDUZsKFjDoZU LoLmrE6J2ljlbunUIQeG1AD72P+5LWSJNy6Imwangl+EVQgeFRl83WeCfpl7wLR+18LH Z4xBGdAVD+lkoPqp7lbQMDPIVQMlE7AoUqzOyNwX78hu8wue2nrDmbmn2DmcHq5lJ9Ct 1u2HmOSBsFxebcns79LyrdTGmhyEb6T5vEw5/OIU/BGW4soIgYZ3aoZ88IUX2y6G7YwF hRlw== X-Gm-Message-State: AFqh2kprszh1A4bOx4CD5Kys1QirDLkSjF++H8ir1GQnpHeXZXgUnJAq T6MnGE3zVUVIgvOgw94T+/I= X-Google-Smtp-Source: AMrXdXsAwyUdlCa/BtDZPmSbdUSeAL3qhcZv2m7NF4y0cSvh0S3X47b+2YG44QbW1pgibJyWwXia4Q== X-Received: by 2002:a17:902:f80c:b0:194:708f:6483 with SMTP id ix12-20020a170902f80c00b00194708f6483mr85795plb.57.1673572096378; Thu, 12 Jan 2023 17:08:16 -0800 (PST) Received: from smtpclient.apple (cpe-172-117-161-177.socal.res.rr.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id d11-20020a170902cecb00b001925016e34bsm12895318plg.79.2023.01.12.17.08.15 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Jan 2023 17:08:15 -0800 (PST) From: Yuan Fu Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Subject: Re: bug#60659: 30.0.50; tree-sitter: identical nodes are not `equal' Message-Id: <59E68736-3F2B-4668-A93C-51F4BAA0018A@gmail.com> Date: Thu, 12 Jan 2023 17:08:14 -0800 To: Eli Zaretskii X-Mailer: Apple Mail (2.3696.120.41.1.1) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 60659-done Cc: larsi@gnus.org, 60659-done@debbugs.gnu.org, monnier@iro.umontreal.ca 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 (-) Eli Zaretskii writes: >> From: Yuan Fu >> Date: Tue, 10 Jan 2023 18:57:02 -0800 >> Cc: larsi@gnus.org, >> monnier@iro.umontreal.ca, >> 60659@debbugs.gnu.org >> >> But still, using a C functions is more correct. How about this? > > Yes, this is what I had in mind. Thanks. Cool. I applied it. Yuan From unknown Sat Aug 16 18:20:36 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Fri, 10 Feb 2023 12:24:09 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator