Subject: Re: bug#9571: 24.0.50; user option to turn off bidi, please

From: Eli Zaretskii <[email-masked]>
Date: Fri, 23 Sep 2011 21:24:03 +0300

> From: Stefan Monnier <[email-masked]>
> Cc: Štěpán Němec <[email-masked]>,
>   [email-masked],  [email-masked]
> Date: Fri, 23 Sep 2011 13:46:35 -0400
> 
> cursor positioning [is] the tricky part of your changes, and IIUC
> the only part that can't just be turned off by bidi-display-reordering

By and large, yes.  But cursor positioning is very central to user
experience.  And there are other, less major pieces of the display
engine that were modified without keeping the old code conditioned on
bidi-display-reordering.  I never considered it a goal to keep the old
display code intact, so I cannot guarantee I did, and I know for a
fact that some places other than cursor positioning have unconditional
changes.

> The other source of problem has been performance, and AFAICT it's always
> been linked to bidi-paragraph-direction

That is one potentially expensive part of the design.  There's
another: searching for portions of text covered by "replacing" display
properties (because those text parts are reordered for display as a
single unit).  Both issues are kept at bay by limiting the amount of
text we search before giving up.

That said, the above two performance are explicitly present in the
design.  There are others that are unintended (a.k.a. "bugs").
Lately, more often than not, I find that slowdown is due to those
unintended factors, not to the above 2 inherently expensive design
traits.  Bug reports with details of the use case are necessary to
find these and weed them out.