From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#56682: Fix the long lines font locking related slowdowns Date: Mon, 15 Aug 2022 01:07:08 +0300 Message-ID: <29b571a3-5a47-fed9-3147-f30864134c41@yandex.ru> References: <837d3lzv8n.fsf@gnu.org> <2c8d6755-cfe2-6559-3fde-3fa30ffb411e@yandex.ru> <83mtcgy44k.fsf@gnu.org> <83k07jx5jn.fsf@gnu.org> <866e510d-a060-7daa-d002-97861d056fa7@yandex.ru> <1144021660321893@iva5-64778ce1ba26.qloud-c.yandex.net> <12348081660379417@sas2-a098efd00d24.qloud-c.yandex.net> <66bbbb95983414e79637@heytings.org> <66bbbb95983475c5f3b0@heytings.org> <0d67f253-c080-d750-c2cb-4a9591ff8c6c@yandex.ru> <83lerrl734.fsf@gnu.org> <83wnbbj7v4.fsf@gnu.org> <75c316c0-3346-e702-b114-41a7f899deb1@yandex.ru> <5900f20836ca3f305df8@heytings.org> <8ef8eaba-1add-e87e-247e-71888beaf1f8@yandex.ru> <837d3ak8lf.fsf@gnu.org> <14516fce-8c35-1ce7-1314-44a3d79e8ba7@yandex.ru> <834jyek7df.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="31499"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Cc: 56682@debbugs.gnu.org, gregory@heytings.org, monnier@iro.umontreal.ca To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Aug 15 00:08:12 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oNLmF-000811-P2 for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 15 Aug 2022 00:08:11 +0200 Original-Received: from localhost ([::1]:57368 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oNLmE-0004cm-PE for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 14 Aug 2022 18:08:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44806) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNLm6-0004c6-HI for bug-gnu-emacs@gnu.org; Sun, 14 Aug 2022 18:08:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:50278) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oNLm6-0007ce-86 for bug-gnu-emacs@gnu.org; Sun, 14 Aug 2022 18:08:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oNLm6-0005m4-1F for bug-gnu-emacs@gnu.org; Sun, 14 Aug 2022 18:08:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 14 Aug 2022 22:08:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56682 X-GNU-PR-Package: emacs Original-Received: via spool by 56682-submit@debbugs.gnu.org id=B56682.166051484222126 (code B ref 56682); Sun, 14 Aug 2022 22:08:01 +0000 Original-Received: (at 56682) by debbugs.gnu.org; 14 Aug 2022 22:07:22 +0000 Original-Received: from localhost ([127.0.0.1]:40024 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNLlR-0005ko-Hc for submit@debbugs.gnu.org; Sun, 14 Aug 2022 18:07:21 -0400 Original-Received: from mail-wm1-f44.google.com ([209.85.128.44]:33400) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNLlM-0005kY-Of for 56682@debbugs.gnu.org; Sun, 14 Aug 2022 18:07:20 -0400 Original-Received: by mail-wm1-f44.google.com with SMTP id m3-20020a05600c3b0300b003a5e0557150so869219wms.0 for <56682@debbugs.gnu.org>; Sun, 14 Aug 2022 15:07:16 -0700 (PDT) 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; bh=Lr5FBx/zed/bVEOQkKH08M2fDz05Rrp+hZTNQvShGvE=; b=QPtknNq18Er833UlNyfz4fvBUBcIjEopQ4LL1kOa9BjYnCM3+76gvwEoCjoTK67bZf NA4CUieDbS/o8ShJ+J1pSn2ruEIl57wNRrAg6UxC+SiUnsMSzc2raP/JPrbhkRMS44As +AxWjkblhARWJCuYg1OZx/bJjELVkehFqoAKk7UM9B4ARu7CTpLJ5mSaqIQVJYu6FIqm PARnMc0K3qrZbbzxE1bW946Lp9SdUBaODbqfi7wRNKz2kNUODd/8/ciz3NRqlVOCuQsa BU9B4ITqFFsj6HzcE1jOPMmLzvsitiQvQmXJOjCmwqA5TnyWBrxlVg/+LJvA1xsFenh7 sOfA== 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; bh=Lr5FBx/zed/bVEOQkKH08M2fDz05Rrp+hZTNQvShGvE=; b=RBx5Y4IDE0MJPi7cHY5SON44mxvtgekPOA1kvQ3YiU2/fRXtM0lAssAxirXJM5NEr2 ny6qRuOl8kA5KgT7lAyIJr1NYmeqQGC3VH5F9rrR8gyOxNcJv7ygal/LeUX+eq1QUwq1 ENQ0iC/bCKB2YhG2IV4RzMZJQbzQlzVOR3k0yOsw5BNA917BuPiYAEv3SW8W0UL901Er xOzbh7IRQZ7UpvFz6Us1bYV72HpaZeAUz7YJRhWDayxrDUAi+GR5sQoYgMXc70yvmM7C FT8F+EeEKwOsvJwLbPSeVnej98kTwONIG3Y/FELWMq7ovIZn/Pnv4HeLBMxUsOoSTVZl G/kQ== X-Gm-Message-State: ACgBeo0Nl99aoMA+5ovLo3CdDMimiw45uIG1CD9mnoWx3DDqq6Pb3hUY nNA9MwAEMgk0UVUgLes8NAA= X-Google-Smtp-Source: AA6agR5b7u4bQXDY8OMABJ9MettKjH/BLxDWRxHCRtDlJWnwwb8obrsZo0LnaBDHoG6hhqGUOXxxSQ== X-Received: by 2002:a7b:cb82:0:b0:3a5:a4f3:486f with SMTP id m2-20020a7bcb82000000b003a5a4f3486fmr14904054wmi.24.1660514830923; Sun, 14 Aug 2022 15:07:10 -0700 (PDT) Original-Received: from [192.168.0.6] ([46.251.119.176]) by smtp.googlemail.com with ESMTPSA id z14-20020adff74e000000b0022377df817fsm5381637wrp.58.2022.08.14.15.07.09 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 14 Aug 2022 15:07:10 -0700 (PDT) Content-Language: en-US In-Reply-To: <834jyek7df.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:239707 Archived-At: On 14.08.2022 21:27, Eli Zaretskii wrote: >> Date: Sun, 14 Aug 2022 21:14:00 +0300 >> Cc: 56682@debbugs.gnu.org, gregory@heytings.org, monnier@iro.umontreal.ca >> From: Dmitry Gutov >> >> The implementation of the idea that Gregory mentioned (font locking >> reasonably accurate even when it doesn't have access to the whole >> buffer) will have to be done in Lisp anyway. So that's where the >> narrowing should be applied too. > > I don't see how it follows. If we decide (and I don't say we did, but > if we do) that fontification-functions must run narrowed, then they > will run narrowed, and the best place to do that is in the caller. Only if we somehow decided that it makes sense to always use the same narrowing bounds. But as experiment shows, font-lock can use 100x larger narrowing, and still perform well. Further, the thing which is going to call the language-specific safe-position-finding logic is likely to want to update the bounds of the narrowing (to then call syntax-ppss within those bounds, where START is a "safe" position). So yeah, the font-lock related widen/narrowing logic should indeed live in one place. And until now it has resided in font-lock-fontify-region.