all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Jerome L Quinn <jlquinn@us.ibm.com>
Cc: 15555@debbugs.gnu.org
Subject: bug#15555: 24.3; Bidirectional display very slow with long lines
Date: Tue, 08 Oct 2013 09:42:53 +0300	[thread overview]
Message-ID: <83wqlo461e.fsf@gnu.org> (raw)
In-Reply-To: <OFB6BCDCF4.790FBD5D-ON85257BFD.006A738E-85257BFD.006E62BF@us.ibm.com>

> From: Jerome L Quinn <jlquinn@us.ibm.com>
> Date: Mon, 7 Oct 2013 16:05:42 -0400
> 
> If I have a buffer with a very long line (14000 chars) with a mix of
> ASCII and Arabic text, emacs gets painfully slow when point is further
> along the line.

Emacs is in general painfully slow with such long lines, even if there
are only ASCII characters there.  Presence of Arabic characters makes
it slower, but it is unbearably slow even before that.  This is a
known deficiency of the Emacs display engine.  This is bug #13675.

> It looks like there's an N^2 algorithm dependent on the column of
> point.

No, there are no N² algorithms.  However, for many display operations,
Emacs needs to go to the beginning of the previous _physical_ line,
and then go forward to the place it needs to redisplay.  With very
long lines, this takes a lot of time.

If your data files don't include empty lines, there's perhaps another
source of slowdown, which _is_ peculiar to bidirectional display:
Emacs needs to find the beginning of the current paragraph to
determine its "base direction".  To see if this is your problem, try
setting bidi-paragraph-direction to either left-to-right or
right-to-left, depending on whether most of the text should be read
left to right or right to left.

> We encounter this kind of data in our work looking at generated
> files.  The only solution at the moment is to disable bidirectional
> reordering.

With 14 thousand characters per line, Emacs is slow even without
reordering.  Again, this is an existing bug.  Disabling reordering is
probably not a very good thing when you work with Arabic text.

> There are also problems with the display.  If you search for the following:
> 
> 74,346,347
> 
> my display looks like:
> 
> ... ,[["74,346,347],".",".","","."], ...
> 
> Whereas it should display:
> 
> ... ,[".","",".",".",[74,346,347]]]], ...
> 
> Note that the first " is misplaced, even if you accept that the rest
> should be reversed.

This is what the Unicode Bidirectional Algorithm mandates, since " is
a "weak" character, i.e. it gets its directionality from the
surrounding text, and because your paragraph has the left-to-right
base direction (because it begins with strong L2R character).  Perhaps
you should set bidi-paragraph-direction to right-to-left, as your text
is predominantly Arabic.

So I see no bug here wrt the display order.  As for slow redisplay
with very long lines, that is an existing bug report.





  reply	other threads:[~2013-10-08  6:42 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-07 20:05 bug#15555: 24.3; Bidirectional display very slow with long lines Jerome L Quinn
2013-10-08  6:42 ` Eli Zaretskii [this message]
2013-10-08 15:39   ` Jerome L Quinn
2013-10-08 18:07     ` Eli Zaretskii
2013-10-09 12:26       ` Stefan Monnier
2013-10-09 16:59         ` Eli Zaretskii
2013-10-09 18:04           ` Jerome L Quinn
2016-01-26  5:13             ` bug#3219: " Andrew Hyatt
2016-01-26 14:41               ` Eli Zaretskii
2014-02-18 12:43           ` bug#15555: " Dmitry Antipov
2014-02-18 14:01             ` Dmitry Antipov
2014-02-18 16:21               ` Eli Zaretskii
2014-02-18 14:04             ` bug#15555: " Stefan Monnier
2014-02-18 14:31               ` Dmitry Antipov
2014-02-18 16:24                 ` Eli Zaretskii
2014-02-18 17:34                   ` Dmitry Antipov
2014-02-18 17:47                     ` Eli Zaretskii
2014-02-19 17:43                     ` Eli Zaretskii
2014-02-20  7:32                       ` Dmitry Antipov
2014-02-20 17:45                         ` Eli Zaretskii
2014-02-21  5:32                           ` Dmitry Antipov
2014-02-18 17:58                 ` Eli Zaretskii
2014-02-19  5:48                   ` Dmitry Antipov
2014-02-19 17:36                     ` Eli Zaretskii
2014-02-20 17:44                 ` bug#15555: " Eli Zaretskii
2014-02-18 17:44               ` Eli Zaretskii
2014-02-18 17:42             ` Eli Zaretskii
2014-02-19 10:49               ` bug#15555: " Dmitry Antipov
2014-02-19 17:39                 ` Eli Zaretskii
2014-02-20  7:21                   ` Dmitry Antipov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83wqlo461e.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=15555@debbugs.gnu.org \
    --cc=jlquinn@us.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.