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

From: Juanma Barranquero <[email-masked]>
Date: Sat, 24 Sep 2011 01:21:57 +0200

On Fri, Sep 23, 2011 at 23:23, Drew Adams <[email-masked]> wrote:

> Anyone's guess, unless someone checks and specifies what it does.
> And why is it that that won't happen?

You remind me of a discussion in the Perl 6 mailing list, a few years ago:

  "As one of the 3 or 4 people in the world that understands the perl5
regexp engine, we would welcome your input."
  "'Understands' is a rather strong word..."
                              -- Mark Kvale and Hugo van der Sanden

And that is the case here: the number of people who understands both
the Emacs display engine and the issues related to bidi can be counted
with a couple bits, and I'm being generous. So if Eli says that he's
not going to devote time to some issue related to it, it's not
unrealistic to expect that it won't happen (soonish). Your insistence
in keeping the issue as a wishlist is just the hope that someone will
someday want to change the display engine to suit your preferences.
Even if the number of knowledgeable people suddenly were to increase,
that wouldn't automatically mean that they would be willing to invest
in adding the code and the toggle to keep the display engine
backward-compatible.

> Limbo is apparently no more

Not exactly, no. In fact, the official position of the Catholic Church
has not changed, news reports notwithstanding.

http://en.wikipedia.org/wiki/Limbo#Modern_era

> Not at all.  Emacs 24 has not yet been released.
> We still have a chance to get it right.

Perhaps if you can convince Eli, Stefan and Chong that supporting both
the bidi-aware and the not-bidi-aware code is the "right" thing to do.
If you can do that, please also convince them to simultaneously
support the Unicode and pre-Unicode font backends; I miss the speed of
my line-by-line scrolling in times past (though it is now quite
usable, thanks to tireless efforts by Eli and Chong and Jason, IIRC).

> So far, it seems (but I can't speak for him, obviously) that Richard is not
> convinced either.  He has repeated the same thing as I: why shouldn't this be a
> user option?

Because the option it would currently offer is bogus.

> Emacs has been about partial control, better-than-nothing, and
> do-the-best-we-can, since its inception.  Above all, it has been about giving
> users as much control as possible.

It has also been about using resources (= developers) in the most
efficient way possible.

> It's about giving users the knowledge and access, even if the results of using
> nil are not 100% predictable or 100% good.

Are there really that many users that will want to disable
bidi-display-reordering, knowing that the result will likely be
buggier than the default? And if they do exist, do they really need a
defcustom?

> I would prefer that we offer a user option.  Not for me, but for others, who
> might not be so clear about Lisp, buffer-local variables, and `setq-default'.

A defcustom is an statement that something is a switch, and both modes
are reasonable. That is not the case here.

> When I say, great,
> thank you, please tell that to the users also, you freak out and start screaming
> too "highly technical" and "deeply internal" for users.

How did you determine the freaking out and the screaming? I'm quite interested.

> No one is asking that you document the implementation.  Think in terms of what
> might help a user who does happen to set the variable to nil.  That's the kind
> of info that it could be helpful to add to the manual.  Nothing more.

Your defcustom request can be trivially satisfied, and not a word is
needed in the manual:

(defcustom bidi-display-reordering t
  "Not a user option. Do NOT set it to nil.  Horrible things will
happen.  Thanks."
  :type 'boolean
  :version "24.1"

    Juanma