From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#56682: Fix the long lines font locking related slowdowns Date: Mon, 01 Aug 2022 14:58:18 +0300 Message-ID: <83v8rc2n1h.fsf@gnu.org> References: <837d46mjen.fsf@gnu.org> <8a3eaeef01be5bfaa5ef@heytings.org> <05388e8d8812bfa3695d@heytings.org> <83v8rf5894.fsf@gnu.org> <65cb7c73fd4a999cca00@heytings.org> <8c7321f2f3400a5db9be@heytings.org> <8c7321f2f388e5343475@heytings.org> <8c7321f2f36494299e61@heytings.org> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="21668"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 56682@debbugs.gnu.org, gregory@heytings.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Aug 01 13:59:21 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 1oIU4u-0005S6-5a for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 01 Aug 2022 13:59:20 +0200 Original-Received: from localhost ([::1]:47720 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oIU4t-0006pX-4z for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 01 Aug 2022 07:59:19 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39140) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIU4c-0006ip-Mu for bug-gnu-emacs@gnu.org; Mon, 01 Aug 2022 07:59:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:49769) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oIU4c-000247-DX for bug-gnu-emacs@gnu.org; Mon, 01 Aug 2022 07:59:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oIU4c-0000r1-9k for bug-gnu-emacs@gnu.org; Mon, 01 Aug 2022 07:59:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 01 Aug 2022 11:59:02 +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.16593551173248 (code B ref 56682); Mon, 01 Aug 2022 11:59:02 +0000 Original-Received: (at 56682) by debbugs.gnu.org; 1 Aug 2022 11:58:37 +0000 Original-Received: from localhost ([127.0.0.1]:39518 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oIU4D-0000qK-AY for submit@debbugs.gnu.org; Mon, 01 Aug 2022 07:58:37 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:54306) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oIU4A-0000q6-Np for 56682@debbugs.gnu.org; Mon, 01 Aug 2022 07:58:35 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:47392) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIU45-00021U-EB; Mon, 01 Aug 2022 07:58:29 -0400 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=ixAk2/eqkL7HVvTl6Kh2CHZmfTgMpf+RfJD+i3LT1ZM=; b=Jxe6KGyqLnow QIJHGjAP/fFxQr0cBzDOPx1SMeqBexxsuDtAX/ID96O/QHGiyjfdu4RxMCR1M8YLRiXf3T52t3eIz AsFJMPs7fr2MCwxR+nbyEVvaXQspgTfLK0mrhNTu2g0C/kWLj0Cyj9Zm+nILUGr5Bkqme3Hd9V08G Zf0Y58gjI17osYY1Uhf4tH5Yyb6mlr6dDatUEjU0Ej7SFOjSPwqJV8giuG1U0QhblZlMMI+bMeTTq BVc7pFJ92hK/YqYBSdIr4suUPb/gPzC0WHRooXYH/atllDiIXy+ctBKYN+NXENI9TY5/FRL0itgOj 3Ikswk72ZALabifH0ZqXkQ==; Original-Received: from [87.69.77.57] (port=1672 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 1oIU44-0004hB-TI; Mon, 01 Aug 2022 07:58:29 -0400 In-Reply-To: (message from Stefan Monnier on Sun, 31 Jul 2022 18:45:16 -0400) 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:238414 Archived-At: > From: Stefan Monnier > Cc: Eli Zaretskii , 56682@debbugs.gnu.org > Date: Sun, 31 Jul 2022 18:45:16 -0400 > > Your current code makes it impossible for a major mode to make Emacs > slow by widening in a too-long-line. I'd prefer if we made it easy > (i.e. the default) for Emacs to work well in that case, without making > it impossible for the major mode to mess things up. > > E.g. use narrowing (and arrange for the known widening culprit to be > disabled) so that the default behavior is sane, but sllow an ELisp > package from re-widening (possibly using a specific call to do that) if > it thinks it's a good idea (even if it may turn out not to be so). The problem is that too many popular major modes, notably including those whose files tend to like having very long lines, are slow in their fontifications. In fact, I'd challenge you to find a major mode that doesn't present such a degradation in behavior with long lines (you should be able to measure it by comparing performance and responsiveness in a buffer with and without font-lock). Given this situation, it sounds reasonable to start by restricting font-lock. As I wrote elsewhere, I'm okay with extending 'widen' so that it could "unlock" the locked narrowing, which could then be used in major modes that convince us their performance is adequate (or clearly announce in their docs that they don't care about files with long lines ;-).