From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 01 06:50:30 2022 Received: (at submit) by debbugs.gnu.org; 1 Dec 2022 11:50:31 +0000 Received: from localhost ([127.0.0.1]:39253 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p0i5G-0008Kc-Lm for submit@debbugs.gnu.org; Thu, 01 Dec 2022 06:50:30 -0500 Received: from lists.gnu.org ([209.51.188.17]:33252) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p0i5D-0008KW-Pf for submit@debbugs.gnu.org; Thu, 01 Dec 2022 06:50: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 1p0i5B-0006Aa-Bc for bug-gnu-emacs@gnu.org; Thu, 01 Dec 2022 06:50:27 -0500 Received: from mx3.muc.de ([193.149.48.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p0i59-0003Op-10 for bug-gnu-emacs@gnu.org; Thu, 01 Dec 2022 06:50:25 -0500 Received: (qmail 1930 invoked by uid 3782); 1 Dec 2022 12:50:06 +0100 Received: from acm.muc.de (p4fe158f4.dip0.t-ipconnect.de [79.225.88.244]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Thu, 01 Dec 2022 12:50:06 +0100 Received: (qmail 17277 invoked by uid 1000); 1 Dec 2022 11:50:05 -0000 Date: Thu, 1 Dec 2022 11:50:05 +0000 To: bug-gnu-emacs@gnu.org Subject: c-ts-mode is slow with large buffers. Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Submission-Agent: TMDA/1.3.x (Ph3nix) From: Alan Mackenzie X-Primary-Address: acm@muc.de Received-SPF: pass client-ip=193.149.48.5; envelope-from=acm@muc.de; helo=mx3.muc.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=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 (--) Hello, Emacs. In an up to date (2022-11-30) master started as $ emacs --no-desktop: The file .../drivers/gpu/drm/amd/include/asic_reg/dce/dce_12_0_sh_mask.h in the Linux source tree is 6.8 MB big, consisting of a large number of #defines and comments, but nothing else. To scroll through it in c-ts-mode takes a little over 26 minutes on my system. By comparison, in C Mode it takes 31 seconds. There would appear to be a need for some optimisation in c-ts-mode, here. The file https://gitlab.com/wireshark/wireshark/-/raw/master/epan/dissectors/packet-rrc.c (see bug #45248) (10 MB) takes 578 seconds to scroll in c-ts-mode. It scrolls through the first 83% of the buffer rapidly, then chokes on a big brace block initialisation. Also, the font-locking fails part way through this brace block (without any apparent speed up). For comparison, the scrolling takes 30 seconds in C Mode. There seems to be a need for optimisation of c-ts-mode in this case, too. For completeness, I used M-: (time-scroll) in the following for the timings: (defmacro time-it (&rest forms) "Time the running of a sequence of forms using `float-time'. Call like this: \"M-: (time-it (foo ...) (bar ...) ...)\"." `(let ((start (float-time))) ,@forms (- (float-time) start))) (defun time-scroll (&optional arg) (interactive "P") (message "%s" (time-it (condition-case nil (while t (if arg (scroll-down) (scroll-up)) (sit-for 0)) (error nil))))) -- Alan Mackenzie (Nuremberg, Germany). From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 03 15:32:56 2022 Received: (at 59738) by debbugs.gnu.org; 3 Dec 2022 20:32:56 +0000 Received: from localhost ([127.0.0.1]:53190 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p1ZBv-0000vz-Hr for submit@debbugs.gnu.org; Sat, 03 Dec 2022 15:32:56 -0500 Received: from mx0b-0016e101.pphosted.com ([148.163.141.31]:57370) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p1PtS-0007mG-Fb for 59738@debbugs.gnu.org; Sat, 03 Dec 2022 05:37:17 -0500 Received: from pps.filterd (m0151360.ppops.net [127.0.0.1]) by mx0b-0016e101.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2B3AbDVb005886 for <59738@debbugs.gnu.org>; Sat, 3 Dec 2022 02:37:13 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ucsd.edu; h=from : content-type : content-transfer-encoding : mime-version : subject : message-id : date : cc : to; s=campus; bh=mSgkzoXGWK5JRcJTJbGKKbvBGIcTPzcHW3VSDtZKlqM=; b=CeG1hXVjudON1Ssq7KgZR5kI54cv9dY90TAhyrltk1Faa/ocUNVOaieSPSL1xzKvo2yx pKW0ARt5xKOJkRZ6ITHh9JdPT2qirZwNG57VawdC0zkisWjWz5ptAUIexK9lr8g0Fqh5 jjTw3OVs5rQkDmiNZ22qqH/DfaJiL95YV1VmV6bFNSkxOJlDTEmQ0uX1DqliuSe8AZ5W nSc2xO2cD7v0Pk7EwR5fV6IR5z2oK5oOixar5MBDVQGiTwZUb4XEYw/4shaZxjrXu+w3 hJMbNhmALaTJazOAYm8tBTI7rxjJa92zO/AsvjrS+U3+G+pPJNdUa+pdGiNDtONLYFoy +Q== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0b-0016e101.pphosted.com (PPS) with ESMTPS id 3m7tmc40ak-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for <59738@debbugs.gnu.org>; Sat, 03 Dec 2022 02:37:13 -0800 Received: by mail-pj1-f72.google.com with SMTP id u10-20020a17090a400a00b00215deac75b4so7318389pjc.3 for <59738@debbugs.gnu.org>; Sat, 03 Dec 2022 02:37:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ucsd.edu; s=google; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:from:to:cc:subject:date:message-id :reply-to; bh=mSgkzoXGWK5JRcJTJbGKKbvBGIcTPzcHW3VSDtZKlqM=; b=katGHbbLwlE36Lk2X+LTbeR2fPNGswZy/+29sDTsnVs8QTu36sTGIVYq2v0abpJsUK LgjOxbBDEPaJ5z+oZisiRrsyTAIz4NYcn8GdC1g1ME0BGDypeJzASIyJd5gFa24BWwR/ NTuGaTzxL6pjDfOc029PaIBxuqW5xGmo5zIjI= 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=mSgkzoXGWK5JRcJTJbGKKbvBGIcTPzcHW3VSDtZKlqM=; b=di7qAL/kvyY7oUs881/vWC1l26VgUajHr6RRGaY1SEdqMnahuHA6kuGdQlvRMWYQwa A0HO2SuIh7ui1hUGAc2gpOdKVuYc/tdSLM6mbRCHiRUM4cbFnUZ6Qzmswg4HX9izDhz/ nL9eVan6L/EEq3jqsKDqVuNbArikVDM1A6ef837/TznhnUA3hHi36e7sILahGm7hMga5 fCoenbP54NP94IPcvZPlaxoa/ct6dq7BmYIohIe9LaYmLJFBpMr9ogKXJCNt+iL0PKbp BDbQd3HIjiF5ReqXAWdTh+NGVQKGivGPD/uUVOpiDLqJQuN/SaucMSka70nTl+pbdwlM VQHg== X-Gm-Message-State: ANoB5pn0oFHv5tbbLblxSowOzdiArRmPKR0U4zGjSW0cnXe+r6CWlWU7 mn/FiMhLsrQm8QNWcR9SWiCD9jFJjTIoT7b35TqOLVtx+AWmXu3wWtFyYycCB8u/2kdC0hgIlDt yQX3IiW4VE582RQ== X-Received: by 2002:a17:90a:6d62:b0:219:4ee5:ccc9 with SMTP id z89-20020a17090a6d6200b002194ee5ccc9mr23936076pjj.63.1670063832131; Sat, 03 Dec 2022 02:37:12 -0800 (PST) X-Google-Smtp-Source: AA0mqf7GBMSd6BFwocF+FgifU8ZmgRfxRTX+vWKNSoFu6YOBSkuxqHs4xIQp8g7FZ1UtGADB3HV5+Q== X-Received: by 2002:a17:90a:6d62:b0:219:4ee5:ccc9 with SMTP id z89-20020a17090a6d6200b002194ee5ccc9mr23936060pjj.63.1670063831780; Sat, 03 Dec 2022 02:37:11 -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 l15-20020a170903244f00b0017fe9b038fdsm7156081pls.14.2022.12.03.02.37.10 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 03 Dec 2022 02:37:11 -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#59738: c-ts-mode is slow with large buffers. Message-Id: <610A4A5E-4559-41F7-B94D-14F6D4C96887@ucsd.edu> Date: Sat, 3 Dec 2022 02:37:08 -0800 To: Alan Mackenzie X-Mailer: Apple Mail (2.3696.120.41.1.1) X-campus_gsuite: gsuite_33445511 X-Proofpoint-ORIG-GUID: w0lb46rSKynY0gvrE50bsLTFAQM-FTbD X-Proofpoint-GUID: w0lb46rSKynY0gvrE50bsLTFAQM-FTbD pp_allow_relay: proofpoint_allowed X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-03_05,2022-12-01_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 priorityscore=1501 lowpriorityscore=0 clxscore=1011 impostorscore=0 mlxlogscore=531 spamscore=0 adultscore=0 phishscore=0 bulkscore=0 suspectscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2212030092 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 59738 X-Mailman-Approved-At: Sat, 03 Dec 2022 15:32:51 -0500 Cc: 59738@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 (-) Alan Mackenzie writes: > Hello, Emacs. > > In an up to date (2022-11-30) master started as $ emacs --no-desktop: > > The file = .../drivers/gpu/drm/amd/include/asic_reg/dce/dce_12_0_sh_mask.h > in the Linux source tree is 6.8 MB big, consisting of a large number = of > #defines and comments, but nothing else. > > To scroll through it in c-ts-mode takes a little over 26 minutes on my > system. By comparison, in C Mode it takes 31 seconds. There would > appear to be a need for some optimisation in c-ts-mode, here. > > > The file > = https://gitlab.com/wireshark/wireshark/-/raw/master/epan/dissectors/packet= -rrc.c > (see bug #45248) (10 MB) takes 578 seconds to scroll in c-ts-mode. It > scrolls through the first 83% of the buffer rapidly, then chokes on a = big > brace block initialisation. Also, the font-locking fails part way > through this brace block (without any apparent speed up). > > For comparison, the scrolling takes 30 seconds in C Mode. There seems = to > be a need for optimisation of c-ts-mode in this case, too. > > > For completeness, I used M-: (time-scroll) in the following for the > timings: > > (defmacro time-it (&rest forms) > "Time the running of a sequence of forms using `float-time'. > Call like this: \"M-: (time-it (foo ...) (bar ...) ...)\"." > `(let ((start (float-time))) > ,@forms > (- (float-time) start))) > > (defun time-scroll (&optional arg) > (interactive "P") > (message "%s" > (time-it > (condition-case nil > (while t > (if arg (scroll-down) (scroll-up)) > (sit-for 0)) > (error nil))))) Thanks for the report! I=E2=80=99m a bit overwelmed by all the open bug = reports right now, but I=E2=80=99ll be sure to investigate it as soon as I=E2=80=99= m able. Yuan From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 06 23:56:24 2022 Received: (at 59738) by debbugs.gnu.org; 7 Dec 2022 04:56:25 +0000 Received: from localhost ([127.0.0.1]:47294 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p2mTo-0006ue-Hh for submit@debbugs.gnu.org; Tue, 06 Dec 2022 23:56:24 -0500 Received: from mail-pf1-f169.google.com ([209.85.210.169]:47002) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p2mTl-0006uY-DQ for 59738@debbugs.gnu.org; Tue, 06 Dec 2022 23:56:22 -0500 Received: by mail-pf1-f169.google.com with SMTP id t18so6183937pfq.13 for <59738@debbugs.gnu.org>; Tue, 06 Dec 2022 20:56:21 -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=lsQoKJP9juE1ukqnMKngHvgaZXsLipb9gGZnN8wLx0c=; b=CQWznrr657r+FvRqCX8J4aVtjPbCQ0JluUHruQSMfaQr20rF6SJyqPg7zRLIlPiniq AIzV1F//aocOHsclfkXjADhgCirV3MYE5mJjEzdh1trX+7qqCNoBrqKDyZdT/A6r2krY rURaB07GO+2hgRin30is/3W/U0QfKEixiHNkJyrJue8osBnGjBHdIlcjWuYFMx+C249t fw+vNrHKGKyCcOggi93Gj7AyrhF3olN/srbj3FCfgr2MGMQiG+xAHhYJR4qM4O7yCvpb Iat+8mYzc2QZ7sDSmstOHSXvtwFAe2ONvQKsXYIbaUiZPtLzXhiNwNZQ+CNLMHOgjwCC GTlA== 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=lsQoKJP9juE1ukqnMKngHvgaZXsLipb9gGZnN8wLx0c=; b=K7BWYu5Z+TEvx7FEwCmrSFNNuPVRC9QEo+C71NhLEHUQkUgM7kZ6lTHhjavEfsZNEG irtv90CLjZWeseR/5+uEkTyIpe8l7SL7L83o4gjTt1pKtEJC9ho0wclLsEMsPEyJdXxW cT95FHgBDr3dPNsDc2oZkmVUqncl5bcqDAUk1UjNK4YI3QgJxKlNAh/qWCuydcsvbRxk grHzWO3DI4w/0B/0+/TN7GyWrPyIYMLze6SckE04LdvlZ/ZTIWbQ4+BX/rBcTOtP9TQa qpps90Ov0UpKV8CXTHVtTEHId/WQAuhywMruYdkVRiCvBom/RwiqSpog226QezxHgo5o 719Q== X-Gm-Message-State: ANoB5pmNcH6PgyrZ9xoYlDaKk4PFKZsT9XtMvJIl4e0RCuR7lDTpU4+c 5XvK/G9vmaawVNzs29QfUtFuOVp+LSFykw== X-Google-Smtp-Source: AA0mqf7TvO2t87VxmjomX8jE63o+1Or+AosjVnGUzAJv2WiUku2BA8JaoXSXtoJiOSwBEm/sZJzoTA== X-Received: by 2002:a63:fb11:0:b0:478:e97b:7a1 with SMTP id o17-20020a63fb11000000b00478e97b07a1mr3879166pgh.113.1670388975105; Tue, 06 Dec 2022 20:56:15 -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 n12-20020a170903110c00b00186a6b63525sm13564068plh.120.2022.12.06.20.56.14 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 06 Dec 2022 20:56:14 -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#59738: c-ts-mode is slow with large buffers. Message-Id: <87E351E0-2EE2-434A-9609-86506D2F263D@gmail.com> Date: Tue, 6 Dec 2022 20:56:13 -0800 To: Alan Mackenzie X-Mailer: Apple Mail (2.3696.120.41.1.1) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 59738 Cc: 59738@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 (-) Alan Mackenzie writes: > Hello, Emacs. > > In an up to date (2022-11-30) master started as $ emacs --no-desktop: > > The file = .../drivers/gpu/drm/amd/include/asic_reg/dce/dce_12_0_sh_mask.h > in the Linux source tree is 6.8 MB big, consisting of a large number = of > #defines and comments, but nothing else. > > To scroll through it in c-ts-mode takes a little over 26 minutes on my > system. By comparison, in C Mode it takes 31 seconds. There would > appear to be a need for some optimisation in c-ts-mode, here. > > > The file > = https://gitlab.com/wireshark/wireshark/-/raw/master/epan/dissectors/packet= -rrc.c > (see bug #45248) (10 MB) takes 578 seconds to scroll in c-ts-mode. It > scrolls through the first 83% of the buffer rapidly, then chokes on a = big > brace block initialisation. Also, the font-locking fails part way > through this brace block (without any apparent speed up). > > For comparison, the scrolling takes 30 seconds in C Mode. There seems = to > be a need for optimisation of c-ts-mode in this case, too. > > > For completeness, I used M-: (time-scroll) in the following for the > timings: > > (defmacro time-it (&rest forms) > "Time the running of a sequence of forms using `float-time'. > Call like this: \"M-: (time-it (foo ...) (bar ...) ...)\"." > `(let ((start (float-time))) > ,@forms > (- (float-time) start))) > > (defun time-scroll (&optional arg) > (interactive "P") > (message "%s" > (time-it > (condition-case nil > (while t > (if arg (scroll-down) (scroll-up)) > (sit-for 0)) > (error nil))))) Ah, the lovely packet-rrc.c file. We had some discussion of it in bug#59415, basically it contains some syntax that screws tree-sitter up. The block initialization you see makes tree-sitter into erroneously generating a very tall tree: it recognizes all the opening bracket and ignores (almost) all the closing brackets. That causes operations on the tree to be much much slower than it normally is. I added some fix so the rest of the file can be largely unaffected, and reported this problem to tree-sitter-c=E2=80=99s developer (no reply as = of now). There is not much we can do to fix this, and since it=E2=80=99s rare, I = think a user could probably just use c-mode for this kind of files. Yuan From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 07 09:34:33 2022 Received: (at 59738) by debbugs.gnu.org; 7 Dec 2022 14:34:33 +0000 Received: from localhost ([127.0.0.1]:50529 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p2vVJ-0001V5-9X for submit@debbugs.gnu.org; Wed, 07 Dec 2022 09:34:33 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46158) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p2vVH-0001Ux-4o for 59738@debbugs.gnu.org; Wed, 07 Dec 2022 09:34:31 -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 1p2vVB-000786-A5; Wed, 07 Dec 2022 09:34:25 -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=ql7ZuyJz093pXXkTMk0sp8KeC159pVnJM9EYStybre4=; b=A3gQ5+xDZzqe Ee5mbg90t+WOJAVQRJGV41r64mVwW8Eh3PtUP8ZgIxfzhII0CbOqdC4FZlPFi8Pi4UxAcR7Nb2HUP F7QEheDr+L08OZSFWMYMb27aX2FD2g2+4E7PNKcmI6IBhWnBGlvThkehzZAEAX7nSRmcDHQeJ+/nh 1fEsvlF79tmyEC9jNCGYZnSLXIAibALdBh3w+wNLV3s/tXg1AOEzmWKthG/OIkM6ahmAbLDJ0/HXI 2yN7itLAWLGh08I9S07I5D4Fo67OthTIuTbF36WFekC8N9hjLerZGjWhGZ1p2zLbEQy5lHLuLuBwG xZIjg4aJ2Nrl5773egDsvQ==; 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 1p2vVA-0004Kz-QB; Wed, 07 Dec 2022 09:34:25 -0500 Date: Wed, 07 Dec 2022 16:34:13 +0200 Message-Id: <83mt7z4716.fsf@gnu.org> From: Eli Zaretskii To: Alan Mackenzie In-Reply-To: (message from Alan Mackenzie on Thu, 1 Dec 2022 11:50:05 +0000) Subject: Re: bug#59738: c-ts-mode is slow with large buffers. References: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 59738 Cc: 59738@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 (---) > Date: Thu, 1 Dec 2022 11:50:05 +0000 > From: Alan Mackenzie > > Hello, Emacs. > > In an up to date (2022-11-30) master started as $ emacs --no-desktop: > > The file .../drivers/gpu/drm/amd/include/asic_reg/dce/dce_12_0_sh_mask.h > in the Linux source tree is 6.8 MB big, consisting of a large number of > #defines and comments, but nothing else. Please post the file (compressed), or tell how to access it on your machine. From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 07 09:58:28 2022 Received: (at 59738) by debbugs.gnu.org; 7 Dec 2022 14:58:29 +0000 Received: from localhost ([127.0.0.1]:50570 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p2vsS-0001hV-K6 for submit@debbugs.gnu.org; Wed, 07 Dec 2022 09:58:28 -0500 Received: from eggs.gnu.org ([209.51.188.92]:34308) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p2vsQ-0001hJ-W7 for 59738@debbugs.gnu.org; Wed, 07 Dec 2022 09:58:27 -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 1p2vsL-0008ND-5K; Wed, 07 Dec 2022 09:58:21 -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=Kgjz8etabgE2c8vHYJdHOhT+Dt8tdZCB2WJMkwouENc=; b=H5PfLV6H1b9K VMK3BLQqqCoUqzA3r+qDSzEpwljRDb9lnYE5OFkw1C4Cp2Gp3B2+lMAHd2EHLsxZAclS5t3CrpNmu FeplNeJUf9kN/76uckpZloIUeE43Gvdh5LzkzTIMkv9plrIKdMhUQWidwyrwcdCF/wKWumsGeKN4q Rm2vPUfe7vSFvRieZ2j+B6XXjljn5d94QwXuAEt6bsldIANZ5JHgqi6+cycq6VKu0U4c8FJ9GmdK6 FOZNaL2M4kuPXfqq8rsJ5oHClLxXj/lTkOfjOFRXD/VMKWwT/r2f0yrqCm/KK6wbtFI85WoDxCRmR MWndnDxFq+LMWqVpcYft0A==; 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 1p2vsK-0005Q4-PH; Wed, 07 Dec 2022 09:58:20 -0500 Date: Wed, 07 Dec 2022 16:58:08 +0200 Message-Id: <83lenj45xb.fsf@gnu.org> From: Eli Zaretskii To: acm@muc.de In-Reply-To: <83mt7z4716.fsf@gnu.org> (message from Eli Zaretskii on Wed, 07 Dec 2022 16:34:13 +0200) Subject: Re: bug#59738: c-ts-mode is slow with large buffers. References: <83mt7z4716.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 59738 Cc: 59738@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 (---) > Cc: 59738@debbugs.gnu.org > Date: Wed, 07 Dec 2022 16:34:13 +0200 > From: Eli Zaretskii > > > Date: Thu, 1 Dec 2022 11:50:05 +0000 > > From: Alan Mackenzie > > > > Hello, Emacs. > > > > In an up to date (2022-11-30) master started as $ emacs --no-desktop: > > > > The file .../drivers/gpu/drm/amd/include/asic_reg/dce/dce_12_0_sh_mask.h > > in the Linux source tree is 6.8 MB big, consisting of a large number of > > #defines and comments, but nothing else. > > Please post the file (compressed), or tell how to access it on your > machine. And, btw, please do the benchmarks on the release branch, since it will be released much sooner than master, and because the main work on the tree-sitter supported modes is on the release branch. From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 07 10:46:26 2022 Received: (at 59738) by debbugs.gnu.org; 7 Dec 2022 15:46:26 +0000 Received: from localhost ([127.0.0.1]:50796 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p2wcs-00029K-5O for submit@debbugs.gnu.org; Wed, 07 Dec 2022 10:46:26 -0500 Received: from mx3.muc.de ([193.149.48.5]:56482) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p2wcq-00029E-SI for 59738@debbugs.gnu.org; Wed, 07 Dec 2022 10:46:25 -0500 Received: (qmail 95319 invoked by uid 3782); 7 Dec 2022 16:46:17 +0100 Received: from acm.muc.de (p4fe15be8.dip0.t-ipconnect.de [79.225.91.232]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Wed, 07 Dec 2022 16:46:17 +0100 Received: (qmail 11181 invoked by uid 1000); 7 Dec 2022 15:46:16 -0000 Date: Wed, 7 Dec 2022 15:46:16 +0000 To: 59738@debbugs.gnu.org Subject: Re: bug#59738: c-ts-mode is slow with large buffers. Message-ID: References: <83mt7z4716.fsf@gnu.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="yOnOaJKBIk1LZ1we" Content-Disposition: inline In-Reply-To: <83mt7z4716.fsf@gnu.org> X-Submission-Agent: TMDA/1.3.x (Ph3nix) From: Alan Mackenzie X-Primary-Address: acm@muc.de X-Debbugs-Envelope-To: 59738 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" --yOnOaJKBIk1LZ1we Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Wed, Dec 07, 2022 at 16:34:13 +0200, Eli Zaretskii wrote: > > Date: Thu, 1 Dec 2022 11:50:05 +0000 > > From: Alan Mackenzie > > Hello, Emacs. > > In an up to date (2022-11-30) master started as $ emacs --no-desktop: > > The file .../drivers/gpu/drm/amd/include/asic_reg/dce/dce_12_0_sh_mask.h > > in the Linux source tree is 6.8 MB big, consisting of a large number of > > #defines and comments, but nothing else. > Please post the file (compressed), or tell how to access it on your > machine. This post (with Eli Z.'s Cc: removed) contains a compressed version of the above file. -- Alan Mackenzie (Nuremberg, Germany). --yOnOaJKBIk1LZ1we Content-Type: application/x-xz Content-Disposition: attachment; filename="dce_12_0_sh_mask.h.xz" Content-Transfer-Encoding: base64 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 AAAg4AOHFBc7MAMAAAAABFla --yOnOaJKBIk1LZ1we-- From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 07 12:24:02 2022 Received: (at 59738) by debbugs.gnu.org; 7 Dec 2022 17:24:02 +0000 Received: from localhost ([127.0.0.1]:51207 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p2y9J-0002x5-0G for submit@debbugs.gnu.org; Wed, 07 Dec 2022 12:24:01 -0500 Received: from eggs.gnu.org ([209.51.188.92]:38972) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p2y9D-0002ww-TX for 59738@debbugs.gnu.org; Wed, 07 Dec 2022 12:23:59 -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 1p2y98-0003Es-DO; Wed, 07 Dec 2022 12:23:50 -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=d8AcsnGmHd1gg1RGFSmF6SxKqUjPWhQUX0xj+Oac9nE=; b=aMCYDcL4G9rP 8B03xfTy4DdIsgPUqLpp9eueI4+2RAZwZcAFT4ohOrOi2rOstTWvYJ3rLMzdJlewJrlKKW/Z2kmnu nkFiYb3wuy10ZzfCNmRwc+JZ3HW3kM3GrMr9uMwee+aalBw4afCLbORjxj/KycVfpp16VSUPC9MGX 4nCfoE4l+/hQPbE/sAH37iO9WUatOpdJ46MCs0FdBrwL8ctI0q1/gzLq4/37zU+f4tJpLPefYVasZ 2I/30WVu5C+S2LMHu5FQGGa7p7HfJylRn3Z1pfFOFcPJoALCf5cV0yqwtabH8siygXkj7jqkxB9Mz P6GervqaFJ5zKy6162I45g==; 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 1p2y97-00041h-T1; Wed, 07 Dec 2022 12:23:50 -0500 Date: Wed, 07 Dec 2022 19:23:38 +0200 Message-Id: <83edtb3z6t.fsf@gnu.org> From: Eli Zaretskii To: Yuan Fu In-Reply-To: <87E351E0-2EE2-434A-9609-86506D2F263D@gmail.com> (message from Yuan Fu on Tue, 6 Dec 2022 20:56:13 -0800) Subject: Re: bug#59738: c-ts-mode is slow with large buffers. References: <87E351E0-2EE2-434A-9609-86506D2F263D@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 59738 Cc: acm@muc.de, 59738@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 (---) > Cc: 59738@debbugs.gnu.org > From: Yuan Fu > Date: Tue, 6 Dec 2022 20:56:13 -0800 > > > Alan Mackenzie writes: > > > Hello, Emacs. > > > > In an up to date (2022-11-30) master started as $ emacs --no-desktop: > > > > The file .../drivers/gpu/drm/amd/include/asic_reg/dce/dce_12_0_sh_mask.h > > in the Linux source tree is 6.8 MB big, consisting of a large number of > > #defines and comments, but nothing else. > > > > To scroll through it in c-ts-mode takes a little over 26 minutes on my > > system. By comparison, in C Mode it takes 31 seconds. There would > > appear to be a need for some optimisation in c-ts-mode, here. > >[...] > Ah, the lovely packet-rrc.c file. No, this is a different file, dce_12_0_sh_mask.h. It is a header file which only has preprocessor #define lines. I'm puzzled why this presents such a great difficulty for tree-sitter. Could you take a look what happens with that file? > We had some discussion of it in > bug#59415, basically it contains some syntax that screws tree-sitter up. > The block initialization you see makes tree-sitter into erroneously > generating a very tall tree: it recognizes all the opening bracket and > ignores (almost) all the closing brackets. That causes operations on the > tree to be much much slower than it normally is. Right, but with a long series of #define lines there should be no parse tree at all... From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 07 19:40:27 2022 Received: (at 59738) by debbugs.gnu.org; 8 Dec 2022 00:40:27 +0000 Received: from localhost ([127.0.0.1]:53154 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p34xf-0005A1-7I for submit@debbugs.gnu.org; Wed, 07 Dec 2022 19:40:27 -0500 Received: from mail-pl1-f170.google.com ([209.85.214.170]:35394) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p34xb-00059u-GW for 59738@debbugs.gnu.org; Wed, 07 Dec 2022 19:40:26 -0500 Received: by mail-pl1-f170.google.com with SMTP id y4so22431plb.2 for <59738@debbugs.gnu.org>; Wed, 07 Dec 2022 16:40:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=r9fQZbnvMZSx1RRIF8nSYStGdWmI5ZUL7TONDnkQNdc=; b=WcED9CBUQZOOCSnjnyiBIHRFoluhf87xK6MEeFKmip2ojQ/e/+4ijgeqGGkyT/wYXb YOatJnFDE8urx/w959jhaZkQC+c0fyolc8uIEajCNkW8UbySAEIJCJPXFS3MfTiNnNON oeejaQmCXiFpGKGuFqHwHWfoJ9aIyi2ejWmSV8u1/PILNcWUrZYNdmekOW7J3UVZDX6z nyDPoj0rL2rXWiolhS/JaB46/pWmjowFdrKM6IiyjbZdaWxrkpRUP6tHnuYXcx81n5kl 1+9xn99y+Xo0rFf77GSJMBGJdWH3XUfePhFdbewDRunwZZpA9G8AFkt9M3owSXmCaTOC dRqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=r9fQZbnvMZSx1RRIF8nSYStGdWmI5ZUL7TONDnkQNdc=; b=o2rFWBSCDOByHXI+LL5p1NbzCPYNMyreiXafU3b1Cc2lbB/8lFp4m6SxPaoAGmRBEk 4pKqhD2LNHidyJZIu57Y69BkHHowKZVruXnOHMXS6V7lP0L4TtucYnPtAPSdUZ3azRib eikw576FvZ/Hl2O+pFnxOU+T7RHfUS5+m+hxcEL8uHS94XAe58NCvNgFDbrJZR3x2+Cz 3pVMPOFfiGHDjJGKYI8dqEK6ssCBrBpwUDoMh5YWS048e1swBh9M3K7syeuBHAfSIqxL To/XDOcAo2HoE3CtglOY85saXZ6nb+tUJbiFNtbVkFwrBKS17HVqWKs96jp5BhoWUYcb nGZA== X-Gm-Message-State: ANoB5pnW0rJKIA924CUN4cmx5yz6bVC7hFQnlvYHibeOYPrruqhuLlgB vE4UTGuXTdGOGr4MMS/zpjAhrImABMcR1g== X-Google-Smtp-Source: AA0mqf6PRQR6+ihjPrt1bPfcwj9FHdHAmDzIPcvW3f921iuD6t/Wi90mJyX/BO6QbhWfqhFYkIlfvw== X-Received: by 2002:a05:6a21:e211:b0:a7:8781:5a7d with SMTP id by17-20020a056a21e21100b000a787815a7dmr1333325pzc.60.1670460017587; Wed, 07 Dec 2022 16:40:17 -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 r12-20020aa7962c000000b005758d26fbf7sm8900971pfg.58.2022.12.07.16.40.16 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 07 Dec 2022 16:40:17 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Subject: Re: bug#59738: c-ts-mode is slow with large buffers. From: Yuan Fu In-Reply-To: <83edtb3z6t.fsf@gnu.org> Date: Wed, 7 Dec 2022 16:40:15 -0800 Content-Transfer-Encoding: quoted-printable Message-Id: <3A956C88-F81D-4DED-B020-178291D405D9@gmail.com> References: <87E351E0-2EE2-434A-9609-86506D2F263D@gmail.com> <83edtb3z6t.fsf@gnu.org> To: Eli Zaretskii X-Mailer: Apple Mail (2.3696.120.41.1.1) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 59738 Cc: Alan Mackenzie , 59738@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 (-) > On Dec 7, 2022, at 9:23 AM, Eli Zaretskii wrote: >=20 >> Cc: 59738@debbugs.gnu.org >> From: Yuan Fu >> Date: Tue, 6 Dec 2022 20:56:13 -0800 >>=20 >>=20 >> Alan Mackenzie writes: >>=20 >>> Hello, Emacs. >>>=20 >>> In an up to date (2022-11-30) master started as $ emacs = --no-desktop: >>>=20 >>> The file = .../drivers/gpu/drm/amd/include/asic_reg/dce/dce_12_0_sh_mask.h >>> in the Linux source tree is 6.8 MB big, consisting of a large number = of >>> #defines and comments, but nothing else. >>>=20 >>> To scroll through it in c-ts-mode takes a little over 26 minutes on = my >>> system. By comparison, in C Mode it takes 31 seconds. There would >>> appear to be a need for some optimisation in c-ts-mode, here. >>> [...] >> Ah, the lovely packet-rrc.c file. >=20 > No, this is a different file, dce_12_0_sh_mask.h. It is a header file > which only has preprocessor #define lines. I'm puzzled why this > presents such a great difficulty for tree-sitter. Could you take a > look what happens with that file? >=20 >> We had some discussion of it in >> bug#59415, basically it contains some syntax that screws tree-sitter = up. >> The block initialization you see makes tree-sitter into erroneously >> generating a very tall tree: it recognizes all the opening bracket = and >> ignores (almost) all the closing brackets. That causes operations on = the >> tree to be much much slower than it normally is. >=20 > Right, but with a long series of #define lines there should be no > parse tree at all=E2=80=A6 Ok, I think I know why. At the beginning of the file there is this line #ifndef _dce_12_0_SH_MASK_HEADER So it=E2=80=99s parsed into a preproc_ifdef node, which contains every = #define directive in the file as its immediate child. Now you have this = node with a tons of immediate children. And querying this node in = font-lock is very slow, even with a limited range. I think for the query = result to be accurate, tree-sitter has to query the whole node without = considering the range, then throw away matches that are not in the = range.=20 Anyway, I activated my backup backup plan, which goes down the parse = tree to find a sufficiently small node to query. Now scrolling the = header file is fast as other files. Yuan From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 08 15:37:23 2022 Received: (at 59738) by debbugs.gnu.org; 8 Dec 2022 20:37:23 +0000 Received: from localhost ([127.0.0.1]:58969 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p3Ndy-0003R8-N7 for submit@debbugs.gnu.org; Thu, 08 Dec 2022 15:37:22 -0500 Received: from eggs.gnu.org ([209.51.188.92]:50200) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p3Ndw-0003R2-MM for 59738@debbugs.gnu.org; Thu, 08 Dec 2022 15:37:21 -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 1p3Ndq-00032j-N7; Thu, 08 Dec 2022 15:37:14 -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=1aUYvV3+DWis+794xOky6QhZ9CaWdCbXz05n3pk5qHI=; b=KMyMUU//ZuaDPcBtAKGP F3OYxnkz9qh5gQ0Af5bYb9BNhhMOoNPDQgdYc9Wlb4giAiLYEkDQZm6bacZ9r8cFDMOg+nSsFdQ35 aPRQm1JookQRjHLAKfDSf0H7EmbbyFd6oqzDsO806EdSJMpNz/mhIJjZd2hX96tHcu3p9SAqwBPoi trLQpYi40SQS6RnEvXRej8mvvL4Q9bqlAQw44W0Q1Z+168cDoImOTOYJ8GEvtmhC1LRkzDWiCZAHf f7lny7yBpPcg5rKYAKuAIWWGH6/cEVSypZZi8BAfMtWblCluh+ujYG0lTKfKaEN41Fm4W0DSpDnpV h2dTdjJdaiBR1w==; 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 1p3Ndq-0005vW-4e; Thu, 08 Dec 2022 15:37:14 -0500 Date: Thu, 08 Dec 2022 22:37:05 +0200 Message-Id: <83fsdp1vke.fsf@gnu.org> From: Eli Zaretskii To: Yuan Fu In-Reply-To: <3A956C88-F81D-4DED-B020-178291D405D9@gmail.com> (message from Yuan Fu on Wed, 7 Dec 2022 16:40:15 -0800) Subject: Re: bug#59738: c-ts-mode is slow with large buffers. References: <87E351E0-2EE2-434A-9609-86506D2F263D@gmail.com> <83edtb3z6t.fsf@gnu.org> <3A956C88-F81D-4DED-B020-178291D405D9@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: 59738 Cc: acm@muc.de, 59738@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: Wed, 7 Dec 2022 16:40:15 -0800 > Cc: Alan Mackenzie , > 59738@debbugs.gnu.org > > > Right, but with a long series of #define lines there should be no > > parse tree at all… > > Ok, I think I know why. At the beginning of the file there is this line > > #ifndef _dce_12_0_SH_MASK_HEADER > > So it’s parsed into a preproc_ifdef node, which contains every #define directive in the file as its immediate child. Now you have this node with a tons of immediate children. And querying this node in font-lock is very slow, even with a limited range. I think for the query result to be accurate, tree-sitter has to query the whole node without considering the range, then throw away matches that are not in the range. > > Anyway, I activated my backup backup plan, which goes down the parse tree to find a sufficiently small node to query. Now scrolling the header file is fast as other files. Thanks, now c-ts-mode is twice as fast as c-mode with that file. Great job! From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 10 16:34:33 2022 Received: (at 59738) by debbugs.gnu.org; 10 Dec 2022 21:34:33 +0000 Received: from localhost ([127.0.0.1]:45182 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p47UO-0006Og-Qp for submit@debbugs.gnu.org; Sat, 10 Dec 2022 16:34:33 -0500 Received: from mx3.muc.de ([193.149.48.5]:28097) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p47UK-0006OY-U1 for 59738@debbugs.gnu.org; Sat, 10 Dec 2022 16:34:31 -0500 Received: (qmail 49443 invoked by uid 3782); 10 Dec 2022 22:34:22 +0100 Received: from acm.muc.de (p4fe15e44.dip0.t-ipconnect.de [79.225.94.68]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Sat, 10 Dec 2022 22:34:22 +0100 Received: (qmail 18074 invoked by uid 1000); 10 Dec 2022 21:34:20 -0000 Date: Sat, 10 Dec 2022 21:34:20 +0000 To: Eli Zaretskii Subject: Re: bug#59738: c-ts-mode is slow with large buffers. Message-ID: References: <87E351E0-2EE2-434A-9609-86506D2F263D@gmail.com> <83edtb3z6t.fsf@gnu.org> <3A956C88-F81D-4DED-B020-178291D405D9@gmail.com> <83fsdp1vke.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <83fsdp1vke.fsf@gnu.org> X-Submission-Agent: TMDA/1.3.x (Ph3nix) From: Alan Mackenzie X-Primary-Address: acm@muc.de X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 59738 Cc: Yuan Fu , 59738@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 (-) Hello, Eli. On Thu, Dec 08, 2022 at 22:37:05 +0200, Eli Zaretskii wrote: > > From: Yuan Fu > > Date: Wed, 7 Dec 2022 16:40:15 -0800 > > Cc: Alan Mackenzie , > > 59738@debbugs.gnu.org > > > Right, but with a long series of #define lines there should be no > > > parse tree at all… > > Ok, I think I know why. At the beginning of the file there is this > > line > > #ifndef _dce_12_0_SH_MASK_HEADER > > So it’s parsed into a preproc_ifdef node, which contains every > > #define directive in the file as its immediate child. Now you have > > this node with a tons of immediate children. And querying this node > > in font-lock is very slow, even with a limited range. I think for the > > query result to be accurate, tree-sitter has to query the whole node > > without considering the range, then throw away matches that are not > > in the range. > > Anyway, I activated my backup backup plan, which goes down the parse > > tree to find a sufficiently small node to query. Now scrolling the > > header file is fast as other files. > Thanks, now c-ts-mode is twice as fast as c-mode with that file. > Great job! The bug which was causing it to be very slow is fixed, so I agree, excellent job! But I've measured it as being 62% faster (not twice as fast) as CC Mode. A "normal" C file (xdisp.c) is around 160% faster, i.e. a little over 2½ times as fast. These timings are indeed significantly faster. But given how slow CC Mode was held to be, is a factor 2.6 speed-up really all that we were expecting from c-ts-mode? This is the sort of speed-up one would get by replacing a 5 year old machine with a new one, or using an optimised build in place of a debug build. Was I perhaps a little unrealistic in expecting an order of magnitude speed-up? Is there still scope for optimisation in c-ts-mode? -- Alan Mackenzie (Nuremberg, Germany). From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 10 18:14:40 2022 Received: (at 59738) by debbugs.gnu.org; 10 Dec 2022 23:14:40 +0000 Received: from localhost ([127.0.0.1]:45681 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p493H-0001LA-MX for submit@debbugs.gnu.org; Sat, 10 Dec 2022 18:14:40 -0500 Received: from mail-pj1-f52.google.com ([209.85.216.52]:38655) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p493E-0001L0-Pv for 59738@debbugs.gnu.org; Sat, 10 Dec 2022 18:14:37 -0500 Received: by mail-pj1-f52.google.com with SMTP id z8-20020a17090abd8800b00219ed30ce47so11880601pjr.3 for <59738@debbugs.gnu.org>; Sat, 10 Dec 2022 15:14:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=dT62ac7VOeCdRDjuw4qZ1HAj3CGKXBfyhg/3ZFo8Dik=; b=XP8SbkCzG4Xs3d8Jw22pFr/FlLO860a1zmcTtx/Zpk2/NKTog2mXzCLe6q054ePp+m rk4yRUWsCrb3MI+YKVtV7f/mqcdfdVf94SRLcVGcJy8AnkXwSXXGtnfNsEzAIHPujUq2 JQtA+IMkxGsQsjb+VyIv+jr2vLGsjaTALj+fc4UjJhhI/Gmj56Xc3sWYc/NWVEOzmLJf vH32Z7PRDGq6Q9ossbf+LrZhZw95hhCpPgm9pG+T+n5mQP3Wr2e9cjCMo658Pr4EQNKn xvB+gUEjWmDINgOPrh/RqsBItDWIumkE85+7hs/XgdCLcgynQBMzhaLchWqZKD5Ex+7K mx7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dT62ac7VOeCdRDjuw4qZ1HAj3CGKXBfyhg/3ZFo8Dik=; b=S6LYm4P7Jfkshn+8m6E1VFcCfN9qvEAr6nausB0TaFpBWQ7/O5eu4D5KCrqkTyMj5O ehP65IEjtOgFeaOZb8+OzGgbRT96/8ObWAwkRBxqc8xgGBfeIPMBvsWAtPqTkh+NCJ/i Ww9jn8o1cx7O3HVIbJYQLX1zsZxye4hVJHc7Zt9BGG4nkiBDWNc5eIa3N8Qgb+ny28QW fPnsoMdKf95pXBwjoQp0Lp2M7dkmNz+2tT0nxpzBfgrp/XJVJJXC48UR8YJu8UfWOg3h ODzVwI+cTBYuonpSxkKbOmrPIDjGJog6pWboxcKphGFB0/+L4Qc1hz6sxay+xjIp2RXB sLeg== X-Gm-Message-State: ANoB5pl8Qi6HJrccTfTEVxoTCJBe0BNQ2JXrIgAtzSRYfpZfRRfYJbe0 3bbSHcIt30RcH21GkkI7H3Lnfjbgcf0= X-Google-Smtp-Source: AA0mqf6WEfnPOjfI0sHWMHhQ19tN59oHOksyuFEeOrbURmlXfTAJRrEPj5v3UXp4PeVtJLf8uy9qpg== X-Received: by 2002:a17:902:ce82:b0:188:a230:98d0 with SMTP id f2-20020a170902ce8200b00188a23098d0mr15198690plg.36.1670714070684; Sat, 10 Dec 2022 15:14:30 -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 e7-20020a17090301c700b00189bf5dc96dsm3443345plh.230.2022.12.10.15.14.28 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 10 Dec 2022 15:14:29 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Subject: Re: bug#59738: c-ts-mode is slow with large buffers. From: Yuan Fu In-Reply-To: Date: Sat, 10 Dec 2022 15:14:27 -0800 Content-Transfer-Encoding: quoted-printable Message-Id: References: <87E351E0-2EE2-434A-9609-86506D2F263D@gmail.com> <83edtb3z6t.fsf@gnu.org> <3A956C88-F81D-4DED-B020-178291D405D9@gmail.com> <83fsdp1vke.fsf@gnu.org> To: Alan Mackenzie X-Mailer: Apple Mail (2.3696.120.41.1.1) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 59738 Cc: Eli Zaretskii , 59738@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 (-) > On Dec 10, 2022, at 1:34 PM, Alan Mackenzie wrote: >=20 > Hello, Eli. >=20 > On Thu, Dec 08, 2022 at 22:37:05 +0200, Eli Zaretskii wrote: >>> From: Yuan Fu >>> Date: Wed, 7 Dec 2022 16:40:15 -0800 >>> Cc: Alan Mackenzie , >>> 59738@debbugs.gnu.org >=20 >>>> Right, but with a long series of #define lines there should be no >>>> parse tree at all=E2=80=A6 >=20 >>> Ok, I think I know why. At the beginning of the file there is this >>> line >=20 >>> #ifndef _dce_12_0_SH_MASK_HEADER >=20 >>> So it=E2=80=99s parsed into a preproc_ifdef node, which contains = every >>> #define directive in the file as its immediate child. Now you have >>> this node with a tons of immediate children. And querying this node >>> in font-lock is very slow, even with a limited range. I think for = the >>> query result to be accurate, tree-sitter has to query the whole node >>> without considering the range, then throw away matches that are not >>> in the range.=20 >=20 >>> Anyway, I activated my backup backup plan, which goes down the parse >>> tree to find a sufficiently small node to query. Now scrolling the >>> header file is fast as other files. >=20 >> Thanks, now c-ts-mode is twice as fast as c-mode with that file. >=20 >> Great job! >=20 > The bug which was causing it to be very slow is fixed, so I agree, > excellent job! >=20 > But I've measured it as being 62% faster (not twice as fast) as CC = Mode. > A "normal" C file (xdisp.c) is around 160% faster, i.e. a little over = 2=C2=BD > times as fast. These timings are indeed significantly faster. >=20 > But given how slow CC Mode was held to be, is a factor 2.6 speed-up > really all that we were expecting from c-ts-mode? This is the sort of > speed-up one would get by replacing a 5 year old machine with a new = one, > or using an optimised build in place of a debug build. >=20 > Was I perhaps a little unrealistic in expecting an order of magnitude > speed-up? Is there still scope for optimisation in c-ts-mode? AFAIK not too much room for optimization. Querying the patterns takes = like 99% of the time during fontification. Querying time (thus fontification time) increases as the buffer size = increases, even if we limit the range of the query to a fixed region = (which is what we do in tree-sitter font-lock). This is unlike c-mode, = where fontifying a region takes the same amount of time regardless of = the buffer size. Some benchmarks I did: In xdisp.c Time Task 0.0008 A single query for comments 0.008 All queries in c-ts-mode 0.00815 treesit-font-lock-fontify-region (1500 char) 0.0214 font-lock-fontify-region in c-mode (1500 char) 12.048 time-scroll in c-ts-mode 21.206 time-scroll in c-mode 5.539 time-scroll in fundamental-mode In treesit.c Time Task 0.00336 All queries in c-ts-mode 0.00391 treesit-font-lock-fontify-region (1500 char) 0.0281 font-lock-fontify-region in c-mode (1500 char) 1.958 time-scroll in c-ts-mode 1.969 time-scroll in c-mode 0.535 time-scroll in fundamental-mode Though I=E2=80=99ll note that tree-sitter would provide other benefits. = I don=E2=80=99t know how much time does c-mode spend on analyzing the = buffer content when user edits it, but I imagine tree-sitter to be = faster in that regard, too. That should help the perceived performance. = Also (unrelated to performance) tree-sitter makes it vastly easier to = write (and maintain) a major mode. Yuan= From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 11 01:45:57 2022 Received: (at 59738) by debbugs.gnu.org; 11 Dec 2022 06:45:57 +0000 Received: from localhost ([127.0.0.1]:46123 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4G60-0005cg-K7 for submit@debbugs.gnu.org; Sun, 11 Dec 2022 01:45:56 -0500 Received: from eggs.gnu.org ([209.51.188.92]:58794) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4G5x-0005cY-J1 for 59738@debbugs.gnu.org; Sun, 11 Dec 2022 01:45:55 -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 1p4G5p-0001yE-Ve; Sun, 11 Dec 2022 01:45:47 -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=jVSmzOTqTC5CsnnTKkdJdh+BEvCCgW2ZtM7BlhCmc2Y=; b=jejrzdqDl/iHVxNlTE1p 1j7fEzvw3Ri9K22pZaCVqsDqaHsydq8cO+9STiTRLyKxMGBpq7qGLlCS2H9uCGK+gS9Vzz72iQyls 9nxSxIiFvIZMQUaJi90+cOEQ0PeIUxVsDC8LhVO3/+0ibm+hPSjFTieB5EvsVBjU1yLS20l/2GkzM saT741bRR8CxdsrMPiyuJQWdLhWBxysyFKg0QsjA8aA/1Vh5cuOb8grKdX5lC/eK2pHSeu5UZPxVU gFO62scQQCHv9tTLDxGIFj2uxon9FuC9QGlHz00+USOzRmbv6Z9lV5wNA/exHY1Rj9n0zv5yGTK31 QLIZzzq/VUf0jg==; 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 1p4G5T-00044b-Iq; Sun, 11 Dec 2022 01:45:37 -0500 Date: Sun, 11 Dec 2022 08:45:21 +0200 Message-Id: <83r0x6v3pa.fsf@gnu.org> From: Eli Zaretskii To: Alan Mackenzie In-Reply-To: (message from Alan Mackenzie on Sat, 10 Dec 2022 21:34:20 +0000) Subject: Re: bug#59738: c-ts-mode is slow with large buffers. References: <87E351E0-2EE2-434A-9609-86506D2F263D@gmail.com> <83edtb3z6t.fsf@gnu.org> <3A956C88-F81D-4DED-B020-178291D405D9@gmail.com> <83fsdp1vke.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 59738 Cc: casouri@gmail.com, 59738@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 (---) > Date: Sat, 10 Dec 2022 21:34:20 +0000 > Cc: Yuan Fu , 59738@debbugs.gnu.org > From: Alan Mackenzie > > > Thanks, now c-ts-mode is twice as fast as c-mode with that file. > > > Great job! > > The bug which was causing it to be very slow is fixed, so I agree, > excellent job! > > But I've measured it as being 62% faster (not twice as fast) as CC Mode. > A "normal" C file (xdisp.c) is around 160% faster, i.e. a little over 2½ > times as fast. You do all your measurements in an optimized build of Emacs. I did mine in an unoptimized build, something that I need to use all the time, even though my production sessions run optimized builds. In an unoptimized build CC Mode is extremely slow. For example, just visiting dce_12_0_sh_mask.h file takes a whopping 67 sec, and M-> immediately after the file is displayed takes another 25 sec. With c-ts-mode, these numbers are, respectively, 1.8 sec and 2 sec. IOW, scrolling through the whole humongous file measures some aspect of the redisplay (actually, JIT font-lock) performance, but that is not all that matters when one has to edit a file; the above two situations are also important use cases. However, talking only about speed is looking at this from an incorrect aspect, see below. > But given how slow CC Mode was held to be, is a factor 2.6 speed-up > really all that we were expecting from c-ts-mode? This is the sort of > speed-up one would get by replacing a 5 year old machine with a new one, > or using an optimised build in place of a debug build. Speed is not the main reason why we want to have font-lock and indentation based on a parser library. The main reason is _correctness_ and _accuracy_. A regexp-based fontification and indentation engines will never be able to match parser-based engines, because they doesn't really understand the source code. Even when aided by syntax-ppss, they only catch some part of the syntax, and none of the semantics. The hope is that using a parser will allow us to provide much more accurate implementations. Whether and how much this hope will materialize is yet to be seen, but looking just at the speedup is definitely not TRT for assessing the success of this development in Emacs. From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 11 02:25:32 2022 Received: (at 59738) by debbugs.gnu.org; 11 Dec 2022 07:25:32 +0000 Received: from localhost ([127.0.0.1]:46158 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4GiK-0006E3-78 for submit@debbugs.gnu.org; Sun, 11 Dec 2022 02:25:32 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42902) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4GiG-0006Dx-4M for 59738@debbugs.gnu.org; Sun, 11 Dec 2022 02:25:31 -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 1p4Gi9-0000D3-TO; Sun, 11 Dec 2022 02:25:22 -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=ZpyGhQFc8yMk/tPhIBbPEkADBYu4g2OJTpzdER7wDUY=; b=RgkgQhdW/tSi jbeFy1OyHtDvr6/7s3AjfLE5Uzpe17SUYTlRIHcOLAi4szx7IYqoM0hOIxzdNWGWgWvr1Zf5vxZSb sSoX2zEEnNr7odFF8b6zi39bALAQOgretyFQUY98nvLTIJh8L6GJiaRIc5ACMO7bZI4dwDwHgXPlz SF1CJPLXViFe5pt1RNkPKm2uPL4UYxtq4jI4V/4dbo1t3DRLmdsaXsJ/eMryQAfgbpS/S2a+AZOPL r22W5rW53tmfN8BbORNZo3DA5xP59OH8pTBVrpjHll+1o/P55NiBIzEq0HW5rsGlkicVE/tRFktWo IbGC4h+X1m+leAO1+JZqWQ==; 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 1p4Ghx-0004sj-Gm; Sun, 11 Dec 2022 02:25:20 -0500 Date: Sun, 11 Dec 2022 09:25:04 +0200 Message-Id: <83lenev1v3.fsf@gnu.org> From: Eli Zaretskii To: Yuan Fu In-Reply-To: (message from Yuan Fu on Sat, 10 Dec 2022 15:14:27 -0800) Subject: Re: bug#59738: c-ts-mode is slow with large buffers. References: <87E351E0-2EE2-434A-9609-86506D2F263D@gmail.com> <83edtb3z6t.fsf@gnu.org> <3A956C88-F81D-4DED-B020-178291D405D9@gmail.com> <83fsdp1vke.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 59738 Cc: acm@muc.de, 59738@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: Sat, 10 Dec 2022 15:14:27 -0800 > Cc: Eli Zaretskii , > 59738@debbugs.gnu.org > > Querying time (thus fontification time) increases as the buffer size increases, even if we limit the range of the query to a fixed region (which is what we do in tree-sitter font-lock). This is unlike c-mode, where fontifying a region takes the same amount of time regardless of the buffer size. The last sentence is inaccurate: sometimes CC Mode must look far beyond the fixed region which jit-lock.el asks it to fontify. AFAIR, that is mainly to figure out the syntactical context of the portion of the buffer that needs to be fontified. From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 11 08:22:40 2022 Received: (at 59738) by debbugs.gnu.org; 11 Dec 2022 13:22:41 +0000 Received: from localhost ([127.0.0.1]:46416 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4MHw-0004O3-DJ for submit@debbugs.gnu.org; Sun, 11 Dec 2022 08:22:40 -0500 Received: from mx3.muc.de ([193.149.48.5]:55745) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4MHu-0004Nx-DO for 59738@debbugs.gnu.org; Sun, 11 Dec 2022 08:22:39 -0500 Received: (qmail 46290 invoked by uid 3782); 11 Dec 2022 14:22:32 +0100 Received: from acm.muc.de (p4fe15c11.dip0.t-ipconnect.de [79.225.92.17]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Sun, 11 Dec 2022 14:22:32 +0100 Received: (qmail 6324 invoked by uid 1000); 11 Dec 2022 13:22:31 -0000 Date: Sun, 11 Dec 2022 13:22:31 +0000 To: Yuan Fu Subject: Re: bug#59738: c-ts-mode is slow with large buffers. Message-ID: References: <87E351E0-2EE2-434A-9609-86506D2F263D@gmail.com> <83edtb3z6t.fsf@gnu.org> <3A956C88-F81D-4DED-B020-178291D405D9@gmail.com> <83fsdp1vke.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Submission-Agent: TMDA/1.3.x (Ph3nix) From: Alan Mackenzie X-Primary-Address: acm@muc.de X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 59738 Cc: Eli Zaretskii , 59738@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 (-) Hello, Yuan. On Sat, Dec 10, 2022 at 15:14:27 -0800, Yuan Fu wrote: > > On Dec 10, 2022, at 1:34 PM, Alan Mackenzie wrote: [ .... ] > > The bug which was causing it to be very slow is fixed, so I agree, > > excellent job! > > But I've measured it as being 62% faster (not twice as fast) as CC > > Mode. A "normal" C file (xdisp.c) is around 160% faster, i.e. a > > little over 2½ times as fast. These timings are indeed significantly > > faster. > > But given how slow CC Mode was held to be, is a factor 2.6 speed-up > > really all that we were expecting from c-ts-mode? This is the sort > > of speed-up one would get by replacing a 5 year old machine with a > > new one, or using an optimised build in place of a debug build. > > Was I perhaps a little unrealistic in expecting an order of magnitude > > speed-up? Is there still scope for optimisation in c-ts-mode? > AFAIK not too much room for optimization. Querying the patterns takes > like 99% of the time during fontification. Querying time (thus > fontification time) increases as the buffer size increases, even if we > limit the range of the query to a fixed region (which is what we do in > tree-sitter font-lock). This seems similar to c-mode, where a syntactically coherent region is determined each time fontification is done. > This is unlike c-mode, where fontifying a region takes the same amount > of time regardless of the buffer size. OK, thanks for the explanation. > Some benchmarks I did: > In xdisp.c > Time Task > 0.0008 A single query for comments > 0.008 All queries in c-ts-mode > 0.00815 treesit-font-lock-fontify-region (1500 char) > 0.0214 font-lock-fontify-region in c-mode (1500 char) > 12.048 time-scroll in c-ts-mode > 21.206 time-scroll in c-mode > 5.539 time-scroll in fundamental-mode > In treesit.c > Time Task > 0.00336 All queries in c-ts-mode > 0.00391 treesit-font-lock-fontify-region (1500 char) > 0.0281 font-lock-fontify-region in c-mode (1500 char) > 1.958 time-scroll in c-ts-mode > 1.969 time-scroll in c-mode > 0.535 time-scroll in fundamental-mode Those look the same as timings I've done. > Though I’ll note that tree-sitter would provide other benefits. I don’t > know how much time does c-mode spend on analyzing the buffer content > when user edits it, .... It's quite a lot. Occasionally, it's enough to make the response appear a little sluggish. This analysis, time-wise, is less critical than the time taken for font locking, though. > .... but I imagine tree-sitter to be faster in that regard, too. That > should help the perceived performance. Also (unrelated to performance) > tree-sitter makes it vastly easier to write (and maintain) a major > mode. Yes indeed! We have the advantage that a core part of the functionality is taken care of by an external party. But we also have the disadvantage that a core part of the functionality is taken care of by an external party. > Yuan -- Alan Mackenzie (Nuremberg, Germany). From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 11 11:39:01 2022 Received: (at 59738) by debbugs.gnu.org; 11 Dec 2022 16:39:01 +0000 Received: from localhost ([127.0.0.1]:46976 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4PLx-0006Nc-D3 for submit@debbugs.gnu.org; Sun, 11 Dec 2022 11:39:01 -0500 Received: from mail-wr1-f43.google.com ([209.85.221.43]:34474) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4PLw-0006NW-Jj for 59738@debbugs.gnu.org; Sun, 11 Dec 2022 11:39:00 -0500 Received: by mail-wr1-f43.google.com with SMTP id o5so9727404wrm.1 for <59738@debbugs.gnu.org>; Sun, 11 Dec 2022 08:39:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=LbMEmTGZ3pH4H9nedb6IIk865Fah7LXdMrOaCSwOTB4=; b=Y/KhcZQ8IjHLCBeR8TDYoJxroK2FEkrAE1qdfRRaFOzR/BHhd5/CwAKgX69kAZ/0ty nrywCTfNUy3bIb0y9+fVVvNj3pFh6IqWePa6oLMdLuGi4GLd8A43Gql38eLIc5h8npfi 388ntAFCUmmB4x3x8zmbYZfn1YP6tCaq2SQh+LtvEIAGsPfcGTFbcJzGhj/xx3U2ZKjU Rt2OquJNUPCrCVbyVPH4y9+5jDaGOXwpzFiner97c6wG/94leZ77ooyJajWGh9BYsm2D bVYrjxbE8SLLu0Om6ASDBfYRjPObgJ77F5+q7ax1j96kMsE1n7dbwH8jd3HmzGswpQsV nPQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=LbMEmTGZ3pH4H9nedb6IIk865Fah7LXdMrOaCSwOTB4=; b=nq1jTGc1e1ZyySjP7nimnBNvgr59CJgTIpy1D7p8HgbxNJxj6wasMzAoRoo9lEX+SY /KIXcc3yAfJtJLYIbdHxlMBnzU9T2FqVdRUvdQ+c8k0/O/sdJ44fMeLL7K/5x328ZeM5 pOJH/w04DcTEDqfxtGfe4fBCORaAE84LJ6Dobq6i4Rexq/lxCf/LyQ/2vy8vBCtPBQZn NEd3wk6ldEhlrUG1UMHMK7QS0C5SxvJlK7Du/eI2ftQyQ+kj6FpKpjrNlLs4iw0RkmjC gK+5DZE1yWr8sHMwobjbkEqStCnLLYBP9zp2ZO/8XJhnayQbP9hPAcD6IK6DU9sDWp9Y Vikg== X-Gm-Message-State: ANoB5pmk8JiSr0YRbByH0HtlQcUq0/BS0Wuqj6zFaHPNN7MSnwDZ4OZx OfEbTsEFvre6/yr6rfuRdsA= X-Google-Smtp-Source: AA0mqf5/KYjkDT0pBhbU7NAyNaW4yiDGxoE8Qa4MAaFSwvsE4bvcVXEQR8laYFzRy+XhKjMCUzCG9w== X-Received: by 2002:a5d:494c:0:b0:242:7a19:b53e with SMTP id r12-20020a5d494c000000b002427a19b53emr7572367wrs.27.1670776734773; Sun, 11 Dec 2022 08:38:54 -0800 (PST) Received: from [192.168.0.2] ([46.251.119.176]) by smtp.googlemail.com with ESMTPSA id d3-20020adfe883000000b002238ea5750csm7819578wrm.72.2022.12.11.08.38.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 11 Dec 2022 08:38:54 -0800 (PST) Message-ID: Date: Sun, 11 Dec 2022 18:38:52 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: bug#59738: c-ts-mode is slow with large buffers. Content-Language: en-US To: Alan Mackenzie , Yuan Fu References: <87E351E0-2EE2-434A-9609-86506D2F263D@gmail.com> <83edtb3z6t.fsf@gnu.org> <3A956C88-F81D-4DED-B020-178291D405D9@gmail.com> <83fsdp1vke.fsf@gnu.org> From: Dmitry Gutov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 59738 Cc: Eli Zaretskii , 59738@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: -0.8 (/) On 11/12/2022 15:22, Alan Mackenzie wrote: >> Though I’ll note that tree-sitter would provide other benefits. I don’t >> know how much time does c-mode spend on analyzing the buffer content >> when user edits it, .... > It's quite a lot. Occasionally, it's enough to make the response appear > a little sluggish. This analysis, time-wise, is less critical than the > time taken for font locking, though. If we test a different scenario (font-locking just one screen-ful, perhaps repeatedly, while the user is typing), which of the steps can take more time in a large buffer? From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 11 12:13:58 2022 Received: (at 59738) by debbugs.gnu.org; 11 Dec 2022 17:13:58 +0000 Received: from localhost ([127.0.0.1]:47133 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4Ptm-0006lz-52 for submit@debbugs.gnu.org; Sun, 11 Dec 2022 12:13:58 -0500 Received: from mx3.muc.de ([193.149.48.5]:62487) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4Ptk-0006lq-8S for 59738@debbugs.gnu.org; Sun, 11 Dec 2022 12:13:57 -0500 Received: (qmail 52733 invoked by uid 3782); 11 Dec 2022 18:13:49 +0100 Received: from acm.muc.de (p4fe15c11.dip0.t-ipconnect.de [79.225.92.17]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Sun, 11 Dec 2022 18:13:49 +0100 Received: (qmail 19635 invoked by uid 1000); 11 Dec 2022 17:13:49 -0000 Date: Sun, 11 Dec 2022 17:13:49 +0000 To: Eli Zaretskii Subject: Re: bug#59738: c-ts-mode is slow with large buffers. Message-ID: References: <87E351E0-2EE2-434A-9609-86506D2F263D@gmail.com> <83edtb3z6t.fsf@gnu.org> <3A956C88-F81D-4DED-B020-178291D405D9@gmail.com> <83fsdp1vke.fsf@gnu.org> <83r0x6v3pa.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <83r0x6v3pa.fsf@gnu.org> X-Submission-Agent: TMDA/1.3.x (Ph3nix) From: Alan Mackenzie X-Primary-Address: acm@muc.de X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 59738 Cc: casouri@gmail.com, 59738@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 (-) Hello, Eli. On Sun, Dec 11, 2022 at 08:45:21 +0200, Eli Zaretskii wrote: > > Date: Sat, 10 Dec 2022 21:34:20 +0000 > > Cc: Yuan Fu , 59738@debbugs.gnu.org > > From: Alan Mackenzie > > > Thanks, now c-ts-mode is twice as fast as c-mode with that file. > > > Great job! > > The bug which was causing it to be very slow is fixed, so I agree, > > excellent job! > > But I've measured it as being 62% faster (not twice as fast) as CC Mode. > > A "normal" C file (xdisp.c) is around 160% faster, i.e. a little over 2½ > > times as fast. > You do all your measurements in an optimized build of Emacs. I did > mine in an unoptimized build, something that I need to use all the > time, even though my production sessions run optimized builds. In an > unoptimized build CC Mode is extremely slow. I've built an emacs-29 with CFLAGS='-O0 -g3', --with-native-compilation, and --with-enable-checking=all. Just about anything is slow in such a build. For example, converting the org mode manual from .org to .texi took ~15 minutes in the bootstrap. I think this configuration is close to your unoptimized build. Do you really need to run in such a build all the time? We're talking about an order of magnitude slow-down from an optimized build. Surely only a tiny portion of bugs actually need this level of pessimisation. Even a "normal" debugging build (without the --with-enable-checking) is going to be a factor of ~3 faster, and surely would be suitable for nearly all debugging. > For example, just visiting dce_12_0_sh_mask.h file takes a whopping 67 > sec, and M-> immediately after the file is displayed takes another 25 > sec. With c-ts-mode, these numbers are, respectively, 1.8 sec and 2 > sec. Yes. I saw pretty much the same in my pessimised build. In a normal build, these operation are ~10 times as fast. Also we're all agreed dce_12_0_sh_mask.h is an unusual file, both in its content and its size. > IOW, scrolling through the whole humongous file measures some aspect > of the redisplay (actually, JIT font-lock) performance, but that is > not all that matters when one has to edit a file; the above two > situations are also important use cases. > However, talking only about speed is looking at this from an incorrect > aspect, see below. If I remember rightly, speed was one of the main reasons given for introducing tree-sitter, though I may well be wrong here. > > But given how slow CC Mode was held to be, is a factor 2.6 speed-up > > really all that we were expecting from c-ts-mode? This is the sort of > > speed-up one would get by replacing a 5 year old machine with a new one, > > or using an optimised build in place of a debug build. > Speed is not the main reason why we want to have font-lock and > indentation based on a parser library. The main reason is > _correctness_ and _accuracy_. A regexp-based fontification and > indentation engines will never be able to match parser-based engines, > because they doesn't really understand the source code. Given the current CC Mode, any increase in correctness is going to be marginal, if apparent at all. > Even when aided by syntax-ppss, they only catch some part of the > syntax, and none of the semantics. c-forward-decl-or-cast-1 and friends do analyze semantics; the level of analysis is part of the reason why CC Mode's fontification isn't fast. > The hope is that using a parser will allow us to provide much more > accurate implementations. Whether and how much this hope will > materialize is yet to be seen, but looking just at the speedup is > definitely not TRT for assessing the success of this development in > Emacs. I see the advantage of the new tree sitter modes more in a reduction of maintenance burden (though few other people will see this with respect to CC Mode ;-). -- Alan Mackenzie (Nuremberg, Germany). From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 11 12:38:34 2022 Received: (at 59738) by debbugs.gnu.org; 11 Dec 2022 17:38:34 +0000 Received: from localhost ([127.0.0.1]:47269 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4QHZ-0000wJ-Ig for submit@debbugs.gnu.org; Sun, 11 Dec 2022 12:38:34 -0500 Received: from eggs.gnu.org ([209.51.188.92]:34516) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4QHX-0000wD-Cq for 59738@debbugs.gnu.org; Sun, 11 Dec 2022 12:38:31 -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 1p4QHR-0003TA-Iq; Sun, 11 Dec 2022 12:38:25 -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=HCSC/vXt3mOA11OsKCFdD44P02MSkX7SbxC1ivMrWik=; b=Pvnib9T9Lrz+ akBrHlMZqvA3+teRPQ+Zn5V0TQM9e2mrWuJc0Xyk3s1tnu0N1kSBGH5E+KVvcYgWwzu5brx4gngbH M9J8Nky7jJvnXsqZi66VW3sLriLjlMgy2uaQEGgr8sm8T0gJlDCP+zODuwf7QShWfYKPnOJTV4QnO iLGurkAGbKR22YWugKDevMqtFzk65I+yVYKq9hPKJaI+qN7J8uf4Ppwwa/H5/3ZH1cXAAsG4Ngy7Y m1RYJ2uDDsHGx6ZXZ9BJJ67F7rH2VDibkCaHAR4+2tRgyDXja8ldsGkrZEzmIPkLv0UqiJl+CN39z gkE49baaXr7zrZdMv2PAhA==; 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 1p4QHR-00058H-2l; Sun, 11 Dec 2022 12:38:25 -0500 Date: Sun, 11 Dec 2022 19:38:24 +0200 Message-Id: <83edt5u9gv.fsf@gnu.org> From: Eli Zaretskii To: Alan Mackenzie In-Reply-To: (message from Alan Mackenzie on Sun, 11 Dec 2022 17:13:49 +0000) Subject: Re: bug#59738: c-ts-mode is slow with large buffers. References: <87E351E0-2EE2-434A-9609-86506D2F263D@gmail.com> <83edtb3z6t.fsf@gnu.org> <3A956C88-F81D-4DED-B020-178291D405D9@gmail.com> <83fsdp1vke.fsf@gnu.org> <83r0x6v3pa.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 59738 Cc: casouri@gmail.com, 59738@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 (---) > Date: Sun, 11 Dec 2022 17:13:49 +0000 > Cc: casouri@gmail.com, 59738@debbugs.gnu.org > From: Alan Mackenzie > > > You do all your measurements in an optimized build of Emacs. I did > > mine in an unoptimized build, something that I need to use all the > > time, even though my production sessions run optimized builds. In an > > unoptimized build CC Mode is extremely slow. > > I've built an emacs-29 with CFLAGS='-O0 -g3', --with-native-compilation, > and --with-enable-checking=all. Just about anything is slow in such a > build. For example, converting the org mode manual from .org to .texi > took ~15 minutes in the bootstrap. The time it takes to build the Org manual doesn't bother me, since it is rarely redone, and is not part of my maintenance job. Also, in my builds I get to producing the Org manual when the Lisp files are already byte-compiled, so it takes much less than 15 min. And finally, I almost never bootstrap. > Do you really need to run in such a build all the time? It is impossible to debug Emacs efficiently on the C level using the optimized build. So yes, I'm using unoptimized builds quite a lot. > > For example, just visiting dce_12_0_sh_mask.h file takes a whopping 67 > > sec, and M-> immediately after the file is displayed takes another 25 > > sec. With c-ts-mode, these numbers are, respectively, 1.8 sec and 2 > > sec. > > Yes. I saw pretty much the same in my pessimised build. In a normal > build, these operation are ~10 times as fast. Also we're all agreed > dce_12_0_sh_mask.h is an unusual file, both in its content and its size. If it is an unusual file, why did you report the slow scrolling through it as a bug? We need to be consistent: either that file is legitimate and Emacs should work reasonably fast with it, or it isn't. > If I remember rightly, speed was one of the main reasons given for > introducing tree-sitter, though I may well be wrong here. Not from my POV, no. It's an important factor, but not the main reason. > > Speed is not the main reason why we want to have font-lock and > > indentation based on a parser library. The main reason is > > _correctness_ and _accuracy_. A regexp-based fontification and > > indentation engines will never be able to match parser-based engines, > > because they doesn't really understand the source code. > > Given the current CC Mode, any increase in correctness is going to be > marginal, if apparent at all. I disagree. Both C and C++ are still evolving, and their syntax and semantics don't become simpler. People post bug reports against CC Mode which involve some tricky syntactical constructs all the time. Our current font-lock is just a huge collection of ad-hocery, and there's a limit to what we can do with ad-hoc code. Personally, I think this is an evolutionary dead end. It was acceptable years ago, when the incremental parsing technology was not developed enough and/or not accessible easily enough. > > Even when aided by syntax-ppss, they only catch some part of the > > syntax, and none of the semantics. > > c-forward-decl-or-cast-1 and friends do analyze semantics A small part of it. > > The hope is that using a parser will allow us to provide much more > > accurate implementations. Whether and how much this hope will > > materialize is yet to be seen, but looking just at the speedup is > > definitely not TRT for assessing the success of this development in > > Emacs. > > I see the advantage of the new tree sitter modes more in a reduction of > maintenance burden (though few other people will see this with respect to > CC Mode ;-). That too. From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 11 13:39:56 2022 Received: (at 59738) by debbugs.gnu.org; 11 Dec 2022 18:39:56 +0000 Received: from localhost ([127.0.0.1]:47612 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4REx-0001gf-W1 for submit@debbugs.gnu.org; Sun, 11 Dec 2022 13:39:56 -0500 Received: from mx3.muc.de ([193.149.48.5]:65059) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4REv-0001gY-Om for 59738@debbugs.gnu.org; Sun, 11 Dec 2022 13:39:54 -0500 Received: (qmail 47563 invoked by uid 3782); 11 Dec 2022 19:39:47 +0100 Received: from acm.muc.de (p4fe15c11.dip0.t-ipconnect.de [79.225.92.17]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Sun, 11 Dec 2022 19:39:46 +0100 Received: (qmail 20048 invoked by uid 1000); 11 Dec 2022 18:39:46 -0000 Date: Sun, 11 Dec 2022 18:39:46 +0000 To: Eli Zaretskii Subject: Re: bug#59738: c-ts-mode is slow with large buffers. Message-ID: References: <87E351E0-2EE2-434A-9609-86506D2F263D@gmail.com> <83edtb3z6t.fsf@gnu.org> <3A956C88-F81D-4DED-B020-178291D405D9@gmail.com> <83fsdp1vke.fsf@gnu.org> <83r0x6v3pa.fsf@gnu.org> <83edt5u9gv.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <83edt5u9gv.fsf@gnu.org> X-Submission-Agent: TMDA/1.3.x (Ph3nix) From: Alan Mackenzie X-Primary-Address: acm@muc.de X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 59738 Cc: acm@muc.de, casouri@gmail.com, 59738@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 (-) Hello, Eli. On Sun, Dec 11, 2022 at 19:38:24 +0200, Eli Zaretskii wrote: > > Date: Sun, 11 Dec 2022 17:13:49 +0000 > > Cc: casouri@gmail.com, 59738@debbugs.gnu.org > > From: Alan Mackenzie > > > You do all your measurements in an optimized build of Emacs. I did > > > mine in an unoptimized build, something that I need to use all the > > > time, even though my production sessions run optimized builds. In an > > > unoptimized build CC Mode is extremely slow. > > I've built an emacs-29 with CFLAGS='-O0 -g3', --with-native-compilation, > > and --with-enable-checking=all. Just about anything is slow in such a > > build. For example, converting the org mode manual from .org to .texi > > took ~15 minutes in the bootstrap. > The time it takes to build the Org manual doesn't bother me, since it > is rarely redone, and is not part of my maintenance job. Also, in my > builds I get to producing the Org manual when the Lisp files are > already byte-compiled, so it takes much less than 15 min. And > finally, I almost never bootstrap. I was advancing that figure merely as a measure of how slow such a build is. > > Do you really need to run in such a build all the time? > It is impossible to debug Emacs efficiently on the C level using the > optimized build. So yes, I'm using unoptimized builds quite a lot. I use an optimised build for running and debugging at the Lisp level. Occasionally I need C debugging, and so run in an "ordinary" debugging build (3 times as slow) on these occasions. I think I've only once or twice needed a super-slow build (with --with-enable-checking=all) for debugging. My question was to enquire as to whether you actually really need the 10x as slow build most of the time, or whether the normal 3x as slow (normal debugging) build or even an optimised build would suffice most of the time. > > > For example, just visiting dce_12_0_sh_mask.h file takes a whopping > > > 67 sec, and M-> immediately after the file is displayed takes > > > another 25 sec. With c-ts-mode, these numbers are, respectively, > > > 1.8 sec and 2 sec. > > Yes. I saw pretty much the same in my pessimised build. In a normal > > build, these operation are ~10 times as fast. Also we're all agreed > > dce_12_0_sh_mask.h is an unusual file, both in its content and its > > size. > If it is an unusual file, why did you report the slow scrolling through > it as a bug? We need to be consistent: either that file is legitimate > and Emacs should work reasonably fast with it, or it isn't. It is both an unusual file (so unusual behaviour might be expected in Emacs with it) and fully legitimate (so Emacs should handle it with times for scrolling operations measured in seconds, not minutes). Up until Yuan fixed c-ts-mode, its scrolling was indeed measured in minutes. The bug was legitimate, and the fix is good. [ .... ] > > > Speed is not the main reason why we want to have font-lock and > > > indentation based on a parser library. The main reason is > > > _correctness_ and _accuracy_. A regexp-based fontification and > > > indentation engines will never be able to match parser-based > > > engines, because they doesn't really understand the source code. > > Given the current CC Mode, any increase in correctness is going to be > > marginal, if apparent at all. > I disagree. Both C and C++ are still evolving, and their syntax and > semantics don't become simpler. People post bug reports against CC > Mode which involve some tricky syntactical constructs all the time. Yes. It remains to be seen if the tree-sitter grammars handle these unusual constructs effortlessly. I somehow suspect it won't be as simple as all that. Yuan has already raised a bug in the C grammar where it doesn't handle packet-rrc.c correctly. > Our current font-lock is just a huge collection of ad-hocery, and > there's a limit to what we can do with ad-hoc code. Personally, I > think this is an evolutionary dead end. It was acceptable years ago, > when the incremental parsing technology was not developed enough > and/or not accessible easily enough. We're in violent agreement, here. ;-) [ .... ] -- Alan Mackenzie (Nuremberg, Germany). From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 11 14:14:14 2022 Received: (at 59738) by debbugs.gnu.org; 11 Dec 2022 19:14:14 +0000 Received: from localhost ([127.0.0.1]:47756 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4RmA-00021L-1a for submit@debbugs.gnu.org; Sun, 11 Dec 2022 14:14:14 -0500 Received: from eggs.gnu.org ([209.51.188.92]:36358) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4Rm7-00021C-LA for 59738@debbugs.gnu.org; Sun, 11 Dec 2022 14:14:12 -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 1p4Rm1-0002PG-J4; Sun, 11 Dec 2022 14:14:05 -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=VgIb2eiq6nPUbl5s8KIauKxIgTlzSxRVuJJ5narmR5M=; b=TFdEBxUsNvEh t+N7Clyd28r0HZAw/OmyUmxZmout9xHUcwtA2bSU9/zF/+zJa7KmCDrJpZZerIYv3XvW7RrujrkY3 UjK1SG80Jff/wuWn9wBCCMvScH/BElIoVrqHQPFsGMB6Wj/S0TGD6vilPCC1UYxnrz2L3qR4jXSY3 4aupXulCfVOTC4YWdtWtGzAjNTpR1NMuoWHbXf5As9X0pS46ZDP2vBPJsluB5duWG57n9bFTbFxtE Xv7jruGeUY6V4wuf6ebp+amYv+ztnzE76WJ7X4Ldl7IJs1i5nR9pwJRZqRtVSQTujh9/r6J39i5xn l1DJVzE21rCZ/DMUQhweFQ==; 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 1p4Rm0-0002h7-Ro; Sun, 11 Dec 2022 14:14:05 -0500 Date: Sun, 11 Dec 2022 21:14:03 +0200 Message-Id: <831qp5u51g.fsf@gnu.org> From: Eli Zaretskii To: Alan Mackenzie In-Reply-To: (message from Alan Mackenzie on Sun, 11 Dec 2022 18:39:46 +0000) Subject: Re: bug#59738: c-ts-mode is slow with large buffers. References: <87E351E0-2EE2-434A-9609-86506D2F263D@gmail.com> <83edtb3z6t.fsf@gnu.org> <3A956C88-F81D-4DED-B020-178291D405D9@gmail.com> <83fsdp1vke.fsf@gnu.org> <83r0x6v3pa.fsf@gnu.org> <83edt5u9gv.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 59738 Cc: casouri@gmail.com, 59738@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 (---) > Date: Sun, 11 Dec 2022 18:39:46 +0000 > Cc: casouri@gmail.com, 59738@debbugs.gnu.org, acm@muc.de > From: Alan Mackenzie > > > It is impossible to debug Emacs efficiently on the C level using the > > optimized build. So yes, I'm using unoptimized builds quite a lot. > > I use an optimised build for running and debugging at the Lisp level. > Occasionally I need C debugging, and so run in an "ordinary" debugging > build (3 times as slow) on these occasions. I think I've only once or > twice needed a super-slow build (with --with-enable-checking=all) for > debugging. > > My question was to enquire as to whether you actually really need the 10x > as slow build most of the time, or whether the normal 3x as slow (normal > debugging) build or even an optimised build would suffice most of the > time. I gave you my answer, based on many hours of debugging hard problem and on a lot of gray hair. Debugging optimized code is unreliable, at least with GCC and GDB. There are tricky bugs whose debugging requires setting up complex traps and sophisticated breakpoint conditions. It takes time to find these tricks, and even a single variable which is "optimized out" or a call to a function that cannot be stepped into due to inlining and moving code around can ruin a long and frustrating debugging session. I cannot afford wasting my time that way. That the DWARF data generated by GCC is either not expressive enough to tell the whole story, or GDB is not smart enough to interpret it, is IMNSHO the greatest disaster that happened to the GNU Project. Why The Powers That Be don't consider it a grave problem, I cannot imagine. I'm old enough to remember that with GCC 2.7.2 I used to debug optimized programs without any problems -- and it was a welcome feature that made GCC stand out compared to the other compilers back then, with which you simply couldn't debug optimized code. > > I disagree. Both C and C++ are still evolving, and their syntax and > > semantics don't become simpler. People post bug reports against CC > > Mode which involve some tricky syntactical constructs all the time. > > Yes. It remains to be seen if the tree-sitter grammars handle these > unusual constructs effortlessly. I somehow suspect it won't be as simple > as all that. Yuan has already raised a bug in the C grammar where it > doesn't handle packet-rrc.c correctly. If this proves to be a serious problem, eventually someone on our team will start making changes in the grammar files. It isn't rocket science, after all, given that the parsing itself is done elsewhere. From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 12 20:20:27 2022 Received: (at 59738) by debbugs.gnu.org; 13 Dec 2022 01:20:27 +0000 Received: from localhost ([127.0.0.1]:56850 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4ty7-0006Aq-2R for submit@debbugs.gnu.org; Mon, 12 Dec 2022 20:20:27 -0500 Received: from mail-oi1-f179.google.com ([209.85.167.179]:45795) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4ty4-0006Ad-9A for 59738@debbugs.gnu.org; Mon, 12 Dec 2022 20:20:25 -0500 Received: by mail-oi1-f179.google.com with SMTP id t62so12927449oib.12 for <59738@debbugs.gnu.org>; Mon, 12 Dec 2022 17:20:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:from:to:cc:subject:date:message-id:reply-to; bh=wl6nD5SqOWaY3XPKIeSKm+ijzx/oRd/5nJ1sIPurZhU=; b=QgudflETsYXuwTXQxl/pklhR0HoAkx/ncjlTNA52RkjLCJa+0jdqp0kZ0fNio+YjhW YOY5QopSMNDc8Sx5eke2l1GcXpPK8SJKiN3YHgKJqgzbhOkxuiqnVXRiS9kjuV0frrqC 7YW+SLEfKizikFIPReFdBEWDx4JT0XENZ6pTpBa4sni8qcZSoud7QV/oJ3dzXCLykf/E jnI26RNHmyVXiu8nsBfxDopIkU3RVjefEV2/Q+aHqToNsoKpzVDgTJirS8F5I4fE61MB mGLcvw6n6lOVMqO3rjP3+noBXO4wrJxNNhuIFnaQJ8hmidGqOUwh6oyEpYRjYgBp+r/S 0AEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=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=wl6nD5SqOWaY3XPKIeSKm+ijzx/oRd/5nJ1sIPurZhU=; b=gXRjSRPuGp960ZkLKVF4PrZ4ga9e3cybAT0knqi59eOf/t3AkBUSW6kfvrjgd5gVQw BfM6IcmsevBNZ/vARhJpN9aXFNxRMCldeC+yWdtYJfYy4K+hym8g52Z8fM13gCiORVDp Bcdn5+nuzIuaJPZKREIRO6J0mmbTfeGR7PEusIVcsxklm5nZ6ErGqXxArENTtHP2RWWg mRcnlsFaVZG3P+124WRcqkc4RL5N/ARqsRc6Wg3S3jmbT1CNiicqoaj97Wo5DcyVjvrO 6uwDtS6EjVwUwAfofJBrTkR3sqx7kK7x0tCnudgPJECVsin22OrXStgQ/HeQml1clpxQ 8kkA== X-Gm-Message-State: ANoB5pnIOMlD9998acp/PN4R4+h0iO4Ppwo+ItH3HnMvYygCKDt3X6ud dTEurAtllqMctHE959BmACEm3JNQ2Mn97v1Kee6l+UcV X-Google-Smtp-Source: AA0mqf7WliWkoGKBDk2KechNav5W/Z+1aOW4X0xWEnif9foDmJUAJZm3TfbM86AosYsCyBaqewQQeMmz9wKinToS0uU= X-Received: by 2002:a05:6808:493:b0:35e:ac60:2452 with SMTP id z19-20020a056808049300b0035eac602452mr8351oid.92.1670894418951; Mon, 12 Dec 2022 17:20:18 -0800 (PST) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Mon, 12 Dec 2022 17:20:18 -0800 From: Stefan Kangas In-Reply-To: (Alan Mackenzie's message of "Sat, 10 Dec 2022 21:34:20 +0000") References: <87E351E0-2EE2-434A-9609-86506D2F263D@gmail.com> <83edtb3z6t.fsf@gnu.org> <3A956C88-F81D-4DED-B020-178291D405D9@gmail.com> <83fsdp1vke.fsf@gnu.org> X-Hashcash: 1:20:221213:casouri@gmail.com::Mr9o791NJJ8r+wWC:3ZAD MIME-Version: 1.0 Date: Mon, 12 Dec 2022 17:20:18 -0800 Message-ID: Subject: Re: bug#59738: c-ts-mode is slow with large buffers. To: Alan Mackenzie Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 59738 Cc: Eli Zaretskii , 59738@debbugs.gnu.org, Yuan Fu 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 (-) Alan Mackenzie writes: > The bug which was causing it to be very slow is fixed, so I agree, > excellent job! Could this bug therefore be closed, or is there more to do here? From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 07 18:08:36 2023 Received: (at 59738-done) by debbugs.gnu.org; 7 Jan 2023 23:08:36 +0000 Received: from localhost ([127.0.0.1]:59187 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pEIIl-0007HD-Se for submit@debbugs.gnu.org; Sat, 07 Jan 2023 18:08:36 -0500 Received: from mail-pj1-f44.google.com ([209.85.216.44]:51969) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pEIIk-0007H1-DA for 59738-done@debbugs.gnu.org; Sat, 07 Jan 2023 18:08:35 -0500 Received: by mail-pj1-f44.google.com with SMTP id n12so5115520pjp.1 for <59738-done@debbugs.gnu.org>; Sat, 07 Jan 2023 15:08:34 -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=7xHku0xjGtNlG60KJF9M3I9RZ6zajXl+TXdSFtMEBc0=; b=mUa9ioZy2qCezQIa9sqL0Xzo1krjtpzKkp2kvYKthhPMmac3pVQ/FEHs8bcx8U44HO awa/zGZ5SI6g+MIkGWu1mbLPcpqJ+0cvaIoyfHs0ZCvKZlLcOPPAG/0JYq9lHcMkDDRI MUlS24YNh5hIlHyAaF7SrPuetZtpVq3AeyCG+dc5SXDL6NC6kflbZ0v9m9tr2f75dqxz K8Pf2TB7ZGKuN08sEa45sh4QKM7DbJot30g06LPb7Tpsm5Yj5SdXhVpVvtgyxvDlcI2a CDaxj3Vlfb65USFDTJlM9tEPwpw3g5Wuv8HZ9E+VySwjCuW7ccB9Wq5/VnGCuY2oxAEq +pxQ== 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=7xHku0xjGtNlG60KJF9M3I9RZ6zajXl+TXdSFtMEBc0=; b=8BggHXhB4kZ8LjSyRI+5dm2bowWs9TftAW5FhmBIrbfGzZ/TBfh9gC4vh0gaooEsB0 6dbC+lovLbmGuNJ6iTpetjidDrF+0Y8G1M5sAIX1WCt13TSG0EdWNl7den2sB3MpcjHn 7MT0EkVJaG9O9VEieovBxcVuNpFII5mL91gRBJ7+1csokUzrWXlbbseBbbc72QgwtqVu pfNtryGEPGpA+QP/h+yFzuaO3IkMoiH8NcN7uSUp0s2Ty4m91ITJby7yYIMQI+SjXI/4 RtuFjOQK/ptNV+HV2/YOyhxKx8NUDlaaErYLjHvI+gc4Ixma7SLp1S/RhCvVvYiQr5GM 8R2A== X-Gm-Message-State: AFqh2kq9bVvH6HYKo1JGd3nOnMzh5+B0jZLrt174UxqNqCZnpsfTqlGP wnK/Y5cYW3S0qwNx1ahYfTLv+T5v/+A= X-Google-Smtp-Source: AMrXdXvXxtH+WbkNI8d+2J3+tivNJ48ua0j6wp2wLnL5+xHoVOmRhN4IcVPPYTzwg8qK5B6a5wZgSA== X-Received: by 2002:a17:90a:1a49:b0:226:8803:3d3d with SMTP id 9-20020a17090a1a4900b0022688033d3dmr18944721pjl.14.1673132908662; Sat, 07 Jan 2023 15:08:28 -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 c63-20020a17090a494500b00225ffb9c43dsm1716971pjh.5.2023.01.07.15.08.28 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 07 Jan 2023 15:08:28 -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#59738: c-ts-mode is slow with large buffers. Message-Id: <2F7A695E-3427-46F0-8BF4-568BA61DFF34@gmail.com> Date: Sat, 7 Jan 2023 15:08:27 -0800 To: Stefan Kangas X-Mailer: Apple Mail (2.3696.120.41.1.1) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 59738-done Cc: 59738-done@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 (-) Stefan Kangas writes: > Alan Mackenzie writes: > >> The bug which was causing it to be very slow is fixed, so I agree, >> excellent job! > > Could this bug therefore be closed, or is there more to do here? This probably can be closed, so I=E2=80=99m closing it. Yuan From unknown Sun Jun 22 00:14:52 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 05 Feb 2023 12:24:05 +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