From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Felix Newsgroups: gmane.emacs.devel Subject: Re: Tree-sitter navigation time grows as sqrt(line-number) Date: Thu, 17 Aug 2023 17:15:53 +0200 Message-ID: <878ra9u2b1.fsf@web.de> References: <87v8ddsqwe.fsf@web.de> <797b4f1c-222e-14c0-c802-6f23090c9c1f@gutov.dev> <2fe95bcd-c3b5-09de-067d-fe986b01f890@gutov.dev> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9936"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: mu4e 1.11.14; emacs 30.0.50 Cc: emacs-devel To: Felix , Dmitry Gutov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Aug 17 17:18:14 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qWelK-0002QD-5m for ged-emacs-devel@m.gmane-mx.org; Thu, 17 Aug 2023 17:18:14 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qWekV-0006zN-3p; Thu, 17 Aug 2023 11:17:23 -0400 Original-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 1qWekQ-0006yz-Hp for emacs-devel@gnu.org; Thu, 17 Aug 2023 11:17:18 -0400 Original-Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qWekL-0001md-4p for emacs-devel@gnu.org; Thu, 17 Aug 2023 11:17:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=s29768273; t=1692285422; x=1692890222; i=felix.dick@web.de; bh=REsp83Q3G2loXpgdkXL9C2j3DxJ0nGP84nyIWpGsJc0=; h=X-UI-Sender-Class:References:From:To:Cc:Subject:Date:In-reply-to; b=curLa/G+9LpIP/cRQRJNYv/6azE+D4zsXf3WduzWhE1yLvf28ynqldmVY8J5SN7czKkkAln gdJ9rEyfuIJuI5nrzIp1a3kzROrOYV6T2ZyTUwYqZH292ONs+uXhCgkwQktcPKUZCvx9nZQ1g EI21GEHjtNBaOZ0I9QZRtxHp/iW86LH/dTN3PvL+4tSicS+d2uJyjYcPw2QgN3UNzDshIf4Nq piNDOsT4KrUGu+VSgUE9K9g8Mbf04gMbMrBzexX6zS/fgq2xuzwxXa5rgEySAF8O1g22can+Z 0GiNsBgmgMAN0hR6eKgsVnprpA3XEzXIoRCGz69yB+npT5lv7LQQ== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 Original-Received: from felix-lifebooka531.web.de ([95.91.241.30]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1N9cHX-1pjaix18mz-015ZNm; Thu, 17 Aug 2023 17:17:02 +0200 In-reply-to: <2fe95bcd-c3b5-09de-067d-fe986b01f890@gutov.dev> X-Provags-ID: V03:K1:+UB4PI4Mj+z6BV1WL7C2sWohGvIrYvvAqXcDyxuTXAX79IUEJ8F bvnZjXNskVRMNeFAmAEsJG/Wj3yZ9FpExGDd/7A7U4R+Cutz2AAF3yfdAIbW3r4NANni6TF 1X0EMGWA7WnQpNR28Q0y/kVdMPcZX1xghztrrEOrn0GLpFJhHmLbKwUwITMpnyLdNqdUaUA M7vgAn5QJzAagRDODzVGA== UI-OutboundReport: notjunk:1;M01:P0:Yo2uoR9HYB4=;CsTmHnBvGxzcWW86Ri+cgwhb+UH afkKFbyLV4reKNmY0ofLLSTSfhuODaB7Y4X1fKO3inPn+IP175U5DcjhUMG98lgYuR6rxC6rj onsHR0GJ8YH0Wa2kRhPPah44FUjP0NnvGrEvYwQFWwIdk6nUt3A8embspEE8NXbnW81/iVDVV a2lSPjEAFBe0zXHMVe6gIrAGfx8Ysg7745I/vyJyHuGquzDLfbO4f8nmaTbWCaYMQx57slcsX DnxLzwuR0xwZ4n7OYzR2S/qU7VZXbijD0JYln0+f4vH222vwtACgZR89QB49aHhnoWaJwVuP7 aBHiwya0z7kwPaZeoG9ufDe9gFpk3widLoFhGSnSrsOerpjp5sln8wrkc3++cdZueTOTh/0/o rnhBNayZKmKQ17YfWkHYuQaPSRdIM/dOA9CCbP5sGOgEc+EwcUho54bNaZQRD1KEDEq6H1X13 ydbhPiB4W/xvZ2B5s9ueTXxmhwIDPgQFHbN7gUQAlXddfQ4hQsnZTFQ6wxS9fPJM4VHknTDbx oscip1BiInc+mzTBdARH7FnBwJ1XXS9ZLbAMz3LRh0e//aDcq//xe3fl81AhcI4fkAhuEKapu f82CUodLH8d4T+z132rBNlByzXWNMhuZgEDCTYaxn6cZ3V2o6eFDc/CW4wigqE9S+IUqygr2G Nv1EGxbf4YCN2TwMCmjM48n9r64lxDTGcjCj+BR9hnMyFSeVEI/UDtDlpjaNxe/HyXzCdSG/N noO3MT/oX4sv+tu1V4hceN1V98anCPsrtjWpuqtouPYg2bN1bCO5zquy45IapTIk6TDEt+jE Received-SPF: pass client-ip=212.227.17.11; envelope-from=felix.dick@web.de; helo=mout.web.de X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:308874 Archived-At: Dmitry Gutov writes: > On 17/08/2023 17:36, Dmitry Gutov wrote: >> On 17/08/2023 17:25, Dmitry Gutov wrote: >>> On 17/08/2023 17:08, Felix wrote: >>>> Hi, >>>> >>>> I tried that patch, and it crashes emacs whenever i try to scroll insi= de >>>> a tree-sitter managed buffer. >>>> >>>> GNU Emacs 30.0.50 (build 22, x86_64-pc-linux-gnu, GTK+ Version >>>> 3.24.38, cairo version 1.17.8) of 2023-08-17 >>>> >>>> compiled with pgtk running on wayland. >>> >>> Thanks for testing. Does that happen in any ts mode, or some >>> particular ones? >>> >>> If you run Emacs from the terminal, could you post the error backtrace? >>> >>> (Please keep emacs-devel in Cc). >> For my part, I don't see it crash when scrolling (in ruby-ts-mdoe or >> js-ts-mode, including larges files), but the test scenario by JD >> does make it crash. >> When running under GDB, the backtrace simply looks like this: >> #0=C2=A0 0x00007ffff63bf93d in ts_tree_root_node (self=3D0x0) at >> lib/src/tree.c:36 >> #1=C2=A0 0x00007ffff63a54e5 in ts_node_parent (self=3D...) at lib/src/no= de.c:462 >> #2=C2=A0 0x00005555557f0d17 in Ftreesit_node_parent >> (node=3DXIL(0x5555574908c5)) at treesit.c:1906 >> #3=C2=A0 0x000055555576f62b in eval_sub (form=3D) at eval= .c:2511 >> #4=C2=A0 0x000055555576f987 in Fsetq (args=3D) at eval.c:= 483 >> #5=C2=A0 0x000055555576f368 in eval_sub (form=3D) at eval= .c:2462 >> #6=C2=A0 0x000055555576ff75 in Fprogn (body=3DXIL(0)) at eval.c:436 >> ... > > Try this one. > > I've read the tree-sitter docs a bit more, and also dropped the "else" > case because it was unreachable anyway. I doesn't crash anymore here. > > [2. text/x-patch; treesit-node-parent.diff]... This one doesn't crash while scrolling.