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: Sat, 06 Aug 2022 16:28:11 +0300 Message-ID: <83zgghy00k.fsf@gnu.org> References: <83pmhuft5a.fsf@gnu.org> <05388e8d8836c2e7ef3e@heytings.org> <136c4fe0fcb9ce5181cb@heytings.org> <3d639ea12689d767ba2a@heytings.org> <838ro44fc8.fsf@gnu.org> <3d639ea126d759bddfea@heytings.org> <83y1w42vp4.fsf@gnu.org> <3d639ea12618e6a503af@heytings.org> <83wnbo2uw3.fsf@gnu.org> <3d639ea126e3a4d880b8@heytings.org> <83k07o2izh.fsf@gnu.org> <3d639ea1265c40a07f40@heytings.org> <83h72s2e3o.fsf@gnu.org> <3d639ea126c6b0c6737b@heytings.org> <838ro42b1g.fsf@gnu.org> <3d639ea126db3913202e@heytings.org> <83wnbn264f.fsf@gnu.org> <3d639ea12684115449f8@heytings.org> <83tu6r1b03.fsf@gnu.org> <92da07bd02b96d54dbf4@heytings.org> <835yj62a18.fsf@gnu.org> <92da07bd02f5963a2da4@heytings.org> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="26335"; mail-complaints-to="usenet@ciao.gmane.io" Cc: gerd.moellmann@gmail.com, 56682@debbugs.gnu.org, monnier@iro.umontreal.ca, dgutov@yandex.ru To: Gregory Heytings Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Aug 06 15:29:13 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 1oKJrc-0006hJ-Q1 for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 06 Aug 2022 15:29:13 +0200 Original-Received: from localhost ([::1]:55356 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oKJrb-0007sR-Mx for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 06 Aug 2022 09:29:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:60762) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oKJrS-0007qt-EH for bug-gnu-emacs@gnu.org; Sat, 06 Aug 2022 09:29:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:43314) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oKJrS-0000q0-5b for bug-gnu-emacs@gnu.org; Sat, 06 Aug 2022 09:29:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oKJrR-0006ET-V0 for bug-gnu-emacs@gnu.org; Sat, 06 Aug 2022 09:29:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 06 Aug 2022 13:29: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.165979251023919 (code B ref 56682); Sat, 06 Aug 2022 13:29:01 +0000 Original-Received: (at 56682) by debbugs.gnu.org; 6 Aug 2022 13:28:30 +0000 Original-Received: from localhost ([127.0.0.1]:33063 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oKJqv-0006Di-OR for submit@debbugs.gnu.org; Sat, 06 Aug 2022 09:28:30 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:47752) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oKJqt-0006DT-KI for 56682@debbugs.gnu.org; Sat, 06 Aug 2022 09:28:28 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:37150) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oKJqo-0000n6-9C; Sat, 06 Aug 2022 09:28:22 -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=b5mHicDWjnLWGO8+SRuEawkP1hYlfZ6vl/reWlqeabs=; b=XmxhWHNCpiII uLo6Ss8TPpIsrVIkWbCppgAB5qL7rDhh1iQQvxbGQ7rtPiMUu4kZJs3QLaOBzfIC5LU6UP4mP/6qA qLpBmoGkHsBLlBwh3Kr2dKRGGURhwEBgtaXKXLVZqauGZu/c45i8L1lvMxnNv3I00V5jeVnzZky3t jYkJW7N1JZ+iN3Hs/Lg806gdYW3vFrGTfgvQA8+ulq5Pata6zG5vbDrxFHJhq13BMVvSvfh0V/OS2 Yh7mfraEPE4S4iFJBgKo+gcb9wOp7NFiv+XAZoZfCSzVqfi+EtkG7cRMCFLNGC1pLzZwU9ZDsQ9h5 MvHso+PSp2OjXqyVpooI9w==; Original-Received: from [87.69.77.57] (port=4482 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 1oKJqn-0000Y0-M5; Sat, 06 Aug 2022 09:28:22 -0400 In-Reply-To: <92da07bd02f5963a2da4@heytings.org> (message from Gregory Heytings on Fri, 05 Aug 2022 11:50:56 +0000) 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:238986 Archived-At: > Date: Fri, 05 Aug 2022 11:50:56 +0000 > From: Gregory Heytings > cc: gerd.moellmann@gmail.com, 56682@debbugs.gnu.org, monnier@iro.umontreal.ca, > dgutov@yandex.ru > > > There's (at least) one more aspect of this, as long as Text mode is > > being used: Text mode doesn't force bidi-paragraph-direction to be > > left-to-right, whereas all descendants of prog-mode, including js-mode, > > do. Leaving bidi-paragraph-direction at nil means Emacs needs to > > determine the base paragraph direction each time it's about to redisplay > > a window, and that might be expensive, especially in a large buffer > > without any paragraph breaks (by default, an empty line), because that > > is determined by the first strong directional character of the > > paragraph. So for a more fair comparison with Text mode, you should set > > bidi-paragraph-direction to the value left-to-right in text-mode > > buffers. > > Indeed, that seems to be the culprit here, I didn't know that text-mode > was an exception here. If I set bidi-paragraph-direction to > 'left-to-right after visiting the arabic-small.txt file, Emacs (mis) > behaves like it does for the other Arabic files: it becomes slow, and C-n > C-p do not work correctly anymore. The problems with C-n/C-p were unrelated, and seem to be a very old bug. I've now mostly fixed that on master (and hopefully didn't introduce any regressions while at that). In general, layout calculations when we have very long stretches of R2L text in a left-to-right paragraph are very tricky, because many assumptions become false.